我一直在运行一个本地Rinkeby节点(以便使用websocket事件),该节点运行良好已有一段时间,但是突然间,我收到了“返回的错误:替换交易价格偏低”的消息。我发送了10倍的average gas price,但仍然收到此错误。这是我的计算:

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"
}

任何帮助都非常有用!

盖斯·林克比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字段
该答案假定您要发布一个新的事务,而不是replace a pending one
错误是什么意思?

该错误表示:

  • 您的以太坊客户端
  • 中的帐户有待处理的交易
  • 您要发送的新事务与待处理事务
  • 具有相同的随机数
  • 您发送的新交易的汽油价格太小,无法替换挂起的交易

  • 使用geth时,替换交易的汽油价格必须大于待处理交易的汽油价格的10%。*
    我假设您要发出新的事务,而不是替换现有的,待处理的事务。您可以通过删除nonce字段来解决此问题。您的以太坊客户端将自动为您管理随机数。
    *此替换价格未在协议(protocol)中指定。不同的客户(最重要的是矿工)可能会应用不同的替换规则。
    我还有另一个原因需要指定随机数字段
    然后,每当您发出新交易时,将其增加一。这将无法与连接到以太坊客户端的其他进程配合使用,并尝试替换它们。

    关于ethereum - Rinkeby : "replacement transaction underpriced",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46349202/

    10-08 21:59