获取eth的余额
先来说说eth的余额获取,这个是很简单的,直接通过节点的rpc接口,就可以获取到,具体使用到的RPC接口为:eth_getBalance
参数:
1.要查询钱包地址
2.查询不同状态的余额”latest”(已经确认了的), “earliest”(创世区块的) , “pending”(包含未确认的交易的余额)
1 | params: [ |
示例:
1 | // Request |
获取BTC的余额 和 UTXO列表
直接使用btc节点的rpc服务是很难查出某个地址的余额的,因为btc的utxo机制,想通过rpc服务查余额,就只能先把地址导入节点,节点扫描整个区块,维护本地utxo列表,然后才能查询余额,这需要耗费一定的时间(20分钟以上),所以这个方式根本不适合查询余额。最终只能自己搭建一个btc的区块链浏览器,来解决这个问题(同时也解决了获取utxo列表和查询历史记录的问题)。使用的比较广的btc浏览器应该是insight-api,它的代码是开源的,并且提供接口,github地址:https://github.com/bitpay/insight-api
他提供的接口,足以满足你的需求
获取eth的nonce
估计有些人会有疑问,nonce是用来干啥的呢?其实他是eth用来防止双花的机制:
为了防止交易的重播攻击,每笔交易必须有一个nonce随机数,针对每一个账户nonce都是从0开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。以下是nonce使用的几条规则:
当nonce太小,交易会被直接拒绝。
当nonce太大,交易会一直处于队列之中;
当发送一个比较大的nonce值,然后补齐开始nonce到那个值之间的nonce,那么交易依旧可以被执行。
那如何获取这个nonce和防止交易失败呢,那就应该使用rpc接口获取,并且获取pending状态的值,具体rpc接口为:eth_getTransactionCount
参数:
1.要查询钱包地址
2.查询不同状态的余额”latest”(已经确认了的), “earliest”(创世区块的) , “pending”(包含未确认的交易的次数,推荐使用这个)
1 | params: [ |
示例:
1 | // Request |