Kuva Erwan Hesry Unsplash-kuvassa

Kuinka ohjata ensimmäinen merkki

Tämä on bitfwdin opetusohjelmasarjan toinen opetusohjelma, jossa me opetamme päivittäisille käyttäjille (kyllä! Se olet sinä, rakas lukija) kuinka olla vuorovaikutuksessa blockchainin kanssa. Tämä on edistyneempi opetusohjelma ja vaatii enemmän työkaluja kuin ennen, mutta teen parhaani käydäkseni läpi vaiheet. Aloitetaanpa!

Yrittäessään olla mahdollisimman osallistava, olen tehnyt tästä opetusohjelmasta erittäin perusteellisen. Edistyneemmille käyttäjille voit tutustua vaiheeseen 4, jossa opit käyttämään vientitaseita.

Huomautus avun kysymisestä

Pyydettäessä apua minulla on vain yksi sääntö: yritä sisällyttää mahdollisimman paljon tietoa. (Esimerkiksi sopimusosoite, päätelaitteessasi ilmenevät virheet, laitetyyppisi.) Tällä tavalla meidän ei tarvitse mennä edestakaisin kommentteihin. Liity vapaasti sähkeemme ja pyydä sinulta apua. Vastaan ​​heti, kun minulla on aikaa.

edellytykset

Sinun on noudatettava Moritz Neto -opetusohjelmaa oman sopimuksen käyttöönottamisesta.

Mitä opit tänään

  1. Opit perusteet siitä, kuinka navigoida komentorivillä.
  2. Opit perusteet kuinka haarukoida ja kloonata säilytystiloja Githubissa.
  3. Opit kuinka Nodejs asennetaan NVM-nimisen versionhallinnan kautta.
  4. Opit käyttämään Parity-sovellusta (A Rust implement of geth) tilin saldojen purkamiseen Ethereumin lohkoketjusta.
  5. Opit hallitsemaan Parityn, jotta voit lähettää tapahtumia paikallisesti tietokoneeltasi.
  6. Opit tunnuksen desimaalikoosta, joka näkyy jokaisessa sopimuksessa.
  7. Opit (viimeinkin!) Oppimaan, kuinka valmistaa vesipistokirjoitus käsikirjoituksille sinulle.
  8. Opit myös, kuinka voit toteuttaa oman mukautetun leikkaustoiminnon, jotta voit määrittää, kuinka monta merkkiä jokaiselle käyttäjälle tulee kiinnittää.

Vaihe I: Navigointi komentorivillä.

Whip avaa terminaali ja aloita kirjoittamalla:

pwd

Tämä tarkoittaa ”tulosta työhakemisto” ja kertoo, missä olet tällä hetkellä. Valitse hakemistolle nimi, johon haluat tallentaa koodisi, ja kirjoita kansio luomiseen. (mkdir = Tee hakemisto, onko kiinni?)

mkdir "viileä-kansio-nimi-täällä"

Nyt navigoidaan hakemistoon seuraavan komennon avulla.

cd "viileä-kansio-nimi-täällä"

Tämä tarkoittaa ”Vaihda hakemistoa” ja siirtää nykyisestä sijainnistasi vasta tehtyyn kansioon. Voit tarkistaa tämän ajamalla pwd uudelleen. Tämä on terminaalikomentojen laajuus, jonka opit tänään, mutta jos haluat oppia lisää, tarkista tämä resurssi ja man-sivut. Kokeile harjoituksena selvittää, mitä “ls” -komento tekee.

Varmista, että olet asentanut myös. Löydät asennustiedostot täältä.

Vaihe II: Haarukka ja kloonaus.

Nyt kun meillä on päätelaite valmis, meidän on haettava koodi tietokoneillemme. Tätä prosessia kutsutaan kloonaamiseksi. Koska saatamme tehdä muutoksia koodiin, on parempi kloonata haarukka koodista kuin itse koodiasemaan. Haarukka antaa meille mahdollisuuden tehdä muutoksia koodiin vaikuttamatta alkuperäiseen arkistoon.

Oppiminen haarukoimaan ...

Joten kirjaudu sisään Githubiin ja käy koodinvarasto. Oikeassa yläkulmassa on haarukkapainike, jota napsauttamalla voit haaristaa arkiston tiliisi.

Kun se on haastunut, huomaat, että se on ohjannut sinut omaan kopioon arkistosta (voit kertoa sen olevan kopio, koska URL-osoitteessa sen keskellä on nimesi bitfwdcommunity sijaan).

Näytön oikean yläreunan lähellä on “klooni tai lataa” -painike, jota napsautat. Varmista, että valitset ”Kloonin HTTPS: llä”. Kopioi linkki ja liitä se päätelaitteeseen tällä komennolla.

git klooni "liitä-URL-täällä"

Kun painat Enter, se kysyy käyttäjänimeäsi ja sitten salasanaasi (käytä Github-käyttäjänimeäsi ja salasanaasi). Huomaa, että salasanat eivät näy, kun kirjoitat ne päätteeseen. Kun olet valmis, se aloittaa koodinvaraston lataamisen tietokoneellesi. Kun olet valmis, kirjoita seuraava komento:

cd Airdropper

Tämä siirtää sinut Airdropper-arkistoon, jossa suoritat tämän työkalun käyttämiseen tarvittavat komennot. Avaa nyt Airdropper-kansio suosikkitekstieditoriisi (suosikkini on Atom).

Vaihe III: Nodejs -sovelluksen asentaminen.

Tämä airdropping-komentosarja suoritetaan Nodejsilla, jonka suosittelen asentamaan asettamalla läpi Node Version Manager. Syy siihen, että Nodejs asennetaan NVM: llä toisin kuin muulla tavalla, johtuu siitä, että se mahdollistaa kestävämmän kehityksen. NVM antaa sinun hallita käyttämääsi solmuversiota hienosäädöllä, mikä on hyödyllistä, jos työskentelet projekteissa, joissa riippuvuuksina on monia erilaisia ​​solmuversioita.

Asennat sen seuraavalla komennolla

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | lyödä

Käynnistä terminaali uudelleen, kun olet valmis. Nyt voit asentaa nodejs! Voit tehdä tämän yksinkertaisella

nvm-asennussolmu

Vaihe IV: Tilitaseiden vienti

Jotta voimme onnistuneesti siirtää mahtava tunnisteemme muille, meidän on ensin saatava luettelo kaikista osoitteista, joihin haluamme siirtää. Helpoin tapa saavuttaa tämä on käyttää Pariteetin vientitilatoimintoa.

Ensimmäinen asia, joka sinun on tehtävä, on pariteetin asentaminen.

Kun olet asentanut sen, sinun on synkronoitava se lohkoon, josta haluat ottaa valokuvan. Tämä tarkoittaa, että jos haluat purkaa kaikki saldot lohkossa 2 000 000, sinun on synkronoitava vähintään lohkoon 2 000 000. Huomaa, että sinun on suoritettava se arkisto- ja fat-db-tilassa. Komento, jota käytät tämän saavuttamiseen, on:

pariteetti -leikkaus = arkisto -rasva-db = päällä -ketju = ropsten

Voit käyttää mitä ketjua haluat, mutta tässä opetusohjelmassa käytämme ropstenia. Varmistaaksesi, että pariteetilla on oikeat asetukset, se aloittaa joukolla kokoonpanoja, jotka näkyvät. Siellä on rivi, joka sanoo “State DB Configuration”. Tarkista, että tämä sanoo arkisto ja fat-db.

Syy, miksi haluamme arkistointitilan ja fat-db: n olevan päällä, on se, että emme halua karsia valtio triaa, johon kaikki saldotiedot on tallennettu. Kun pariteetti vie valtion, se luo tasapainon iteroimalla yli valtion trien. Kun olet synkronoinut lohkoon, johon haluat viedä tilan, voit lopettaa pariteetin synkronoinnin.

Oletetaan, että haluamme, että viedyt saldomme noudattavat seuraavia sääntöjä:

  1. Haluamme saldot lohkosta 2 000 000.
  2. Haluamme yli 1 000 RtETH: n saldot
  3. Haluamme saldot alle 500 000 RtETH

Näiden sääntöjen perusteella käytämme seuraavaa koodia:

pariteetin vientitila - ketju = ropsten-ei-varastointi -no-koodi -min-tasapaino = 1000 -max-tasapaino = 500000 -at = 2000000 tasapainoa.json

Tämän prosessin suorittaminen voi kestää useita tunteja.

Kun teet tämän, huomaat, että on tärkeää asettaa maksimitasapaino. Muutoin muutama käyttäjä, jolla on valtavat saldot, voi lopulta saada kaikki tunnuksesi.

Vaihe V: Tapahtumien lähettäminen

Lähetystapahtumat Ethereum-verkkoon voidaan suorittaa kahdella tavalla etäsolmun, kuten Infuran tai paikallisen pariteettimoodin kautta. Koska lähetät monia tapahtumia, on parempi käyttää omaa solmuasi. Jos olet synkronoinut pariteettisolmun käyttämällä fat-db-tiedostoa ja arkistointitilassa, se synkronoituu paljon hitaammin kuin jos se olisi nopea-tilassa. Voit nollata solmun ja saada sen vääntymään takaisin viimeisimmään tilaan tappamalla tietokannan ja käynnistämällä sen sitten uudelleen seuraavien komentojen avulla.

pariteetti db kill -chain = ropsten
pariteetti -ketju = ropsteeni -prunssi = nopea -rasva-db = pois päältä

Anna tämän käydä taustalla, kun valmistelemme loput työkalut.

Vaihe VI: Token-desimaalin koko

Ennen kuin aloitamme Airdropperin määrittämisen, puhun vähän tunnusluvun desimaalikentistä. Desimaalikentät kuvaavat periaatteessa kuinka jaettavissa merkki on. Syy tähän on tärkeä, koska kaikkien tokenien ei pitäisi olla jaettavissa (esim. Haluatko jaettavan ”yksisarvisen” tokenin?). Desimaalien oletusarvo on 18. Desimaalikentän vaikutus on, että kaikkien merkkien arvojen on otettava tämä huomioon (ts. Niillä on oltava ylimääräiset 18 nollaa).

Vaihe VII: Airdropperin valmistelu

Perustetaan ilmapuhallin nyt. Päätiedosto on hakemistossa index.js. Katsotaanpa rivejä 18–23, jotka sisältävät muutamia muuttujia, joita voimme muokata. Aloitamme tekemällä kullekin käyttäjälle aivan perustiedot 1 merkin.

AIRDROP_QTY tarkoittaa kiinteää määrää merkkejä, jotka olet pudottamassa kullekin käyttäjälle. Oletusarvoksi asetetaan 1.
KESTO on aika tapahtumien lähettämisen välillä.
GAS_LIMIT ja GAS_PRICE ovat vastaavat rajoitukset ja hinnat, jotka olet valmis maksamaan transaktiostasi. Voit tarkistaa, kuinka monta vireillä olevaa liiketoimintaa on etherscanilla, ennen kuin arvioit, kuinka paljon kaasua olet valmis maksamaan tapahtumaa kohden. Oletusarvo, jonka olen jättänyt sille, on 5gwei.

Esimerkiksi, jos sopimuksessasi on 1 000 000 merkkiä, sinun on asetettava INITIAL_TOKENS-arvoksi 1 000 000 000 000 000 000 000 000. (1 000 000 * 10 ^ d, missä d on sopimuksesi desimaalin arvot) , 18 on oletusarvo).

Seuraavaksi meidän on määritettävä mukautettu konfiguraatiotiedostomme. Tee uusi tiedosto juurihakemistoon (index.js vieressä) nimeltään “config.js”. Se näyttää noin:

module.exports = {
    privateKey: 'laita-oma-yksityinen-avaimesi-täällä',
    sopimusosoite: 'laita-oma-käyttöösi-sopimus-osoite-täällä',
    abi: 'laita-oma-käyttöön-sopimus-abi-täällä'
}

Jos käytit siementä sen sijaan, voit poistaa privateKey-kentän ja korvata sen siemenkentällä. Airdropper toimii edelleen. Jos et pitänyt kopiota ABI-tiedostostasi, sinun on käännettävä sopimus uudelleen sekoitettuna ja kopioitava ABI (se on tavukoodikentän alla).

Kun olet luonut config.js-tiedoston ja suorittanut muokattavien kenttien mukauttamisen, voit nyt siirtää tokeneja (viimeinkin!). Juuri ennen kuin pääsemme siihen, käymme läpi viimeisen tarkistusluettelon varmistaaksemme, että kaikki sujuu ...

Ilmavirran tarkistuslista

  1. Täysin synkronoitu pariteettisolmu. (Voit tarkistaa, mihin lohkoon sinulla on, ja verrata sitä etherscaniin).
  2. Tarpeeksi RtETH-arvoa tililläsi rahakkeilla. Voit hankkia enemmän hanastamme. Ballpark-arvion mukaan 3000 tapahtumaa 5gweillä kullakin maksaa noin 0,5 RtETH (joten varmista, että sinulla on tarpeeksi!)
  3. Tilisi sivusi avataan etherscanissa (ropsten!), Joten näet odotettavissa olevat tapahtumat, jotka lähetetään ethereum-verkkoon.

Jos sinulla on molemmat näistä asioista, olet valmis suorittamaan Airdropper seuraavalla komennolla.

node index.js

Huomaat, että komentosarja alkaa "roikkua", ja tässä vaiheessa voit päivittää ropsten etherscan -sivun ja alkaa nähdä odottavat transaktiot. Kun jokainen tapahtuma louhitaan, tapahtuman tiiviste ja hakemistotiedot tulostetaan. terminaaliin. Anna sen käydä vähän ja kun se loppuu, se loppuu itsestään.

Voit etsiä merkki-sopimuksen täältä. Kun vierailet osoitteessa, voit napsauttaa Token Holders -kenttää ja nähdä sitten kaikkien tokenien tokenijakauma. Kun sopimuksesi on valmis, huomaat, että rahakkeet on jaettu kokonaisen RtETH-saldon perusteella. Huomaat, että kaikki tunnuksesi ovat edelleen tililläsi (koska lähetimme vain yhden jokaiselle kaikille!)

Vaihe VIII: Mukautettu airdrop-toiminto

Käytännössä et halua vain, että kaikilla on yksi merkki. Ehkä sinulla on hieno idea siitä, kuinka rahakkeet tulisi jakaa. Ehkä esimerkiksi luulet, että käyttäjille tulisi palkita rahakkeita suhteellisesti heidän käyttämänsä RtETH-määrän perusteella. Esimerkiksi, jos haluat käyttää vain kahta käyttäjää, joille yksi haluaa 10% RtETH: n kokonaismäärästä ja toinen omistaa 90% RtETH: sta, heidän tulee saada 10% merkkeistä ja 90% tunnuksista, vastaavasti.

Onneksi sinulle, olen jo ottanut tämän toiminnon käyttöön sinulle. Nyt, ennen kuin voimme tutkia tokeneidemme uudelleen, joudut siirtämään sopimuksesi uudelleen ja päivittämään osoitteen config.js-tiedostossasi. Sinun on myös varmistettava, että rivillä 23 olevan index.js-tiedoston INITIAL_TOKENS-arvo vastaa tarkkaa tasapainoa, jonka olet lyönyt. Tämä on tärkeää, koska tätä arvoa käytetään merkkilaskentatoiminnossa.

Esimerkiksi, jos sopimuksessasi on 1 000 000 merkkiä, sinun on asetettava INITIAL_TOKENS-arvoksi 1 000 000 000 000 000 000 000 000. (1 000 000 * 10 ^ d, missä d on sopimuksesi desimaalin arvot) , 18 on oletusarvo).

Mukautettu airdrop-toiminto

Päivittääksesi merkkilaskentatoiminnomme, siirrymme toimintoon nimeltä "conversionDrop" ja kommentoimme riviä 90 kommentoimatta riviä 84–89. Tämä toiminto ottaa tässä kokonaistasapainon ja verrannollisen tasapainon ja palauttaa määrän rahakkeita, jotka tarvitaan lentääkseen tälle henkilölle. Kun olet tehnyt tämän, käy läpi tarkistuslista uudelleen ja sitten voit suorittaa koodin!

Nyt voit tarkistaa tokenisopimuksesi Etherscanista uudelleen, ja tällä kertaa huomaat, että kuvakkeet ovat paljon tasapuolisempia.

Melko jaetut merkit.

Jos olet valmiina haasteeseen, yritä kirjoittaa oma token -jakelutoiminto (ja lähetä sitten PR ja sitten meillä voi olla koko kirjasto mukautettuja airdrop-toimintoja!);)

johtopäätös

No, siinä kaikki! Tähän mennessä olet oppinut käyttämään ensimmäistä sopimustasi JA jakelemaan sen merkit oikeudenmukaisella tavalla. Oliko tässä opetusohjelmassa jotain epäselvää? Onko sinulla kysymyksiä sen käyttöönotosta? Kerro siitä kommentteissa!

Jos pidit tästä sisällöstä (tai haluat, että vastaan ​​kysymyksiisi nopeammin;)), anna minulle joitain näppylöitä! Jos olet kiinnostunut kaikista lohkoketjuista, seuraa minua viserrys.