Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r/sys/users Mainnet v1 (mvp) & v2 #2827

Open
moul opened this issue Sep 21, 2024 · 6 comments · May be fixed by #3166
Open

r/sys/users Mainnet v1 (mvp) & v2 #2827

moul opened this issue Sep 21, 2024 · 6 comments · May be fixed by #3166
Assignees
Labels
🧾 package/realm Tag used for new Realms or Packages.

Comments

@moul
Copy link
Member

moul commented Sep 21, 2024

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. It may change in the future, but for now, let's assume that the enforced pattern above will be sufficient to make it permissionless.
  • Usernames will not be transferable at this stage.
  • Implementation Details: The MVP should resemble the current r/demo/users implementation 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. -> Anti-squatting System for gno.land namespaces #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
Loading
@irreverentsimplicity
Copy link
Contributor

I would like to give this a shot. Could work well with the teams realm I'm writing now.

@irreverentsimplicity
Copy link
Contributor

Since I'm not working on the teams realm anymore, I'll withdraw from this for now.

@Kouteki Kouteki moved this from Triage to Backlog in 🧙‍♂️gno.land core team Oct 22, 2024
@MikaelVallenet
Copy link
Member

MikaelVallenet commented Oct 25, 2024

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: #2963 that could be used to build the dao that manage the users realms

@Kouteki Kouteki moved this from Backlog to Todo in 🧙‍♂️gno.land core team Oct 28, 2024
jeronimoalbi added a commit to gnostudio/gno that referenced this issue Nov 12, 2024
Also changed the expression to validate board names to check that the
name starts with three letters and ends with three numbers.

This has been defined this way to match `users` realm implementation.
See: gnolang#2827

In a next iteration we can support vanity names for boards, once vanity
names are supported for the `users` realm.
@leohhhn
Copy link
Contributor

leohhhn commented Nov 18, 2024

@MikaelVallenet

Have you started any work on this yet?

@MikaelVallenet
Copy link
Member

@MikaelVallenet

Have you started any work on this yet?

Hello 👋, no i did not

@leohhhn leohhhn self-assigned this Nov 19, 2024
@leohhhn leohhhn linked a pull request Nov 20, 2024 that will close this issue
6 tasks
@moul
Copy link
Member Author

moul commented Nov 20, 2024

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.

@Kouteki Kouteki added the 🧾 package/realm Tag used for new Realms or Packages. label Nov 22, 2024
@leohhhn leohhhn linked a pull request Nov 26, 2024 that will close this issue
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧾 package/realm Tag used for new Realms or Packages.
Projects
Status: Core
Status: 🎯 Current Topics
Development

Successfully merging a pull request may close this issue.

5 participants