A Corda végső bemutatója 2021

Corda-szakértővé akar válni? Az alábbi corda oktatóanyag mindent tartalmaz, amit tudnia kell a Corda alkalmazás fejlesztéséről.

A blockchain hosszú utat tett meg. Az elosztott főkönyvi technológia ötlete sok olyan fájdalmi pontot megoldott, amelyet a jelenlegi szervezetek átélnek. A fő cél az, hogy hatékonyabbá, biztonságosabbá és méretezhetőbbé váljon dollármilliók befektetése nélkül.

A Corda egy nyílt forráskódú blockchain platform, amely globális blockchain ökoszisztémát biztosít. Szigorú adatvédelmet kínál az intelligens szerződések használatával. Ez is segíti az üzleti tevékenységet a közvetlen ügyletekben, és költséghatékony megközelítést kínál az üzleti műveletek ésszerűsítéséhez.

A fő különbség az, hogy Corda hogyan kezeli a tranzakciókat. Ez egy DLT, amely úgy akarja javítani a blokklánc megvalósíthatóságát, sebességét és méretezhetőségét, hogy nincs minden főtárssal teljes főkönyv. Ha két társ között tranzakciót lehet teljesíteni anélkül, hogy tájékoztatnánk a teljes hálózatot, akkor Corda ezt a megközelítést alkalmazza. Úgy tervezték, hogy más feleket is bevonjon, amelyek megkönnyítik a tranzakció követését és annak érvényességének megismerését. Ez egy elosztott főkönyvi technológia az üzlet számára.

Kezdjük most a Corda blockchain bemutatónkkal!

Hamarosan: Kezdő útmutató Corda fejlesztő tanfolyamhoz

Hogyan épül fel a Corda fejlesztési útmutató?

Cordát részletesen ismertetjük. A legtöbb szakaszban megpróbáljuk lefedni a fontos Corda-fogalmakat.

A legfontosabb fogalmak, amelyekre kitérünk, a következők.

  • Állapot
  • Szerződés
  • Áramlási szakaszok

A bemutatónk létrehoz egy IOU alkalmazást. Az IOU jelentése: „I Owe yoU”. Ez egy egyszerű bemutatása annak a ténynek, hogy az egyik személy más embertől rendelkezik pénzzel. A koncepcióval a későbbiekben részletesebben foglalkozunk.

A dolgok egyszerűbbé tétele érdekében a Kotlin programozási nyelvet fogjuk használni. Tanulóként nagyon jó lenne, ha ismernéd Kotlint, de nem szükséges készség az oktatóanyag követése.

Eszközök

Mielőtt belekezdenénk a kezdőknek szóló Corda oktatóanyagba, a következő eszközökre lesz szükségünk. Vannak olyan blockchain eszközök is, amelyeket a fejlesztő nagyon szeret gyakran használni. Ma azonban nem foglalkozunk velük.

  • Kotlin
  • Gradle
  • Git
  • IntelliJ
  • Parancs sor

Az integrált fejlesztői környezetben az IntelliJ-t fogjuk használni. Ez leegyszerűsíti fejlődésünket.


Corda oktatóanyag

Mi az a Corda?

A Corda blokklánc úgy határozható meg legjobban, mint egy nyílt forráskód, amely interoperábilis blokklánc hálózat biztosításával oldja meg az üzleti problémákat. Főbb jellemzői a szigorú adatvédelem, a hatékonyság és az intelligens szerződéses technológiát alkalmazó közvetlen tranzakciók.

A Cordában használt intelligens szerződések JVM nyelvek vagy Java segítségével írhatók. A Corda platformon található dApps CorDapps néven ismert. Emellett peer-to-peer csomópontok hálózatát kínálják, amely lehetővé teszi a közjegyzői infrastruktúra használatát. Az infrastruktúrát a tranzakciók hitelesítésére és szekvenálására használják, anélkül, hogy a tranzakció részleteit a hálózat minden társának közvetítenie kellene.

A blokklánc által használt másik fontos komponens a Flow keretrendszer, amely kezeli a résztvevők közötti tárgyalásokat és kommunikációt.

A Corda Ledger megértése

A Corda Ledger nem hasonlít a hagyományos blockchain technológiák által használt főkönyvi rendszerhez. Éppen ezért egyértelműen meg kell értenünk a működését, és meg kell értenünk mind funkcionális, mind adatszempontból.

A Corda főkönyve grafikonként működik. A gráf összes csomópontja egymással kapcsolódik, akár közvetlenül, akár más csomópontokon keresztül. Minden csomópont kommunikálhat egymással, ha akarják. A grafikon használata azt jelenti, hogy nincs szükség a tranzakció globális terjesztésére.

Csomópontok felfedezése

Szóval, hogyan fedezik fel a csomópontok egymást? Hálózati térképet használnak egymás megtalálásához. Gondolhat rá, hasonlóan egy telefonkönyvhöz. A hálózati térkép tartalmazza a metaadatokat ezen szolgáltatások mindegyikének felkutatásához, és így jó módot kínál a térkép felfedezésére.

Hogyan működik?

A nem globális broadcast blockchain hálózat legnagyobb kihívása a konszenzus. Tehát honnan tudnak a csomópontok egymásról és ellenőrzik ezeket az információkat?

A válasz itt megosztott tények. Mindegyik csomópont valamilyen módon átfedi a többi csomópontot. A megosztott tényeket a Corda főkönyvben tárolják, amelyek felhasználhatók az információk ellenőrzésére. A Corda főkönyv a halmazok egy halmazát tartalmazza. Mivel nincs központi csomópont, ezek a csomópontok proxyt működnek, amikor szükség van a dolgok ellenőrzésére. Ezen információk tárolásához minden csomópont rendelkezik egy tárolóval, amely tartalmazza azt a tényt, amelyet nem lehet megváltoztatni. A fejlesztők így valósítják meg a blokkláncot.

Államok

A Corda blokklánc államai megváltoztathatatlanok. Egy tranzakcióval, megállapodással vagy szerződéssel kapcsolatos megosztott tények tárolására szolgálnak egy adott időpontban.

Technikailag hangzik? Próbáljuk egyszerűbb szavakkal lebontani.

Megosztott tények

Vegyünk két embert a Corda főkönyv használatával. Nevezzük meg őket Alfának és Bravónak.

Mindkettőjüknek közös ténye van. A megosztott tény egy IOU (I Own You). Az IOU-t akkor használják, ha a hitelezőnek van pénze a kölcsönszolgáltatónak. A tény megosztása érdekében mindkettőjüknek ugyanazok a megosztott információi vannak, amelyeket az IOU képvisel.

Képviseljen bármit

Az államok bármit képviselhetnek. Ez azt jelenti, hogy bármilyen formájú információt képes tárolni a különböző corda felhasználási esetekhez. Fejlesztőként az államok segítségével tárolhatja a KYC-információkat, a pénzügyi eszközöket, a szindikált hiteleket és így tovább.

Az állapotok több attribútum tárolására is használhatók. De az államok számára van korlátozás. A korlátozás az, hogy ha egy állapotnak megadunk egy típust, annak típusa nem változtatható meg. Ha létrehoz egy IOU állapotot, akkor annak egész életében meg kell adnia az IOU állapotot.

Változhatatlan és fejlődő

Az államok megváltoztathatatlanok. Változhatatlanságuk azonban az időre vonatkozik. Egy állapotot adott időpontban mutatnak be.

Ez azt jelenti, hogy az eredeti állapot mellett új állapot is létrehozható. Akkor történik meg, amikor új állapotváltozás történik az állapotban, amelyet tárolni kell. A régi államot akkor történelminek nevezik.

Például, ha az Alpha kifizeti a Bravo felé fennálló adósságát, akkor új állam jön létre, arra hivatkozva, hogy az Alpha elszámolta az adósságot. Továbbá, ha az állam elkészült, az IOU lejár. Egyszerűbben kifejezve az állam életciklusa ebben az esetben a következő.

  1. Első állam jön létre annak bemutatására, hogy az Alpha adósság alatt áll a Bravóval szemben. Ez az állam további információkat oszt meg az IOU-ról, beleértve a dátumot, az időt, a kamatlábat, a kölcsönzött összeget és az IOU-hoz szükséges egyéb hasznos információkat..
  2. Most, amikor az Alpha rendezi az adósságot, létrejön egy új állapot, amely frissíti az új információkat. A régi állapotot semmilyen módon nem érinti, mivel megváltoztathatatlan.
  3. Az új állapot frissült a két felhasználó megosztott tényeiben.
  4. Most a régi államot történelminek nevezik. Egy tranzakcióban több történelmi állapot is lehet. Ez az állapotok sorozatának létrehozásához vezethet.
  5. Létrejön egy szekvenciafej, amely a legújabb állapotra utal. A legfrissebb állapotokat szintén el nem fogyasztottnak nevezik.

Olvass tovább: Hyperledger vs Corda vs Ethereum összehasonlító útmutató

A fejlesztői környezet előkészítése

A dApp fejlesztési útmutatójának megfelelően a környezetnek készen kell állnia a Corda fejlesztési oktatóanyagra. A kezdéshez a következő eszközökre van szükség.

  • Oracle JDK 8 JVM – v8u171 vagy újabb.
  • Git
  • IntelliJ ÖTLET

Klónozó Git adattár

Az utazás megkezdésének legjobb módja, ha a CorDapp példáját futtatjuk fejlesztői környezetünkben. Jó hír, hogy Corda egy példát kínál a CorDapp-ra, amelyet letölthet és futtathat helyben.

Helyileg klónozhatja az adattárat a git clone paranccsal, az alábbiak szerint.

git klón http://github.com/roger3cev/corda-training-template.git

Az oktatóanyaghoz az IntelliJ segítségével fogjuk importálni a git adattárat. Nyissa ki az IntelliJ-t. Ha elkészült, látni fogja a verzióellenőrzés lehetőségét. Kattintson rá, majd klónozza a lerakatot a számítógépén.

Választhatja a projekt mentését; megtalálja a projekt adattárat az alábbiak szerint.

A jobb alsó sarokban talál egy értesítést, amely importálja az alábbihoz hasonló Gradle Projectet. Fontos, hogy Corda bemutatónk működjön.

Kattintson az „Import Gradle Project” elemre.

Be kell állítania a Project SDK-t is. Lépjen a projektbeállításokhoz, majd válassza ki a Java legújabb verzióját. Esetemben Java 11.0.5-re lett állítva.

Ha bármilyen hibát talál futtatni, frissítse a Gradle-t, és hagyja, hogy importálja a szükséges tárakat, hogy működjön. Ehhez egy kis időbe telik. Tehát, foglaljon egy hátsó helyet, és várja meg, amíg elkészül.

Számomra körülbelül 20 percbe került a Gradle függőségi frissítések teljesítése.

Gyorsan nézzük át Corda oktató projektünk felépítését. Fő adattárunk az src fájl. Mivel a Kotlint használjuk, a Kotlin-source mappát fogjuk használni; alatta megtalálja az src mappát. Kérjük, ne keverje össze a java-source mappával.

Itt megtalálja az összes szükséges fájlt a képzési mappában. Van egy „teszt” mappa is, amely az alkalmazás tesztegységeit tartalmazza.

Egy másik fontos fájl, amelyről tudnunk kell, az IOUState.kt. A képzésen belül található > állapot.

Az állami egységek tesztjeinek működése

Az IOUState osztály nagyon egyszerűnek tűnik. Még nem fejeződött be. Tesztvezérelt fejlesztési módszertant fogunk használni az osztály fejlesztésére és a munkára való felkészítésre.

A tesztvezérelt fejlesztés remek megközelítés a modern fejlesztési gyakorlatok terén. A kezdetektől segít kivédeni a hibákat vagy más problémákat.

Ezért a letöltött sablon már rendelkezik az egyes osztályok megfelelő tesztjeivel, beleértve a szerződést, a folyamatot és az állapotot.

A kezdéshez el kell mennünk a tesztekre > Kotlin> háló > Corda > kiképzés > állapot > IOUStateTests

Ott már teszteket talál. Rengeteg dokumentációval is jár. Az R3 Corda csapata időt szakított a sablon létrehozására.

Egyetlen futtatáshoz el kell távolítania a szakaszt az alábbiak szerint: az alábbiak szerint.

Válassza ki a kódot, és nyomja meg a Ctrl + / gombot a megjegyzés megszüntetéséhez. Ha MAC-ot használ, a megjegyzés megszüntetéséhez használja a CMD + / gombot.

Itt az ideje, hogy lefuttassuk az egység tesztet.

Mivel az IOUState osztályunk szinte üres, a tesztek sikertelenek lesznek, és a következő teszthibát kapja.

Amint láthatja, azt mondja, hogy a Kotlin-source: teszt a NoSuchFieldException miatt nem sikerült. Ez azt jelenti, hogy a teszt ott várja az összegváltozót, ahol nem talált ilyet.

A javításhoz vissza kell térnünk az IOUState.kt fájlunkra és szerkesztenünk kell. Ha tudod hogyan lehet egy blockchain alkalmazást felépíteni, akkor könnyű feladat lesz az Ön számára.

Mielőtt továbblépnénk, jobban meg kell értenünk Kotlint. A szerkeszteni kívánt kód értelmezése érdekében jobb beszerezni egy bevezetést. A Kotlin egy sűrű programozási nyelv. Ezenkívül Kotlin átalakul JVM virtuális géppé, ezért jól kell lennünk a bemutatónk használatával.

  • adatosztály IOUState → Ez a kulcsszó azt jelenti, hogy meghatározzunk egy „IOUState” nevű adatosztályt.
  • val adatok → változó deklaráció. A mező neve adat
  • String = “data” → ez határozza meg az adatváltozó alapértelmezett értékét, ha semmi nincs meghatározva.
  • ContractState → Interfész

Ha a tesztnek megfelelően elvégezte az IOUState.kt fájl összes módosítását, az IOUState osztály az alábbiak szerint fog kinézni.

adatosztály IOUState (val összeg: Összeg,

                   val hitelező: Párt,

                   val hitelfelvevő: Párt,

                   val fizetett: Összeg = Összeg (0, összeg.mondott),

                   felülbírálja a val linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

   / **

    * Ez a tulajdonság tartalmazza azoknak a csomópontoknak a listáját, amelyek ezt az állapotot egy érvényes tranzakcióban „felhasználhatják”. Ebben az esetben a

    * Hitelező vagy hitelfelvevő.

    * /

   felülbírálja a val résztvevők: lista kap() = listOf (hitelező, hitelfelvevő)

   / **

    * Segítő módszerek az IOU-k kiegyenlítésére és átadására vonatkozó tranzakciók összeállításakor.

    * – [fizetés] összeget ad a fizetett ingatlanhoz. Nem érvényesít.

    * – [withNewLender] létrehoz egy aktuális állapot másolatát egy újonnan megadott hitelezővel. Átadáskor használható.

    * /

   szórakozás fizetés (összegToPay: Összeg) = másolat (kifizetett = kifizetett plusz (összegToPay))

   szórakozás withNewLender (newLender: Party) = copy (hitelező = newLender)

}

Most hozzá kell tudnia adni segítő módszereket a fenti megjegyzéseknek megfelelően.

Corda szakértő akar lenni? Itt egy útmutató az R3 Corda tanúsításhoz, amely végigvezeti Önt a tanúsítási folyamaton.

Corda Kapcsolatok

Megtudtuk, hogy az államok új államokká fejlődhetnek. A fejlesztők szerződések segítségével irányíthatják a főkönyvi állam fejlődését. Ebben a részben részletesen megismerjük a szerződéseket.

Mivel az R3 Corda nem attól függ, hogy üzeneteket sugároznak-e a teljes hálózatra, az egyes államtípusokhoz közös tranzakció-ellenőrzési meghatározást használ. Ily módon a Corda hálózat ellenőrzi a tranzakciót és konszenzust szerez. Egészen hasonlít ahhoz, ahogyan más blokklánc rögzíti a tranzakciókat.

A Corda szerződéseket függvényeken keresztül hajtják végre. Az állapotokról úgy gondolhat, mint adattároló egységekről és a szerződésekről, amelyek segítségével ellenőrizheti az adatokat és azok állapotváltozásait. Ezek az ellenőrzési funkciók az állapot típusára vonatkoznak.

Az államok ellenőrizhetőségének és működőképességének biztosítása érdekében minden államot szerződéssel kell hivatkozni.

Minden szerződés két elemet tartalmaz, beleértve a szerződés kódját és a jogi prózát.

Hogy megértsük, vessünk egy pillantást a következő képre.

Amint láthatja, a szerződés két elemet tartalmaz, és az államban IOU szerződés hivatkozás található erre a kódra.

Jogi próza: A jogi prózát a megállapodás jogi szerződésére való hivatkozásként használják. Arra szolgál, hogy vita esetén a meglévő jogi keret és igazságszolgáltatási rendszer használható legyen.

A Corda szerződések további főbb jellemzői a következők

  • Több szerződés hivatkozhat a szerződésre. Ezenkívül egy szerződés több államtípust is tartalmazhat
  • Corda ellenőrzési funkcióval ellenőrzi a javasolt tranzakciót
  • Az ellenőrzési módszer aláírása az alábbi
  • szórakoztató ellenőrzés (tx: Tranzakció): Egység
  • Az ellenőrzési módszer minden kényszer végrehajtásával ellenőrzi a tranzakciót. Ha a megkötés nem sikerül, akkor kivételt dobunk; ellenkező esetben a tranzakció érvényesnek minősül.
  • Az ellenőrzési funkció determinisztikus.

A A blockchain sablonok tartalmazzák a Corda-szerződések kódját is. Meg kell közelítenie az államokhoz hasonló Corda-szerződéseket is. Segítene, ha felkeresné a Corda tesztegységeket, majd felvenné a szükséges kódot a Contract osztályba.

Corda tranzakciók

Következő állomásunk a Corda tranzakciók. A tranzakciók teszik lehetővé az állapotváltozásokat.

Mi az a tranzakció? Leginkább úgy definiálható, mint egy tároló, amely bemeneti állapot hivatkozásokat tartalmaz (0 vagy több). Állapotokat is produkálnak (0 vagy több).

A tranzakciók lehetővé teszik a hálózat optimális működését, lehetővé téve több társ számára, hogy valós időben kommunikáljanak egymással. Lehetővé teszi, hogy két fél atomcserét hajtson végre más társaktevékenységek akadályozása nélkül. A tranzakciók szintén atom jellegűek. Ez azt jelenti, hogy egy tranzakciót soha nem lehet csökkenteni vagy felosztani.

Három típusú tranzakció is létezik: Biztosítások, Frissítések és Kilépések. Mindegyiknek megvan a maga napirendje. Soroljuk fel őket alább.

  • Biztosítás → Új állapotokat hoz létre
  • Frissítések → Állapot tulajdonságainak módosítása
  • Kilépés → Állapotok eltávolítása a főkönyvből

Corda folyik

A Corda Flows a sikeres tranzakció végrehajtásához (végrehajtásához) szükséges a társak számára.

A folyamat meghatározza a CorDapp alap üzleti logikáját. Felelős azért, hogy a tranzakciókat a megfelelő sorrendben és paraméterekben hajtsák végre. Mivel a tranzakciók összetett természetűek, áramlásokra van szükség annak biztosításához, hogy minden a rendeltetésszerűen működjön.

Az áramlásszabályozás biztosítja, hogy mikor kell kommunikálni, mit kell kommunikálni és kivel kell kommunikálni.

Ez teljes ellentéte más elosztott főkönyvi technológiáknak, amelyek a tranzakció részleteinek az egész hálózatra történő közvetítésére összpontosítanak. Corda olyan pontról pontra lebonyolított tranzakciókon boldogul, ahol a tranzakcióknak két fontos paraméternek kell lenniük: a feladónak és a vevőnek.

Kulcsfontosságú dolgok, amelyeket tudnia kell a folyamatokról

  • A folyamatok másodpercek alatt teljesedhetnek, vagy több napig is eltarthatnak
  • Teljesen autonómak
  • A Flow-k alszanak, mielőtt megtalálnák a választ
  • Az áramlások a Flow Framework-et követik, amely mechanizmust biztosít a fejlesztők számára az állapotgépek megfelelő fejlesztésének biztosítására.
  • Az áramlások lehetnek párosak és egyoldalúak is
  • A fejlesztők az alfolyamokat is kódolhatják a kód egyszerűsítése érdekében

Szeretne felvenni egy fokkal és szakértővé válni? Itt van egy útmutató arra, hogyan lehet blokkláncot felépíteni a Pythonban.

Konszenzus

Az eddig izgalmas dolgok közül Corda különlegessége, hogy miként éri el a konszenzust. Corda egyedülálló megközelítéssel rendelkezik, és ezáltal életképessé teszi a kint lévő vállalkozásokat.

Először is, Corda két konszenzusos algoritmust alkalmaz. A következőket tartalmazza

  • Egyedülállósági konszenzus → Ez a konszenzusos módszer biztosítja, hogy soha ne történjen konfliktus a főkönyvön
  • Ellenőrzési konszenzus → A hitelesítési konszenzus kezeli a tranzakciókat, és biztosítja, hogy a szerződés kódja szerint ne történjen ütközés. Megkönnyíti a hálózaton belüli megosztott állapot kialakulását.

Kulcsfontosságú dolgok, amelyeket érdemes megemlíteni a Corda-konszenzusról:

  • Az egyedi konszenzus biztosítja, hogy a főkönyvi frissítések mindig egyediek legyenek. Ezenkívül gondoskodik arról, hogy a főkönyv érvényes legyen a frissítés során.
  • Az ellenőrzési konszenzus biztosítja a frissítés érvényességét.

Corda Node

Corda utolsó szakasza, amelyet itt megvitatunk, a Corda Node. A Corda Node a Corda magas szintű nézete.

Szóval, mi is pontosan a Corda csomópont?

A Corda csomópont olyan entitás, amely a Java virtuális gépben fut. Ez a következőket foglalja magában

  • Tárolási szolgáltatásokat és boltozatokat kínál
  • Az SQL DB támogatja a tárolókat és a tárolási szolgáltatásokat
  • Dedikált mappákat használnak a mellékletek tárolására
  • Egyedi funkcionalitást és beépített kiterjesztéseket kínál CorDapps néven
  • RPC kliens keretrendszert kínál

Így néz ki a Corda csomópont.

Mint látható, minden szükséges szempontot tartalmaz a Corda hálózat futtatásához. Kölcsönhatásba lépnek a flow-val, és egyedi CorDapp funkciókat biztosítanak.

Következtetés

Ez a Corda oktatóanyagunk végéhez vezet. Itt megnéztük a Cordát, és megpróbáltunk megnézni egy IoU CorDapp-ot. Különböző szakaszait a Corda GitHub adattáron elérhető sablonképzés segítségével tárgyaltuk.

Célunk az, hogy elkezdjünk Cordával anélkül, hogy megpróbálnánk elmagyarázni mindent, amit Corda kínál. Ehhez mindig használhatja a Corda dokumentációt. Van egy közelgő tanfolyamunk a Corda fejlesztési bemutatóról is. Mindenképpen ellenőrizze, ha teljes fejlesztési útmutatóra van szüksége.

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