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

Improve r/gnoland/valopers to onboard new validators #3567

Open
moul opened this issue Jan 20, 2025 · 7 comments · May be fixed by #3830
Open

Improve r/gnoland/valopers to onboard new validators #3567

moul opened this issue Jan 20, 2025 · 7 comments · May be fixed by #3830
Assignees
Labels
🧾 package/realm Tag used for new Realms or Packages.

Comments

@moul
Copy link
Member

moul commented Jan 20, 2025

The current version of the validator registration contract can be found here. We need to make a few changes, starting with removing the dependency on r/sys/validators. This contract should not be directly tied to the r/sys contracts; it is intended for validator operators to self-register, similar to a "call for papers." Later, a separate external contract (a glue contract) will interact with both this contract and r/sys/validators to propose templated changes to GovDAO. We can also remove the /v2 suffix since we are eliminating the dependency on r/sys/validators.

The contract should focus on allowing validators to register and update parameters as needed. It may optionally link with r/demo/profile and should include a list of questions inspired by the recent Atom One launch, using their GitHub or Google Forms as a reference. The contract should display a list of current proposals, along with a brief introductory text and a link to a page that can be easily updated—either a README or a meta issue, as the explanations will need to be refined.

cc @sw360cab @albttx @zivkovicmilos

@VT-Cosmos
Copy link

Here are the reference to two initiatives for collecting validators details on two initiatives, GovGen validators and AiB ATONE Delegation Program.

https://github.com/atomone-hub/govgen-validators
https://github.com/allinbits/AiB-ATONE-Delegation-Program

@albttx
Copy link
Member

albttx commented Jan 21, 2025

Why does a "glue" contract is needed ? Can't just a gno script do the trick ?

Also, why not just add a link in the Valoper struct to a r/demo/profile ?


On another topic, on the Update function, i don't understand why there is no security checking if it's the validator that self-update his informations (with std.PrevRealm / std.GetOrigCaller) ?

I'm probably missing something

@moul moul added this to the 🚀 Mainnet beta launch milestone Jan 21, 2025
@Kouteki Kouteki moved this from Triage to Todo in 🧙‍♂️gno.land core team Jan 21, 2025
@Kouteki Kouteki added in focus 🧾 package/realm Tag used for new Realms or Packages. labels Jan 21, 2025
@moul
Copy link
Member Author

moul commented Jan 21, 2025

Glue contracts offer better auditability. While a Gno script could accomplish the task, I prefer to release my recurring script needs as contracts, which could be called "templated actions contracts." I will reserve my more private and unique scripting needs for Gno scripts.

@costinberty
Copy link

We confirm we can work on it at Berty. We'll be back with updates shortly.

@Kouteki Kouteki assigned jefft0 and D4ryl00 and unassigned jefft0 Jan 23, 2025
@D4ryl00
Copy link
Contributor

D4ryl00 commented Jan 27, 2025

Just to be sure what Manfred wants, I want to reformulate.

This PR should do 2 main things:

  1. Refactor r/gnoland/valopers to remove the r/sys/validators, so removing r/gnoland/valopers.GovDAOProposal(). Validators continue to call r/gnoland/valopers.Register() or r/gnoland/valopers.Update() to update the r/gnoland/valopers.validator's set.
  2. Create a new real that will automatically update r/sys/validators with the content of r/gnoland/valopers.validator by proposing changes to GovDAO. So this real should do what r/gnoland/valopers.GovDAOProposal() did.

Other small things to do:

  • remove v2 suffix
  • optionally link with r/demo/profile
  • add a list of questions inspired by the recent Atom One launch. I would appreciate it if someone could be more precise on these questions (or links).

Does that sound correct?
Thank you.

@Kouteki Kouteki removed the in focus label Feb 3, 2025
@Kouteki
Copy link
Contributor

Kouteki commented Feb 13, 2025

@D4ryl00

Refactor r/gnoland/valopers to remove the r/sys/validators, so removing r/gnoland/valopers.GovDAOProposal(). Validators continue to call r/gnoland/valopers.Register() or r/gnoland/valopers.Update() to update the r/gnoland/valopers.validator set.

We want to remove r/sys/validators dependency. We want to call r/gnoland/valopers.Register() or r/gnoland/valopers.Update(). But we don't want to manage the active validator set from here. Think of it as a directory of all possible validators; they will register and update a listing in the directory, but only some will be active validators.

Create a new realm that will automatically update r/sys/validators with the content of r/gnoland/valopers.validator by proposing changes to GovDAO. So this real should do what r/gnoland/valopers.GovDAOProposal() did.

Yes. This new realm will serve as a proxy between r/gnoland/valopers (the directory) and r/sys/validators (the realm controlling the validator set). Please note that GovDAO is changing from v2 to v3, which will require changes to the new realm you're creating. You should make it upgradeable.

Other small things to do:

  • remove v2 suffix
  • optionally link with r/demo/profile
  • add a list of questions inspired by the recent Atom One launch. I would appreciate it if someone could be more precise on these questions (or links).

I will supply you with the list of questions and links.

@michelleellen
Copy link
Contributor

If this is helpful, I confirmed my understanding of the contract setup.

  • Valoper Contract: This contract serves as an external registration system and a "call to paper" submission mechanism for valopers (either validator-only or contributor validators). It enables the public listing of validators along with their profiles.

  • Glue Contract: This contract acts as the intermediary between the valoper registration contract and the r/sys/validators contract. If GovDAO proposes a change to a valoper's registration status, this contract ensures that the modifications are reflected in the r/sys/validators contract.

  • r/sys/validators: This is the GovDAO validator operating system for gno.land. Validators added here, are ones that are approved by GovDAO.

Suggested questions to be discussed for validator registration to the valoper contract:

  • Validator name
  • What networks are you currently validating?
  • Validator digital presence
    website
    social links
    contact details
  • Assets under management
  • Why are you interested in validating on gno.land?
  • What contributions have you made to gno.land? Or what contributions are you willing to make to gno.land?

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
Development

Successfully merging a pull request may close this issue.

8 participants