我一直在运行一个本地的Rinkeby Node(为了使用WebSocket事件),该节点运行良好了一段时间,但是突然我已经获得了"返回错误:替换交易低估的价格低估"。我将平均汽油价格发送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
摘要:删除nonce
字段
此答案假设您想发行新的交易,而不是替换待定的交易。
错误是什么意思?
返回错误:替换交易价格低廉
错误意味着:
- 您在以太坊客户端的帐户中有待处理的交易
- 您发送的新事务的nonce与待处理交易相同
- 您发送的新交易的汽油价格太小,无法替换待处理的交易
使用geth
,替换交易必须的气价必须大于待处理交易的气价的10%。*
我假设您想发布一项新事务,而不是替换现有的,等待的交易。您可以通过删除nonce
字段来解决问题。您的以太坊客户端将自动为您管理Nonce。
*协议中未指定此替代价格。不同的客户(最重要的是矿工)可能会应用不同的替代规则。
我还有另一个原因,我需要指定Nonce字段
然后,每次发布新事务时,都会将其递增。这将与连接到以太坊客户端的其他过程并尝试替换它们。
尝试增加'gasprice'。例如:web3.towei('25','gwei')
:)