Krajnji vodič za Cordu 2021

Želite li postati stručnjak za Cordu? Sljedeći tutorial o Cordi obuhvaćat će sve što trebate znati o razvoju aplikacije Corda.

Blockchain je jako napredovao. Ideja tehnologije distribuirane knjige riješila je mnoge probleme kroz koje prolaze sadašnje organizacije. Glavni je cilj postati učinkovitiji, sigurniji i skalabilniji bez ulaganja milijuna dolara.

Corda je blockchain platforma otvorenog koda koja pruža globalni blockchain ekosustav. Nudi strogu privatnost uz upotrebu pametnih ugovora. Također pomaže poduzeću izravno obavljati transakcije i pruža isplativ pristup usmjeravanju poslovnih operacija.

Glavna je razlika u tome kako Corda rješava transakcije. To je DLT koji želi poboljšati izvedivost, brzinu i skalabilnost blockchaina tako što neće imati potpunu knjigu sa svakim kolegom. Ako se transakcija može izvršiti između dva partnera bez obavještavanja cijele mreže, tada će Corda koristiti taj pristup. Također je dizajniran za uključivanje drugih strana koje olakšavaju praćenje transakcije i uvid u njezinu valjanost. To je tehnologija distribuirane glavne knjige za posao.

Krenimo odmah s našim uputstvom za Corda blockchain!

Dolazi uskoro: Vodič za početnike kroz razvojni tečaj Corde

Kako je strukturiran Vodič za razvoj Corde?

Detaljno ćemo pokriti Cordu. U većini odjeljaka pokušat ćemo obuhvatiti važne koncepte Corde.

Ključni pojmovi koje ćemo pokriti uključuju sljedeće.

  • država
  • Ugovor
  • Odjeljci protoka

Naš vodič će stvoriti IOU aplikaciju. IOU znači “Dugujem ti”. Ovo je jednostavan prikaz činjenice da jedna osoba posjeduje novac od druge osobe. Koncept ćemo detaljnije obraditi kasnije.

Da bismo pojednostavili stvari, služit ćemo se programskim jezikom Kotlin. Kao učeniku, bilo bi sjajno ako poznajete Kotlina, ali nije potrebno umijeće da biste slijedili tutorial.

Alati

Prije nego što započnemo s uputstvom za početnike Corde, trebat će nam sljedeći alati. Postoje i blockchain alati koje programer zaista voli često koristiti. Međutim, danas ih nećemo pokrivati.


  • Kotlin
  • Gradle
  • Git
  • IntelliJ
  • Naredbeni redak

Što se tiče integriranog razvojnog okruženja, koristit ćemo IntelliJ. Pojednostavit će naš razvoj.

Vodič za Cordu

Vodič za Cordu

Što je Corda?

Corda blockchain najbolje je definirati kao open source koji rješava poslovne probleme pružajući interoperabilnu blockchain mrežu. Njegove ključne značajke uključuju strogu privatnost, učinkovitost i izravne transakcije pomoću tehnologije pametnih ugovora.

Pametni ugovori koji se koriste u Cordi mogu se napisati koristeći JVM jezike ili Java. DApps unutar platforme Corda poznat je pod nazivom CorDapps. Također, nude mrežu peer-to-peer čvorova s ​​mogućnošću korištenja notarske infrastrukture. Infrastruktura se koristi za provjeru valjanosti i redoslijed transakcija bez potrebe za emitiranjem detalja transakcije svakom peer-u na mreži.

Druga važna komponenta koju koristi blockchain uključuje okvir Flow koji upravlja pregovaranjem i komunikacijom među sudionicima.

Razumijevanje knjige Corda

Corda Ledger nije sličan sistemu glavne knjige koji koriste tradicionalne blockchain tehnologije. Zato moramo jasno shvatiti kako to funkcionira i razumjeti ga s njegove funkcionalne točke gledišta i perspektive podataka.

Knjiga Corde radi poput grafikona. Svi čvorovi u grafu povezani su međusobno, bilo izravno ili kroz neke druge čvorove. Svi čvorovi mogu međusobno komunicirati ako to žele. Korištenje grafikona znači da nema potrebe za globalnim emitiranjem transakcije.

Otkrivanje čvorova

Pa, kako se čvorovi međusobno otkrivaju? Koriste se mrežnom kartom kako bi se pronašli. Možete to smisliti, slično telefonskom imeniku. Mrežna karta sadrži metapodatke za pronalaženje svake od ovih usluga i stoga pruža lijep način za otkrivanje karte.

Kako radi?

Najveći izazov u ne-globalnoj emitiranoj blockchain mreži je konsenzus. Pa, kako čvorovi znaju jedni za druge i provjeravaju te podatke?

Ovdje su odgovor podijeljene činjenice. Svaki čvor na neki ili drugi način preklapa bilo koji drugi čvor. Podijeljene činjenice pohranjuju se u knjigu Corda, koja se zatim može koristiti za provjeru podataka. Knjiga Corda sadrži skup ovih skupova. Kako ne postoji središnji čvor, ti čvorovi djeluju proxy kada postoji potreba za provjerom stvari. Da bi se te informacije pohranile, svaki čvor ima trezor koji sadrži činjenicu koja se ne može promijeniti. Na ovaj način programeri implementiraju blockchain.

Države

Države u Corda blockchainu su nepromjenjive. Koriste se za pohranu zajedničkih činjenica o transakciji, sporazumu ili ugovoru u određenom trenutku.

Zvuči tehnički? Pokušajmo to raščlaniti jednostavnijim riječima.

Podijeljene činjenice

Uzmimo dvoje ljudi koji koriste knjigu Corda. Nazovimo ih Alfa i Bravo.

Oboje imaju zajedničku činjenicu. Zajednička činjenica je IOU (I Own You). IOU se koristi kada zajmodavac ima novac zbog davatelja kredita. Da bi činjenica bila zajednička, obojica imaju iste zajedničke podatke predstavljene u IOU-u.

Predstavljajte bilo što

Države se mogu koristiti za predstavljanje bilo čega. To znači da može pohraniti bilo koji oblik podataka za različite slučajeve uporabe corda. Kao programer, države možete koristiti za pohranu podataka KYC-a, financijskih instrumenata, sindiciranih zajmova itd.

Također, države se mogu koristiti za pohranu više atributa. Ali postoje ograničenja za države. Ograničenje je u tome što jednom kad država dobije tip, njezin se tip ne može mijenjati. Ako stvorite IOU državu, tada će ona morati navesti IOU državu do kraja svog života.

Nepromjenjiv i razvija se

Države su stvorene da budu nepromjenjive. Međutim, njihova se nepromjenjivost odnosi na vrijeme. Stanje je predstavljeno u određenom trenutku.

To znači da se uz izvorno može stvoriti i novo stanje. To je učinjeno kada dođe do nove promjene stanja koje treba pohraniti. Tada se stara država naziva povijesnom.

Primjerice, ako Alpha otplati svoj dug Bravu, stvorit će se nova država, pozivajući se na činjenicu da je Alpha očistila dug. Također, ako je država dovršena, IOU istječe. Jednostavno rečeno, životni ciklus države je u ovom slučaju sljedeći.

  1. Stvorena je prva država koja će pokazati kako je Alpha dužna Bravu. Ova država također dijeli više informacija o IoU-u, uključujući datum, vrijeme, kamatnu stopu, posuđeni iznos i druge korisne informacije potrebne za IoU.
  2. Sada, kada Alpha riješi dug, stvara se novo stanje koje ažurira nove informacije. Staro stanje se ne dira ni na koji način jer je nepromjenjivo.
  3. Novo stanje sada je ažurirano u zajedničkim činjenicama između dva korisnika.
  4. Sada se stara država naziva povijesnom. U jednoj transakciji može biti više povijesnih stanja. To može dovesti do stvaranja niza stanja.
  5. Stvara se glava sekvence koja se odnosi na najnovije stanje. Također, najnovije države također se nazivaju nepotrošenima.

Čitaj više:Hyperledger vs Corda vs Ethereum Vodič za usporedbu

Priprema razvojnog okruženja

Sada, prema razvojnom vodiču za dApp, okruženje bi trebalo biti spremno za razvojni vodič za Cordu. Za početak su vam potrebni sljedeći alati.

  • Oracle JDK 8 JVM – v8u171 ili noviji.
  • Git
  • IntelliJ IDEA

Kloniranje Git spremišta

Najbolji način za početak putovanja je pokretanje primjera CorDappa u našem razvojnom okruženju. Dobra vijest je da Corda nudi primjer CorDappa koji možete preuzeti i pokrenuti lokalno.

Spremište možete klonirati lokalno pomoću naredbe git clone kao što je prikazano u nastavku.

git klon http://github.com/roger3cev/corda-training-template.git

Za tutorial ćemo koristiti IntelliJ za uvoz git spremišta. Otvorite IntelliJ. Kad završite, vidjet ćete opciju za plaćanje iz programa za kontrolu verzija. Kliknite na nju, a zatim klonirajte spremište na računalu.

intelliJ

Možete odabrati spremanje projekta; naći ćete spremište projekata kao u nastavku.

struktura projekta

U donjem desnom dijelu naći ćete obavijest u kojoj se navodi da uvozite Gradle Project kao što je prikazano u nastavku. Za naš Corda Tutorial važno je raditi.

Kliknite “Uvoz projekta Gradle”.

uvoz gradle projekt

Također morate postaviti Project SDK. Idite na postavke projekta, a zatim odaberite najnoviju verziju Jave. U mom slučaju postavljeno je na Java 11.0.5.

Ako nađete bilo kakvu pogrešku u pokretanju, trebali biste nadograditi svoj Gradle i dopustiti mu da uvozi potrebna spremišta da bi mogao raditi. Za to će trebati neko vrijeme. Dakle, zauzmite stražnje sjedalo i pričekajte da se završi.

Za mene je trebalo oko 20 minuta da dovršim sva ažuriranja ovisnosti o Gradleu.

Prođimo brzo kroz strukturu našeg udžbeničkog projekta Corda. Naše glavno spremište je src datoteka. Kako koristimo Kotlin, koristit ćemo mapu Kotlin-source; ispod nje ćete pronaći mapu src. Molimo vas da je ne miješate s mapom java-source.

Corda tutorial kotlin izvor

Ovdje ćete pronaći sve potrebne datoteke u mapi za trening. Tu je i mapa “test” koja sadrži test jedinice za aplikaciju.

Još jedna važna datoteka o kojoj moramo znati je IOUState.kt. Smješteno je unutar treninga > država.

Pokretanje testova državnih jedinica

Klasa IOUState izgleda vrlo osnovno. Još nije dovršen. Koristit ćemo testnu razvojnu metodologiju za razvoj klase i osposobljavanje za rad.

Testirani razvoj izvrstan je pristup kada su u pitanju moderne razvojne prakse. Pomaže u izglađivanju bugova ili drugih problema od samog početka.

Zato predložak koji ste preuzeli već ima odgovarajuće testove za svaku klasu, uključujući ugovor, tijek i stanje.

Da bismo započeli, moramo otići na Testove > Kotlin> neto > Corda > trening > država > IOUStateTests

IOUStestovi

Tamo ćete pronaći već napisane testove. Također dolazi s tonom dokumentacije. Tim R3 Corde odvojio je vrijeme za izradu predloška.

Trebate ukloniti komentar iz odjeljka, kao što je prikazano u nastavku, da biste napravili jedan test za pokretanje.

kod za komentare

Odaberite kod i pritisnite Ctrl + / da biste komentirali. Ako upotrebljavate MAC, upotrijebite CMD + / da biste komentirali.

Sada je vrijeme da pokrenemo jedinični test.

Kako je naša klasa IOUState gotovo prazna, testovi neće uspjeti i dobit ćete sljedeću testnu pogrešku.

neuspjeli testovi

Kao što vidite, kaže se da test Kotlin-source: test nije uspio zbog NoSuchFieldException. To znači da test očekuje varijablu količine tamo gdje nije pronađena.

Da bismo to popravili, moramo se vratiti u našu datoteku IOUState.kt i urediti je. Ako znate kako izraditi blockchain aplikaciju, to će vam biti jednostavan zadatak.

Prije nego što nastavimo, moramo bolje razumjeti Kotlina. Da bismo razumjeli kôd koji ćemo urediti, bolje je dobiti uvod. Kotlin je gusti programski jezik. Također, Kotlin će se pretvoriti u JVM virtualni stroj, tako da bismo trebali biti u redu s njegovom upotrebom u našem vodiču.

struktura projekta

  • klasa podataka IOUState → Ova ključna riječ znači da definiramo klasu podataka pod nazivom „IOUState“.
  • val podaci → deklaracija varijable. Naziv polja je podatak
  • String = “podaci” → ovo definira zadanu vrijednost varijable podataka ako ništa nije definirano.
  • ContractState → Sučelje

Ako ste napravili sve promjene u datoteci IOUState.kt prema testu, klasa IOUState izgledat će kao ispod.

klasa podataka IOUState (val iznos: Iznos,

val zajmodavac: Stranka,

val dužnik: stranka,

val plaćeno: Iznos = Iznos (0, iznos.token),

nadjačati val linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

/ **

* Ovo svojstvo sadrži popis čvorova koji mogu “koristiti” ovo stanje u važećoj transakciji. U ovom slučaju,

* zajmodavac ili zajmoprimac.

* /

nadjačati val sudionici: Lista dobiti() = listOf (zajmodavac, zajmoprimac)

/ **

* Pomoćne metode za izgradnju transakcija za podmirivanje i prijenos IOU-a.

* – [platiti] dodaje iznos na plaćenu imovinu. Ne vrši provjeru valjanosti.

* – [sNewLender] stvara kopiju trenutnog stanja s novo specificiranim zajmodavcem. Za upotrebu prilikom prijenosa.

* /

zabava plati (iznosToPay: Iznos) = kopija (plaćeno = plaćeno.plus (iznosToPay))

zabava withNewLender (newLender: Party) = kopija (lender = newLender)

}

Sada biste trebali moći dodati pomoćne metode prema gornjim komentarima.

Želite li postati stručnjak za Cordu? Evo vodiča za R3 Corda certifikat koji će vas voditi kroz postupak certificiranja.

Corda kontakti

Saznali smo da bi se države mogle razviti u nove države. Programeri mogu kontrolirati razvoj stanja na glavnoj knjizi pomoću ugovora. U ovom ćemo odjeljku detaljno naučiti o ugovorima.

Kako R3 Corda ne ovisi o emitiranju poruka na cijelu mrežu, koristi zajedničku definiciju provjere transakcija za svaku vrstu stanja. Na taj način mreža Corda provjerava transakcije i postiže konsenzus. Prilično je slično tome kako drugi blockchain bilježi transakcije.

Corda ugovori provode se putem funkcija. Države možete smatrati jedinicama za pohranu podataka, a ugovori su način provjere podataka i promjena stanja. Te su funkcije provjere specifične za tip države.

Da bi se osiguralo da države mogu biti verificirane i da se mogu služiti, svaka država mora biti navedena u ugovoru.

Svaki ugovor sadrži dvije stavke, uključujući šifru ugovora i pravnu prozu.

Da bismo to razumjeli, pogledajmo sljedeću sliku.

Država ugovora

Kao što vidite, ugovor sadrži dvije stavke, a u državi za taj kod postoji referenca ugovora IOU.

Pravna proza: Pravna proza ​​koristi se kao referenca na pravni ugovor za sporazum. Koristi se kako bi se osiguralo da se postojeći pravni okvir i pravosudni sustav mogu koristiti u slučaju spora.

Ostale ključne značajke ugovora o Cordi uključuju sljedeće

  • Više ugovora može se odnositi na ugovor. Također, ugovor može sadržavati više vrsta država
  • Corda koristi funkciju provjere za provjeru predložene transakcije
  • Potpis metode provjere je kao u nastavku
  • zabavno provjeriti (tx: Transaction): Jedinica
  • Metoda provjere potvrđuje transakciju izvršavanjem svih ograničenja. Ako ograničenje ne uspije, izbacit će se iznimka; u suprotnom, transakcija će se smatrati valjanom.
  • Funkcija provjere je deterministička.

Predlošci blockchaina također sadrže kod za Corda ugovore. Također biste trebali pristupiti ugovorima Corde sličnim državama. Pomoglo bi ako odete na ispitne jedinice Corde i zatim dodate traženi kod u klasu ugovora.

Corda Transakcije

Sljedeća stanica su nam Corda Transakcije. Promjene su one koje omogućuju promjene države.

Dakle, što je transakcija? To se najbolje može definirati kao spremnik koji sadrži reference stanja unosa (0 ili više). Oni također proizvode stanja (0 ili više).

Transakcije omogućavaju mreži optimalno izvođenje omogućujući višestrukim vršnjacima interakciju u stvarnom vremenu. Omogućuje dvjema stranama da izvrše atomsku zamjenu bez ometanja ostalih vršnjačkih aktivnosti. Također, transakcije su atomske prirode. To znači da se transakcija nikada ne može smanjiti ili podijeliti.

Postoje i tri vrste transakcija: Osiguranja, Ažuriranja i Izlazi. Svatko ima svoj dnevni red. Navedimo ih u nastavku.

  • Osiguranje → Stvara nova stanja
  • Ažuriranja → Promjena svojstava stanja
  • Izlazi → Uklonite stanja iz glavne knjige

Corda teče

Corda Flows koraci su potrebni vršnjacima za provođenje (izvršenje) uspješne transakcije.

Tok određuje osnovnu poslovnu logiku CorDapp-a. Odgovorna je za osiguravanje izvršavanja transakcija u ispravnom redoslijedu i ispravnim parametrima. Kako su transakcije složene prirode, potrebni su tijekovi kako bi se osiguralo da sve funkcionira kako je predviđeno.

Kontrola protoka osigurava kada komunicirati, što komunicirati i s kime komunicirati.

To je potpuna suprotnost ostalim tehnologijama distribuirane knjige koje su usredotočene na emitiranje detalja transakcije na cijelu mrežu. Corda uspijeva u transakcijama od točke do točke gdje transakcije moraju imati dva važna parametra, pošiljatelja i primatelja.

Ključne stvari koje biste trebali znati o protocima

  • Tokovi se mogu završiti u roku od nekoliko sekundi ili mogu potrajati više dana
  • Potpuno su autonomni
  • Flowovi spavaju prije nego što nađu čekanje za odgovor
  • Flows slijede Flow Framework, koji pruža mehanizam za programere kako bi osigurao pravilan razvoj državnih strojeva.
  • Tokovi mogu biti i upareni i jednostrani
  • Programeri također mogu kodirati podtokove kako bi kôd postali jednostavniji

Želite to iskoristiti i postati stručnjak? Evo vodiča za izgradnju blockchaina u Pythonu.

Konsenzus

Od svih uzbudljivih stvari o kojima smo do sada razgovarali, Corda je posebno ono što postiže konsenzus. Corda ima jedinstven pristup i stoga je održiva za tvrtke vani.

Prije svega, Corda koristi dva konsenzusna algoritma. Uključuje sljedeće

  • Konsenzus o jedinstvenosti → Ova metoda konsenzusa osigurava da se nikada ne dogodi sukob na glavnoj knjizi
  • Konsenzus o verifikaciji → Konsenzus o verifikaciji obrađuje transakcije i osigurava da se ne dogodi sukob prema kodu ugovora. Olakšava razvoj zajedničkog stanja u mreži.

Ključne stvari koje biste trebali postići u vezi s Corda Consensusom:

  • Jedinstveni konsenzus osigurava da su ažuriranja glavne knjige uvijek jedinstvena. Također, osigurava da je knjiga važeća kad se vrši ažuriranje.
  • Konsenzus o verifikaciji osigurava valjanost ažuriranja.

Čvor Corda

Posljednji dio Corde o kojem ćemo ovdje razgovarati je Corda čvor. Corda Node je pogled na Cordu na visokoj razini.

Dakle, što je točno čvor Corda?

Čvor Corda je entitet koji se izvodi u Java virtualnom stroju. Uključuje sljedeće

  • Nudi usluge skladištenja i trezore
  • SQL DB podupire trezore i usluge pohrane
  • Namjenske mape koriste se za spremanje privitaka
  • Nudi prilagođenu funkcionalnost i ugrađena proširenja poznata kao CorDapps
  • Nudi RPC klijentski okvir

Ovako izgleda čvor Corda.

Čvor Corda

Kao što vidite, sadrži sve potrebne aspekte za pokretanje mreže Corda. Oni komuniciraju s protokom i pružaju prilagođenu CorDapp funkcionalnost.

Zaključak

To nas vodi do kraja našeg uputstva za Cordu. Ovdje smo pogledali Cordu i pokušali vidjeti IoU CorDapp. Raspravljali smo o različitim odjeljcima korištenjem treninga predložaka dostupnog na spremištu Corda GitHub.

Naš je fokus započeti rad s Cordom bez pokušaja objašnjavanja svega što Corda nudi. Za to uvijek možete koristiti Corda dokumentaciju. Također imamo predstojeći tečaj o Corda tutorialu za razvoj. Svakako biste ga trebali provjeriti ako želite cjelovit vodič za razvoj.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map