Kaip žingsnis po žingsnio kurti keičiamo mastelio taikomąsias programas ir išmaniąsias sutartis „Ethereum“ su valstijos kanalais. 1 dalis

Yra daugybė skirtingų sprendimų, kaip sukurti tūkstančius ar net milijonus realiojo laiko vartotojų, pavyzdžiui, plazmos ir valstybinius kanalus. Šiame vadove žingsnis po žingsnio sužinosite, kaip veikia valstybiniai kanalai ir kaip šiuo metu „Ethereum“ sukurti keičiamo dydžio programas.

Jums nereikia laukti būsimų „blockchain“ patobulinimų. Čia liko technologija, kurią galite naudoti kurdami visų rūšių dApp. Šiuo metu valstybiniai kanalai dažniausiai naudojami „blockchain“ pagrindu sukurtiems žaidimams „Ethereum“.

Pagalvokite apie azartinius žaidimus kriptovaliutomis. Yra būdų užšifruoti informaciją, kad ji vėliau būtų atskleista, o tai yra pagrindinis šios sistemos punktas.

Kas yra valstybiniai kanalai?

Tai yra mastelio sprendimas, skirtas sukurti decentralizuotas programas ir išmaniąsias sutartis, kuriomis milijonai vartotojų gali naudotis beveik realiuoju laiku. Jie dirba inicijuodami kanalą tarp 2 ar daugiau vartotojų, kuriame jie keičiasi užšifruotais, pasirašytais pranešimais su informacija apie operaciją, kurią jie nori vykdyti.

Jie vadinami „būsena“, nes kiekviena sąveika turi turėti būseną, kurią galima atnaujinti. Pagalvokite apie žaidimo rezultatą ar banko sąskaitos likutį.

Kodėl jie egzistuoja?

Valstybiniai kanalai buvo sukurti todėl, kad „ethereum“ programos greitai išpopuliarėjo, todėl „blockchain“ tapo nenaudotinos, nes buvo sukurtos saikingai. Jie leidžia vykdyti nuolatines operacijas nemokant už dujas ar laukiant, kol kalnakasiai apdoros operacijas.

Tai reiškia nemokamas ir greitas operacijas.

Ko mums reikia norint įsteigti valstybinį kanalą?

  1. Bent 2 vartotojai, kurie bendraus tarpusavyje. Kanalas turi būti atidarytas tarp 2 ar daugiau vartotojų. Panašus į pokalbių programą.
  2. Protinga sutartis su valstybinio kanalo logika, kuri ją atvers ir uždarys.
  3. Jei žaidime bus naudojamas valstybinis kanalas, abiem vartotojams reikės sąlyginio deponavimo. Sąlyginis eterio kaupimas bus saugomas sumaniojoje sutartyje atidarant kanalą.
  4. „Javascript“ programa, kuri sugeneruos pasirašytus pranešimus, kuriais vartotojai pasikeis be grandinės.
  5. Metamask ar panašus įrankis pranešimams pasirašyti. Pasirašyti pranešimai nekainuoja dujų ir yra vykdomi akimirksniu. Abiejų vartotojų reikalaujama pasirašyti žinutes, kad būtų užtikrinta, jog tokią operaciją sukuria būtent jie.
  6. Siųsti el. Laišką ar bet kokią išorinę programą, kad galėtumėte keistis pasirašytais pranešimais, kad ta programa būtų įmanoma.

Kaip jie veikia?

Valstybinio kanalo nustatymas yra šiek tiek sudėtingas, nes jūs turite įsitikinti, kad abu žaidėjai yra apsaugoti, jei kas nors nepavyks, todėl mums reikia intelektualios sutarties. Tai yra šie žingsniai:

  1. Valstybiniame kanale tarp 2 vartotojų pirmasis įdiegia intelektualiąją sutartį, kuri „atidarys“ kanalą.
  2. Antrasis vykdo intelektualiosios sutarties funkciją „prisijungti“ prie to valstybinio kanalo “.
  3. Tada jie gali pradėti keistis pasirašytais programos pranešimais. Abu vartotojai turi prieigą prie pasirinktos „javascript“ programos, kad galėtų generuoti pranešimus su informacija, kurią jie darytų pagal intelektinę sutartį, bet ne pagal grandinę.
  4. Operacijų greitis priklauso nuo to, kiek greitai kiekvienas vartotojas gali sukurti ir pasirašyti tuos pranešimus. Jie nuolat keičiasi žinutėmis, žaidžia tinkle, kol nusprendžia, kad žaidimas baigėsi.
  5. Baigęs žaidimą, bet kuris iš jų gali eiti į intelektualųjį kontraktą ir atlikti jo užbaigimo funkciją, kuri pradės „derybų“ etapą.
  6. Šiame etape abu vartotojai turi 1 dienos pertrauką, kad galėtų įkelti naujausias 2 žinutes, kurias jie turi į intelektinę sutartį. Protinga sutartis tikrina naujausius pranešimus ir, remdamasi ta informacija, išleidžia lėšas žaidimui baigti. Kiekviename pranešime yra ankstesnių sąveikų rezultatai, todėl saugu tik patikrinti naujausius pranešimus.

Kaip galite tai pritaikyti realioje situacijoje?

Šiame vadove aš jums parodysiu, kaip sukurti valstybinį kanalą tarp 2 vartotojų „Ethereum“ žaidimui. Atminkite, kad būsenos kanalus galima naudoti bet kokiai programai, turinčiai „būseną“ arba skaitiklį. Štai kodėl žaidimai yra idealūs. Kadangi galite sekti, kas laimi kiekvieną žaidimą, kiekvieno žaidimo būsena gali būti atnaujinta.

Mes sukursime kauliukų žaidimą, kuriame 1 žaidėjas pasirenka išmesto kauliuko skaičių, o 2 žaidėjas turi atspėti tą skaičių, kad laimėtų. Jie galės žaisti tiek žaidimų, kiek nori, nevykdydami operacijų „blockchain“. Taip pat turėsime žiniatinklio programą, skirtą parodyti sąsają.

Tai yra rodyklė, kurios laikysimės kurdami tokią decentralizuotą programą:

  1. Vizualinės žiniatinklio programos kūrimas. Tai yra sąsaja, kaip žaidimas atrodys išoriniams vartotojams. Jis bus naudojamas kaip terpė keistis pasirašytais pranešimais valstybiniams kanalams.
  2. Funkcijų, reikalingų pranešimams pasirašyti ir užšifruoti, sukūrimas.
  3. Sumanios sutarties sudarymas.

1. Vizualinės žiniatinklio programos sukūrimas

Prieš pradėdamas nuo kodo noriu įsitikinti, kad išsiaiškinome visą žiniatinklio programos informaciją. Kaip tai atrodys, į ką atkreipiamas dėmesys.

Šiuo atveju norime parodyti panašius dalykus abiems žaidėjams. 1 žaidėjas matys šešis kauliukų veidus kaip paveikslėlius ir turės pasirinkti, kuris iš jų pasirodys, tada antrasis žaidėjas taip pat turės pasirinkti tarp tų veidų ir jis matys rezultatą.

Taigi sistema bus kažkas tokio:

  1. 1 žaidėjas eina į žiniatinklio programą, paspaudžia mygtuką, kuriame sakoma „Pradėti naują žaidimą“, tada jis atlieka metamaskos operaciją, norėdamas įdiegti ir sudaryti intelektualiąją sutartį. Jis gauna intelektualųjį sutarties adresą, kurį gali nusiųsti kitam žaidėjui pradėti žaidimą.
  2. 2 žaidėjas eina į žiniatinklio programą, paspaudžia mygtuką, kuriame sakoma „Prisijunk prie esamo žaidimo“ su sutarties adresu, gautu iš 1 žaidėjo, tada jis atlieka metamaskos operaciją, kad nustatytų jau esantį žaidimą, ir siunčia sąlyginio deponavimo sąskaitą.

Taigi pradėkime ten pat. Sukurkime langelį žiniatinklio programos viduryje su 2 mygtukais. Sukurkite aplanką, vadinamą kauliuku, ir failą, pavadintą index.html. Štai kodas:

Štai kaip numatytai atrodo 2 mygtukai


    
        
         Dice ethereum žaidimas 
    
    
        
             Pradėti naują žaidimą                      
    

Tame kode aš tiesiog sukūriau pagrindinę HTML struktūrą su div, kuriame yra mygtukai ir pavadinimas. Atminkite, kad div skyriuje yra klasė, vadinama pagrindiniu turiniu, kurią akimirksniu naudosime.

Padarykime tai gražiau kartu su css. Sukurkite failą, pavadintą index.css, naudodami šį kodą (galite jį nukopijuoti ir įklijuoti):

Štai kaip tai atrodys
kūnas {
    šriftų šeima: sans-serif;
}
.Pagrindinis turinys {
    paraštė: auto;
    maksimalus plotis: 500 pikselių;
    fono spalva: balta spalva;
    paminkštinimas: 50px;
    kraštinės spindulys: 10 taškų;
    ekranas: tinklelis;
    tinklelio-šablono eilutės: 1fr 1fr;
    tinklelio, šablono, stulpeliai: 1fr 1fr;
    tinklelio-stulpelio tarpas: 10 taškų;
}
.main-content h1 {
    tinklelio stulpelis: 1 / tarpa 2;
}
.main-content mygtukas {
    kraštas: nėra;
    spalva: balta;
    fono spalva: # 007dff;
    paminkštinimas: 20 taškų;
    kraštinės spindulys: 5 taškai;
    žymeklis: rodyklė;
}
.main-content mygtukas: užveskite pelės žymeklį {
    neskaidrumas: 0,8;
}
.main-content mygtukas: aktyvus {
    neskaidrumas: 0,6;
}

Į HTML pridėjau h1 pavadinimą, kad jis atrodytų geriau, būtinai atnaujinkite html, pridėdami nuorodą į CSS:



    
        
        
         Dice ethereum žaidimas 
    
    
        
            

Ethereum Dice

             Pradėti naują žaidimą                      
    

Turbūt pastebėjote, kad naudoju naują CSS tinklelį. Taip yra todėl, kad jis dažniausiai prieinamas didelėms naršyklėms, todėl šiuo metu jį naudoti yra gana saugu, nes dauguma žmonių tinkamai matys css.

Nusprendžiau, kad geriausias būdas parodyti kitą iš vartotojo reikalaujamą veiksmą - parodyti „div“ versiją „javascript“ su reikalinga informacija. Taigi, kai jis spustelės „Pradėti naują žaidimą“, jis pamatys langelį, kuriame bus klausiama, kiek depozitoriumo jis nori skirti žaidimui.

Spustelėjęs „Prisijunkite prie esamo žaidimo“, jo paprašys pateikti esamo žaidimo sąlyginio deponavimo ir sutarties adresą.

Štai kaip sureaguos mygtuko veiksmai:

Kaip programa atrodo naudojant paprastą „JavaScript“

Kad tai būtų įmanoma, aš sukūriau failą index.js, kuriame yra javascript logika. Štai „javascript“, būtinai įveskite jį rankomis, jei norite sužinoti geriau:

Leiskite man paaiškinti, ką aš ten padariau:

  • Pirmiausia sukūriau funkciją, vadinamą start (), kuri bus nedelsiant paleista, kad įvyniotų turinį, kad jis būtų gražus ir būtų vienoje didelėje funkcijoje.
  • Tada sukūriau 2 įvykių klausytojus, kurie suaktyvinami kiekvieną kartą spustelėjus html failo pradžios arba prisijungimo mygtukus. Vienas skirtas # naujo žaidimo mygtukui, kitas - # prisijungimo žaidimo mygtukui. Aš naudoju „document.querySelector“ (), kuris yra vienas galingiausių būdų, kaip bet ką pasirinkti jūsų „js“ kode.
  • Šiuose klausytojuose aš parodau arba paslepiu kiekvieno atitinkamo elemento „div“ langelį. Iš esmės pažymėkite „querySelector“ dėžutę ir pašalinkite arba pridėkite paslėptą klasę, kuri yra nustatyta CSS, kad būtų rodoma: nėra; .

Tada mes galime sujungti js failą su mūsų modifie index.html:



    
        
        
         Dice ethereum žaidimas 
    
    
        
            

Ethereum Dice

             Pradėti naują žaidimą              prisijungti prie esamo žaidimo
            
                

Kiek depozitoriumo naudosite ETH?

                             
            
                

Koks yra intelektualaus esamo žaidimo sutarties adresas?

                             
             Tęsti 
        
         
    

Aš paryškinau naujus pridėtus kodo fragmentus. Toliau pateikiamas atnaujintas CSS, kad būtų galima formuoti naują informaciją:

kūnas {
    šriftų šeima: sans-serif;
}
.slėptas {
    ekranas: nėra;
}
.Pagrindinis turinys {
    paraštė: auto;
    maksimalus plotis: 500 pikselių;
    fono spalva: balta spalva;
    paminkštinimas: 50px;
    kraštinės spindulys: 10 taškų;
    ekranas: tinklelis;
    tinklelio, šablono, eilutės: 1fr 80 pikselių automatinis;
    tinklelio, šablono, stulpeliai: 1fr 1fr;
    tinklelio-stulpelio tarpas: 10 taškų;
}
.main-content h1 {
    tinklelio stulpelis: 1 / tarpa 2;
}
.main-content mygtukas {
    kraštas: nėra;
    spalva: balta;
    fono spalva: # 007dff;
    paminkštinimas: 20 taškų;
    kraštinės spindulys: 5 taškai;
    žymeklis: rodyklė;
}
.main-content mygtukas: užveskite pelės žymeklį {
    neskaidrumas: 0,8;
}
.main-content mygtukas: aktyvus {
    neskaidrumas: 0,6;
}
.main-content mygtukas: neleidžiama {
    neskaidrumas: 0,5;
    fono spalva: pilka;
    žymeklis: automatinis;
}
.main-content input {
    plotis: 100%;
    kraštinės spindulys: 10 taškų;
    paminkštinimas: 10 taškų;
    kraštinė: 1px kietas šviesiai pilkas;
}
.main-content div.new-game-setup, .main-content div.join-game-setup {
    tinklelio stulpelis: 1 / tarpa 2;
}
# mygtukas - tęsti {
    tinklelio stulpelis: 1 / tarpa 2;
    „margin-top“: 20 taškų;
}

Šiuo metu mygtukas „Tęsti“ nieko nedaro, todėl sukurkime šią funkciją, norėdami įdiegti naują intelektualųjį kontraktą ir atidaryti valstybinį kanalą, kai vartotojas nori sukurti naują žaidimą kitame skyriuje.

2. Pradinės intelektinės sutarties sudarymas ir prijungimas

Laikas sukurti pagrindinę intelektualiosios sutarties versiją ir susieti ją su „javascript“ naudojant web3.js. Kol kas mums reikia tik konstruktoriaus ir šiek tiek pagrindinės informacijos. Užrašykite šį kodą savo rankomis į naują failą pavadinimu Dice.sol:

pragmos tvirtumas 0.4.25;
sutarties kauliukas {
    adresuoti viešą žaidėją1;
    adresas visuomenės žaidėjas2;
    uint256 public player1Escrow;
    uint256 public player2Escrow;
    statytojas () valstybės mokamas {
        reikalauti (msg.value> 0);
        grotuvas1 = msg.sender;
        player1Escrow = msg.value;
    }
    funkcija setupPlayer2 () viešai mokama {
        reikalauti (msg.value> 0);
        player2 = msg.sender;
        player2Escrow = msg.value;
    }
}

Yra 2 funkcijos: konstruktorius, nustatantis pirmojo grotuvo adresą ir sąlyginio deponavimo funkciją, ir funkcija setupPlayer2 (), skirta antrojo grotuvo informacijai nustatyti.

Norime įdiegti sutartį ir vykdyti konstruktorių su nurodyta msg.value teise, kai vartotojas paspaudžia mygtuką „Tęsti“. Norėdami tai padaryti, savo intelektualiojoje sutartyje turėsime įdiegti web3.js. Kadangi tai yra pagrindinis būdas susisiekti su „blockchain“ naršyklėje.

Iš programos aplanko gaukite „web3.js“ iš čia: https://github.com/ethereum/web3.js/blob/develop/dist/web3.js, kuris yra oficialus atnaujinimo paskirstymo kodas.

Norėdami atsisiųsti jį savo projektui, eikite į tą nuorodą, spustelėkite neapdorotą, kad pamatytumėte visą kodą, ir nukopijuokite kodą, kad įklijuotumėte jį į naują failą, vadinamą web3.js, savo projekto aplanke:

Atidarykite puslapį, spustelėkite „neapdorotas“, pažymėkite visus naudodami „Ctrl +“ “, nukopijuokite kodą ir įklijuokite jį į naują savo projekto failą, vadinamą web3.js

Tai tikrai nereikia daryti, jei naudojate metamaską, nes metamaskas įveda jums web3.js versiją, tačiau naudinga, jei jūsų projekte yra „web3“ biblioteka, kad galėtų sąveikauti su „blockchain“, jei metamaskos nėra.

Mes naudojame metamaską, kad kalbėtume su „blockchain“. Tačiau neveikia, kai naršyklėje atidarote failą index.html, nes metamaskas nepalaiko failo: // plėtinio.

Tada mums reikia paleisti vietinį serverį, kuris failus pateiks į URL adresą http: // localhost: 8080, nes metamask neveikia atidarius failą index.html tiesiogiai. Norėdami tai padaryti, atidarykite terminalą ir įdiekite:

npm i -g http-serveris

Tada projekto aplanke vykdykite http-serverį, kad paleistumėte vietinį savo index.html serverį:

„http-server“

Tai tarnaus „localhost: 8080“ failams, kad galėtumėte prieiti prie jų ir įvesti Web3 iš metamasko.

Nepaisant to, galime sutelkti dėmesį į sutarties, kurią ką tik sukūrėme iš savo žiniatinklio programos, diegimą iškart, kai vartotojas spustelėja „Tęsti“.

Norėdami įdiegti naują sutartį, mums reikia ABI, konstruktoriaus parametrų ir baito kodo. Tai yra reikalavimai web3.js.

  1. Norėdami sugeneruoti ABI, eikite į remix.ethereum.org, įklijuokite kodą pagrindinėje skiltyje ir spustelėkite ABI:

Tai nukopijuos ABI kodą. Eikite į savo projekto aplanką ir sukurkite failą pavadinimu sutartisData.js, kad ten įklijuotumėte kodą su kintamuoju, vadinamu abi kaip:

2. Dabar mums reikalingas jūsų intelektualiosios sutarties baitas. Baitinis kodas yra sudaryta išmanioji sutartis, kuri bus įdiegta į „blockchain“. Mums reikalinga ta informacija, kad galėtume ją įdiegti. Norėdami gauti baitinį kodą, teko vėl remiksuoti ir spustelėti šį mygtuką:

Tavo kodo kopijavimo mygtukas

Ir sukurkite dar vieną kintamąjį sutartyje „DATA.js“, vadinamą baitiniu kodu, su tokia informacija kaip:

Galite nukopijuoti tą patį kodą, jei jūsų intelektualioji sutartis yra tiksliai tokia, kokią aš sukūriau aukščiau.

Importuokite šį „javascript“ failą į savo html prieš „index.js“ failą, kad būtų prieinami abi ir baitų kodų kintamieji:

 
 

Prieš sudarydami sutartį su „javascript“, turime pridėti įvykio klausytoją prie tęsti mygtuką skyriuje „Pradėti naują žaidimą“:

Ką aš ten padariau:

  • Prie įėjimų pridėjau ID ID, kai vartotojo paklausiama, kiek eterio jis nori įnešti į depozitinę sąskaitą, ir sutarties adresą, jei jis prisijungia prie esamo žaidimo.
  • Tada aš pridėjau „javascript import virš index.js, nes mes norime, kad abi ir baitų kodai būtų prieinami index.js viduje, nes jis pirmiausia turi būti importuotas.

Tada pridedame reikiamą logiką, kad tas mygtukas veiktų. Mes patikrinsime, ar HTML adresas įvestas sutarties adresas yra tuščias.

Jei jis nėra tuščias, laikysime, kad žaidėjas pradeda naują žaidimą, kuris įdomiai leidžia jums pradėti žaidimą naudojant prisijungimo mygtuką, jei paliekate adresą tuščią.

Prieš parodant jums visą kodą, norėčiau jums paaiškinti, kaip diegti sutartį naudojant web3.js. Atrodo paprasta, bet aš įstrigiau kai kuriose srityse.

Taigi kai vartotojas spustelėja „Pradėti naują žaidimą“, jis mums pateikia sąlyginio užstato sumą eteryje ir jo adresą, mes galime įdiegti naują sutartį su šia funkcija:

Iš esmės jūs sukuriate sutarties egzempliorių su abi ir vykdote metodą .new () tai sutarčiai su baitu.

Tada, skambindami, gausite klaidą (jei yra) ir rezultatą. Rezultato objekte bus sutarties adresas, dislokuotas, kai sandorį apdoros kalnakasiai.

Tai reiškia, kad šis atšaukimas bus vykdomas 2 kartus. Viena, kai vykdote sutarties sudarymą, ir kita, kai galimas tos sutarties adresas.

Galite patikrinti, kada yra sutarties adresas, pateikdami paprastą pareiškimą:

if (! rezultatas.adresas) {
    // Pradėta kurti sutartis
} Kitas {
    // Sutartis buvo įdiegta, ir jūs galite naudoti adresą su Rezultatų adresas
}

Štai kaip jūs diegiate sutartį su „web3“.

Bet kas, jei norite pasiekti esamą „blockchain“ sutartį?

Būtent to reikia „prisijungti“ prie kauliukų žaidimo, kad sukurtume sutarties pavyzdį. Tam reikalingas tik ABI ir sutarties adresas, baitinis kodas nėra būtinas. Štai kaip tai galite padaryti „web3“:

Sutartis = web3.et.contract (abi)
sutartisInstance = Sutartis.at (adresas pasirinktas)

Po to galėsite vykdyti šios sutarties funkcijas taip:

sutartisInstance.setupPlayer2 ({
  reikšmė: web3.toWei (valueSelected),
  dujos: 4e6
}, (klaidinga, rezultatas) => {
    // Viską atlikite atlikę funkciją
})

Jums reikia tik egzemplioriaus, funkcijos pavadinimo, parametrų, jei tokių yra, ir atgalinio ryšio funkcijos.

Dabar, kai jūs suprantate, kaip intelektualiosios sutarties diegimas ir įgyvendinimas veikia javascript, parodysiu jums visą programos kodą:

Nepaisykite visko, kas išdėstyta aukščiau, į ką turite sutelkti dėmesį, klausytojo „# mygtukas tęsti“ bloke:

document.querySelector („# mygtukas-tęsti“). addEventListener ()

Nes jums reikia rūpėti tik tuo, kas nutinka, kai 1 arba 2 žaidėjai paspaudžia mygtuką „Tęsti“. Štai toks suskirstymas:

  • Kai žaidėjas paspaudžia tą mygtuką, šis įvykio klausytojas vykdomas
  • Viduje aš gaunu įvesties vertes sąlyginio deponavimo nustatymui ir dislokuotos sutarties adresą, jei žaidėjas prisijungia prie esamo žaidimo. Tai yra „valueSelected“ ir „addressSelected“ kintamieji.
  • Tada sukuriu sutarties sąrankos kintamąjį su abi, kuris bus reikalingas abiems žaidėjams.
  • Po to matau, ar nustatytas dislokuotos sutarties adresas, ar ne. Jei adresas tuščias, tai reiškia, kad žaidėjas spustelėjo „Pradėti naują žaidimą“, nes tokiu atveju jis nematys adreso įvesties.
  • Tai reiškia, kad aš pasirinksiu naują žaidimą ar išmaniąją sutartį tam žaidėjui su pasirinktu sąlyginio deponavimo būdu.
  • Pirmasis žaidėjas pamatys įdiegtos intelektualiosios sutarties adresą. Jis turės pasidalinti šiuo adresu su kitu žaidėju, kad galėtų pradėti kauliukų žaidimą, nes jums reikia 2 žaidėjų.
  • Jei jis pateikė adresą, tai reiškia, kad jis nori prisijungti prie esamo žaidimo. Tai galime padaryti sukurdami intelektualiosios sutarties egzempliorių naudodami jos adresą ir vykdydami funkciją setupPlayer2 ().
  • Aš naudoju funkciją „setInterval“, norėdamas patikrinti kas 1 sekundę, ar 2 grotuvo sąranka baigta, ar nepradėti žaidimo.

Puiku! Jei tai padarėte iki šiol, tai reiškia, kad esate atsidavę ir iš tikrųjų kažko mokotės. Geriausia dalis yra arčiau, nei jūs manote. Kitame straipsnyje pamatysite, kaip sukurti „Java“ žaidimų valstybinius kanalus, kad būtų sukurta mastelio mažinanti „Ethereum“ decentralizuota programa.

Nepraleisk progos ir būk pirmasis perskaičius jį, kai jis bus baigtas. Prisijunkite prie mano išskirtinio „Ethereum“ kūrėjų adresų sąrašo, kad gautumėte atnaujinimus ir informaciją tiesiogiai iš manęs čia: http://eepurl.com/dDQ2yX

2 dalį dabar galite rasti čia: https://medium.com/@merunasgrincalaitis/how-to-create-scalable-dapps-and-smart-contracts-in-ethereum-with-state-channels-step-by-step- 690f71a9bf2f

Jei jaučiatės suglumęs dėl tokios išplėstinės informacijos arba esate dar tik naujokas apie solidumą ir „Ethereum“ tarpus, patikrinkite mano knygą „Ethereum kūrėjas: mokykitės solidumo iš nulio“ čia https://merunas.io/