问题描述
我有一个包含 2 个矿工节点和 2 个客户端简单节点的专用网络。
客户端通过负载均衡器连接到节点。其余部分位于托管在 AWS 上的私有虚拟专用网络,相同区域,几乎没有延迟,没有已知的网络问题。
Geth 版本 1.9.25-stable
交易通常运行良好,每天处理数千笔交易。但是客户端上的交易池越来越大,目前大约有 700 个待处理和 40 个排队交易。交易似乎卡在那里,对我来说没有多大意义。
Q1:它们通常不应该在所有 geth 节点之间同步吗?如果是这样,什么会导致此问题?
发生的事情是 transaction.rlp 文件变得超过 1.4MiB,从那时起,geth 似乎在处理新事务时遇到了问题。我看到所有待处理和排队的交易都来自使用 MetaMask 作为钱包的用户。有些人似乎不断发送更新的交易。内部geth将其输出为以下日志:
WARN [06-05|05:27:58.146] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=7003996886703 t="83.823µs" err="already known"
WARN [06-05|05:27:58.491] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=7003996886705 t="80.924µs" err="already known"
WARN [06-05|05:27:58.865] Served eth_sendRawTransaction conn=10.50.0.28:41606 reqid=5299365433122 t="92.569µs" err="already known"
INFO [06-05|05:27:59.196] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="362.939µs" mgasps=0.000 number=32118204 hash="5b97f0…0dffcf" dirty=0.00B
WARN [06-05|05:27:59.294] Served eth_sendRawTransaction conn=10.50.0.28:41606 reqid=5299365433124 t="85.896µs" err="already known"
WARN [06-05|05:27:59.694] Served eth_sendRawTransaction conn=10.50.1.80:23340 reqid=3438349880766 t="386.705µs" err="replacement transaction underpriced"
INFO [06-05|05:28:00.222] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="360.543µs" mgasps=0.000 number=32118205 hash="6c3b56…cd8f5a" dirty=0.00B
WARN [06-05|05:28:00.423] Served eth_sendRawTransaction conn=10.50.1.80:23340 reqid=3443451186370 t="379.489µs" err="replacement transaction underpriced"
WARN [06-05|05:28:00.875] Served eth_sendRawTransaction conn=10.50.1.80:52930 reqid=2372216991099 t="74.666µs" err="already known"
WARN [06-05|05:28:00.998] Served eth_sendRawTransaction conn=10.50.1.80:52930 reqid=2372216991101 t="59.9µs" err="already known"
WARN [06-05|05:28:01.096] Served eth_sendRawTransaction conn=10.50.1.80:52930 reqid=2372216991103 t="82.847µs" err="already known"
INFO [06-05|05:28:01.143] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="386.208µs" mgasps=0.000 number=32118206 hash="62e919…6974e5" dirty=0.00B
WARN [06-05|05:28:01.195] Served eth_sendRawTransaction conn=10.50.1.80:52930 reqid=2372216991105 t="80.746µs" err="already known"
WARN [06-05|05:28:01.947] Served eth_sendRawTransaction conn=10.50.1.80:23340 reqid=6783212608581 t="77.569µs" err="already known"
WARN [06-05|05:28:02.498] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=3385664093232 t="79.367µs" err="already known"
WARN [06-05|05:28:02.825] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=3385664093233 t="88.098µs" err="already known"
WARN [06-05|05:28:02.839] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=1355052905982 t="79.774µs" err="already known"
INFO [06-05|05:28:02.859] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="355.445µs" mgasps=0.000 number=32118207 hash="fbc60b…58ec55" dirty=0.00B
INFO [06-05|05:28:03.003] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="354.053µs" mgasps=0.000 number=32118208 hash="a36a8e…b95c0f" dirty=0.00B
WARN [06-05|05:28:03.021] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=7513987805663 t="63.962µs" err="already known"
WARN [06-05|05:28:03.144] Served eth_sendRawTransaction conn=10.50.0.28:18998 reqid=3385664093234 t="70.104µs" err="already known"
起初怀疑是有针对性的攻击,但由于某种原因发送新交易似乎是 MetaMask 的正常行为。区块链没有被重置,它自创世区块以来一直在运行。它可能有助于为这些客户重置帐户,但首先为什么会发生这种情况?
如果有人能对此有所了解,那将非常有帮助。
非挖矿节点上的 txpool.status 当前位于
> txpool.status
{
pending: 848,queued: 66
}
挖矿节点上的 txpool.status:
> txpool.status
{
pending: 0,queued: 2
}
如果有人对如何修复它有一些想法,或者可以为我指明特定方向,那将非常有帮助。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)