`r/sys/users` Mainnet v1 (mvp) & v2
For the launch (or ideally, before), we need to rewrite r/demo/users into a better version and rename it r/sys/users. This issue will outline the MVP requirements and the final vision for the system.
MVP / v1
The MVP (v1) implementation will focus on creating a simple username system with the following characteristics:
- Usernames must be unique.
- Usernames should start with three letters.
- Usernames should end with three numbers.
- Example:
moul123. - A simple anti-squatting mechanism will be implemented, such as a DAO-managed blacklist of keywords, or a better option if available.
- Users must either receive an invite or pay a fee.
- Usernames will not be transferable at this stage.
- Implementation Details: The MVP should resemble the current
r/demo/usersimplementation but with the new constraints, and the system needs to be upgradeable.## Final(?) Vision (v2) Requirements
v2
The final version (v2) will enhance the MVP with advanced features:
- Vanity Usernames: Users can register vanity usernames without the limitation of numbers. If a user already has a free username, they can retain it and add a vanity username, though several factors need consideration.
- Advanced Anti-Squatting System: We will integrate a robust anti-squatting mechanism. -> #2727
- Auction System: An auction system will be implemented in conjunction with the anti-squatting system.
- Dual Username Considerations: We need to define how to handle previous accounts, specifically whether to prevent their use.
sequenceDiagram
participant Alice
participant r/users
Alice->>r/g1234567/foo: addpkg
Alice->>r/users: RegisterV1("alice123")
Alice->>r/alice123/foo: addpkg
Alice->>r/users: RegisterV2Vanity("alice")
Alice->>r/alice/foo: addpkg
I would like to give this a shot. Could work well with the teams realm I'm writing now.
Since I'm not working on the teams realm anymore, I'll withdraw from this for now.
For V1, the part I'm wondering about is the anti-squatting system managed by a DAO. Do we already have a pkg or an example of a realm that's managed by a DAO, or would the idea be to do it all from scratch? If it's from scratch, would it be better to develop a “dao manager/maker/factory/builder” pkg first, before tackling the new r/sys/users that would need it?
I link the PR: https://github.com/gnolang/gno/pull/2963 that could be used to build the dao that manage the users realms
@MikaelVallenet
Have you started any work on this yet?
@MikaelVallenet
Have you started any work on this yet?
Hello :wave:, no i did not
Updated the OP: -> ~~Users must either receive an invite or pay a fee.~~ It may change in the future, but for now, let's assume that the enforced pattern above will be sufficient to make it permissionless.
Just to comment on the state of the issue: revamped user registry (#3166) currently implements the name pattern for V1, and allows GovDAO to grant a user a vanity name of their choice.
Auctions, and other name-taking mechanisms are up for discussion and would be implemented for V2. I'll open a new issue about this.