-
Notifications
You must be signed in to change notification settings - Fork 37
dev: initial work on NameSystem, wrapping the underlying DHT network. #122
Conversation
f4932c9
to
303ba5e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a really crisp iteration over what has already been landed, great work! I have some general questions and a few small actionable items, but otherwise I'm happy for us to ship it.
ccc027f
to
c909031
Compare
Updated with UCAN integration, where records are authorized and set as UCAN tokens, and propagated on the network in their encoded form. Previous comments have been addressed; I'll inline the areas of interest from previous review -- |
…AN auth token representing permission to publish.
… can be stored/validated later, and enable NameSystem to evict expired records from cache.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have any feedback for changes, just some questions. This looks like really great progress, and we can land it when you are ready.
… actual usage of the name system.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work as usual 🙌
Implementation of the NameSystem propagating records through the DHT network.
NameSystem
,NameSystemBuilder
andNSRecord
all have rather robust tests and docs.NSRecord
is the struct being transmitted over the DHT. Rolling our own de/serializer due to cid's built-in serde implementation always writing to bytes. The structure is transmitted as JSON UTF-8. Flexible about details here, but is an area that will need to be "standardized" as part of the protocol. I imagine additional fields on here once we add UCAN.NameSystem
andNameSystemBuilder
APIs are flexible, but attempt to mimic DNS.Cid
andMultiaddr
are rather intrinsic to Noosphere/NS.dht
implementation, mostly clippy/lint changes.names
entry, can start this either with UCAN or CLI integration.