Explorations into using DHT+SkipGraph for chain and state data retrieval

Great write up, thank you. Skip graphs are an amazing find!

content_id is never mentioned again, and doesn’t seem necessary in the rest of the text. Is this correct, or is something missing?

Regarding RPC APIs, how do you envision that? Currently the caller sends the RPC to a “user node” (local node, Infura, whatever), which generates the answer locally; in your scenario, I guess the user node would retrieve any required data from the content node/s and then generate the answer, right?
Or is the caller redirected to / somehow expected to find out out of band who is the content node to be contacted?

Actually I think that could be an interesting corner. A node might decide it’s interested in a set of topics or bloom filter, index those and advertise it as yet another kind of content.
Alternatively, the Referrer concept of @prototypo could do that kind of indexing and referral/resolution; possibly someone asking for a specific topic will be motivated to pay.

Looks like the Discovery V5 people already gave some thought to the attack vectors you mention, so combining both sounds good.

I have been toying with the idea of applying locality-preserving hashes at a couple of levels, including the DHT, but now it sounds like skip graphs might be hard to improve on. Though maybe it would help contain the dispersion of keys in the world state part of it? I’ll try to flesh it out and write something up soon.

1 Like