Peerinfo example sends/receives repeated messages
@varex83 已经在做这个了。
开始于 2026年8月31日。
评估
这个 Issue 还没有评估数据。
描述
Description
When multiple peerinfo examples run concurrently they send to each other more than 1 peerinfo message per interval. Instead, if a peerinfo example conects with a Charon node the peerinfo message is only received once per interval.
How to reproduce
- Setup a test cluster using Charon
./charon create cluster --nodes 3 --network mainnet --num-validators 1 --cluster-dir ./test-cluster --insecure-keys --fee-recipient-addresses 0x0000000000000000000000000000000000000000 --withdrawal-addresses 0x0000000000000000000000000000000000000000
-
Copy the private keys for nodes 1 and 2 to
.node-1and.node-2respectively (each directory should contain a singlecharon-enr-private-keyfile). -
Run a Charon node:
./charon run --simnet-beacon-mock --no-verify --nickname=node0 --lock-file=test-cluster/node0/cluster-lock.json --private-key-file=test-cluster/node0/charon-enr-private-key --p2p-tcp-address=0.0.0.0:3610 --monitoring-address=0.0.0.0:9464 --log-level=info
- Run a Pluto
peerinfoexample, dialing the Charon node:
cargo run -p charon-peerinfo --example peerinfo -- \
--port 4001 \
--nickname node-1 \
--data-dir .node-1 \
--metrics-port 9465 \
--dial /ip4/127.0.0.1/tcp/3610
- Validate that you're seeing a single PeerInfo log:
2026-01-28T20:32:50.806482Z INFO peerinfo: Loaded existing private key from .node-1
2026-01-28T20:32:50.809754Z INFO peerinfo: ENR: enr:-Iu4QCVayGwxN90xAbGqpvvR2TqciZ41ZgRN8mF0675xj2hkQFcnVwl6pWq1gjmUOAZVHBE50oD-HnWX8xlVDQN-hd2AgmlkgnY0gmlwhAAAAACJc2VjcDI1NmsxoQOdy7XC6i8ORmTOkLQNGEl6y4jqJFWlk9uabkp7g88nWYN0Y3CCD6GDdWRwgg-h
2026-01-28T20:32:50.809882Z INFO vise_exporter::exporter: Created metrics exporter with 23 metrics in 4 groups from crates vise_exporter 0.3.2, charon_tracing 1.7.1, charon_peerinfo 1.7.1, charon_p2p 1.7.1, ...
2026-01-28T20:32:50.813052Z INFO libp2p_swarm: local_peer_id=16Uiu2HAmPGxXC2xtfqrMo8uLFxeuAczdV1dqFc6cshrqNwHVet8G
2026-01-28T20:32:50.813086Z INFO peerinfo: Local peer id: 16Uiu2HAmPGxXC2xtfqrMo8uLFxeuAczdV1dqFc6cshrqNwHVet8G
2026-01-28T20:32:50.813100Z INFO peerinfo: mDNS auto-discovery enabled
2026-01-28T20:32:50.813171Z INFO peerinfo: Dialing /ip4/127.0.0.1/tcp/3610
2026-01-28T20:32:50.813294Z INFO peerinfo: Peerinfo example started with nickname 'node-1', interval 5s
2026-01-28T20:32:50.813303Z INFO peerinfo: Press Ctrl+C to exit
2026-01-28T20:32:50.813526Z INFO libp2p_mdns::behaviour::iface: creating instance on iface address address=192.168.1.182
2026-01-28T20:32:50.813590Z INFO libp2p_mdns::behaviour::iface: creating instance on iface address address=100.82.171.62
2026-01-28T20:32:50.813622Z INFO libp2p_mdns::behaviour::iface: creating instance on iface address address=172.17.0.1
2026-01-28T20:32:50.813764Z INFO peerinfo: Listening on /ip4/127.0.0.1/tcp/4001
2026-01-28T20:32:50.813797Z INFO peerinfo: Listening on /ip4/192.168.1.182/tcp/4001
2026-01-28T20:32:50.813815Z INFO peerinfo: Listening on /ip4/100.82.171.62/tcp/4001
2026-01-28T20:32:50.813841Z INFO peerinfo: Listening on /ip4/172.17.0.1/tcp/4001
2026-01-28T20:32:50.816948Z INFO peerinfo: Connection established with 16Uiu2HAmFGE1p3vAxnJ8ghSYuGCiByguyD4SZBu8wu2PcrG1tz7A via /ip4/127.0.0.1/tcp/3610
2026-01-28T20:32:55.818160Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"beautiful-park": "node0"}
2026-01-28T20:32:55.820692Z WARN charon_peerinfo::protocol: Mismatching peer lock hash peer="beautiful-park" lock_hash="916a191e150f1ab4a358326e7e036290e838997a80e703b500876f6a982c7a51"
2026-01-28T20:32:55.820857Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmFGE1p3vAxnJ8ghSYuGCiByguyD4SZBu8wu2PcrG1tz7A:
│ Version: v1.7.1-DIRTY
│ Git Hash: 749d2d7
│ Nickname: node0
│ Builder API: false
│ Lock Hash: "916a191e150f1ab4a358326e7e036290e838997a80e703b500876f6a982c7a51"
- Run a second Pluto
peerinfoexample:
cargo run -p charon-peerinfo --example peerinfo -- \
--port 4002 \
--nickname node-2 \
--data-dir .node-2 \
--metrics-port 9466 \
--dial /ip4/127.0.0.1/tcp/3610
- Validate that you're seeing multiple Peerinfo messages per node:
2026-01-28T20:33:41.584015Z INFO libp2p_mdns::behaviour: discovered peer on address peer=16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J address=/ip4/172.17.0.1/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.584109Z INFO libp2p_mdns::behaviour: discovered peer on address peer=16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J address=/ip4/100.82.171.62/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.584141Z INFO libp2p_mdns::behaviour: discovered peer on address peer=16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J address=/ip4/192.168.1.182/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.584184Z INFO peerinfo: 🔍 mDNS discovered peer 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J at /ip4/172.17.0.1/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.584306Z INFO peerinfo: 🔍 mDNS discovered peer 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J at /ip4/100.82.171.62/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.584363Z INFO peerinfo: 🔍 mDNS discovered peer 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J at /ip4/192.168.1.182/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.588129Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/100.82.171.62/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.588287Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/192.168.1.182/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.588640Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/172.17.0.1/tcp/4002/p2p/16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J
2026-01-28T20:33:41.589468Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/100.82.171.62/tcp/4002
2026-01-28T20:33:41.589638Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/192.168.1.182/tcp/4002
2026-01-28T20:33:41.589791Z INFO peerinfo: Connection established with 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J via /ip4/192.168.1.182/tcp/54138
2026-01-28T20:33:46.589031Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.589163Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.589245Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.589387Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:46.589450Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:46.589507Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:46.590046Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.590119Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.590136Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:46.590288Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:46.590375Z INFO charon_peerinfo::protocol: Peer name to nickname mappings nicknames={"helpless-fish": "node-2"}
2026-01-28T20:33:46.590463Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:48.810448Z WARN charon_peerinfo::protocol: Mismatching peer lock hash peer="beautiful-park" lock_hash="916a191e150f1ab4a358326e7e036290e838997a80e703b500876f6a982c7a51"
2026-01-28T20:33:48.810670Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmFGE1p3vAxnJ8ghSYuGCiByguyD4SZBu8wu2PcrG1tz7A:
│ Version: v1.7.1-DIRTY
│ Git Hash: 749d2d7
│ Nickname: node0
│ Builder API: false
│ Lock Hash: "916a191e150f1ab4a358326e7e036290e838997a80e703b500876f6a982c7a51"
2026-01-28T20:33:51.590247Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:51.590353Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:51.590437Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:51.590551Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:51.590801Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
2026-01-28T20:33:51.590855Z INFO peerinfo: Received PeerInfo from 16Uiu2HAmTvWXpcGW3BcGXF4MX7gkSPetYzjXxhUZMUk1FQX5HH1J:
│ Version: v1.0.0
│ Git Hash: abc1234
│ Nickname: node-2
│ Builder API: false
│ Lock Hash: "00000000"
Documentation link(s)
Not applicable
- 主要语言
- Rust
- 星标
- 8
- 派生
- 5
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
NethermindEth/pluto 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 69/100
NethermindEth/pluto#722 ·
-
难度 4/5 3-5 天 新手友好度 52/100
NethermindEth/pluto#719 ·
-
enhancement rust
难度 4/5 3-5 天 新手友好度 45/100
NethermindEth/pluto#640 ·
-
rust
难度 5/5 一周以上 新手友好度 45/100
NethermindEth/pluto#638 · 1 条评论 ·
-
enhancement rust
难度 5/5 一周以上 新手友好度 35/100
NethermindEth/pluto#635 ·
查看 NethermindEth/pluto 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 77/100
near/near-sdk-rs#1676 ·
维护者通常 2 天内回复
-
auto:producer auto:security
难度 2/5 1-3 小时 新手友好度 66/100
fritzprix/libr-agent#2595 ·
维护者通常 1 天内回复
-
area:fs type:fix
难度 2/5 1-3 小时 新手友好度 76/100
Tripstack-Corp/spyc#1002 ·
维护者通常 1 天内回复
-
github_actions security
难度 2/5 1-3 小时 新手友好度 85/100
dekobon/big-code-analysis#1815 ·
维护者通常 1 天内回复
-
[Detail Bug] Request logs can be forged via control characters in fetch object keys (log injection)未关闭
难度 2/5 1-3 小时 新手友好度 82/100
s2-streamstore/cachey#211 ·
维护者通常 1 天内回复