MultiChain 2.1: Változók és könyvtárak

Forrás csomópont: 1587135

Az intelligens szűrők sokkal okosabbá tétele

Ma nagy örömünkre kiadjuk a MultiChain 2.1-et, amely két fontos új funkcióval rendelkezik a MultiChain fejlesztők számára.

Másfél éve mutatkozott be a MultiChain 2.0 Intelligens szűrők, amelyek lehetővé teszik egyéni logika beágyazását egy blokkláncba a tranzakciók és adatok érvényesítéséhez. Az intelligens szűrők elvileg hasonlóak a többi blokklánc platform által biztosított „intelligens szerződésekhez”, de eltérő kialakításúak, hogy illeszkedjenek a MultiChain gyorsabb tranzakciós modelljéhez.

Az intelligens szűrőknek két változata van – tranzakciószűrők és adatfolyamszűrők. A tranzakciószűrő a láncon belüli tranzakciókat teljes egészében érvényesíti, megvizsgálja bemeneteiket, kimeneteiket és metaadataikat. Ha egy tranzakció nem megy át a szűrőn, azt a hálózat minden csomópontja elutasítja. A folyamszűrő érvényesíti az a-ba írt egyes elemeket MultiChain stream, a kulcs(ok), a kiadó(k) és a láncon belüli vagy a láncon kívüli adatok megtekintése JSON, szöveges vagy bináris formátumban. Ha egy elem nem megy át a szűrőn, akkor a rendszer érvénytelennek jelöli, és az adatfolyamra előfizetett összes csomópont elrejti az adatait.

Mindkét típusú intelligens szűrő JavaScriptben íródott, és a Google determinisztikus verziójában fut V8, a szupergyors JavaScript-motor, amely a Chrome-ot, a Node.js-t és sok más platformot működteti. Az egyszerű szűrőket könnyű kódolni és megérteni – például itt van egy adatfolyamszűrő, amely ellenőrzi, hogy az elemeknek legalább két kulcsa van-e:

function filterstreamitem()
{
    var item=getfilterstreamitem(); // callback function
    if (item.keys.length2)
        return "At least two keys required";
}

Összességében nagyszerű visszajelzéseket kaptunk az intelligens szűrőkkel kapcsolatban, de többször is hallottunk arról, hogy kétféleképpen is javíthatjuk őket. Először is sok felhasználó olyan szűrőket szeretne, amelyek képesek olvasni a blokkláncon lévő információkat, de nem az érvényesített tranzakción vagy adatfolyamon belül. A használati esetek közé tartozik az engedélyezett országok változó listája, egy külső „orákulum” által biztosított árfolyam, vagy egy kapcsoló bizonyos szabályok átváltására.

Másodszor, egyes fejlesztők JavaScript-függvényeket akarnak használni több szűrőben anélkül, hogy kódot duplikálnának. Azt is szeretnék elérni, hogy frissítsék ezeket a funkciókat, javítsanak egy hibát vagy lefedjenek néhány új helyzetet anélkül, hogy letiltják a meglévő szűrőket és újakat hoznak létre helyettük. Például a megosztott kód tartalmazhat alkalmazás-specifikus logikát, harmadik féltől származó könyvtárat a JSON-ok érvényesítésére vagy a PDF-fájlok tartalmának elemzésére.

MultiChain 2.1 két új típusú on-chain entitást vezet be, változók és a könyvtárak, hogy megfeleljen ezeknek az igényeknek.

Változók

Kezdjük a MultiChain változókkal. Ezek ugyanúgy működnek, mint a hagyományos programozási nyelvek, csak egy blokklánc csavarral. A blokkláncon tetszőleges számú elnevezett változó létrehozható. Minden változónak van egy dinamikus címkészlete, amely frissítheti az értékét, és ezt a készletet egy vagy több változó adminisztrátora kezeli (alapértelmezés szerint csak a változó létrehozója). A változók létrehozása vagy frissítése egy blokklánc-tranzakcióban történik, amelyet egy egyszerű, magas szintű API paranccsal lehet elküldeni. Alternatív megoldásként az alacsonyabb szintű API-k használhatók olyan összetett tranzakciók létrehozására, amelyek egy vagy több változót atomizáltan állítanak be, adatfolyamelemeket írnak, eszközöket továbbítanak, engedélyeket módosítanak stb.

Maga a változó értéke bármilyen JSON-struktúrát tartalmazhat, beleértve a számokat, karakterláncokat, logikai értékeket, beágyazott objektumokat és tömböket, és a láncon tárolja a hatékony UBJSON szerializációs formátum. Természetesen az intelligens szűrők egy egyszerű visszahívási funkció segítségével lekérdezhetik egy változó aktuális értékét. De mivel ez egy blokklánc, a változó értékeinek és íróinak teljes története is elérhető, és részben vagy teljes egészében lekérhető egy másik visszahívási funkcióval. A fejlesztés megkönnyítése érdekében ezek a visszahívások az alkalmazásra néző API-n keresztül is elérhetők.

könyvtárak

Térjünk át a könyvtárakra, amelyek a változók nagyobb testvérei. A változókhoz hasonlóan a blokkláncon tetszőleges számú elnevezett könyvtár hozható létre. A könyvtárak azonban gazdagabb modellel rendelkeznek a frissítéshez, három elérhető móddal – változhatatlan, azonnaliés jóváhagyás tárgyát képezi.

Egyszer egy változhatatlan könyvtár létrejön, kódja soha nem módosítható. Egy könyvtár azonnali a frissítések változóként változtathatók, olyan címkészlettel, amely egyenként helyettesítheti a kódját. De egy könyvtárban jóváhagyás tárgyát képezi frissítések esetén a frissítés csak akkor kerül alkalmazásra, ha azt a blokklánc globális rendszergazdáinak bizonyos hányada jóváhagyta. Ez az utolsó mód nagyszerű kompromisszumot biztosít a biztonság és a rugalmasság között.

A könyvtár kódja normál JavaScriptben van írva, és egy vagy több funkciót határoz meg az intelligens szűrők számára. A változókhoz hasonlóan a könyvtárak is egy speciális tranzakció során jönnek létre vagy frissülnek, és könnyen elküldhetők az API segítségével. Intelligens szűrő létrehozásakor a szükséges könyvtárak egy opcionális paraméterben jelennek meg. A könyvtár mindig az azt igénylő szűrő környezetében fut, így adott esetben használhatja az intelligens szűrő visszahívásait. A MultiChain kiterjedt funkcionalitást biztosít a könyvtárak és azok frissítéseinek helyi teszteléséhez (és visszagörgetéséhez), mielőtt változtatásokat hajtana végre a blokkláncon.

Csomagolás

Mint minden, a blokklánc szabályaival kapcsolatos szolgáltatás, a változók és a könyvtárak a MultiChain 2.1 közösségi és vállalati kiadásában is elérhetők. Fejlesztői dokumentációnk részletes leírást ad az újdonságról JSON-RPC API-k és a Intelligens szűrő visszahívások elérhető. Az új funkciók használatához egy már futó blokkláncon először migrálja át a csomópontokat a MultiChain 2.1-re, majd frissítés a lánc protokollja a 20012-es verzióhoz.

Szóval mi a következő? Az elkövetkező hónapokban néhány részletes és intenzív motorháztető alatti munkára fogunk összpontosítani, hogy javítsuk a MultiChain teljesítményét és párhuzamosságát, miközben az jelentős terhelés alatt áll. Ez növeli azoknak az alkalmazásoknak a válaszkészségét, amelyeknek le kell kérdezniük egy csomópontot, miközben az továbbra is több száz vagy több ezer új tranzakciót dolgoz fel másodpercenként.

Addig is mindannyian, a MultiChain csapatában jó egészséget és józanságot kívánunk felhasználóinknak és ügyfeleinknek az elkövetkező évre. Tudjuk, hogy mindenki számára nehéz idők járnak, és alig várjuk, hogy visszatérjünk a találkozók és konferenciák szokásos ritmusához, amint biztonságos.

Kérjük, tegye meg észrevételeit a LinkedIn.

Időbélyeg:

Még több többláncos