Bet kas gali sudaryti protingą sutartį
Išmaniosios sutartys palengvins jūsų verslą naujoje decentralizuotoje ekonomikoje. Dauguma išmaniųjų sutarčių sudaromos „DApp“ (decentralizuoto taikymo) platformose, tokiose kaip „Ethereum“, „Lisk“ ar „Cardano“, o tokios didžiosios technologijų kompanijos kaip IBM kuria savo verslą. Tai yra prasminga, nes yra daugybė įmonių, kurios mieliau patikėtų tokiam technologijų gigantui kaip IBM sukurti jiems skirtą produktą, o ne pačios užsiimtų nauja technologija..
Protingas sutarčių kūrimas gali tapti perkamu įgūdžiu kūrėjams, kurie žino, kaip juos kurti. Stebina išmaniųjų sutarčių dalis, kad jų nesudėtinga sukurti. „DApp“ platformos ir aplinkiniai įrankiai leidžia jas sukurti ir lengvai sukurti savo „blockchain“ technologiją.
„Javascript“ kūrėjų neturėtų gąsdinti „blockchain“. Šiek tiek geriau suprantant, „blockchain“ tampa panašus į daugumą kitų sistemų, kurias paprastai įgyvendintumėte.
Protingos sutarties planavimas
Pirmą kartą kurdami išmanią sutartį turėtumėte nuspręsti, ką norite palengvinti.
Šiame pavyzdyje sutelkime dėmesį į renginių bilietus. Bilietai kelia milžiniškų problemų dėl skalperių, kurie perka toną bilietų, ir su žmonėmis, kurie naudojasi padirbtais bilietais. „Blockchain“ technologija išsiskiria daugeliu dalykų; du iš jų yra palengvinti sandorius ir sekti informaciją.
Dėl šios priežasties paprasta sutarties eilutė gali apriboti bilietų perpardavimo kainas. Tai neleidžia skalperiams nusipirkti krūvos bilietų, nes jų pardavimas dabar būtų nuostolingas. Naudodamiesi išmaniosiomis sutartimis, taip pat galite generuoti unikalius tokenizuotus bilietus, kurie priklauso nuo savininko ir kurių negalima suklastoti. Jei mėgstate lankytis koncertuose, festivaliuose ir sporto renginiuose, galite pamatyti patrauklumą.
„DApp“ platformos parinktys
Kitas dalykas, kurį reikia pasirinkti, yra tai, kuria DApp platforma kurti sutartį.
Ethereum yra didžiausia ir labiausiai įsitvirtinusi platforma. Joje taip pat yra aktyviausia vartotojų bazė, o bet kokio tipo kūrimo metu aktyvi bendruomenė, atsakanti į jūsų klausimus, yra svarbiausia norint užbaigti jūsų produktą. Tačiau vienas trūkumas yra tas, kad rašydama sutartis ji naudoja savo kalbą „Solidity“.
Kitas variantas, Lisk, yra „DApp“ platforma, pagrįsta „Javascript“, todėl negausite naujos sintaksės. Jis taip pat turi savo „DApp“ parduotuvę (pagalvokite apie „Google Play“ ar „iTunes“ parduotuvę), kurioje galėsite paskelbti savo programą, kai baigsite.
Jūs taip pat galėtumėte išbandyti Cardano kurį pastatė „Ethereum“ įkūrėjas ir turi didelę, įspūdingą komandą. Jų produktas vis dar yra naujas, tačiau jei jie įvykdys pažadą atskirti informaciją apie sutartį nuo sandorių duomenų, tai gali būti teisingas pasirinkimas pirmyn.
Kol kas pereikime „Ethereum“ arba „Lisk“ kaip pasirinktą platformą.
Kaip „Javascript“ kūrėjas, „Lisk“ gali atrodyti logiškas sprendimas, nes jūs jau mokate kalbą.
Tačiau neskaičiuokite Ethereum. Kūrėjų bendruomenė yra tokia tvirta, kad galite kompensuoti bet kokį nesusipratimą apie solidumą, turėdami perteklinę turimą informaciją. „Ethereum“ taip pat yra „Consensys“ sukurtas „Truffle“ pagrindas, kuris leidžia lengvai integruoti ir išbandyti savo išmaniųjų sutarčių taikymą..
Protingos sutarties sudarymas
Tvirtumas skamba baugiau nei yra iš tikrųjų. Pirmas dalykas, kurį galite pastebėti kalboje, yra ryškus panašumas su „JavaScript“ klase. Vis dėlto yra keletas subtilių skirtumų, pvz., Kabliataškių reikalavimas ir maišos funkcijų naudojimas. The maišos funkcijos naudojami kuriant unikalius raktus ir susiejant juos su kitais kintamaisiais. Savo pavyzdyje juos panaudotume kurdami unikalius bilietus ir susiedami juos su sąskaitomis, kurios juos perka.
Kurdami pirmąją „Ethereum“ sutartį rekomenduojame naudoti kūrimo aplinką remix.solidity.org. Tai suteikia jums interaktyvią aplinką, kad galėtumėte įdiegti sutartį ir sąveikauti su ja iš skirtingų „Ethereum“ paskyrų. Išskleidžiamasis meniu leidžia jums perjungti sąskaitas ir naudoti bet kokius jūsų sutarties funkcinius skambučius, paspaudus atitinkamus mygtukus.
Į ką reikia atkreipti dėmesį
Unikalus „Solidity“ dalykas yra adresavimo naudojimas. Visos „Ethereum“ sąskaitos turi unikalius adresus, ir šie adresai reiškia šalis, susitariančias dėl sutarties.
Mūsų bilietų pardavimo sutarties pavyzdyje, kas sukurs renginį, prie jo būtų pridėtas savo sąskaitos adresas. Kai kas nors perka naują bilietą, lėšos pervedamos tiesiogiai renginio savininkui, išvedant tarpininką. Pirkėjas paskambina, o lėšos iš jų sąskaitos paimamos, identifikuojamos pagal adresą ir perduodamos savininkui.
„Solidity“ taip pat turi unikalų būdą pritraukti lėšų į išmanųjį sutarties skambutį. Kiekvienas funkcijos skambutis pateikiamas su pranešimu. Šiame pranešime gali būti unikali siuntėjo informacija, įskaitant jo sąskaitos adresą ir eterio vertę, kurią jie nori nusiųsti sutarties savininkui.
Taip pat verta paminėti, kad „Solidity“ atveju ne visi skambučiai pagal sutartį yra nemokami. Norėdami pakeisti informaciją sutartyje, pvz. pirkti ar naudoti bilietą, mašinų tinklas, patvirtinantis sutarties vykdymo mokestį „dujos“. Dujos iš esmės yra rinkliava už naudojimąsi tinklo skaičiavimo galia.
Kiti skambučiai, kurie tiesiog pateikia informacijos apie sutartį, pvz. ieškoti bilieto kainos ar sužinoti likusių bilietų skaičių, yra nemokama. Taip yra todėl, kad jokia informacija apie sutartį neatnaujinama; šioje veikloje nėra jokios rizikos.
Jungiamasi prie „JavaScript“
Sudėtingiausia dirbti „Solidity“ yra integruoti sutartį su „Javascript“. Visa tai daroma naudojant Trumų rėmai.
Pirmasis žingsnis integruojant sutartį yra jos įdiegimas ir perkėlimas į bandomąjį tinklą. „Truffle“ teikia savo RPC, atskirą „Ethereum“ bandymų tinklą, vadinamą „Ganache“. Šis procesas suteikia jums JSON sutarties versiją, į kurią galite paskambinti naudodami bandomojo tinklo adresus per „Javascript“ programą.
Jei ieškote daugiau informacijos apie šį procesą, triufeliai puikiai apibūdina tai savo dokumentuose ir pavyzdžių laukeliuose, esančiuose Interneto svetainė.
Kitas sunkus dalykas, kurį reikia įveikti kuriant išmanią sutartį, yra tai, kaip ją konceptualizuoti. Galvodami apie „blockchain“ kaip apie interneto kūrėją, galite į tai žiūrėti kaip į duomenų bazės pakaitalą. Vietoj vieno centralizuoto šaltinio visai jūsų informacijai seka sutarčių ir sandorių grandinė, kuri veda prie informacijos.
Kadangi „blockchain“ yra tarsi duomenų bazė, natūralus dalykas yra prijungti sutartį prie savo serverio. Sukūrus sutarties API sluoksnį, lengviau pasiekti informaciją iš kliento programos pusės taip pat lengva, kaip pateikti AJAX užklausą. Yra gerai pavyzdžio laukelis triufelių svetainėje, kad gautumėte šią sąranką.
Nors „blockchain“ yra panaši į duomenų bazę, ji nėra visiškai identiška. Jis turi visiškai unikalų protokolą, apimantį operacijas, maišymą ir blokavimo kūrimą. Tai gali būti sunkiausia „Ethereum“ plėtros dalis. Mūsų bilietų pavyzdyje jūs turite suplanuoti sutarties kvietimą pirkti bilietą kitaip nei kvietimas naudoti bilietą. „Ethereum“ virtuali mašina yra išranki šiems skambučiams.
Tai dar viena sritis, kurioje naudinga didelė „Ethereum“ plėtros bendruomenė. Yra didelė tikimybė, kad į bet kurį klausimą, į kurį jau atsakėte, jau buvo atsakyta „Ethereum Stack Exchange“, o jei ne, kiti kūrėjai yra labiau nei pasirengę jums padėti pagal sutartį.
Išvada
Šis straipsnis nebuvo skirtas išmokyti pradėti rašyti „Solidity“. Vietoj to, jis turėjo jums apžvelgti, kas yra protinga sutartis ir kaip ją įgyvendinti „Javascript“ programoje. Remtis „blockchain“ galima visiems, kurie žino žiniatinklio plėtrą.
„Blockchain“ technologiją gali būti sunku suprasti, tačiau, kaip ir bet kurią kitą sistemą ar kūrėjo įrankį, nebūtinai turite žinoti, kaip ji buvo sukurta, kad galėtumėte ją naudoti. Neleiskite paslaptingai „blockchain“ aurai sulaikyti jus nuo kažko puikaus kūrimo.