以太坊开发基础(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() {})
web3.js有0.2版本和1.0版本的区别,本文列出的是web3.js 1.0版本提供的api。首先,需要注意web3.js的如下几个注意事项:1、使用callbacksweb3.js的A ...