ApskatÄ«sim Corda galvenÄs iezÄ«mes un tÄs unikalitÄti starp citÄm blokÄ·ÄdÄm:
- Corda nav savas kriptovalūtas.
- Corda neizmanto ieguves jÄdzienu un Proof-of-Work sistÄmu.
- Datu pÄrsÅ«tÄ«Å”ana notiek tikai starp darÄ«juma/lÄ«guma pusÄm. Nav globÄlas apraides uz visiem tÄ«kla mezgliem.
- Nav centrÄlÄ kontroliera, kas pÄrvaldÄ«tu visus darÄ«jumus.
- Corda atbalsta dažÄdus vienprÄtÄ«bas mehÄnismus.
- Konsenss starp dalÄ«bniekiem tiek panÄkts individuÄlas vienoÅ”anÄs/lÄ«guma lÄ«menÄ«, nevis visas sistÄmas lÄ«menÄ«.
- Darījumu apstiprina tikai ar to saistītie dalībnieki.
- Corda piedÄvÄ tieÅ”u saikni starp formÄlo cilvÄku juridisko valodu un viedo lÄ«guma kodu.
VirsgrÄmata
VirsgrÄmatas jÄdziens Corda ir subjektÄ«vs. Nav vienas centrÄlÄs datu repozitorija. TÄ vietÄ katrs mezgls uztur atseviŔķu tam zinÄmo faktu datubÄzi.
PiemÄram, iedomÄjieties 5 mezglu tÄ«klu, kur aplis ir mezglam zinÄms fakts.
KÄ redzam, Eds, KÄrlis un Demija zina par 3. faktu, bet Alise un Bobs to pat neapzinÄs. Corda garantÄ, ka katra mezgla datu bÄzÄ tiek glabÄti kopÄ«gi fakti un dati bÅ«s identiski.
Å tatos
Valsts ir nemainÄ«gs objekts, kas attÄlo faktu, kas ir zinÄms vienam vai vairÄkiem tÄ«kla mezgliem noteiktÄ laika brÄ«dÄ«.
Valstis var uzglabÄt patvaļīgus datus, piemÄram, akcijas, obligÄcijas, aizdevumus, identifikÄcijas informÄciju.
PiemÄram, Å”Äds stÄvoklis apzÄ«mÄ IOU ā vienoÅ”anos, ka Alise ir parÄdÄ Bobam X:
Fakta dzÄ«ves ciklu laika gaitÄ attÄlo stÄvokļu secÄ«ba. Kad ir nepiecieÅ”ams atjauninÄt paÅ”reizÄjo stÄvokli, mÄs izveidojam jaunu un atzÄ«mÄjam paÅ”reizÄjo kÄ vÄsturisku.
Darījumi
DarÄ«jumi ir priekÅ”likumi atjauninÄt virsgrÄmatu. Tie netiek pÄrraidÄ«ti visiem virsgrÄmatas dalÄ«bniekiem un ir pieejami tikai tiem tÄ«kla dalÄ«bniekiem, kuriem ir likumÄ«gas tiesÄ«bas tos skatÄ«t un pÄrvaldÄ«t.
DarÄ«jums tiks pievienots virsgrÄmatai, ja:
- lÄ«gumÄ spÄkÄ esoÅ”s
- parakstījuŔi visi nepiecieŔamie dalībnieki
- nesatur dubultus tÄriÅus
Corda izmanto UTXO (neiztÄrÄtÄs transakcijas izvades) modeli, kurÄ katrs virsgrÄmatas stÄvoklis ir nemainÄ«gs.
Kad transakcija ir izveidota, iepriekÅ”ÄjÄ darÄ«juma izvades stÄvoklis (pÄc jaukÅ”anas un indeksa) tiek pÄrsÅ«tÄ«ts uz ievadi.
Darījuma dzīves cikls:
- IzveidoÅ”ana (Å”obrÄ«d darÄ«jums ir tikai priekÅ”likums atjauninÄt virsgrÄmatu)
- VÄc parakstus (darÄ«juma obligÄtÄs puses apstiprina atjauninÄÅ”anas priekÅ”likumu, pievienojot darÄ«jumam parakstu)
- ApstiprinÄt darÄ«jumu virsgrÄmatÄ
Kad transakcija ir pievienota virsgrÄmatai, ievades stÄvokļi tiek atzÄ«mÄti kÄ vÄsturiski, un tos nevar izmantot turpmÄkajÄs transakcijÄs.
Papildus ievades un izvades stÄvokļiem darÄ«jums var ietvert:
- Komandas (darÄ«juma parametrs, kas norÄda darÄ«juma mÄrÄ·i)
- Pielikumi (svÄtku kalendÄrs, valÅ«tas konvertÄtÄjs)
- Laika logi (derÄ«guma termiÅÅ”)
- NotÄrs (NotÄrs, speciÄli tÄ«kla dalÄ«bnieki, kas apstiprina darÄ«jumus)
LÄ«gumi
RunÄjot par darÄ«juma spÄkÄ esamÄ«bu, mÄs domÄjam ne tikai nepiecieÅ”amo parakstu esamÄ«bu, bet arÄ« lÄ«guma spÄkÄ esamÄ«bu. Katrs darÄ«jums ir saistÄ«ts ar lÄ«gumu, kas to pieÅem un apstiprina ievades un izvades stÄvokļus. DarÄ«jums tiek uzskatÄ«ts par derÄ«gu tikai tad, ja ir spÄkÄ visi tÄ stÄvokļi.
LÄ«gumi programmÄ Corda tiek rakstÄ«ti jebkurÄ JVM valodÄ (piemÄram, Java, Kotlin).
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
Ir nepiecieÅ”ams mantot no klases LÄ«gums un ignorÄt metodi pÄrbaudÄ«t. Ja darÄ«jums ir nederÄ«gs, tiks piemÄrots izÅÄmums.
DarÄ«juma validÄcijai jÄbÅ«t deterministiskai, t.i. lÄ«gumÄ vienmÄr ir vai nu jÄpieÅem vai jÄnoraida darÄ«jums. SaistÄ«bÄ ar to darÄ«juma derÄ«gums nevar bÅ«t atkarÄ«gs no laika, nejauÅ”iem skaitļiem, resursdatora failiem utt.
KordÄ lÄ«gumi tiek izpildÄ«ti tÄ sauktajÄ smilÅ”u kastÄ ā nedaudz pÄrveidotÄ JVM, kas garantÄ deterministisku lÄ«gumu izpildi.
Straumes
Lai automatizÄtu saziÅu starp tÄ«kla mezgliem, tika pievienoti pavedieni.
PlÅ«sma ir darbÄ«bu secÄ«ba, kas norÄda mezglam, kÄ veikt konkrÄtu virsgrÄmatas atjauninÄÅ”anu un kurÄ brÄ«dÄ« transakcija ir jÄparaksta un jÄapstiprina.
Dažreiz paiet stundas, dienas, lÄ«dz darÄ«jumu paraksta visas puses un tas nokļūst virsgrÄmatÄ. Kas notiek, ja atvienojat mezglu, kas piedalÄs darÄ«jumÄ? Pavedieniem ir kontrolpunkti, kuros pavediena stÄvoklis tiek ierakstÄ«ts mezgla datu bÄzÄ. Kad mezgls tiek atjaunots tÄ«klÄ, tas turpinÄs tur, kur tas tika pÄrtraukts.
VienprÄtÄ«ba
Lai iekļūtu virsgrÄmatÄ, darÄ«jumam ir jÄsasniedz 2 vienprÄtÄ«bas: derÄ«gums un unikalitÄte.
LÄmumu par darÄ«juma spÄkÄ esamÄ«bu pieÅem tikai tajÄ tieÅ”i iesaistÄ«tÄs puses.
NotÄru mezgli pÄrbauda darÄ«juma unikalitÄti un novÄrÅ” dubultu tÄriÅu.
IedomÄsimies, ka Bobam ir 100 ASV dolÄri un viÅÅ” vÄlas pÄrskaitÄ«t 80 ASV dolÄrus ÄÄrlijam un 70 $ Danam, izmantojot to paÅ”u ievades stÄvokli.
Corda neļaus jums izvilkt Å”Ädu triku. Lai gan darÄ«jums izturÄs derÄ«guma pÄrbaudi, unikalitÄtes pÄrbaude neizdosies.
SecinÄjums
Corda platforma, ko izstrÄdÄjis R3 blokÄ·Ädes konsorcijs, nav tÄ«rs blokÄ·Ädes tehnoloÄ£ijas izmantoÅ”anas gadÄ«jums. Corda ir ļoti specializÄts rÄ«ks finanÅ”u iestÄdÄm.
Avots: www.habr.com