sigp / lighthouse

Ethereum consensus client in Rust
https://lighthouse.sigmaprime.io/
Apache License 2.0
2.84k stars 703 forks source link

IPv6-only node finds no peers #4924

Open sekuba opened 8 months ago

sekuba commented 8 months ago

Description

I am testing a v6-only connection for lighthouse (--listen-address :: only).

Version

version: Lighthouse/v4.5.0-441fc16

Present Behaviour

LH does not find any peers.

Expected Behaviour

LH should find peers via the v6 bootnodes.

Log

eth-docker-consensus-1  | Nov 14 11:34:50.856 INFO Logging to file                         path: "/var/lib/lighthouse/beacon/logs/beacon.log"
eth-docker-consensus-1  | Nov 14 11:34:50.860 INFO Lighthouse started                      version: Lighthouse/v4.5.0-441fc16
eth-docker-consensus-1  | Nov 14 11:34:50.860 INFO Configured for network                  name: mainnet
eth-docker-consensus-1  | Nov 14 11:34:50.860 INFO Data directory initialised              datadir: /var/lib/lighthouse
eth-docker-consensus-1  | Nov 14 11:34:50.860 WARN When listening only over IPv6, use the --port flag. The value of --port6 will be ignored.
eth-docker-consensus-1  | Nov 14 11:34:50.860 WARN When listening only over IPv6, use the --quic-port flag. The value of --quic-port6 will be ignored.
eth-docker-consensus-1  | Nov 14 11:34:50.860 INFO Deposit contract                        address: 0x00000000219ab540356cbb839cbe05303d7705fa, deploy_block: 11184524
eth-docker-consensus-1  | Nov 14 11:34:50.898 INFO Hot-Cold DB initialized                 split_state: 0x6277585b7f3d580acd46e347177ced236fb6b26147b491c59c40c4425441f25b, split_slot: 7761312, service: freezer_db
eth-docker-consensus-1  | Nov 14 11:34:50.915 INFO Using external block builder            local_user_agent: Lighthouse/v4.5.0-441fc16, builder_profit_threshold: 0, builder_url: "http://mev-boost:18550/", service: exec
eth-docker-consensus-1  | Nov 14 11:34:50.915 INFO Refusing to checkpoint sync             msg: database already exists, use --purge-db to force checkpoint sync, service: beacon
eth-docker-consensus-1  | Nov 14 11:34:50.915 INFO Starting beacon chain                   method: resume, service: beacon
eth-docker-consensus-1  | Nov 14 11:35:42.445 INFO Block production enabled                method: json rpc via http, endpoint: Auth { endpoint: "http://execution:8551/", jwt_path: "/var/lib/lighthouse/beacon/ee-secret/jwtsecret", jwt_id: None, jwt_version: None }
eth-docker-consensus-1  | Nov 14 11:35:44.822 INFO Beacon chain initialized                head_slot: 7761428, head_block: 0x0d6c…b922, head_state: 0x6431…4a6f, service: beacon
eth-docker-consensus-1  | Nov 14 11:35:44.822 INFO Timer service started                   service: node_timer
eth-docker-consensus-1  | Nov 14 11:35:44.823 INFO ENR Initialised                         quic6: Some(9001), quic4: None, udp6: Some(9000), tcp6: Some(9000), tcp4: None, udp4: None, ip4: None, id: 0x35a7..005e, seq: 34, enr: enr:-NS4QLwffK_C0XnAw-3lX9Cy_SrpB4lDuQSxvzKE9RR4yrHyWmKolW9d_98Y9y9N7-nXDJuWsMMH12zWBTua8pNEUugih2F0dG5ldHOIAAAAAAAAAACEZXRoMpC7pNqWAwAAAP__________gmlkgnY0g2lwNpAqAoBwAYTfAMFW6Pg5L2d2hXF1aWM2giMpiXNlY3AyNTZrMaEDurJuA8cNwQ9oKn4cyinz2jB37t_H5wWaRWmTpS1_5xqIc3luY25ldHMAhHRjcDaCIyiEdWRwNoIjKA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QHqVeJ8PPICcWk1vSn_XcSkjOkNiTg6Fmii5j6vUQgvzMc9L1goFnLKgXqBJspJjIsB91LTOleFmyWWrFVATGngBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAMRHkWJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QG-2_Md3sZIAUebGYT6g0SMskIml77l6yR-M_JXc-UdNHCmHQeOiMLbylPejyJsdAPsTHJyjJB2sYGDLe0dn8uYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhBLY-NyJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QPn5eVhcoF1opaFEvg1b6JNFD2rqVkHQ8HApOKK61OIcIXD127bKWgAtbwI7pnxx6cDyk_nI88TrZKQaGMZj0q0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDayLMaJc2VjcDI1NmsxoQK2sBOLGcUb4AwuYzFuAVCaNHA-dy24UuEKkeFNgCVCsIN1ZHCCIyg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-KG4QOtcP9X1FbIMOe17QNMKqDxCpm14jcX5tiOE4_TyMrFqbmhPZHK_ZPG2Gxb1GE2xdtodOfx9-cgvNtxnRyHEmC0ghGV0aDKQ9aX9QgAAAAD__________4JpZIJ2NIJpcIQDE8KdiXNlY3AyNTZrMaEDhpehBDbZjM_L9ek699Y7vhUJ-eAdMyQW_Fil522Y0fODdGNwgiMog3VkcIIjKA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-KG4QL-eqFoHy0cI31THvtZjpYUu_Jdw_MO7skQRJxY1g5HTN1A0epPCU6vi0gLGUgrzpU-ygeMSS8ewVxDpKfYmxMMGhGV0aDKQtTA_KgAAAAD__________4JpZIJ2NIJpcIQ2_DUbiXNlY3AyNTZrMaED8GJ2vzUqgL6-KD1xalo1CsmY4X1HaDnyl6Y_WayCo9GDdGNwgiMog3VkcIIjKA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-KG4QMOEswP62yzDjSwWS4YEjtTZ5PO6r65CPqYBkgTTkrpaedQ8uEUo1uMALtJIvb2w_WWEVmg5yt1UAuK1ftxUU7QDhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQEnfA2iXNlY3AyNTZrMaEDfol8oLr6XJ7FsdAYE7lpJhKMls4G_v6qQOGKJUWGb_uDdGNwgiMog3VkcIIjKA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.823 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-KG4QF4B5WrlFcRhUU6dZETwY5ZzAXnA0vGC__L1Kdw602nDZwXSTs5RFXFIFUnbQJmhNGVU6OIX7KVrCSTODsz1tK4DhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQExNYEiXNlY3AyNTZrMaECQmM9vp7KhaXhI-nqL_R0ovULLCFSFTa9CPPSdb1zPX6DdGNwgiMog3VkcIIjKA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QImhMc1z8yCiNJ1TyUxdcfNucje3BGwEHzodEZUan8PherEo4sF7pPHPSIB1NNuSg5fZy7qFsjmUKs2ea1Whi0EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQOVphkDqal4QzPMksc5wnpuC3gvSC8AfbFOnZY_On34wIN1ZHCCIyg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QP2xDnEtUXIjzJ_DhlCRN9SN99RYQPJL92TMlSv7U5C1YnYLjwOQHgZIUXw6c-BvRg2Yc2QsZxxoS_pPRVe0yK8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMeFF5GrS7UZpAH2Ly84aLK-TyvH-dRo0JM1i8yygH50YN1ZHCCJxA, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-Ku4QPp9z1W4tAO8Ber_NQierYaOStqhDqQdOPY3bB3jDgkjcbk6YrEnVYIiCBbTxuar3CzS528d2iE7TdJsrL-dEKoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMw5fqqkw2hHC4F5HZZDPsNmPdB1Gi8JPQK7pRc9XHh-oN1ZHCCKvg, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 ERRO Could not add peer to the local routing table, error: ENR has no compatible UDP socket to connect to, addr: enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.824 INFO Libp2p Starting                         bandwidth_config: 3-Average, peer_id: 16Uiu2HAmRDmzB7o5pRjwKtZfgXn3JniEwMzj9gkYqzustAFDoGRX, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.825 INFO Listening established                   address: /ip6/::/udp/9001/quic-v1/p2p/16Uiu2HAmRDmzB7o5pRjwKtZfgXn3JniEwMzj9gkYqzustAFDoGRX, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.825 INFO Listening established                   address: /ip6/::/tcp/9000/p2p/16Uiu2HAmRDmzB7o5pRjwKtZfgXn3JniEwMzj9gkYqzustAFDoGRX, service: libp2p
eth-docker-consensus-1  | Nov 14 11:35:44.825 INFO Deterministic long lived subnets enabled, subscription_duration_in_epochs: 256, subnets_per_node: 2, service: attestation_service
eth-docker-consensus-1  | Nov 14 11:35:44.825 INFO Subscribing to long-lived subnets       subnets: [SubnetId(21), SubnetId(20)], service: attestation_service
eth-docker-consensus-1  | Nov 14 11:35:44.826 INFO HTTP API started                        listen_address: 0.0.0.0:5052
eth-docker-consensus-1  | Nov 14 11:35:44.826 INFO Metrics HTTP server started             listen_address: 0.0.0.0:8008
eth-docker-consensus-1  | Nov 14 11:35:44.827 INFO Execution engine online                 service: exec
eth-docker-consensus-1  | Nov 14 11:35:44.827 INFO Issuing forkchoiceUpdated               forkchoice_state: ForkchoiceState { head_block_hash: 0x6683427ae247e46fc94c34c6722ff730abe8b3fc58dfed6f8b4fa9729a88daa9, safe_block_hash: 0x6a0c4bd78d2d806654f75adf4762ded597bb6afd185c4bea51d314a2393051bb, finalized_block_hash: 0xd58d5008bfc44b13ea84a25a00ea7504a7bec9515e075c84786c6ac3ba8eda62 }, service: exec
eth-docker-consensus-1  | Nov 14 11:35:45.128 INFO Execution payloads are pruned           service: freezer_db
eth-docker-consensus-1  | Nov 14 11:35:53.001 WARN Low peer count                          peer_count: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:35:53.001 INFO Searching for peers                     current_slot: 7761477, head_slot: 7761428, finalized_epoch: 242542, finalized_root: 0xa6db…84fe, peers: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:05.001 WARN Low peer count                          peer_count: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:05.001 INFO Searching for peers                     current_slot: 7761478, head_slot: 7761428, finalized_epoch: 242542, finalized_root: 0xa6db…84fe, peers: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:17.001 WARN Low peer count                          peer_count: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:17.001 INFO Searching for peers                     current_slot: 7761479, head_slot: 7761428, finalized_epoch: 242542, finalized_root: 0xa6db…84fe, peers: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:29.000 WARN Low peer count                          peer_count: 0, service: slot_notifier
eth-docker-consensus-1  | Nov 14 11:36:29.001 INFO Searching for peers                     current_slot: 7761480, head_slot: 7761428, finalized_epoch: 242542, finalized_root: 0xa6db…84fe, peers: 0, service: slot_notifier

The initial enr errors come from the bootnodes that do not have a v6 address. But LH-team bootnodes do have a v6 entry. Are there just no nodes that advertise v6 in the network?

~~in case anyone wants to peer with me manually, my current ENR is: enr:-OO4QFVacTHTGcfoYLsPcG-bRiB1GLGrVSfu5buikW8HYlXYbZdzNSuhuDOEetyI9SJ76NLb8OeUN2XeJdTO406edNZEh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC7pNqWAwAAAP__________gmlkgnY0g2lwNpAqAoBwAYTfAAoiycjGXq2bhHF1aWOCIymFcXVpYzaCIymJc2VjcDI1NmsxoQO6sm4Dxw3BD2gqfhzKKfPaMHfu38fnBZpFaZOlLX_nGohzeW5jbmV0cwCDdGNwgiMohHRjcDaCIyiEdWRwNoIjKA~~ (edit: old enr) I have confirmed with another lh user that manual peering works.

antondlr commented 7 months ago

I can, unfortunately, confirm that our bootnodes across different networks (prater, holesky, mainnet) reflect this and have 0 registered ipv6_nodes or ipv4_and_ipv6_nodes. Our nodes are currently not exposed over IPv6 -- I'll rectify that (on holeksy for starters) and let you know when it's done.

sekuba commented 7 months ago

thank you, i'll be glad to test it!

one-three-three-seven commented 7 months ago

I have a Lighthouse IPv6-only mainnet node running (after manually peering it), it has between 15 and 20 peers.

Shouldn't the bootnodes know about these nodes?