MultiChain 2.1: Muuttujat ja kirjastot

Lähdesolmu: 1587135

Älykkäiden suodattimien tekeminen paljon älykkäämpiä

Tänään on ilo julkaista MultiChain 2.1, jossa on kaksi tärkeää uutta ominaisuutta MultiChain-kehittäjille.

Puolitoista vuotta sitten, MultiChain 2.0 esitteli Älykkäät suodattimet, jotka mahdollistavat mukautetun logiikan upottamisen lohkoketjuun tapahtumien ja tietojen vahvistamiseksi. Älykkäät suodattimet ovat käsitteellisesti samanlaisia ​​kuin muiden blockchain-alustojen tarjoamat "älykkäät sopimukset", mutta niillä on erilainen muotoilu, joka sopii MultiChainin nopeampaan tapahtumamalliin.

Älykkäitä suodattimia on kahta eri tyyppiä - tapahtumasuodattimet ja virtaussuodattimet. Tapahtumasuodatin validoi ketjutapahtumat kokonaisuudessaan tutkimalla niiden panoksia, tuotoksia ja metatietoja. Jos tapahtuma ei läpäise suodatinta, kaikki verkon solmut hylkäävät sen. Stream-suodatin tarkistaa yksittäiset a-kohtaan kirjoitetut kohteet MultiChain-virtatarkastelemalla avaimiaan, julkaisijoitaan ja ketjussa tai ketjussa olevia tietoja JSON-muodossa, teksti- tai binaarimuodossa. Jos kohde ei läpäise suodatinta, se merkitään virheelliseksi ja kaikki tiedot piilotetaan jokaiselle streamiin tilatulle solmulle.

Molemmat Smart Filter -tyypit on kirjoitettu JavaScriptiä ja ne toimivat Googlen deterministisessä versiossa V8, erittäin nopea JavaScript-moottori, joka käyttää Chromea, Node.js: ää ja monia muita alustoja. Yksinkertaiset suodattimet on helppo koodata ja ymmärtää - tässä on esimerkiksi stream-suodatin, joka vahvistaa, että kohteissa on vähintään kaksi avainta:

function filterstreamitem() { var item=getfilterstreamitem(); // takaisinsoittotoiminto if (item.keys.length2) return "Vaaditaan vähintään kaksi avainta"; }

Kaiken kaikkiaan meillä on ollut hyvä palaute älykkäistä suodattimista, mutta olemme myös kuulleet toistuvasti kahdesta tapasta, joilla voimme parantaa niitä entisestään. Ensinnäkin monet käyttäjät haluavat suodattimia, jotka voivat lukea tietoja, jotka ovat lohkoketjussa mutta eivät validoitavan tapahtuman tai suoratoiston kohteena. Käyttötapauksiin sisältyy muuttuvien sallittujen maiden luettelo, ulkoisen "oraakelin" tarjoama valuuttakurssi tai kytkin tiettyjen sääntöjen vaihtamiseksi.

Toiseksi jotkut kehittäjät haluavat käyttää joukkoa JavaScript-toimintoja useissa suodattimissa ilman päällekkäistä koodia. He haluavat myös pystyä päivittämään nämä toiminnot, korjaamaan virheen tai kattamaan joitain uusia tilanteita poistamatta käytöstä olemassa olevia suodattimia ja luomatta uusia. Esimerkiksi jaettu koodi voi sisältää sovelluskohtaisen logiikan, kolmannen osapuolen kirjaston JSON-tiedostojen vahvistamiseksi tai PDF-sisällön jäsentämiseksi.

MultiChain 2.1 esittelee kaksi uutta ketjujen tyyppiä, muuttujat ja kirjastot, vastaamaan näihin tarpeisiin.

Muuttujat

Aloitetaan MultiChain-muuttujista. Nämä toimivat aivan kuten tavallisilla ohjelmointikielillä, mutta blockchain-kierteellä. Lohkoketjuun voidaan luoda mikä tahansa määrä nimettyjä muuttujia. Jokaisella muuttujalla on dynaaminen osoitesarja, jonka sallitaan päivittää arvo, ja tätä joukkoa hallinnoi yksi tai useampi muuttujan järjestelmänvalvoja (oletusarvoisesti vain muuttujan luoja). Muuttujat luodaan tai päivitetään lohkoketjutapahtumassa, joka voidaan lähettää yksinkertaisen korkean tason API-komennon avulla. Vaihtoehtoisesti alemman tason sovellusliittymiä voidaan käyttää monimutkaisten tapahtumien rakentamiseen, jotka asettavat atomisesti yhden tai useamman muuttujan, kirjoittavat stream-kohteita, siirtävät resursseja, muuttavat käyttöoikeuksia ja niin edelleen.

Muuttujaarvo itsessään voi sisältää minkä tahansa JSON-rakenteen, mukaan lukien numerot, merkkijonot, booleanit, sisäkkäiset objektit ja taulukot, ja se tallennetaan ketjuun tehokkaaseen UBJSON sarjallisuusmuoto. Tietysti älykkäät suodattimet voivat kysellä muuttujan nykyistä arvoa yksinkertaisen soittopyynnön avulla. Mutta koska tämä on estoketju, muuttujan arvojen ja kirjoittajien koko historia on myös käytettävissä, ja se voidaan hakea osittain tai kokonaan toisella soittopyynnöllä. Kehityksen helpottamiseksi nämä takaisinkutsut ovat saatavilla myös sovellusta käyttävän sovellusliittymän kautta.

kirjastot

Siirrytään kirjastoihin, jotka ovat muuttujien isompi sisarus. Kuten muuttujien kohdalla, lohkoketjuun voidaan luoda mikä tahansa määrä nimettyjä kirjastoja. Kirjastoilla on kuitenkin rikkaampi päivitysmalli, jossa on kolme käytettävissä olevaa tilaa - muuttumaton, välitönja edellyttää hyväksyntää.

Kerran muuttumaton kirjasto on luotu, sen koodia ei voi koskaan muuttaa. Kirjasto, jossa on välitön päivityksiä voidaan muuttaa kuten muuttujaa, joukolla osoitteita, jotka voivat erikseen korvata sen koodin. Mutta kirjastossa edellyttää hyväksyntää päivitykset, päivitystä käytetään vasta sen jälkeen, kun tietty osa blockchainin globaaleista järjestelmänvalvojista on hyväksynyt sen. Tämä viimeinen tila tarjoaa suuren kompromissin turvallisuuden ja joustavuuden välillä.

Kirjaston koodi kirjoitetaan tavallisessa JavaScript-koodissa, ja se määrittelee yhden tai useamman toiminnon älykkäille suodattimille käytettäväksi. Kuten muuttujien kohdalla, kirjastot luodaan tai päivitetään erityisessä tapahtumassa, ja ne lähetetään helposti API: n avulla. Kun älykäs suodatin luodaan, sen tarvittavat kirjastot annetaan sitten valinnaisessa parametrissa. Kirjasto toimii aina sitä tarvitsevan suodattimen yhteydessä, joten se voi käyttää Smart Filter -puheluita tarvittaessa. MultiChain tarjoaa laajan toiminnallisuuden kirjastojen ja niiden päivitysten testaamiseen (ja palauttamiseen) ennen muutosta lohkoketjuun.

Kääritään se ylös

Kuten kaikki lohkoketjun sääntöihin liittyvät ominaisuudet, muuttujat ja kirjastot ovat saatavilla sekä yhteisö- että yritysversioissa MultiChain 2.1: ssä. Kehittäjän dokumentaatio sisältää yksityiskohtaisen kuvauksen uudesta JSON-RPC-sovellusliittymät ja Älykäs suodatin -soittopyynnöt saatavilla. Jos haluat käyttää jo käynnissä olevan lohkoketjun uusia ominaisuuksia, siirrä solmut ensin MultiChain 2.1: een ja sitten parantaa ketjun protokolla versioon 20012.

Mitä seuraavaksi? Tulevien kuukausien aikana keskitymme yksityiskohtaiseen ja intensiiviseen hupun alla olevaan työhön parantamaan MultiChainin suorituskykyä ja samanaikaisuutta, kun se on merkittävällä kuormituksella. Tämä lisää niiden sovellusten reagointikykyä, joiden on kysyttävä solmulta, samalla kun se jatkaa satojen tai tuhansien uusien tapahtumien käsittelyä sekunnissa.

Sillä välin me kaikki MultiChain-tiimissä toivomme käyttäjillemme ja asiakkaillemme terveyttä ja tervettä tulevaa vuotta. Tiedämme, että nämä ovat vaikeita aikoja kaikille, ja odotamme palaavan normaaliin kokousten ja konferenssien rytmiin heti, kun se on turvallista.

Ole hyvä ja lähetä kommentit LinkedIn.

Aikaleima:

Lisää aiheesta moniketjuisille