以太坊学习4--rpc调用

rpc json的官方文档地址:https://github.com/ethereum/wiki/wiki/JSON-RPC
 

启动测试节点并开启rpc功能:

geth -testnet -rpc console

 

查询余额:

官方文档说明:
以太坊学习4--rpc调用_第1张图片
在Post工具中执行官方案例:
以太坊学习4--rpc调用_第2张图片
注:result为地址上的余额,是16进制表示的,单位为“为”
 

面对这个测试节点,我们第一步肯定是要新建账号的:

去找到管理者的API:https://github.com/ethereum/go-ethereum/wiki/Management-APIs
以太坊学习4--rpc调用_第3张图片
以太坊学习4--rpc调用_第4张图片
注意:但是你会报错
原因:在启动测试节点的时候并没有添加personal的API(即Management方法不在默认的RPC服务中的)
解决:输入exit命令退出后再执行该命令重启测试节点geth --testnet --syncmode "fast" --rpc --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal" console
 
再次调newAccount方法则可以成功:
以太坊学习4--rpc调用_第5张图片
 

在转账操作先得解锁账户:

以太坊学习4--rpc调用_第6张图片
注:params下的第三个参数是“持续时长”,如果不填默认时间是300秒
以太坊学习4--rpc调用_第7张图片
 

获取账号余额(我们可以看到该账户余额为0):

以太坊学习4--rpc调用_第8张图片
注:我们一般用“latest”查询账户余额,“pending”为正在处理中的交易,可以理解为正在交易中还没有到账,“ earliest”为最早的余额
以太坊学习4--rpc调用_第9张图片
 

查看交易笔数(该账户还没有发生过交易,所以是0):

以太坊学习4--rpc调用_第10张图片
注:正在处理中的交易也要算进去,所以这里的参数是“pending”
以太坊学习4--rpc调用_第11张图片
 

交易(我这里的账户还没有以太币,所以无法完成该方法):

以太坊学习4--rpc调用_第12张图片
个别参数说明:
from:转账人地址
to:收账人地址
gas:手续费的数量
gasPrice:手续费的单价,根据行情,大家出多少你就出多少
value:转账的金额
data:以后调用智能合约会涉及到
nonce:交易的笔数
注:这个交易的参数有的可以不设置,因为它有默认值,比如nonce你不填它也会自动给你填上的。这个交易是解锁交易,但是签名交易的话这些参数都必须手动设置
 
可以通过eth_getTransactionCount方法来查询交易笔数,如果查询为几的话,下次交易的nonce就设置为几,因为这个nonce是从0开始的

如果交易成功的话会返回一个交易hash,然后你就可以根据这个hash去区块链上去查询这笔交易(pending为正在处理中,success为已经交易成功):

这里写图片描述
你也可以根据API方法查询:
以太坊学习4--rpc调用_第13张图片
注:如果查的晚的话会有blockNumber和blockHash的,这是因为交易已经上链了,所以会有块的信息。如果查的早的话是查不到块信息的。我们可以根据这个块的信息为标志来判断交易是否已经上链,但是成功与否我们是不知道的,而且gas到底消耗了多少我们也是不知道的。这就有了下面这个接口了
 

查询这笔交易是否成功(和上一个方法并不冲突,有时候需要配合这两个接口使用):

以太坊学习4--rpc调用_第14张图片
以太坊学习4--rpc调用_第15张图片
个别参数说明:
gasUsed:实际花费的gas数量
status:交易状态,1成功,0失败
 

如果交易成功后再查看收账人余额:

以太坊学习4--rpc调用_第16张图片
注:其中result的值为16进制,你可以百度“在线进制转换”
以太坊学习4--rpc调用_第17张图片

你可能感兴趣的:(以太坊学习)