Snorkel & PNS testing andupdate

Hi just a quick update.

The snorkel protocol is wired up and working.

A snorkel is the web2-facing component of PNS (Polkadot name service). One end has a udp port for serving DNS requests, the other gets on-chain data and merkle trie proofs. In the middle there’s a cache with a TTL.

Basic concept is if a supplicant is looking for host info to resolve, the snorkel can serve it in 10 microseconds if cached, if not it fetches it. Returns NXDOMAIN if the name is not resolved, or it doesnt have any A, AAAA, CNAME, or TXT records.

Records in PNS require a small deposit, the snorkel having eyes on expiration dates of various records in the identity layer has baked in janitor processes that can claim outstanding deposits on expired records as an economic incentive.

Spinning off the web2 side of PNS (serving records) into its own protocol bridge required me to rethink the need for hickory at all in the pallet for PNS. Im happy to report its been removed and therefore much leaner.

The snorkel doesnt have hickory or Tokio. Its meant to be fast and light.

The udp side of the snorkel is complete, there are 12 layers of DiD baked in. Im finalizing the tcp side. PNS running on a singlechain dev node with alice bob eve and charlie each having different records to serve proved successful. Spamming the snorkel with 1000 queries in rapid fire succession across dozens of nodes showed the rate limiting and other features were working as intended. Debugging showed no issues.

Identity layer should be on Paseo here shortly, with an android “everything app” on the google play store for beta testing the PNS + PKI identity layer.

Thanks for looking

Is this related to https://www.pns.link/? That site seems to have disappeared btw.

That repo was unfinished and abandoned 3-4 years ago. Yes, I forked that code. It’s current state looks very little like the repo I forked. Honestly, I would be interested in see a diff of what cupnfish left vs what I transformed it into. I’d wager the code is ~10% or less the same.

feel free to check it out GitHub - prodigalwon/pns-pallets at LeanPNS · GitHub