MultiChain 2.1: Variabler og biblioteker

Kilde node: 1587135

Gjør smarte filtre mye smartere

I dag er vi glade for å slippe MultiChain 2.1, med to viktige nye funksjoner for MultiChain-utviklere.

For halvannet år siden introduserte MultiChain 2.0 Smarte filtre, som gjør det mulig å bygge inn tilpasset logikk i en blokkjede for validering av transaksjoner og data. Smarte filtre ligner konseptuelt på "smarte kontrakter" levert av andre blokkjedeplattformer, men har en annen design for å passe til MultiChains raskere transaksjonsmodell.

Smarte filtre kommer i to varianter - transaksjonsfiltre og strømfiltre. Et transaksjonsfilter validerer transaksjoner i kjeden i sin helhet, ved å undersøke deres innganger, utganger og metadata. Hvis en transaksjon ikke passerer filteret, blir den avvist av hver node i nettverket. Et strømfilter validerer individuelle elementer skrevet til en MultiChain-strøm, ser på deres nøkkel(er), utgiver(e) og on-chain eller off-chain data, i JSON, tekst eller binært format. Hvis et element ikke passerer filteret, blir det merket som ugyldig, og dets data skjules av hver node som abonnerer på strømmen.

Begge typer Smart Filter er skrevet i JavaScript og kjøres innenfor en deterministisk versjon av Googles V8, den superraske JavaScript-motoren som driver Chrome, Node.js og mange andre plattformer. Enkle filtre er enkle å kode og forstå – for eksempel, her er et strømfilter som validerer at varer har minst to nøkler:

funksjon filterstreamitem() { var item=getfilterstreamitem(); // tilbakeringingsfunksjon if (item.keys.length2) returnerer "Minst to nøkler kreves"; }

Totalt sett har vi fått gode tilbakemeldinger på smarte filtre, men vi har også gjentatte ganger hørt om to måter vi kan gjøre dem enda bedre på. For det første vil mange brukere ha filtre som kan lese informasjon som er på blokkjeden, men ikke innenfor transaksjonen eller strømelementet som valideres. Brukstilfeller inkluderer en skiftende liste over tillatte land, valutakurser levert av et eksternt "orakel" eller en bryter for å bytte visse regler.

For det andre ønsker noen utviklere å bruke et sett med JavaScript-funksjoner i flere filtre, uten å duplisere kode. De ønsker også å kunne oppdatere disse funksjonene, fikse en feil eller dekke noen nye situasjoner, uten å deaktivere deres eksisterende filtre og opprette nye i stedet for dem. For eksempel kan delt kode inneholde applikasjonsspesifikk logikk, et tredjepartsbibliotek for å validere JSON-er eller analysere innholdet i en PDF.

MultiChain 2.1 introduserer to nye typer enheter i kjeden, variabler og bibliotekene, for å svare på disse behovene.

Variabler

La oss starte med MultiChain-variabler. Disse fungerer ganske som de i vanlige programmeringsspråk, men med en blockchain-vri. Et hvilket som helst antall navngitte variabler kan opprettes på blokkjeden. Hver variabel har et dynamisk sett med adresser som har tillatelse til å oppdatere verdien, og dette settet administreres av en eller flere variabeladministratorer (som standard kun variabelens skaper). Variabler opprettes eller oppdateres i en blokkjedetransaksjon, som kan sendes ved hjelp av en enkel API-kommando på høyt nivå. Alternativt kan API-er på lavere nivå brukes til å bygge komplekse transaksjoner som atomisk setter en eller flere variabler, skriver strømelementer, overfører eiendeler, endrer tillatelser og så videre.

Selve variabelverdien kan inneholde hvilken som helst JSON-struktur, inkludert tall, strenger, booleaner, nestede objekter og matriser, og lagres på kjeden i den effektive UBJSON serialiseringsformat. Selvfølgelig kan Smart Filters spørre om en variabels gjeldende verdi ved å bruke en enkel tilbakeringingsfunksjon. Men fordi dette er en blokkjede, er hele historien til variabelens verdier og forfattere også tilgjengelig, og kan hentes helt eller delvis ved hjelp av en annen tilbakeringingsfunksjon. For å gjøre utviklingen enklere, er disse tilbakeringingene også tilgjengelige gjennom applikasjonsvendt API.

Bibliotekene

La oss gå videre til bibliotekene, som er variables større søsken. Som med variabler, kan et hvilket som helst antall navngitte biblioteker opprettes på blokkjeden. Men bibliotekene har en rikere modell for oppdatering, med tre tilgjengelige moduser – uforanderlige, instantog underlagt godkjenning.

En gang en uforanderlige biblioteket er opprettet, koden kan aldri endres. Et bibliotek med instant oppdateringer kan endres som en variabel, med et sett med adresser som individuelt kan erstatte koden. Men i et bibliotek med underlagt godkjenning oppdateringer, blir en oppdatering kun tatt i bruk etter å ha blitt godkjent av en viss andel av blokkjedens globale administratorer. Denne siste modusen gir en flott avveining mellom sikkerhet og fleksibilitet.

Koden for et bibliotek er skrevet i vanlig JavaScript, og definerer en eller flere funksjoner som Smart Filters kan bruke. Som med variabler, opprettes eller oppdateres biblioteker i en spesiell transaksjon, sendt enkelt ved hjelp av API. Når et smart filter opprettes, blir dets nødvendige biblioteker gitt i en valgfri parameter. Et bibliotek kjører alltid i konteksten til filteret som krever det, slik at det kan bruke tilbakeringing av Smart Filter der det er hensiktsmessig. MultiChain gir omfattende funksjonalitet for å teste (og rulle tilbake) biblioteker og deres oppdateringer lokalt, før du gjør en endring på blokkjeden.

Wrapping det opp

Som med alle funksjoner knyttet til blokkjedens regler, er variabler og biblioteker tilgjengelige i både Community- og Enterprise-utgaven av MultiChain 2.1. Utviklerdokumentasjonen vår gir en detaljert beskrivelse av det nye JSON-RPC APIer og Smart Filter tilbakeringinger tilgjengelig. For å bruke de nye funksjonene på en blokkjede som allerede kjører, må du først migrere nodene til MultiChain 2.1, deretter oppgradering kjedens protokoll til versjon 20012.

Så hva er neste? I løpet av de kommende månedene vil vi være fokusert på noe detaljert og intenst arbeid under panseret, for å forbedre ytelsen og samtidigheten til MultiChain mens den er under betydelig belastning. Dette vil øke responsen til applikasjoner som trenger å spørre en node mens den fortsetter å behandle hundrevis eller tusenvis av nye transaksjoner per sekund.

I mellomtiden ønsker vi alle i MultiChain-teamet våre brukere og kunder helse og fornuft i året som kommer. Vi vet at dette er vanskelige tider for alle, og vi ser frem til å komme tilbake til normal rytme med møter og konferanser så snart det er trygt.

Legg inn kommentarer på Linkedin.

Tidstempel:

Mer fra multikate