林克比:"replacement transaction underpriced"
Rinkeby: "replacement transaction underpriced"
我一直在 运行 连接一个本地 Rinkeby 节点(为了使用 websocket 事件),它工作了一段时间,但突然间我得到了 "Returned error: replacement transaction underpriced"。我发送了 average gas price 的 10 倍,但我仍然收到此错误。这是我的计算:
gwei = 1000000000
gas = 47000
gasPrice = gwei * 20
只有当我将 gas 价格提高到 (gwei * 2000) 时,我才能进行交易 (0.9 ether)。这导致我 运行 很快就用完了以太币,这让开发变得非常困难。
发送示例:
{
"nonce": "0x23",
"chainId": 4,
"to": "0xB92427792629A23E0b2deE37b3F92Ce4D4cB794c",
"value": 0,
"gas": "0xb798",
"gasPrice": "0x4a817c800",
"data": "0xce07c1787465737400000000000000000000000000000000000000000000000000000000"
}
非常感谢任何帮助!
Geth Rinkeby 命令:
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
字段
此答案假定您要发出新交易,而不是 replace a pending one。
错误是什么意思?
"Returned error: replacement transaction underpriced"
错误的意思是:
- 您的 Ethereum 客户端中的账户有待处理的交易
- 您发送的新交易与待处理交易具有相同的随机数
- 您发送的新交易的 gas 价格太低,无法替换待处理的交易
对于geth
,替换交易的gas价格必须大于挂起交易的gas价格的10%。*
我假设您想要发起一项新交易,而不是替换现有的待定交易。您可以通过删除 nonce
字段来解决问题。您的以太坊客户端会自动为您管理随机数。
*协议中未规定此重置价格。不同的客户端(最重要的是矿工)可能会应用不同的替换规则。
我还有一个原因需要指定nonce字段
然后每次发出新交易时将其递增 1。这将不能很好地与连接到您的以太坊客户端的其他进程一起使用,并尝试替换它们。
尝试增加 'gasPrice'。
Ex:web3.toWei('25','gwei')
:)
我一直在 运行 连接一个本地 Rinkeby 节点(为了使用 websocket 事件),它工作了一段时间,但突然间我得到了 "Returned error: replacement transaction underpriced"。我发送了 average gas price 的 10 倍,但我仍然收到此错误。这是我的计算:
gwei = 1000000000
gas = 47000
gasPrice = gwei * 20
只有当我将 gas 价格提高到 (gwei * 2000) 时,我才能进行交易 (0.9 ether)。这导致我 运行 很快就用完了以太币,这让开发变得非常困难。
发送示例:
{
"nonce": "0x23",
"chainId": 4,
"to": "0xB92427792629A23E0b2deE37b3F92Ce4D4cB794c",
"value": 0,
"gas": "0xb798",
"gasPrice": "0x4a817c800",
"data": "0xce07c1787465737400000000000000000000000000000000000000000000000000000000"
}
非常感谢任何帮助!
Geth Rinkeby 命令:
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
字段
此答案假定您要发出新交易,而不是 replace a pending one。
错误是什么意思?
"Returned error: replacement transaction underpriced"
错误的意思是:
- 您的 Ethereum 客户端中的账户有待处理的交易
- 您发送的新交易与待处理交易具有相同的随机数
- 您发送的新交易的 gas 价格太低,无法替换待处理的交易
对于geth
,替换交易的gas价格必须大于挂起交易的gas价格的10%。*
我假设您想要发起一项新交易,而不是替换现有的待定交易。您可以通过删除 nonce
字段来解决问题。您的以太坊客户端会自动为您管理随机数。
*协议中未规定此重置价格。不同的客户端(最重要的是矿工)可能会应用不同的替换规则。
我还有一个原因需要指定nonce字段
然后每次发出新交易时将其递增 1。这将不能很好地与连接到您的以太坊客户端的其他进程一起使用,并尝试替换它们。
尝试增加 'gasPrice'。 Ex:web3.toWei('25','gwei')
:)