Tutorialul final Corda 2021

Doriți să deveniți un expert Corda? Următorul tutorial corda va acoperi tot ce trebuie să știți despre dezvoltarea unei aplicații Corda.

Blockchain a parcurs un drum lung. Ideea tehnologiei de registre distribuite a rezolvat multe puncte de durere prin care trec organizațiile actuale. Scopul principal este de a deveni mai eficient, mai sigur și mai scalabil fără a investi milioane de dolari.

Corda este o platformă open-source blockchain care oferă un ecosistem global blockchain. Oferă confidențialitate strictă prin utilizarea contractelor inteligente. De asemenea, ajută afacerea să tranzacționeze direct și să ofere o abordare rentabilă pentru eficientizarea operațiunilor comerciale.

Principala diferență este modul în care Corda gestionează tranzacțiile. Este un DLT care dorește să îmbunătățească fezabilitatea, viteza și scalabilitatea blockchain-ului, neavând un registru complet cu fiecare coleg. Dacă o tranzacție poate fi finalizată între doi colegi fără a informa întreaga rețea, atunci Corda va folosi această abordare. De asemenea, este conceput pentru a include alte părți care facilitează urmărirea tranzacției și validarea acesteia. Este o tehnologie de registru distribuit pentru afaceri.

Să începem acum cu tutorialul nostru Corda blockchain!

In curand: Ghid pentru începători la cursul de dezvoltare Corda

Cum este structurat Tutorialul de dezvoltare Corda?

Vom acoperi Corda în detaliu. În majoritatea secțiunilor, vom încerca să acoperim conceptele importante Corda.

Conceptele cheie pe care le vom acoperi includ următoarele.

  • Stat
  • Contracta
  • Secțiuni de debit

Tutorialul nostru va crea o aplicație IOU. IOU înseamnă „I Owe yoU”. Aceasta este o simplă prezentare a faptului că o persoană deține bani de la o altă persoană. Vom acoperi conceptul mai detaliat mai târziu.

Pentru a simplifica lucrurile, vom folosi limbajul de programare Kotlin. Ca student, ar fi minunat dacă îl cunoașteți pe Kotlin, dar nu este o abilitate necesară să urmați tutorialul..

Instrumente

Înainte de a începe cu tutorialul Corda pentru începători, vom avea nevoie de următoarele instrumente. Există, de asemenea, instrumente blockchain pe care dezvoltatorul le place să le folosească frecvent. Cu toate acestea, nu le vom acoperi astăzi.

  • Kotlin
  • Gradle
  • Git
  • IntelliJ
  • Linie de comanda

În ceea ce privește mediul de dezvoltare integrată, vom folosi IntelliJ. Ne va simplifica dezvoltarea.

Tutorial Corda

Ce este Corda?

Corda blockchain este cel mai bine definit ca un open-source care rezolvă problemele de afaceri prin furnizarea unei rețele blockchain interoperabile. Caracteristicile sale cheie includ confidențialitate strictă, eficiență și tranzacții directe folosind tehnologia smart contract.

Contractele inteligente utilizate în Corda pot fi scrise folosind limbaje JVM sau Java. Aplicațiile dApp din cadrul platformei Corda sunt cunoscute sub numele de CorDapps. De asemenea, oferă rețea de noduri peer-to-peer cu capacitatea de a utiliza infrastructura notarială. Infrastructura este utilizată pentru validarea și secvențierea tranzacțiilor fără a fi nevoie să difuzați detaliile tranzacției către fiecare coleg din rețea.

O altă componentă importantă utilizată de blockchain include cadrul Flow, care gestionează negocierea și comunicarea între participanți.

Înțelegerea registrului Corda

Corda Ledger nu este similar cu sistemul de registre utilizat de tehnologiile tradiționale blockchain. De aceea, trebuie să avem o înțelegere clară a modului în care funcționează și să o înțelegem atât din punct de vedere funcțional, cât și din perspectiva datelor.

Registrul Corda funcționează ca un grafic. Toate nodurile dintr-un grafic sunt conectate între ele, fie direct, fie prin alte noduri. Toate nodurile pot comunica între ele dacă doresc. Utilizarea graficului înseamnă că nu este nevoie să difuzați tranzacția la nivel global.

Descoperirea nodurilor

Deci, cum se descoperă nodurile reciproc? Ei folosesc o hartă de rețea pentru a se găsi reciproc. Vă puteți gândi, asemănător cu o agendă telefonică. Harta de rețea conține metadatele pentru a localiza fiecare dintre aceste servicii și, prin urmare, oferă un mod frumos de descoperire a hărții.

Cum functioneazã?

Cea mai mare provocare într-o rețea blockchain de difuzare non-globală este consensul. Deci, cum știu nodurile unul pe celălalt și verifică aceste informații?

Răspunsul aici este fapte comune. Fiecare nod se suprapune peste orice alt nod într-un fel sau altul. Faptele împărtășite sunt stocate în registrul Corda, care poate fi apoi utilizat pentru a verifica informațiile. Registrul Corda conține un set de aceste seturi. Deoarece nu există un nod central, aceste noduri acționează proxy atunci când este nevoie să verifice lucrurile. Pentru a stoca aceste informații, fiecare nod are un seif care conține faptul că nu poate fi schimbat. Acesta este modul în care dezvoltatorii implementează blockchain.

State

Statele din blockchain-ul Corda sunt imuabile. Acestea sunt utilizate pentru a stoca fapte comune despre o tranzacție, acord sau contract într-un anumit moment.

Sună tehnic? Să încercăm să o descompunem în cuvinte mai simple.

Fapte împărtășite

Să luăm două persoane care utilizează registrul Corda. Să le numim Alpha și Bravo.

Amândoi au un fapt comun. Faptul comun este un IOU (I Own You). IOU este utilizat atunci când un creditor are bani datorate furnizorului de împrumut. Pentru a face acest lucru partajat, ambii au aceleași informații partajate reprezentate în IOU.

Reprezentați orice

Statele pot fi folosite pentru a reprezenta orice. Aceasta înseamnă că poate stoca orice formă de informații pentru diferite cazuri de utilizare a corda. În calitate de dezvoltator, puteți utiliza statele pentru a stoca informații KYC, instrumente financiare, împrumuturi sindicate etc..

De asemenea, stările pot fi utilizate pentru a stoca mai multe atribute. Dar există o limitare pentru state. Limita este că, odată ce unui stat i se dă un tip, tipul său nu poate fi schimbat. Dacă creați un stat IOU, atunci va trebui să precizeze statul IOU pentru tot restul vieții sale.

Imuabil și în evoluție

Statele sunt create pentru a fi imuabile. Cu toate acestea, imuabilitatea lor este legată de timp. O stare este prezentată la un moment dat.

Aceasta înseamnă că se poate crea o nouă stare pe lângă starea inițială. Se face atunci când există o nouă modificare adusă stării care trebuie stocată. Vechiul stat este numit apoi istoric.

De exemplu, dacă Alpha își achită datoria față de Bravo, atunci va fi creat un nou stat, citând faptul că Alpha a compensat datoria. De asemenea, dacă statul este finalizat, IOU va expira. În termeni simpli, ciclul de viață al statului, în acest caz, este după cum urmează.

  1. Un prim stat este creat pentru a arăta că Alpha este datorat față de Bravo. Acest stat împărtășește, de asemenea, mai multe informații despre IoU, inclusiv data, ora, rata dobânzii, suma împrumutată și alte informații utile necesare pentru IoU.
  2. Acum, când Alpha rezolvă datoria, se creează o nouă stare care actualizează noile informații. Vechea stare nu este atinsă în niciun fel, deoarece este imuabilă.
  3. Noua stare este acum actualizată în faptele partajate între cei doi utilizatori.
  4. Acum, vechiul stat este numit istoric. Pot exista mai multe stări istorice într-o singură tranzacție. Acest lucru poate duce la crearea unei secvențe de stări.
  5. Se creează un cap de secvență, care se referă la ultima stare. De asemenea, ultimele state sunt, de asemenea, denumite neconsumate.

Citeste mai mult: Hyperledger vs Corda vs Ethereum Comparison Guide

Pregătirea mediului de dezvoltare

Acum, conform ghidului de dezvoltare dApp, mediul ar trebui să fie pregătit pentru tutorialul de dezvoltare Corda. Aveți nevoie de următoarele instrumente pentru a începe.

  • Oracle JDK 8 JVM – v8u171 sau mai sus.
  • Git
  • IDEA IntelliJ

Clonarea depozitului Git

Cel mai bun mod de a începe călătoria noastră este să rulăm un exemplu de CorDapp în mediul nostru de dezvoltare. Vestea bună este că Corda oferă un exemplu CorDapp pe care îl puteți descărca și rula local.

Puteți clona depozitul local folosind comanda git clone după cum urmează.

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

Pentru tutorial, vom folosi IntelliJ pentru a importa depozitul git. Deschideți IntelliJ. După ce ați terminat, veți vedea opțiunea de a verifica din Control versiune. Faceți clic pe acesta și apoi clonați depozitul de pe computer.

Puteți alege să salvați proiectul; veți găsi depozitul de proiecte după cum urmează.

În partea dreaptă jos, veți găsi o notificare care spune, importați Gradle Project, cum ar fi mai jos. Este important ca Tutorialul nostru Corda să funcționeze.

Faceți clic pe „Importați proiectul Gradle”.

De asemenea, trebuie să configurați SDK-ul proiectului. Mergeți la setările proiectului și apoi selectați cea mai recentă versiune de Java. În cazul meu, a fost setat la Java 11.0.5.

Dacă găsiți vreo eroare de executat, atunci ar trebui să faceți upgrade la Gradle și să-l lăsați să importe depozitele necesare pentru a funcționa. Va dura ceva timp pentru a face acest lucru. Deci, ia un loc în spate și așteaptă să se termine.

Pentru mine, a fost nevoie de aproximativ 20 de minute pentru a finaliza toate actualizările dependențelor Gradle.

Să parcurgem rapid structura proiectului nostru tutorial Corda. Depozitul nostru principal este fișierul src. Pe măsură ce folosim Kotlin, vom folosi folderul sursă Kotlin; sub acesta veți găsi folderul src. Vă rugăm să nu-l confundați cu folderul sursă java.

Aici, veți găsi toate fișierele necesare în dosarul de instruire. Există, de asemenea, un folder „test” care conține unitățile de testare pentru aplicație.

Un alt fișier important despre care trebuie să știm este IOUState.kt. Se află în cadrul instruirii > stat.

Funcționarea testelor unităților de stat

Clasa IOUState arată foarte simplu. Nu este finalizat încă. Vom folosi o metodologie de dezvoltare bazată pe test pentru a dezvolta clasa și a o pregăti să funcționeze.

Dezvoltarea bazată pe test este o abordare excelentă atunci când vine vorba de practicile moderne de dezvoltare. Ajută la rezolvarea erorilor sau a altor probleme chiar de la început.

De aceea, șablonul pe care l-ați descărcat are deja teste corespunzătoare pentru fiecare dintre clase, inclusiv contract, flux și stare.

Pentru a începe, trebuie să mergem la Teste > Kotlin> net > Corda > Instruire > stat > IOUStateTests

Acolo veți găsi teste deja scrise. De asemenea, vine cu tone de documentație. Echipa R3 Corda și-a luat timpul pentru a crea șablonul.

Trebuie să decomentați secțiunea, așa cum se arată mai jos, pentru a efectua un singur test.

Selectați codul și apăsați Ctrl + / pentru a decomenta. Dacă utilizați MAC, utilizați CMD + / pentru a descomenta.

Acum, este timpul pentru noi să efectuăm testul unitar.

Deoarece clasa noastră IOUState este aproape goală, testele vor eșua și veți primi următoarea eroare de testare.

După cum puteți vedea, se spune că testul Kotlin-source: a eșuat din cauza NoSuchFieldException. Aceasta înseamnă că testul așteaptă variabila sumă în care nu a găsit niciuna.

Pentru a remedia problema, trebuie să ne întoarcem la fișierul nostru IOUState.kt și să-l edităm. Daca stii cum să construiești o aplicație blockchain, atunci va fi o sarcină ușoară pentru tine.

Înainte de a continua, trebuie să înțelegem mai bine Kotlin. Pentru a da sens codului pe care îl vom edita, este mai bine să obțineți o introducere. Kotlin este un limbaj de programare dens. De asemenea, Kotlin se va converti în mașină virtuală JVM, așa că ar trebui să fim bine cu utilizarea acesteia în tutorialul nostru.

  • clasa de date IOUState → Acest cuvânt cheie înseamnă că definim o clasă de date numită „IOUState”.
  • date val → declarație variabilă. Numele câmpului este data
  • Șir = „date” → aceasta definește valoarea implicită a variabilei de date dacă nu este definit nimic.
  • ContractState → Interfață

Dacă ați făcut toate modificările fișierului IOUState.kt conform testului, clasa IOUState va arăta ca mai jos.

clasa de date IOUState (val suma: Suma,

                   val împrumutător: petrecere,

                   val împrumutat: Petrecere,

                   val plătit: Suma = Suma (0, amount.token),

                   suprascrie val linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

   / **

    * Această proprietate deține o listă a nodurilor care pot „utiliza” această stare într-o tranzacție validă. În acest caz,

    * Creditorul sau împrumutatul.

    * /

   suprascrie val participanți: Lista obține() = listOf (creditor, împrumutat)

   / **

    * Metode de ajutor pentru construirea tranzacțiilor pentru decontarea și transferul IOU-urilor.

    * – [a plati] adaugă o sumă la proprietatea plătită. Nu face validare.

    * – [withNewLender] creează o copie a stării curente cu un creditor nou specificat. Pentru utilizare la transfer.

    * /

   distracţie pay (amountToPay: Suma) = copie (paid = paid.plus (amountToPay))

   distracţie withNewLender (newLender: Party) = copie (creditor = newLender)

}

Acum, ar trebui să puteți adăuga metode de asistență conform comentariilor de mai sus.

Vrei să devii expert Corda? Iată un ghid la certificarea R3 Corda care vă va ghida în procesul de certificare.

Contacte Corda

Am aflat că statele ar putea evolua în state noi. Dezvoltatorii pot controla evoluția stării contabile folosind contracte. În această secțiune, vom afla detalii despre contracte.

Deoarece R3 Corda nu depinde de difuzarea mesajelor către întreaga rețea, utilizează o definiție comună de verificare a tranzacțiilor pentru fiecare tip de stare. În acest fel, rețeaua Corda verifică tranzacția și câștigă consens. Este destul de similar cu modul în care alte blockchain înregistrează tranzacțiile.

Contractele Corda sunt implementate prin intermediul funcțiilor. Vă puteți gândi la stări ca unități de stocare a datelor și contracte, este o modalitate de a verifica datele și modificările stării acestora. Aceste funcții de verificare sunt specifice tipului de stare.

Pentru a se asigura că statele pot fi verificate și sunt deservite, fiecare stat trebuie să fie menționat cu un contract.

Fiecare contract conține două elemente, inclusiv codul contractului și proză legală.

Pentru a o înțelege, să aruncăm o privire la următoarea imagine.

După cum puteți vedea, contractul conține două articole și, în stat, există o referință de contract IOU pentru acel cod.

Proză juridică: Proza juridică este utilizată ca referință la contractul legal pentru acord. Este utilizat pentru a se asigura că cadrul juridic existent și sistemul judiciar pot fi utilizate în cazul în care apare un litigiu.

Alte caracteristici cheie ale contractelor Corda includ următoarele

  • Mai multe contracte pot face referință la un contract. De asemenea, un contract poate conține mai multe tipuri de stări
  • Corda utilizează o funcție de verificare pentru a verifica o tranzacție propusă
  • Semnătura metodei de verificare este cea de mai jos
  • distracție verifică (tx: Tranzacție): unitate
  • Metoda de verificare verifică tranzacția executând toate constrângerile. Dacă constrângerea eșuează, atunci va fi aruncată o excepție; în caz contrar, tranzacția va fi considerată valabilă.
  • Funcția de verificare este deterministă.

șabloanele blockchain conțin, de asemenea, codul pentru contractele Corda. De asemenea, ar trebui să abordați contractele Corda similare cu statele. Ar fi util dacă ați merge la unitățile de testare Corda și apoi ați adăuga codul necesar în Clasa Contract.

Tranzacții Corda

Următoarea noastră oprire este Corda Transactions. Tranzacțiile fac posibilă modificarea stării.

Deci, ce este o tranzacție? Poate fi definit cel mai bine ca un container care conține referințe de stare de intrare (0 sau mai multe). De asemenea, produc stări (0 sau mai multe).

Tranzacțiile permit rețelei să funcționeze optim, făcând posibilă interacțiunea între mai mulți colegi în timp real. Face posibil ca două părți să facă un schimb atomic fără a împiedica alte activități de la egal la egal. De asemenea, tranzacțiile sunt de natură atomică. Aceasta înseamnă că o tranzacție nu poate fi niciodată redusă sau divizată.

Există, de asemenea, trei tipuri de tranzacții: asigurări, actualizări și ieșiri. Fiecare are propria sa agendă. Să le enumerăm mai jos.

  • Asigurări → Creează noi stări
  • Actualizări → Modificare proprietăți de stare
  • Ieși → Eliminați stările din registru

Corda Flows

Fluxurile Corda sunt pașii necesari pentru ca colegii să efectueze (să execute) o tranzacție reușită.

Fluxul determină logica de bază a afacerii CorDapp. Este responsabil să se asigure că tranzacțiile sunt executate în ordinea și parametrii corecți. Deoarece tranzacțiile sunt de natură complexă, sunt necesare fluxuri pentru a se asigura că totul funcționează conform intenției.

Controlul fluxului asigură când să comunice, ce să comunice și cu cine să comunice.

Acesta este opusul complet al altor tehnologii de registre distribuite care se concentrează pe transmiterea detaliilor tranzacției către întreaga rețea. Corda dezvoltă tranzacții punct-la-punct în care tranzacțiile trebuie să aibă doi parametri importanți, expeditor și receptor.

Lucruri cheie pe care ar trebui să le cunoașteți despre fluxuri

  • Fluxurile se pot finaliza în câteva secunde sau pot dura mai multe zile
  • Sunt complet autonome
  • Fluxurile dorm înainte să găsească o așteptare pentru un răspuns
  • Fluxurile urmează Flow Framework, care oferă un mecanism dezvoltatorilor pentru a asigura dezvoltarea corectă a mașinilor de stare.
  • Fluxurile pot fi atât asociate, cât și unilaterale
  • Dezvoltatorii pot codifica și sub-fluxuri pentru a simplifica codul

Doriți să o luați la un pas și să deveniți un expert? Iată un ghid despre cum să construiți un blockchain în Python.

Consens

Dintre toate lucrurile interesante pe care le-am discutat până acum, ceea ce Corda este special este modul în care acesta atinge consensul. Corda are o abordare unică și, prin urmare, o face viabilă pentru întreprinderile de acolo.

În primul rând, Corda utilizează doi algoritmi de consens. Include următoarele

  • Consens de unicitate → Această metodă de consens asigură faptul că niciodată nu se vor produce conflicte pe contabilitate
  • Consens de verificare → Consensul de verificare gestionează tranzacțiile și se asigură că nu se produc conflicte conform codului contractului. Facilitează evoluția unei stări partajate în cadrul rețelei.

Lucruri cheie pe care ar trebui să le aveți despre Corda Consensus:

  • Consensul unic asigură faptul că actualizările de registre sunt întotdeauna unice. De asemenea, se asigură că registrul este valid atunci când se face actualizarea.
  • Consensul de verificare asigură validitatea actualizării.

Nodul Corda

Ultima secțiune din Corda pe care o vom discuta aici este Nodul Corda. Corda Node este o vedere la nivel înalt a Corda.

Deci, ce anume este nodul Corda?

Un nod Corda este o entitate care rulează în mașina virtuală Java. Implică următoarele

  • Oferă servicii de depozitare și seifuri
  • SQL DB sprijină seifurile și serviciile de stocare
  • Dosarele dedicate sunt folosite pentru a stoca atașamentele
  • Oferă funcționalități personalizate și extensii încorporate cunoscute sub numele de CorDapps
  • Oferă cadru client RPC

Așa arată nodul Corda.

După cum puteți vedea, conține toate aspectele necesare pentru a rula rețeaua Corda. Acestea interacționează cu fluxul și oferă funcționalități CorDapp personalizate.

Concluzie

Acest lucru ne conduce la sfârșitul tutorialului Corda. Aici ne-am uitat la Corda și am încercat să vedem un IoD CorDapp. Am discutat diferitele secțiuni ale acesteia folosind formarea șablonului disponibilă în depozitul Corda GitHub.

Obiectivul nostru este să începem cu Corda fără a încerca să explicăm tot ceea ce oferă Corda. Pentru aceasta, puteți utiliza întotdeauna documentația Corda. Avem, de asemenea, un curs viitoare despre tutorialul de dezvoltare Corda. Ar trebui să verificați cu siguranță dacă doriți să aveți nevoie de un ghid complet de dezvoltare.

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