以太坊开发基础(4)geth控制台console方法

此清单只为俯瞰一下geth中可以使用哪些方法来与以太坊进行交互,详细的还是要参考官方文档:

可以参考:

https://github.com/ethereum/go-ethereum/wiki/Management-APIs

https://ethereum.gitbooks.io/frontier-guide/content/jsre.html

ethereum JavaScript Console内置对象和方法

在这个环境里也内置了一些用来操作以太坊的Javascript对象,可以直接使用这些对象。这些对象主要包括:

  • eth:包含一些跟操作区块链相关的方法
  • net:包含以下查看p2p网络状态的方法
  • admin:包含一些与管理节点相关的方法
  • miner:包含启动&停止挖矿的一些方法
  • personal:主要包含一些管理账户的方法
  • txpool:包含一些查看交易内存池的方法
  • debug:包含一些debug的方法
  • web3:包含了以上对象,还包含一些单位换算的方法

1、admin对象

admin.addPeer(nodeURL)  // 为本客户端新建与目标节点的链接
admin.peers    // 返回已有连接对象组成的数组
admin.nodeInfo // 返回节点信息
admin.datadir  // 返回当前节点存储数据的文件夹
admin.importChain(file)  // 从编组二进制格式的数据导入区块
admin.exportChain(file)  // 把区块导出为二进制格式
admin.chainSyncStatus    // 返回区块链同步状态信息
admin.startRPC(host, portNumber, corsheader, modules) // 启动JSON-RPC的HTTP服务
admin.stopRPC()          // 关闭JSON-RPC的HTTP服务
admin.verbosity(level)   // 设置日志冗水平,1-6级
admin.setSolc(path2solc) // 设置solidity编译器,例如:admin.setSolc('/some/path/solc')
admin.sleepBlocks(n)     // 等待n个区块
/*****以下是与智能合约有关的方法*****/
admin.saveInfo(contract.info, filename)  // 把合约info按照json格式写到目标文件
admin.startNatSpec()     // 启动协议NatSpec构建合同和事务
admin.stopNatSpec()      // 停止NatSpec
admin.getContractInfo(address)  // 按合约地址返回json格式的合约信息
admin.register(address, contractaddress, contenthash) // 将内容hash注册到合约的代码hash
admin.registerUrl(address, codehash, contenthash)     // 在区块链中注册带有内容哈希值的网址

2、miner对象

miner.start()  // 开始挖矿
miner.stop()   // 停止挖矿
miner.startAutoDAG() // 开启auto DAG
miner.stopAutoDAG()  // 关闭auto DAG
miner.makeDAG(blockNumber, dir) // 产生epoch的DAG
miner.hashrate  // 返回当前hash rate
miner.setExtra("extra data")  // 在产生区块的时候设置额外的信息
miner.setGasPrice(gasPrice)   // 设置旷工的gasprice
miner.setEtherbase(account)   // 设置默认旷工账户,用于接受挖矿奖励

3、personal对象

personal.newAccount(passwd)  // 新建账户
personal.listAccounts  // 列举所有账户
personal.deleteAccount(addr, passwd)  // 删除账户
personal.unlockAccount(addr, passwd, duration)  // 解锁账户,可以限定时间,解锁期间可以进行交易

4、txpool对象

txpool.status  // 返回挂起和排队中的交易的数量

5、debug对象

debug.setHead(blockNumber) // 根据区块序号设置区块头,用于回滚
debug.seedHash(blockNumber) // 返回目标区块所在的epoch的hash
debug.processBlock(blockNumber) // 使用debug模式的VM执行block
debug.getBlockRlp(blockNumber)  // 返回区块的Rlp编码的十六进制
debug.printBlock(blockNumber)   // 打印区块信息
debug.dumpBlock(blockNumber)   // 返回相应区块的状态并返回账户列表

6、eth对象:源自web3.eth

// 一些web3之外的eth方法
eth.sign(signer, data)
eth.pendingTransactions  // 返回pending的交易
eth.resend(tx, <optional gas price>, <optional gas limit>) // 重新发送pending的交易

7、net对象:源自web3.net

8、shh对象:源自web3.shh

9、db对象:源自web3.db

10、其他JavaScript方法

loadScript('/path/to/myfile.js') // 载入js脚本并执行

sleep(s)  // 睡眠s秒

setInterval(s, func() {})

下一章:geth控制台console方法 web3.js

web3.js有0.2版本和1.0版本的区别,本文列出的是web3.js 1.0版本提供的api。首先,需要注意web3.js的如下几个注意事项:1、使用callbacksweb3.js的A ...