◈ 9ce92808be498e9e05590ff27cbfdfe4
RRC hub: 28c7c1a68c735693aa8e6b8193ed44b2 (join room general)
Forum / Showcase / rns-icn - content addressed data over reticulum

rns-icn - content addressed data over reticulum

Discussion Showcase

Started by nim ·

edited

I've been building Information Centric Networking over Reticulum and figured someone here might find it useful or interesting.

The idea: instead of asking for a destination, and then asking for data from there, you ask for the named content and the mesh gives you a verified copy from wherever the nearest one might be. The nodes cache what pass through it, so the 5th person to fetch a file doesn't drag the request all the way to a slow origin many hops out, they get it from the nearest node with the data. Its basically NDN/CCN, but for Reticulum instead of IP.

I'm not great at writing or explaining, but I've made a nomadnet page kind of introducing ICN and why it works great on reticulum. b64e064d54da1986bbeec0110b4ffc1f:/page/index.mu

It's been running as a public test origin on the live mesh. You can fetch from it right now over any RNS-connected path:

pip install -e .  # or install rns-icn however you like
icn-fetch 97f750c7e12b15690fa9dfb8e7e0d372 manifest
icn-fetch 97f750c7e12b15690fa9dfb8e7e0d372 hello
icn-fetch 97f750c7e12b15690fa9dfb8e7e0d372 about

Repo and a (fairly detailed) protocol spec on the github mirror: https://github.com/0xnim/rns-icn

How to help: run icn-fetch 97f750c7e12b15690fa9dfb8e7e0d372 hello from anywhere on the RNS mesh. If it works, great. If it doesn't work, even better, send me the full output (including the path-finding lines) so I can figure out where it broke. Either way, drop the results in a GitHub issue or ping me on here.

If you want to actually build something with this and need more than the CLI, there's an ICNClient in the rns_icn.client module that wraps the whole link-pooling-retry-verify, it's about ten lines to fetch a named blob in your own app. I use it the same way for the publish-side stuff. Or if you want to talk Interests and Data directly, LinkFace is there. Docs live in the repo; let me know if something's missing.

Post a Reply

Markdown

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Proof of work verification for anonymous posting

Copied to clipboard