Name System Design Discussion #297
Replies: 1 comment
-
Perpetual Name System is critical - permalinks / names that will persist, as long there is Internet / Filecoin. Soulbound Token (SBT) could be considered for the first instance of Identity. There needs to be thought put into name reservation, moderation, is there any paywall (like ICANN / Unstoppable, etc)? Should names/domains be free for all? Is there exclusive reservation of a single name, or can people have whatever name they like, with some sort of short "zip code" identifier? How do we handle the point it becomes another domainer land rush - whoever is in first, grabs the best names? How to / should we limit? How to determine somebody's worthiness for a particular name, e.g. "Amazon", "John Smith", "ABC Computing"? These are questions we've been ruminating on for nearly a decade, with many interesting recent solutions in play, but I don't think anybody is close to cracking it. I feel the answer might be something more like a distributed bookmarking system, where autonomous democracy from the global community, augments individual freedom/choice. DataDAOs have a big role to play in this. |
Beta Was this translation helpful? Give feedback.
-
Most blockchains (really, most systems in general) end up with some form of name system because humans aren't great at dealing with binary identifiers and random hashes. Without user deployable actors, a Filecoin name system would be convenient but not critical. However, once the FVM ships, users will want to be able to name versioned code and actor instances.
This is not a proposal. Instead, I'm just going to lay out some use-cases and try to extract requirements.
Guiding Use-Cases
Debugging
A user wants to know what some actor "is". This involves resolving the actor's address into a human readable name and/or the actor's code CID into a human readable name + version.
Key features:
Method Calls
A user wants to call some actor by a convenient name. This involves (likely off-chain) looking up the actor by-name and resolving that name to an address.
Key features:
Code Deployment
A user wants to deploy some code by name, rather than hard-code a CID somewhere.
Key features:
/glif/wallet/v1
where the name itself is immutable, there's a convention on version ordering, and/glif
is owned by some other actor.Access Control
A user wants to allow actors of some specific type (or actors named/tagged by some user) to call some method on their actor. Currently, we do this by checking the caller's CID or address. Unfortunately:
Names could be used to solve this.
Key features:
/fil/miner/v1
, an actor may specify constraints: can only be called by/fil
actors, can only be called by miners (/fil/miner
), can only be called by miners between some set of versions./fil
.Non-Filecoin Resources
A user wants to name a website, a libp2p node, an IPFS resource, etc.
Key features:
/stebalien
may have an "ACCOUNT" record, a "CONTACT" record, etc./stebalien
s account may be/stebalien/_account
. However, if not implemented correctly, this can lead to some... security issues. Multiple records per name is likely a better solution.Key Takeaways/Features:
From these use-cases, we can extract a few key features:
Design Notes
Beta Was this translation helpful? Give feedback.
All reactions