Erwan Hesry'nin Unsplash'daki şəkli

İlk jetonunuzu necə atacağınıza baxın

Bu, gündəlik istifadəçilərə (hə, əziz oxucusunuz) blok zənciri ilə necə əlaqə qurmağı öyrətdiyimiz bitfwd-nin təlim seriyasındakı ikinci təlimdir. Bu əvvəlkindən daha çox alət tələb edən inkişaf etmiş bir təlimdir. Bununla birlikdə, hər addımda sizi gəzdirmək üçün əlimdən gələni edəcəyəm. Gəlin başlayaq!

Mümkün qədər hərtərəfli olmaq üçün bu təlimatı çox yaxşı hazırladım. Qabaqcıl istifadəçilər üçün ixracat balanslarını necə idarə etməyi öyrədən addım 4-də işləyə bilərsiniz.

Kömək istəməyə dair qeyd

Kömək istəyəndə yalnız bir qayda var: mümkün qədər çox məlumat daxil etməyə çalışın. (Məsələn müqavilə ünvanı, terminalınızda meydana gələn səhvlər, cihaz tipiniz.) Bu şəkildə şərhlərdə irəli və geri dönmək məcburiyyətində deyilik. Teleqramımıza qoşulun və kömək istəyin. Vaxt tapan kimi cavab verəcəm.

tələblər

Moritz Neto'nun öz müqaviləsini necə quracağına dair təlimatı izləməlisiniz.

Bu gün nə öyrənəcəksiniz

  1. Komanda xəttində naviqasiyanın əsaslarını öyrənəcəksiniz.
  2. Depoların dallanması və klonlaşdırılmasının əsaslarını Github-da öyrənəcəksiniz.
  3. Nodejs-in necə qurulacağını NVM adlı bir versiya meneceri vasitəsilə öyrənəcəksiniz.
  4. Ethereum blockchain-dən hesab qalıqlarını çıxarmaq üçün Parity (geth'in Rust tətbiqi) istifadə qaydalarını öyrənəcəksiniz.
  5. Əməliyyatları kompüterinizdən lokal olaraq köçürmək üçün paritetin necə aparılacağını öyrənəcəksiniz.
  6. Hər müqaviləyə daxil olan mö'cüzə ondalık ölçüsü haqqında daha çox məlumat əldə edəcəksiniz.
  7. (Nəhayət!) Sizin üçün ayələr endirmək üçün airdropping skriptini necə hazırlayacağınızı öyrənəcəksiniz.
  8. Hər bir istifadəçinin neçə damcı atması lazım olduğunu müəyyənləşdirmək üçün öz xüsusi hava buraxma xüsusiyyətinizi necə tətbiq edəcəyinizi də öyrənəcəksiniz.

Addım I: Komanda xəttində naviqasiya.

Terminal açın və yazın:

pwd

Bu, "çap iş kataloqu" deməkdir və harada olduğunuzu göstərir. Kodunuzu saxlamaq istədiyiniz qovluq üçün bir ad seçin və qovluğu yaratmaq üçün ad daxil edin. (mkdir = qovluq yaradın, başlayın?)

mkdir "cool-folder-name-here"

İndi növbəti əmrlə qovluğa keçək.

cd "cool-folder-name-here"

Bu, "Dizini dəyişdir" deməkdir və mövcud yerinizdən yeni yaradılan qovluğa köçürəcəkdir. Yenidən pwd işlədərək bunu təsdiqləyə bilərsiniz. Bu gün öyrənəcəyiniz terminal əmrləri üçündür. Bununla birlikdə, daha çox məlumat əldə etmək istəyirsinizsə, bu səhifəni və insan səhifələrini oxuyun. Bir məşq olaraq, "ls" əmrinin nə etdiyini öyrənməyə çalışın.

Git qurduğunuzdan da əmin olun. Quraşdırma sənədlərini burada tapa bilərsiniz.

Addım II: Çəngəlləmə və Klonlama.

Artıq terminalımız hazır olduğundan kodu kompüterlərimizə köçürməliyik. Bu proses klonlaşdırma olaraq bilinir. Kodda dəyişikliklər etdiyimiz üçün kod bazasının özündən daha çox kodun bir hissəsini klonlamaq daha yaxşıdır. Çatallama, orijinal depoya təsir göstərmədən kodu dəyişdirməyə imkan verir.

Çəngəl vurmağı öyrənin ...

Github'a daxil olun və kod deposunu ziyarət edin. Sağ üst küncdə anbarı hesabınıza bağlamaq üçün vura biləcəyiniz bir düymə var.

Sorğu bitdikdən sonra öz anbarınızın öz nüsxəsinə yönəldildiyinizi görəcəksiniz (bunun bir nüsxə olduğunu deyə bilərsiniz, çünki url bitfwdcommunity əvəzinə adınız ortada)

Tıkladığınız ekranın sağ tərəfinin ortasında bir klon və ya yükləmə düyməsi var. "HTTPS istifadə edərək klon" seçdiyinizə əmin olun. Linki kopyalayın və bu əmrlə terminala yapışdırın.

Git klonu "Url-a yapışdırın"

Enter düyməsini vurduğunuzda istifadəçi adınız və sonra şifrəniz istənəcək (Github istifadəçi adınızı və şifrənizi istifadə edin). Parolları terminala daxil etdiyiniz zaman görünməyəcəyini unutmayın. İşi bitirdikdən sonra kod deposu kompüterinizə yüklənəcəkdir. İşi bitirdikdən sonra aşağıdakı əmri daxil edin:

CD airdropper

Bu sizi bu aləti istifadə etmək üçün lazım olan əmrləri işə salacağınız Airdropper anbarına aparacaq. İndi sevdiyiniz mətn redaktorunda Airdropper qovluğunu açın (ən çox sevdiyim Atomdur).

Addım III: Nodejs quraşdırın.

Bu airdropping script Nodejs-də işlədilə bilər. Node Version Manager vasitəsilə quraşdırmanızı məsləhət görürəm. Nodejs-i NVM ilə yükləməyimizin səbəbi daha davamlı inkişafa imkan verməsidir. NVM, istifadə etdiyiniz düyünün hansı versiyasına dəqiq nəzarət edir. Bu, bir çox fərqli qovşaq versiyasına bağlı layihələr üzərində işləyərkən faydalıdır.

Qurmaq üçün aşağıdakı əmrdən istifadə edin

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | Baş

Bitirdikdən sonra terminalınızı yenidən başladın. İndi nodejs quraşdıra bilərsiniz! Bunu sadə bir ilə edə bilərsiniz

nvm yüklə nodu

Addım IV: Hesab qalıqlarını ixrac edin

Böyük mö'cüzənizi başqalarına uğurla göndərməyimiz üçün əvvəlcə göndərmək istədiyimiz bütün ünvanların siyahısını almalıyıq. Bunun ən asan yolu Parity-in ixrac vəziyyəti xüsusiyyətindən istifadə etməkdir.

Etməli olduğunuz ilk şey paritet qurmaqdır.

Qurduqdan sonra bir anlıq şəkil çəkmək istədiyiniz blokla sinxronlaşdırmalısınız. Bu o deməkdir ki, 2.000.000 blokdakı bütün qalıqları çıxarmaq istəyirsinizsə, ən azı 2.000.000 blokla sinxronizasiya etməlisiniz. Arxivləşdirmə və Fat-DB rejimini aktivləşdirməlisiniz. Bunu etmək əmri:

paritet-budama = arxiv -fat-db = on -chain = ropsten

İstədiyiniz hər hansı bir zəncirdən istifadə edə bilərsiniz, lakin bu təlim üçün ipdən istifadə edəcəyik. Paritetin düzgün parametrlərə sahib olduğunu təsdiqləyən bir sıra konfiqurasiyalar göstərilir. "Dövlət DB Konfiqurasiyası" etiketli bir xətt görünür. Bunun Arxiv və Fat-DB yazılı olub olmadığını yoxlayın.

Arxiv rejimini və cəsarətli verilənlər bazasını aktivləşdirməyimizin səbəbi, bütün balans məlumatlarının saxlandığı vəziyyət üçlüyünü kəsmək istəməməyimizdir. Paritet dövləti ixrac etdikdə, dövlət cəhdi üzərində təkrarlanaraq tarazlıq yaradır. Vəziyyəti ixrac etmək istədiyiniz blokla sinxronizasiya etdikdən sonra paritet sinxronizasiyanı dayandıra bilərsiniz.

Deyək ki, ixracat balanslarımızın aşağıdakı qaydalara riayət etməsini istəyirik:

  1. 2.000.000 blokda qalıqlar istəyirik.
  2. 1000 RtETH-dən yuxarı kredit istəyirik
  3. 500.000 RtETH-dən aşağı kredit istəyirik

Bu qaydaları nəzərə alaraq aşağıdakı kodu istifadə edəcəyik:

Paritet ixrac vəziyyəti - zəncir = ropsten -yaddaş -kod-kod -min-balans = 1000 -max-balans = 500000 -at = 2000000 balans.json

Bu proses bir neçə saat çəkə bilər.

Prosesdə maksimum balans qurmağın vacib olduğunu görəcəksən, əks halda böyük tarazlığı olan bəzi istifadəçilər bütün ayələrinizi ala bilər.

V addım: Əməliyyatların ötürülməsi

Əməliyyatların Ethereum şəbəkəsinə ötürülməsi Infura kimi uzaq bir düyün və ya yerli paritet rejimi vasitəsilə iki yolla edilə bilər. Bir çox əməliyyatı köçürəcəyimiz üçün öz qovşağınızdan istifadə etmək daha yaxşıdır. Paritet nodunuzu fat-db və arxiv rejimi aktivləşdirilmiş halda sinxronlaşdırmısınızsa, sinxronizasiya sürətli rejimdən daha yavaş olacaq. Düyününüzü yenidən qurmaq və sinxronizasiyanı yenidən aktuallaşdırmaq üçün verilənlər bazasını dayandıra və aşağıdakı əmrlərlə yenidən başlada bilərsiniz.

Paritet db öldürmək-zəncir = ropsten paritet-zəncir = ropsten-budama = demək olar ki, yağ-db = söndürmə

Qalan alətləri hazırlayarkən bunun arxa plana keçməsinə icazə verin.

Addım VI: Token Ondalık Ölçüsü

Airdropper-i konfiqurasiya etməyə başlamazdan əvvəl, mö'cüzə müqaviləsindəki decimal sahəsi haqqında bir az danışacağam. Onluq sətirdə, əlamətinizin nə qədər bölünəcəyini izah edir. Bu vacibdir, çünki bütün ayələr bölünməməlidir (məsələn, bölünə bilən "tək boynuzlu at" işarəsini istəyirsiniz?). Onluqlar üçün varsayılan dəyər 18-dir. Ondalık sətir bütün jeton dəyərlərinin bunu nəzərə almasına səbəb olur (yəni əlavə 18 sıfır var).

Addım VII: Hava Damlası hazırlayın

İndi hava damcısını quraq. Əsas fayl index.js-dədir. Dəyişdirə biləcəyimiz bəzi dəyişənləri ehtiva edən 18-23 sətirlərə nəzər salaq. Hər bir istifadəçiyə 1 jeton sadə bir dəyər verərək başlayacağıq.

AIRDROP_QTY, hər bir istifadəçiyə atdığınız sabit sayda tokenə istinad edir. Varsayılan dəyər 1-dir. DURATION əməliyyat göndərmələri arasındakı zamandır. GAS_LIMIT və GAS_PRICE, əməliyyat üçün ödəməyə hazır olduğunuz müvafiq limitlər və qiymətlərdir. Bir əməliyyat başına nə qədər benzin ödəməyə hazır olduğunuzu qiymətləndirmədən əvvəl, etherscan-da nə qədər görkəmli əməliyyat olduğunu yoxlaya bilərsiniz. Varsayılan dəyərim 5gwei-dir.

Məsələn, müqavilənizdə 1 000 000 jeton varsa, INITIAL_TOKENS dəyərini 1 000 000 000 000 000 000 000 000 000 olaraq təyin etməlisiniz. (1 000 000 * 10 ^ d, burada d müqavilənizdəki onluq dəyərdir, burada 18-i borcludur).

Sonra xüsusi konfiqurasiya sənədimizi qurmalıyıq. Kök qovluğunda (index.js yanında) "config.js" adlı yeni bir fayl yaradın. Buna bənzər bir şey görünəcək ...

module.exports = {privateKey: Şəxsi açarınızı buraya qoyun. contractAddress: Müqavilə adresinizi buraya daxil edin. abi: "Müqavilənizi buraya qoyun"}

Bunun əvəzinə bir Toxum istifadə etdinizsə, privateKey sahəsini silə və onu bir Toxum sahəsi ilə əvəzləyə bilərsiniz və Təyyarə hələ də işləyəcəkdir. ABI'nizin bir nüsxəsini saxlamamısınızsa, müqaviləni remiksdə yenidən tərtib etməlisiniz və ABI'yi kopyalamalısınız (bayt kodu sahəsindədir).

İndi config.js faylı yaratdığınız və özəlləşdirilə bilən sahələri özünüzə uyğunlaşdırdığınız üçün indidən havadan ayələr çıxarmaq üçün (nəhayət!) Oraya çatmazdan əvvəl hər şeyin rəvan getməsindən əmin olmaq üçün son bir siyahıdan keçəcəyik.

Təyyarə uçuş siyahısı

  1. Tamamilə sinxronlaşdırılmış paritet nodu. (Hansı bloku icra etdiyinizi yoxlaya və eterscan ilə müqayisə edə bilərsiniz).
  2. Tokenlərlə hesabınızda kifayət qədər RtETH var. Daha çox kranımızdan əldə edə bilərsiniz. Ballpark təxmininə görə, hər biri 5 Gwei'lik 3000 əməliyyatın qiyməti təxminən 0,5 RtETH'dir (buna görə kifayət qədər olduğunuzdan əmin olun!)
  3. Hesab səhifəniz Etherscan-da açılacaq (ROPSTEN-də!) Ethereum şəbəkəsinə göndərilən gözləyən əməliyyatları görə bilərsiniz.

Hər ikiniz varsa, aşağıdakı əmrlə airdropper-i işə sala bilərsiniz.

Index.js nodu

Ssenarinin "asılmağa" başladığını və bu nöqtədə ROPSTEN Etherscan səhifəsini yeniləyə biləcəyinizi və gözləyən əməliyyatların daxil olduğunu görə bilərsiniz. Hər bir əməliyyat çıxarıldıqdan sonra əməliyyat hash və indeks məlumatları terminalınıza yazdırılır. Bir az çalışsın və bitdikdə öz-özünə bitəcək.

Burada mö'cüzə müqaviləsini axtara bilərsiniz. Ünvanı ziyarət etdikdə, Token Holder sahəsini vurub sonra bütün jetonların token paylanmasına baxa bilərsiniz. Müqaviləniz bitdikdə, ayələr ümumi RtETH balansına əsasən paylanacağını görəcəksiniz. Bütün ayələrinizin hələ də hesabınızda olduğunu görəcəksiniz (yalnız hər birini hər birinə göndərdik!).

Mərhələ VIII: Xüsusi hava damcı funksiyası

Praktikada hər kəsin yalnız bir işarəsi olmamalıdır. Bəlkə jetonları necə paylayacağınız barədə yaxşı bir fikriniz var. Məsələn, istifadəçilərin RtETH sayına görə mütənasib olaraq mükafatlandırılması lazım olduğunu düşünə bilərsiniz. Məsələn, buraxmaq istədiyiniz yalnız iki istifadəçi varsa və biri ümumi RtETH-nin 10% -ni, digəri isə RtETH-nin 90% -ni əldə edirsə, onlar ayələrin 10% -ini və 90% -nin əldə etməlidirlər. müvafiq olaraq.

Xoşbəxtlikdən bu xüsusiyyəti sizin üçün artıq tətbiq etdim. Nişanələrimizi yenidən ötürməyimizdən əvvəl müqavilələrinizi yenidən yerləşdirməli və config.js sənədinizdəki ünvanı yeniləməlisiniz. 23-cü sətirdə index.js sənədindəki INITIAL_TOKENS dəyərinin zərb etdiyiniz balansla tam uyğun olmasını təmin etməlisiniz. Bu dəyər mö'cüzə hesablama funksiyasında istifadə olunduğundan vacibdir.

Məsələn, müqavilənizdə 1 000 000 jeton varsa, INITIAL_TOKENS dəyərini 1 000 000 000 000 000 000 000 000 000 olaraq təyin etməlisiniz. (1 000 000 * 10 ^ d, burada d müqavilənizdəki onluq dəyərdir, burada 18-i borcludur).

Xüsusi airdrop xüsusiyyəti

Nişan hesablama funksiyamızı yeniləmək üçün “hesablama damlaları” funksiyasına keçək və 84-89 sətirlərini şərh edərkən 90 sətirini şərh edək. Bu funksiya cəmi və mütənasib hesab qalığını qeyd edir və bu şəxsə atılması lazım olan ayələr məbləğini qaytarır. Bunu etdikdən sonra bir dəfə də yoxlama siyahısından keçin və sonra kodu işlədməyə hazırsınız!

Artıq Token müqaviləsini Etherscan-da yenidən yoxlaya bilərsiniz və bu dəfə ayələr çox daha ədalətli olduğunu görəcəksiniz.

Olduqca paylanmış Tokenlər.

Çağırışa qədər öz marka paylama funksiyanızı yazmağa çalışın (və sonra bir PR təqdim edin. Sonra xüsusi Airdrop funksiyalarının bütün kitabxanasına sahib ola bilərik!).

Nəticə

Bu belədir! İndiyə qədər ilk müqavilənizi necə quracağınızı və ayələrinizi ədalətli paylayacağınızı öyrəndiniz. Bu təlimatda aydın olmayan bir şey var idi? Yerləşdirmə ilə bağlı suallarınız varmı? Şərhlərdə mənə bildirin!

Bu məzmunu bəyəndinizsə (və ya suallarınıza daha sürətli cavab verməyimi istərsinizsə;)), mənə bir neçə alqış verin! Hər şeylə maraqlanırsınızsa, məni Twitter-də izləyin.