filecoin-saturn / caboose

A blockstore for distributing load
Other
12 stars 2 forks source link

Improve resiliency around orchestrator.strn.pl #67

Open lidel opened 1 year ago

lidel commented 1 year ago

iiuc multiple DoS vectors exist around cases when:

Each one of these events is unlikely, but the risks compound. Some ideas for anticipatory action:

Other ideas how we can improve resiliency for the day Amazon fails?

cc @aarshkshah1992 @willscott @guanzo

guanzo commented 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.

lidel commented 1 year ago

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,


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.