MultiChain 2.1: muutujad ja teegid

Allikasõlm: 1587135

Nutikate filtrite muutmine palju nutikamaks

Täna on meil hea meel välja anda MultiChain 2.1, millel on kaks olulist uut funktsiooni MultiChaini arendajatele.

Poolteist aastat tagasi tutvustati MultiChain 2.0 Nutikad filtrid, mis võimaldavad tehingute ja andmete kinnitamiseks plokiahelasse manustada kohandatud loogikat. Nutikad filtrid on kontseptuaalselt sarnased teiste plokiahela platvormide pakutavate "nutikate lepingutega", kuid neil on erinev disain, mis sobib MultiChaini kiirema tehingumudeliga.

Nutikaid filtreid on kahte tüüpi – tehingufiltrid ja voofiltrid. Tehingufilter kinnitab ahelasisesed tehingud tervikuna, uurides nende sisendeid, väljundeid ja metaandmeid. Kui tehing filtrit ei läbi, lükkavad võrgu kõik sõlmed selle tagasi. Voofilter kinnitab a-le kirjutatud üksikud üksused MultiChaini voog, vaadates nende võtit (võtmeid), avaldajat (väljaandjaid) ja ahelasiseseid või ahelaväliseid andmeid JSON-vormingus, teksti- või kahendvormingus. Kui üksus filtrit ei läbi, märgitakse see kehtetuks ja selle andmed peidavad kõik voo tellitud sõlmed.

Mõlemat tüüpi nutikad filtrid on kirjutatud JavaScriptis ja töötavad Google'i deterministlikus versioonis V8, ülikiire JavaScripti mootor, mis toidab Chrome'i, Node.js'i ja paljusid teisi platvorme. Lihtsaid filtreid on lihtne kodeerida ja mõista – näiteks siin on voofilter, mis kinnitab, et üksustel on vähemalt kaks võtit.

function filterstreamitem() { var item=getfilterstreamitem(); // tagasihelistamise funktsioon if (item.keys.length2) return "Vaja on vähemalt kahte võtit"; }

Üldiselt oleme saanud nutikate filtrite kohta head tagasisidet, kuid oleme korduvalt kuulnud ka kahest viisist, kuidas saaksime neid veelgi paremaks muuta. Esiteks soovivad paljud kasutajad filtreid, mis suudavad lugeda teavet, mis on plokiahelas, kuid mitte valideeritava tehingu või vooüksuse sees. Kasutusjuhtumid hõlmavad muutuvat lubatud riikide loendit, välise "oraakli" pakutavaid vahetuskursse või lülitit teatud reeglite ümberlülitamiseks.

Teiseks soovivad mõned arendajad kasutada JavaScripti funktsioonide komplekti mitmes filtris ilma koodi dubleerimata. Samuti soovivad nad neid funktsioone värskendada, viga parandada või uusi olukordi katta, ilma et nad oma olemasolevaid filtreid keelaks ja asemele uusi luuaks. Näiteks võib jagatud kood sisaldada rakendusepõhist loogikat, kolmanda osapoole teeki JSON-ide kinnitamiseks või PDF-i sisu sõelumiseks.

MultiChain 2.1 tutvustab kahte uut tüüpi ahelasisest olemit, muutujad ja raamatukogud, et vastata nendele vajadustele.

Muutujad

Alustame MultiChaini muutujatega. Need töötavad üsna sarnaselt tavaliste programmeerimiskeeltega, kuid plokiahela keerdusega. Plokiahelas saab luua suvalise arvu nimega muutujaid. Igal muutujal on dünaamiline aadresside komplekt, millel on lubatud selle väärtust värskendada, ja seda komplekti haldab üks või mitu muutuja administraatorit (vaikimisi ainult muutuja looja). Muutujad luuakse või värskendatakse plokiahela tehingus, mida saab saata lihtsa kõrgetasemelise API-käsuga. Teise võimalusena saab madalama taseme API-sid kasutada keerukate tehingute koostamiseks, mis määravad ühe või mitu muutujat, kirjutavad vooüksusi, edastavad varasid, muudavad õigusi ja nii edasi.

Muutuja väärtus ise võib sisaldada mis tahes JSON-struktuuri, sealhulgas numbreid, stringe, tõeväärtusi, pesastatud objekte ja massiive, ning see salvestatakse ahelasse UBJSON serialiseerimisvorming. Muidugi saavad nutikad filtrid lihtsa tagasihelistamise funktsiooni abil küsida muutuja praegust väärtust. Kuid kuna see on plokiahel, on saadaval ka muutuja väärtuste ja kirjutajate täielik ajalugu ning seda saab osaliselt või täielikult hankida mõne teise tagasihelistamise funktsiooni abil. Arendamise hõlbustamiseks on need tagasihelistamised saadaval ka rakendusele suunatud API kaudu.

Raamatukogud

Liigume edasi raamatukogude juurde, mis on muutujate suurem õde. Nagu muutujate puhul, saab plokiahelas luua suvalise arvu nimega teeke. Kuid raamatukogudel on värskendamiseks rikkalikum mudel kolme saadaoleva režiimiga – muutumatu, kiireja heakskiitmisele kuuluv.

Kord an muutumatu teek luuakse, ei saa selle koodi kunagi muuta. Raamatukogu koos kiire värskendusi saab muuta nagu muutujat, kasutades aadresside komplekti, mis võivad selle koodi individuaalselt asendada. Aga raamatukogus koos heakskiitmisele kuuluv uuendusi rakendatakse alles pärast seda, kui teatud osa plokiahela globaalsetest administraatoritest on selle heaks kiitnud. See viimane režiim pakub suurepärast kompromissi turvalisuse ja paindlikkuse vahel.

Teegi kood on kirjutatud tavalises JavaScriptis ja see määrab ühe või mitu funktsiooni nutikate filtrite jaoks. Nagu muutujate puhul, luuakse või värskendatakse teeke spetsiaalse tehinguga, mis saadetakse lihtsalt API abil. Nutika filtri loomisel esitatakse selle nõutavad teegid valikulises parameetris. Teek töötab alati selle filtri kontekstis, mis seda nõuab, nii et see saab vajaduse korral kasutada nutika filtri tagasihelistusi. MultiChain pakub enne plokiahelas muudatuste tegemist ulatuslikke funktsioone teekide ja nende värskenduste kohapeal testimiseks (ja tagasipööramiseks).

Pakkige see üles

Nagu kõigi plokiahela reeglitega seotud funktsioonide puhul, on muutujad ja teegid saadaval nii MultiChain 2.1 kogukonna kui ka ettevõtte väljaannetes. Meie arendaja dokumentatsioon sisaldab uue üksikasjalikku kirjeldust JSON-RPC API-d ja Nutika filtri tagasihelistamised saadaval. Uute funktsioonide kasutamiseks juba töötavas plokiahelas migreerige esmalt sõlmed versioonile MultiChain 2.1 ja seejärel upgrade keti protokoll versioonile 20012.

Mis siis edasi saab? Järgmistel kuudel keskendume üksikasjalikule ja intensiivsele kapotialusele tööle, et parandada MultiChaini jõudlust ja samaaegsust, kui see on olulise koormuse all. See suurendab nende rakenduste reageerimisvõimet, mis peavad sõlme kohta päringuid tegema, samal ajal kui see jätkab sadade või tuhandete uute tehingute töötlemist sekundis.

Seniks aga soovime kõik MultiChaini meeskonnast oma kasutajatele ja klientidele tervist ja mõistust eelseisvaks aastaks. Teame, et praegu on kõigi jaoks rasked ajad ja ootame naasmist tavapärase koosolekute ja konverentside rütmi juurde niipea, kui see on ohutu.

Palun postitage kõik kommentaarid LinkedIn.

Ajatempel:

Veel alates Mitmeharuline