我一直在运行一个本地Rinkeby节点(为了使用websocket事件),这个节点工作正常一段时间,但突然间我得到了#34;返回错误:替换事务价格低估"。我发送的是average gas price的10倍,我仍然收到此错误。这是我的计算:
gwei = 1000000000
gas = 47000
gasPrice = gwei * 20
只有当我将汽油价格提高到(gwei * 2000)时才能进行交易(0.9以太)。这导致我很快就耗尽了以太,使得开发变得非常困难。
示例tx:
{
"nonce": "0x23",
"chainId": 4,
"to": "0xB92427792629A23E0b2deE37b3F92Ce4D4cB794c",
"value": 0,
"gas": "0xb798",
"gasPrice": "0x4a817c800",
"data": "0xce07c1787465737400000000000000000000000000000000000000000000000000000000"
}
任何帮助都很受欢迎!
Geth Rinkeby Cmd:
geth --rpccorsdomain="*" --rinkeby --ws --wsport=8546 --wsorigins="*" --datadir=$HOME/.rinkeby --cache=512 --rpc --rpcapi="personal,eth,network,net,web3,db" --rpcport=8545 --fast --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303
答案 0 :(得分:8)
摘要:删除nonce
字段
此答案假设您要发布新的交易,而不是replace a pending one。
错误是什么意思?
"退回错误:替换交易低价"
错误意味着:
使用geth
时,替换交易的天然气价格必须高于待处理交易的天然气价格的1 10%。*
我假设您要发布新交易,而不是替换现有的待处理交易。您可以通过删除nonce
字段来解决问题。您的以太坊客户端将自动为您管理现时。
*协议中未指定此替换价格。不同的客户(最重要的是矿工)可能会采用不同的替代规则。
我还有另一个原因需要指定nonce字段
每次发出新交易时,将其增加1。这与连接到您的以太坊客户端的其他进程无法很好地匹配,并尝试替换它们。