Feed multichain per l'integrazione di database PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Feed MultiChain per l'integrazione del database

Ottenere dati dalla blockchain e nel resto del mondo

Con il primo rilascio pubblico di MultiChain, nel lontano 2015, abbiamo visto un interesse per le applicazioni blockchain da una direzione sorprendente. Sebbene originariamente avessimo progettato MultiChain per consentire l’emissione, il trasferimento e la custodia di risorse digitali, un numero crescente di utenti era interessato a utilizzarlo per applicazioni orientate ai dati.

In questi casi d'uso, lo scopo della blockchain è consentire l'archiviazione e il recupero di informazioni di carattere generale, che non devono essere di natura finanziaria. La motivazione per utilizzare una blockchain piuttosto che un normale database è quella di evitare di fare affidamento su un intermediario fidato per ospitare e mantenere quel database. Per ragioni commerciali, normative o politiche, gli utenti del database vogliono che questa sia una responsabilità distribuita piuttosto che centralizzata.

L'evoluzione dei flussi

In risposta a questo feedback, nel 2016 noi introdotto Flussi MultiChain, che forniscono una semplice astrazione per l'archiviazione, l'indicizzazione e il recupero di dati generali su una blockchain. Una catena può contenere un numero qualsiasi di flussi, ciascuno dei quali può essere limitato per la scrittura da determinati indirizzi. Ogni elemento dello stream è contrassegnato dall'indirizzo del suo editore e da una chiave opzionale per il recupero futuro. Ogni nodo può decidere in modo indipendente se iscriversi a ciascun flusso, indicizzando i suoi elementi in tempo reale per un recupero rapido per chiave, editore, ora, blocco o posizione. Gli stream hanno avuto un successo immediato tra gli utenti di MultiChain e lo hanno fortemente differenziato da altre piattaforme blockchain aziendali.

Nel 2017, i flussi erano per supportare testo nativo JSON e Unicode, più chiavi per elemento e più elementi per transazione. Quest'ultima modifica consente di pubblicare oltre 10,000 singoli elementi di dati al secondo su hardware di fascia alta. Poi, nel 2018, abbiamo aggiunto il supporto continuo per dati off-chain, in cui solo un hash di alcuni dati viene pubblicato on-chain e i dati stessi vengono consegnati off-chain ai nodi che lo desiderano. E più tardi quell'anno abbiamo rilasciato MultiChain 2.0 Community con Filtri intelligenti, consentendo al codice JavaScript personalizzato di eseguire una convalida arbitraria degli elementi del flusso.

Nel corso del 2019 la nostra attenzione si è concentrata su MultiChain 2.0 Enterprise, la versione commerciale di MultiChain per i clienti più grandi. Il primo Dimostrazione aziendale ha sfruttato i dati fuori catena nei flussi per consentire autorizzazioni di lettura, consegna di dati crittografati e recupero selettivo ed eliminazione di singoli elementi. Come sempre, la complessità sottostante è nascosta dietro un semplice set di API relative alle autorizzazioni e agli elementi dello streaming. Con gli stream, il nostro obiettivo è sempre stato quello di aiutare gli sviluppatori a concentrarsi sui dati della loro applicazione e a non preoccuparsi della blockchain che funziona dietro le quinte.

Il dilemma della banca dati

Poiché i flussi MultiChain hanno continuato ad evolversi, ci siamo trovati di fronte a un dilemma costante. Per leggere e analizzare i dati in un flusso, MultiChain dovrebbe intraprendere la strada per diventare un database a tutti gli effetti? Dovrebbe offrire indicizzazione dei campi JSON, query ottimizzate e reporting avanzato? In tal caso, quale paradigma di database dovrebbe utilizzare: relazionale (come MySQL o SQL Server), NoSQL (MongoDB o Cassandra), ricerca (Elastic o Solr), serie temporali (InfluxDB) o in memoria (SAP HANA)? Dopotutto, esistono casi d’uso della blockchain adatti a ciascuno di questi approcci.

Un'opzione che abbiamo considerato è l'utilizzo di un database esterno come archivio dati primario di MultiChain, invece dell'attuale combinazione di LevelDB incorporato e file binari. Questa strategia è stata adottata da Nucleo a catena (fuori produzione), Postcatena (non ancora pubblico) ed è disponibile come opzione in tessuto Hyperledger. Ma alla fine abbiamo deciso contro questo approccio, a causa dei rischi di dipendere da un processo esterno. Non vuoi davvero che il tuo nodo blockchain si blocchi perché ha perso la connessione al database o perché qualcuno sta eseguendo una query complessa sul suo archivio dati.

Un altro fattore da considerare è l’agnosticismo verso la tecnologia e l’integrazione. In una rete blockchain che abbraccia più organizzazioni, ogni partecipante avrà le proprie preferenze riguardo alla tecnologia del database. Avranno già applicazioni, strumenti e flussi di lavoro costruiti sulle piattaforme adatte alle loro esigenze. Quindi, scegliendo un database particolare, o anche offrendo alcune opzioni, finiremmo per rendere infelici alcuni utenti. Proprio come ogni partecipante alla blockchain può eseguire il proprio nodo su un'ampia varietà di versioni Linux, dovrebbe essere in grado di integrarsi con il proprio database preferito.

Presentazione dei feed MultiChain

Oggi siamo lieti di rilasciare il nostro approccio all'integrazione del database: MultiChain Feeds. Un feed è un registro binario su disco in tempo reale degli eventi relativi a uno o più flussi blockchain, per la lettura da parte di processi esterni. Offriamo anche l'open source Adattatore di alimentazione multicatena che può leggere un feed e replicarne automaticamente il contenuto su un database Postgres, MySQL o MongoDB (o più contemporaneamente). L'adattatore è scritto in Python e ha una licenza libera, quindi può essere facilmente modificato per supportare database aggiuntivi o per aggiungere filtraggio e trasformazione dei dati. (Abbiamo anche documentato il formato del file di alimentazione per coloro che vogliono scrivere un parser in un'altra lingua.)

Diagramma delle alimentazioni multicatena

Un nodo non ha bisogno di iscriversi a un flusso per replicare i suoi eventi in un feed. Ciò consente di ignorare completamente l'indicizzazione del flusso incorporata di MultiChain, per risparmiare tempo e spazio su disco. I feed riflettono anche il recupero e l'eliminazione dei dati fuori catena e possono segnalare l'arrivo di nuovi blocchi sulla catena. Per risparmiare spazio su disco, puoi controllare esattamente quali eventi vengono scritti in un feed e quali campi vengono registrati per ciascuno di tali eventi. Inoltre, i file dei feed vengono ruotati quotidianamente ed è disponibile un semplice comando di eliminazione per rimuovere i file dopo l'elaborazione.

Perché i feed MultiChain vengono scritti su disco anziché trasmessi in streaming tra processi o sulla rete? Perché vogliamo che fungano da registro di replica estremamente affidabile e resistente ai tempi di inattività del database, agli arresti anomali del sistema, alla perdita di alimentazione e simili. Utilizzando i file su disco, possiamo garantire la durabilità e consentire l'aggiornamento asincrono del database di destinazione. Se per qualche motivo questo database viene sovraccaricato o disconnesso, MultiChain può continuare a funzionare senza interruzioni e il database si riprenderà una volta che le cose torneranno alla normalità.

Iniziare con i feed

I feed sono integrati nell'ultima demo/beta di MultiChain Enterprise, ovvero Disponibile per il download Ora. Inizia leggendo la documentazione per Adattatore di alimentazione multicatenao rivedendo il API relative ai feed. Ci piacerebbe ascolta il tuo feedback su questa funzionalità e su come possiamo espanderla in futuro.

Con il rilascio dei feed, la versione 2.0 di MultiChain Enterprise è ora completa di funzionalità – vedere Scarica e installa pagina per un confronto completo tra le edizioni Community ed Enterprise. Nei prossimi due mesi completeremo i test e l'ottimizzazione e prevediamo che sarà pronto per la produzione verso la fine del primo trimestre. Nel frattempo, per informazioni sulla licenza o sui prezzi di MultiChain Enterprise, non esitare a farlo contattateci .

Si prega di inviare eventuali commenti LinkedIn.

Fonte: https://www.multichain.com/blog/2020/02/multichain-feeds-for-database-integration/

Timestamp:

Di più da più giri