Fluxuri MultiChain pentru integrarea bazelor de date PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Feeduri MultiChain pentru integrarea bazelor de date

Obținerea datelor din blockchain și în întreaga lume

Odată cu prima lansare publică a MultiChain, încă din 2015, am văzut interes pentru aplicațiile blockchain dintr-o direcție surprinzătoare. Deși inițial am conceput MultiChain pentru a permite emiterea, transferul și custodia activelor digitale, un număr tot mai mare de utilizatori au fost interesați să îl folosească pentru aplicații orientate spre date.

În aceste cazuri de utilizare, scopul blockchain-ului este de a permite stocarea și preluarea informațiilor de uz general, care nu trebuie să fie de natură financiară. Motivația pentru utilizarea unui blockchain mai degrabă decât a unei baze de date obișnuite este de a evita să te bazezi pe un intermediar de încredere pentru a găzdui și menține acea bază de date. Din motive comerciale, de reglementare sau politice, utilizatorii bazei de date doresc ca aceasta să fie mai degrabă o responsabilitate distribuită decât centralizată.

Evoluția fluxurilor

Ca răspuns la acest feedback, în 2016 am introdus Fluxuri MultiChain, care oferă o abstractizare simplă pentru stocarea, indexarea și preluarea datelor generale pe un blockchain. Un lanț poate conține orice număr de fluxuri, fiecare dintre acestea putând fi restricționat pentru scriere de anumite adrese. Fiecare element de flux este etichetat de adresa editorului său, precum și de o cheie opțională pentru preluare viitoare. Fiecare nod poate decide independent dacă să se aboneze la fiecare flux, indexându-și articolele în timp real pentru o recuperare rapidă în funcție de cheie, editor, oră, bloc sau poziție. Fluxurile au fost un succes instantaneu pentru utilizatorii MultiChain și l-au diferențiat puternic de alte platforme de tip blockchain pentru întreprinderi.

În 2017, fluxurile au fost extins pentru a accepta textul JSON și Unicode nativ, mai multe chei per articol și mai multe articole per tranzacție. Această ultimă modificare permite ca peste 10,000 de elemente de date individuale să fie publicate pe secundă pe hardware de ultimă generație. Apoi, în 2018, am adăugat suport fără întreruperi pentru date în afara lanțului, în care doar un hash al unor date este publicat în lanț, iar datele în sine sunt livrate în afara lanțului nodurilor care le doresc. Și mai târziu în acel an am lansat MultiChain 2.0 Community with Filtre inteligente, permițând codului JavaScript personalizat să efectueze validarea arbitrară a elementelor fluxului.

Pe parcursul anului 2019, atenția noastră sa îndreptat către MultiChain 2.0 Enterprise, versiunea comercială a MultiChain pentru clienții mai mari. Primul Demo Enterprise a folosit date în afara lanțului din fluxuri pentru a permite permisiunea de citire, livrarea datelor criptate și recuperarea selectivă și eliminarea articolelor individuale. Ca întotdeauna, complexitatea de bază este ascunsă în spatele unui set simplu de API-uri legate de permisiuni și elemente de flux. Cu fluxurile, scopul nostru a fost constant să îi ajutăm pe dezvoltatori să se concentreze asupra datelor aplicației lor și să nu vă faceți griji cu privire la blockchain-ul care rulează în culise.

Dilema bazei de date

Pe măsură ce fluxurile MultiChain au continuat să evolueze, ne-am confruntat cu o dilemă constantă. Pentru citirea și analiza datelor dintr-un flux, MultiChain ar trebui să meargă pe calea de a deveni o bază de date cu drepturi depline? Ar trebui să ofere indexare a câmpurilor JSON, interogare optimizată și raportare avansată? Dacă da, ce paradigmă de bază de date ar trebui să folosească - relațional (cum ar fi MySQL sau SQL Server), NoSQL (MongoDB sau Cassandra), căutare (Elastic sau Solr), serii de timp (InfluxDB) sau în memorie (SAP HANA)? La urma urmei, există cazuri de utilizare blockchain potrivite pentru fiecare dintre aceste abordări.

O opțiune pe care am luat-o în considerare este utilizarea unei baze de date externe ca magazin de date primar al MultiChain, în loc de combinația actuală de fișiere LevelDB și binare încorporate. Această strategie a fost adoptată de Miezul lanțului (intrerupt), Lanțul poștal (nu este încă public) și este disponibil ca opțiune în Hyperledger Fabric. Dar în cele din urmă am decis împotriva acestei abordări, din cauza riscurilor de a depinde de un proces extern. Nu doriți cu adevărat să se blocheze nodul blockchain pentru că și-a pierdut conexiunea la baza de date sau pentru că cineva execută o interogare complexă în depozitul său de date.

Un alt factor de luat în considerare este tehnologia și agnosticismul integrării. Într-o rețea blockchain care acoperă mai multe organizații, fiecare participant va avea propriile preferințe în ceea ce privește tehnologia bazelor de date. Ei vor avea deja aplicații, instrumente și fluxuri de lucru construite pe platformele care se potrivesc nevoilor lor. Deci, alegând orice bază de date, sau chiar oferind câteva opțiuni, am ajunge să-i facem nemulțumiți pe unii utilizatori. Așa cum fiecare participant la blockchain își poate rula nodul pe o mare varietate de arome Linux, ar trebui să se poată integra cu baza de date aleasă.

Vă prezentăm MultiChain Feeds

Astăzi suntem încântați să lansăm abordarea noastră privind integrarea bazelor de date – MultiChain Feeds. Un flux este un jurnal binar în timp real pe disc al evenimentelor legate de unul sau mai multe fluxuri blockchain, pentru citire de către procese externe. Oferim și sursa deschisă Adaptor de alimentare cu lanțuri multiple care poate citi un feed și poate replica automat conținutul acestuia într-o bază de date Postgres, MySQL sau MongoDB (sau mai multe deodată). Adaptorul este scris în Python și are o licență liberală, așa că poate fi ușor modificat pentru a suporta baze de date suplimentare sau pentru a adăuga filtrarea și transformarea datelor. (De asemenea, am documentat format de fișier de alimentare pentru cei care doresc să scrie un parser într-o altă limbă.)

Diagrama de alimentare cu lanțuri multiple

Un nod nu trebuie să se aboneze la un flux pentru a-și replica evenimentele într-un flux. Acest lucru permite indexarea fluxului încorporată în MultiChain să fie complet ocolită, pentru a economisi timp și spațiu pe disc. Fluxurile reflectă, de asemenea, regăsirea și eliminarea datelor din afara lanțului și pot raporta cu privire la sosirea de noi blocuri în lanț. Pentru a economisi spațiu pe disc, puteți controla exact ce evenimente sunt scrise într-un flux și ce câmpuri sunt înregistrate pentru fiecare dintre aceste evenimente. În plus, fișierele de feed sunt rotite zilnic și există o comandă simplă de curățare pentru a elimina fișierele după procesare.

De ce sunt scrise fluxuri MultiChain pe disc, în loc să fie transmise în flux între procese sau prin rețea? Pentru că dorim ca acestea să servească drept un jurnal de replicare ultra-fiabil, care este rezistent la timpul de nefuncționare a bazei de date, blocările sistemului, pierderile de energie și altele asemenea. Folosind fișiere de disc, putem garanta durabilitatea și permite actualizarea asincronă a bazei de date țintă. Dacă dintr-un motiv oarecare această bază de date devine supraîncărcată sau deconectată, MultiChain poate continua să funcționeze fără întrerupere, iar baza de date va ajunge din urmă odată ce lucrurile revin la normal.

Noțiuni introductive cu fluxurile

Feedurile sunt integrate în cel mai recent demo/beta al MultiChain Enterprise, adică disponibil pentru descărcare acum. Începeți prin a citi documentația pentru Adaptor de alimentare cu lanțuri multiple, sau revizuirea API-uri legate de furaje. Ne-ar plăcea auzi feedback-ul tău despre această caracteristică și cum o putem extinde în viitor.

Odată cu lansarea fluxurilor, versiunea 2.0 a MultiChain Enterprise este acum completă – vezi Descarcă și instalează pagina pentru o comparație completă între edițiile Community și Enterprise. În următoarele două luni, vom finaliza testarea și optimizarea acestuia și ne vom aștepta să fie gata pentru producție la sfârșitul trimestrului I. Între timp, pentru informații despre licențele sau prețurile MultiChain Enterprise, vă rugăm să nu ezitați să intra în contact.

Vă rugăm să postați comentarii pe LinkedIn.

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

Timestamp-ul:

Mai mult de la multicatenari