MultiChain 2.1: Spremenljivke in knjižnice

Izvorno vozlišče: 1587135

Pametni filtri so precej pametnejši

Danes smo z veseljem izdali MultiChain 2.1 z dvema pomembnima novostma za razvijalce MultiChain.

Pred letom in pol je bil predstavljen MultiChain 2.0 Pametni filtri, ki omogočajo vdelavo logike po meri v verigo blokov za preverjanje veljavnosti transakcij in podatkov. Pametni filtri so pojmovno podobni "pametnim pogodbam", ki jih zagotavljajo druge platforme blockchain, vendar imajo drugačno zasnovo, da ustrezajo hitrejšemu transakcijskemu modelu MultiChain.

Pametni filtri so na voljo v dveh različicah - filtri za transakcije in filtri za tok. Transakcijski filter potrdi transakcije v verigi v celoti s preučitvijo njihovih vhodnih, izhodnih in metapodatkov. Če transakcija ne prenese filtra, jo zavrne vsako vozlišče v omrežju. Filter toka preveri posamezne postavke, zapisane v Tok MultiChain, ki si ogledujejo njihove ključe, založnike in podatke v verigi ali zunaj njih v obliki JSON, besedilu ali binarni obliki. Če element ne prenese filtra, je označen kot neveljaven, njegovo vozlišče pa skrije vsako vozlišče, naročeno na tok.

Obe vrsti pametnega filtra sta napisani v jeziku JavaScript in delujeta v deterministični različici Googla V8, super hiter motor JavaScript, ki poganja Chrome, Node.js in številne druge platforme. Preproste filtre je enostavno kodirati in razumeti - tukaj je na primer filter pretoka, ki potrdi, da imajo elementi vsaj dva ključa:

funkcija filterstreamitem() { var item=getfilterstreamitem(); // funkcija povratnega klica if (item.keys.length2) vrne "Potrebna sta vsaj dva ključa"; }

Na splošno smo imeli odlične povratne informacije o pametnih filtrih, vendar smo že večkrat slišali o dveh načinih, kako bi jih lahko izboljšali. Prvič, mnogi uporabniki želijo filtre, ki lahko berejo informacije, ki so v verigi blokov, ne pa tudi med elementom transakcije ali toka, ki se preverja. Primeri uporabe vključujejo spreminjajoč se seznam dovoljenih držav, menjalne tečaje, ki jih zagotavlja zunanji "oracle", ali stikalo za preklop nekaterih pravil.

Drugič, nekateri razvijalci želijo uporabiti nabor funkcij JavaScript v več filtrih, ne da bi podvajali kodo. Želijo si tudi posodobiti te funkcije, odpraviti napako ali pokriti nekatere nove situacije, ne da bi onemogočili svoje obstoječe filtre in namesto njih ustvarili nove. Koda v skupni rabi lahko na primer vsebuje logiko, specifično za aplikacijo, neodvisno knjižnico za preverjanje veljavnosti JSON-jev ali razčlenjevanje vsebine PDF-ja.

MultiChain 2.1 uvaja dve novi vrsti entitete v verigi, spremenljivke in knjižnice, da bi odgovorili na te potrebe.

Spremenljivke

Začnimo s spremenljivkami MultiChain. Ti delujejo podobno kot tisti v običajnih programskih jezikih, vendar z zvijanjem blokov. Na verigi blokov je mogoče ustvariti poljubno število imenovanih spremenljivk. Vsaka spremenljivka ima dinamični nabor naslovov, ki ji je dovoljeno posodabljanje vrednosti, in ta nabor upravlja eden ali več skrbnikov spremenljivk (privzeto samo ustvarjalec spremenljivke). Spremenljivke se ustvarijo ali posodobijo v transakciji verige blokov, ki jo je mogoče poslati s preprostim ukazom API na visoki ravni. Namesto tega lahko API-je nižje ravni uporabimo za izdelavo zapletenih transakcij, ki atomsko nastavijo eno ali več spremenljivk, zapisujejo elemente toka, prenašajo sredstva, spreminjajo dovoljenja itd.

Vrednost spremenljivke lahko vsebuje katero koli strukturo JSON, vključno s številkami, nizi, logičnimi vrednostmi, ugnezdenimi predmeti in nizi in je v učinkoviti obliki shranjena v učinkoviti UBJSON format serializacije. Seveda lahko pametni filtri poiščejo trenutno vrednost spremenljivke s preprosto funkcijo povratnega klica. Ker pa gre za verigo blokov, je na voljo tudi celotna zgodovina vrednosti in zapisovalcev spremenljivke, ki jo je mogoče delno ali v celoti pridobiti z drugo funkcijo povratnega klica. Za lažji razvoj so ti povratni klici na voljo tudi prek aplikacijskega API-ja.

Knjižnice

Pojdimo k knjižnicam, ki so večji brat spremenljivk. Tako kot pri spremenljivkah je tudi v verigi blokov mogoče ustvariti poljubno število poimenovanih knjižnic. Toda knjižnice imajo bogatejši model posodabljanja s tremi razpoložljivimi načini - nespremenljiv, instantin predmet odobritve.

Enkrat nespremenljiv knjižnica je ustvarjena, njene kode ni mogoče spremeniti. Knjižnica z instant posodobitve lahko spremenite kot spremenljivko z naborom naslovov, ki lahko posamezno nadomestijo njeno kodo. Toda v knjižnici z predmet odobritve posodobitve se posodobijo šele po odobritvi določenega dela globalnih skrbnikov blockchaina. Ta zadnji način omogoča velik kompromis med varnostjo in prilagodljivostjo.

Koda za knjižnico je napisana v običajnem JavaScriptu in določa eno ali več funkcij za uporabo pametnih filtrov. Tako kot pri spremenljivkah se tudi knjižnice ustvarjajo ali posodabljajo v posebni transakciji, ki se enostavno pošljejo z API-jem. Ko se ustvari pametni filter, so njegove obvezne knjižnice na voljo v neobveznem parametru. Knjižnica se vedno izvaja v kontekstu filtra, ki ga zahteva, zato lahko po potrebi uporabi povratne klice pametnega filtra. MultiChain ponuja obsežno funkcionalnost za lokalno testiranje (in pomikanje nazaj) knjižnic in njihovih posodobitev, preden spremeni verigo blokov.

Zaviti

Kot pri vseh funkcijah, povezanih s pravili verig blokov, so tudi spremenljivke in knjižnice na voljo v izdajah MultiChain 2.1 v skupnosti in v podjetjih. Naša dokumentacija za razvijalce vsebuje podroben opis novega API-ji JSON-RPC in Povratne klice pametnega filtra na voljo. Če želite uporabiti nove funkcije v verigi blokov, ki se že izvaja, najprej prenesite vozlišča na MultiChain 2.1, nato nadgradnja protokol verige do različice 20012.

Torej, kaj je naslednje? V prihodnjih mesecih se bomo osredotočili na nekaj podrobnih in intenzivnih del, da bi izboljšali zmogljivost in sočasnost MultiChain, medtem ko je pod precejšnjo obremenitvijo. To bo povečalo odzivnost aplikacij, ki morajo poizvedovati po vozlišču, medtem ko še naprej obdeluje stotine ali tisoče novih transakcij na sekundo.

V tem času vsi v skupini MultiChain želimo svojim uporabnikom in strankam zdravje in zdravje za prihodnje leto. Vemo, da so to težki časi za vse, in se veselimo vrnitve v običajni ritem sestankov in konferenc, takoj ko bo varno.

Prosimo, pošljite kakršne koli pripombe na LinkedIn.

Časovni žig:

Več od Večnamenska veriga