File tree Expand file tree Collapse file tree 3 files changed +25
-4
lines changed
Expand file tree Collapse file tree 3 files changed +25
-4
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ package discover
2525import (
2626 "context"
2727 "fmt"
28+ "net"
2829 "net/netip"
2930 "slices"
3031 "sync"
@@ -205,6 +206,18 @@ func (tab *Table) close() {
205206func (tab * Table ) setFallbackNodes (nodes []* enode.Node ) error {
206207 nursery := make ([]* enode.Node , 0 , len (nodes ))
207208 for _ , n := range nodes {
209+ // Resolve DNS names to IP addresses for bootstrap nodes if needed.
210+ if ! n .IPAddr ().IsValid () && n .Hostname () != "" {
211+ ips , err := net .LookupIP (n .Hostname ())
212+ if err != nil {
213+ return err
214+ }
215+ ip := ips [0 ]
216+ if ipv4 := ip .To4 (); ipv4 != nil {
217+ ip = ipv4
218+ }
219+ n = enode .NewV4 (n .Pubkey (), ip , n .TCP (), n .UDP ())
220+ }
208221 if err := n .ValidateComplete (); err != nil {
209222 return fmt .Errorf ("bad bootstrap node %q: %v" , n , err )
210223 }
Original file line number Diff line number Diff line change @@ -86,6 +86,15 @@ var parseNodeTests = []struct {
8686 3 ,
8787 ).WithHostname ("valid." ),
8888 },
89+ {
90+ input : "enode://1dd9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439@invalid.:3" ,
91+ wantResult : NewV4 (
92+ hexPubkey ("1dd9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439" ),
93+ nil ,
94+ 3 ,
95+ 3 ,
96+ ).WithHostname ("invalid." ),
97+ },
8998 {
9099 input : "enode://1dd9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439@[::]:52150" ,
91100 wantResult : NewV4 (
Original file line number Diff line number Diff line change @@ -79,16 +79,15 @@ var OdysseyBootnodes = []string{
7979// Aeneid testnet network.
8080var AeneidBootnodes = []string {
8181 // Upstream bootnodes
82- "enode://a7e893eb4b07bd9b0c0659730c066564dff0f5fa98c08a7df9f380b84e64fbea16165ee5cce6c3414d64bea8cacc1ac200540c50607a7bf170b9d5504f81bbf8@35.211.57.203 :30303" ,
82+ "enode://a7e893eb4b07bd9b0c0659730c066564dff0f5fa98c08a7df9f380b84e64fbea16165ee5cce6c3414d64bea8cacc1ac200540c50607a7bf170b9d5504f81bbf8@b1-b.odyssey-devnet.storyrpc.io :30303" ,
8383}
8484
8585// StoryBootnodes are the enode URLs of the P2P bootstrap nodes running on the
8686// Story main network.
8787var StoryBootnodes = []string {
8888 // Upstream bootnodes
89- // TODO: update bootnodes for mainnet
90- "enode://f42110982b6ddaa4de8031f9fecb619d181902db5529a43bc9b1187debbc67771bf937b2210cbfd33babd2acbe138506596e23d0d1792ab3cb5229c5bb051544@35.211.238.157:30303" ,
91- "enode://2ae459a7cc28b59822377deec266e24e5ed00374d7a83e2e8d0d67dd89dc2b80366c1353c7909fe81b840f6081188850677fa20dd5d262c9e3f67eb23d0be0b5@35.211.209.170:30303" ,
89+ "enode://f42110982b6ddaa4de8031f9fecb619d181902db5529a43bc9b1187debbc67771bf937b2210cbfd33babd2acbe138506596e23d0d1792ab3cb5229c5bb051544@b1.storyrpc.io:30303" ,
90+ "enode://2ae459a7cc28b59822377deec266e24e5ed00374d7a83e2e8d0d67dd89dc2b80366c1353c7909fe81b840f6081188850677fa20dd5d262c9e3f67eb23d0be0b5@b2.storyrpc.io:30303" ,
9291}
9392
9493var V5Bootnodes = []string {
You can’t perform that action at this time.
0 commit comments