当前位置:   article > 正文

使用java实现以太坊并发发送交易_以太坊一个账户对一个地址可以发多笔交易吗

以太坊一个账户对一个地址可以发多笔交易吗

大家都知道使用web3j实现以太坊的功能。

查询了很多文章,对于全自动发送交易的文章少之又少,尤其是一个账户同时发送多笔交易的方式。(容易 nonce to low 的错误)

这里我简单说说我的思路。


基本知识:

  1. 以太坊发送交易需要带上nonce
  2. 如果nonce 小于已经成功发送交易的nonce那么就会交易失败
  3. 每次交易成功后,获得的nonce就会相比之前的交易nonce多1 (其实交易就是自增的)
  4. 如果nonce大于现有交易,那么当前nonce的交易会等待前面的交易完成

 

单钱包实现多笔交易同时发送:

  1.  如果是内部账户,可以使用自己维护nonce自增的方式
  2. 使用 DefaultBlockParameterName.PENDING方式 ,一般来说这种方式能获取pending 交易的nonce.从而实现交易nonce自增
  1. String address = /* 发送交易的地址 */;
  2. BigInteger nonce = web3j.ethGetTransactionCount(address , DefaultBlockParameterName.PENDING).send().getTransactionCount();

如果使用web3j封装的方法进行交易,你根本就不知道TxHash,而且很容易出现网络超时的错误。而且当你发送多笔交易后,你根本就不知道自己有没有给那个地址打过币。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/717100
推荐阅读
相关标签
  

闽ICP备14008679号