Web3:n ja DApp-sovellusten kehityksen perusteet · Oppitunti

Ehdotukset ja äänestys

Governor-sopimukset.

Oppitunti 3/413 vaihetta

Ehdotukset ja äänestys on ilmainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.

Hallinnon elinkaari

Lohkoketjussa tapahtuva hallinto noudattaa selkeää elinkaarta: ehdota, äänestä, aseta jonoon, suorita.

Jokaista vaihetta hallitsee Governor-älysopimus, joka valvoo sääntöjen noudattamista automaattisesti.

Governor-sopimus

OpenZeppelinin Governor on DAO-äänestyksen vakiokehys. Se hallinnoi ehdotuksia, laskee äänet ja käynnistää suorituksen.

Se on modulaarinen: siihen liitetään ääntenlaskentastrategia, tokeni ja ajoitusparametrit.

contract MyGovernor is
    Governor,
    GovernorVotes,
    GovernorVotesQuorumFraction,
    GovernorTimelockControl
{ /* ... */ }

Ehdotuksen luominen

Ehdotus kokoaa suoritettavat toiminnot: kohdesopimukset, kutsudatan ja arvot sekä ihmisille luettavan kuvauksen.

governor.propose(
    [targetContract],   // addresses
    [0],                // ETH values
    [callData],         // encoded function calls
    "Increase reward rate to 5%"
);

Äänestysviive

Ehdotuksen luomisen jälkeen kuluu äänestysviive, ennen kuin äänestys avautuu.

Tämä antaa jäsenille aikaa tutustua ehdotukseen ja antaa tilannevedoksen lohkon vahvistua, jotta saldot pysyvät muuttumattomina.

votingDelay  = 1 block   // wait before voting
votingPeriod = 50400 blocks // ~1 week of voting

Äänten antaminen

Äänestysjakson aikana jäsenet antavat äänensä, joiden paino määräytyy heidän valtuutetun äänivaltansa perusteella tilannevedoksen lohkossa.

Vakiovaihtoehdot ovat For, Against ja Abstain.

governor.castVote(proposalId, 1);
// 0 = Against, 1 = For, 2 = Abstain

Ääntenlaskenta ja päätösvaltaisuusraja

Äänestyksen päätyttyä Governor laskee painotetut äänet. Ehdotus hyväksytään vain, jos For-ääniä on enemmän kuin Against-ääniä ja päätösvaltaisuusraja täyttyy.

Abstain-äänet lasketaan yleensä mukaan päätösvaltaisuusrajaan, mutta eivät For/Against-päätökseen.

Ehdotuksen tilat

Ehdotus etenee määritettyjen tilojen kautta:

  • Pending — odottaa äänestysviivettä
  • Active — äänestys on avoinna
  • Defeated tai Succeeded
  • Queued ja sitten Executed

Hyväksytyn ehdotuksen asettaminen jonoon

Hyväksytty ehdotus yleensä asetetaan jonoon timelockissa ennen sen suorittamista.

Tämä viive (jota käsitellään seuraavalla oppitunnilla) toimii turvapuskurina ja antaa käyttäjille aikaa reagoida ennen muutoksen voimaantuloa.

governor.queue(targets, values, calldatas, descHash);

Suoritus

Timelock-viiveen jälkeen kuka tahansa voi kutsua execute-funktiota ja suorittaa ehdotuksen toiminnot lohkoketjussa.

Governorilla tai sen timelockilla on muutosten tekemiseen tarvittavat oikeudet.

governor.execute(targets, values, calldatas, descHash);
// the approved actions now run

Gas-kustannukset ja ketjun ulkopuolinen äänestys

Lohkoketjussa äänestäminen maksaa gasia jokaisesta äänestä. Kustannusten säästämiseksi monet DAOt keskustelevat ja ilmaisevat tukensa ketjun ulkopuolella (Snapshotissa) ja vievät ketjuun vain lopulliset, sitovat toimet.

Tämä hybridimalli pitää osallistumisen edullisena ja säilyttää luottamuksettoman suorituksen.

Kokonaisuus

Governor-sopimukset vakioivat ehdota–äänestä–aseta jonoon–suorita-prosessin. Äänestysviiveet, -jaksot, päätösvaltaisuusraja ja ehdotusten tilat tekevät hallinnosta ennakoitavaa ja turvallista.

Seuraavaksi keskitymme timelockeihin eli suoritusta edeltävään turvakerrokseen.

Pikatesti

Testaa ymmärryksesi hallintoprosessista.

Kertaus: ehdotukset ja äänestys

Opit, että:

  • Hallinto etenee: ehdota, äänestä, aseta jonoon, suorita
  • Governor-sopimus valvoo sääntöjen noudattamista
  • Äänestysviive ja äänestysjakso jäsentävät aikataulun
  • Hyväksyminen edellyttää For-äänten enemmistöä ja päätösvaltaisuusrajaa
  • Ehdotukset etenevät määritettyjen tilojen kautta

Seuraavaksi: timelockit ja turvallinen suoritus.

Aloita maksutta

Opi Web3:n ja DApp-sovellusten kehityksen perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
29
Oppitunnit
105

Usein kysytyt kysymykset

Onko oppitunti ”Ehdotukset ja äänestys” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Ehdotukset ja äänestys”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ehdotukset ja äänestys”?

Governor-sopimukset. Harjoittelet Web3:n ja DApp-sovellusten kehityksen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Web3:n ja DApp-sovellusten kehityksen perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Ehdotukset ja äänestys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunnilla?

Kyllä. Jokainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä DAO on
  2. Hallintotokenit
  3. Ehdotukset ja äänestys
  4. Aikalukot ja suoritus
← Takaisin: Web3:n ja DApp-sovellusten kehityksen perusteet