Open lidel opened 1 year ago
Idea: Saturn provides bootstrap nodes (could be L1s run by PL) that host a periodically updated list of L1s.
Smart clients like Caboose/serviceworker can hardcode the bootstrap node ip addresses in their code and fetch the list of L1s as a fallback.
That's similar to how the IPFS bootstrap nodes work, right? https://docs.ipfs.tech/how-to/modify-bootstrap-list/
DNS idea 2 is feasible. I like having 1 global list (ALL IPS), and 1 nearby list. If the nearby list returns 0 then you can fallback to the global list.
If possible, we should avoid hard-coding HTTP endpoints as "bootstrappers" – this is the very problem we are trying to solve :)
The libp2p bootstrappers are bit different,
/p2p/peerid
suffix, which makes them way more resilient than HTTP URLs. it may not matter much for bootstrapper use case, but matters for peering agreements: even when IP is unreachable, or DNS is down, Kubo might be able to reach out to them if LAN DHT or local peer knows their alternative location I think if we invest time in this, DNS idea 2 gives us the biggest return in resiliency, because of how DNS hierarchical caching works. And thanks to DoH, we can still use it in browser contexts: https://www.npmjs.com/package/dns-over-http-resolver
So we still can read orchestrator nodes over HTTP, but we no longer need to hardcode specific URL, any DoH endpoint will work.
iiuc multiple DoS vectors exist around cases when:
Each one of these events is unlikely, but the risks compound. Some ideas for anticipatory action:
https://l1s.strn.pl
orhttps://strn.pl
all.l1s.strn.pl
ornearby.l1s.strn.pl
which returns more than oneA
record, replacing the need for HTTP request https://orchestrator.strn.pl/nodes/nearby?count=9999 – @guanzo thoughts on feasibility?Other ideas how we can improve resiliency for the day Amazon fails?
cc @aarshkshah1992 @willscott @guanzo