MultiChain-Feeds für die Datenbankintegration PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

MultiChain-Feeds für die Datenbankintegration

Daten aus der Blockchain in die weite Welt bringen

Mit der ersten Veröffentlichung von MultiChain im Jahr 2015 haben wir das Interesse an Blockchain-Anwendungen aus einer überraschenden Richtung gesehen. Während wir MultiChain ursprünglich für die Ausgabe, Übertragung und Verwahrung digitaler Assets entwickelt hatten, waren immer mehr Benutzer daran interessiert, es für datenorientierte Anwendungen zu verwenden.

In diesen Anwendungsfällen besteht der Zweck der Blockchain darin, das Speichern und Abrufen von Allzweckinformationen zu ermöglichen, die nicht finanzieller Natur sein müssen. Die Motivation für die Verwendung einer Blockchain anstelle einer regulären Datenbank besteht darin, sich nicht auf einen vertrauenswürdigen Vermittler zu verlassen, um diese Datenbank zu hosten und zu warten. Aus kommerziellen, regulatorischen oder politischen Gründen möchten die Benutzer der Datenbank, dass dies eher eine verteilte als eine zentralisierte Verantwortung ist.

Die Entwicklung der Ströme

Als Antwort auf dieses Feedback haben wir 2016 eingeführt MultiChain-Streams, die eine einfache Abstraktion zum Speichern, Indizieren und Abrufen allgemeiner Daten in einer Blockchain bieten. Eine Kette kann eine beliebige Anzahl von Streams enthalten, von denen jeder durch bestimmte Adressen zum Schreiben eingeschränkt werden kann. Jedes Stream-Element ist mit der Adresse seines Herausgebers sowie einem optionalen Schlüssel für den zukünftigen Abruf gekennzeichnet. Jeder Knoten kann unabhängig entscheiden, ob er jeden Stream abonniert, und seine Elemente in Echtzeit indizieren, um sie schnell nach Schlüssel, Herausgeber, Zeit, Block oder Position abzurufen. Streams waren ein sofortiger Erfolg für die Benutzer von MultiChain und unterschieden sich stark von anderen Blockchain-Plattformen für Unternehmen.

Im Jahr 2017 waren Streams verlängert Zur Unterstützung von nativem JSON- und Unicode-Text mehrere Schlüssel pro Element und mehrere Elemente pro Transaktion. Mit dieser letzten Änderung können über 10,000 einzelne Datenelemente pro Sekunde auf High-End-Hardware veröffentlicht werden. Dann haben wir 2018 nahtlose Unterstützung für hinzugefügt Daten außerhalb der Kette, in dem nur ein Hash einiger Daten in der Kette veröffentlicht wird und die Daten selbst außerhalb der Kette an Knoten geliefert werden, die dies wünschen. Und später in diesem Jahr haben wir die MultiChain 2.0 Community mit veröffentlicht Intelligente FilterDadurch kann benutzerdefinierter JavaScript-Code eine beliebige Validierung von Stream-Elementen durchführen.

Im Jahr 2019 konzentrierten wir uns auf MultiChain 2.0 Enterprise, die kommerzielle Version von MultiChain für größere Kunden. Der Erste Unternehmensdemo Nutzung von Daten außerhalb der Kette in Streams, um Leseberechtigungen, verschlüsselte Datenübermittlung und das selektive Abrufen und Löschen einzelner Elemente zu ermöglichen. Wie immer verbirgt sich die zugrunde liegende Komplexität hinter einem einfachen Satz von APIs, die sich auf Berechtigungen und Stream-Elemente beziehen. Unser Ziel bei Streams war es stets, Entwicklern dabei zu helfen, sich auf die Daten ihrer Anwendung zu konzentrieren und sich keine Sorgen über die Blockchain zu machen, die hinter den Kulissen ausgeführt wird.

Das Datenbank-Dilemma

Da sich die MultiChain-Streams weiterentwickelt haben, stehen wir vor einem ständigen Dilemma. Sollte MultiChain zum Lesen und Analysieren der Daten in einem Stream den Weg beschreiten, eine vollwertige Datenbank zu werden? Sollte es JSON-Feldindizierung, optimierte Abfrage und erweiterte Berichterstellung bieten? Wenn ja, welches Datenbankparadigma sollte es verwenden - relational (wie MySQL oder SQL Server), NoSQL (MongoDB oder Cassandra), Suche (Elastic oder Solr), Zeitreihen (InfluxDB) oder In-Memory (SAP HANA)? Schließlich gibt es Blockchain-Anwendungsfälle, die für jeden dieser Ansätze geeignet sind.

Eine Option, die wir in Betracht gezogen haben, ist die Verwendung einer externen Datenbank als primärer Datenspeicher von MultiChain anstelle der aktuellen Kombination aus eingebetteten LevelDB- und Binärdateien. Diese Strategie wurde von übernommen Kettenkern (abgesetzt), Postkette (noch nicht öffentlich) und ist verfügbar als Option in Hyperledger Fabric. Letztendlich haben wir uns jedoch gegen diesen Ansatz entschieden, da das Risiko besteht, von einem externen Prozess abhängig zu sein. Sie möchten nicht, dass Ihr Blockchain-Knoten einfriert, weil er seine Datenbankverbindung verloren hat oder weil jemand eine komplexe Abfrage in seinem Datenspeicher ausführt.

Ein weiterer zu berücksichtigender Faktor ist der Agnostizismus von Technologie und Integration. In einem Blockchain-Netzwerk, das mehrere Organisationen umfasst, hat jeder Teilnehmer seine eigenen Präferenzen in Bezug auf die Datenbanktechnologie. Sie werden bereits Anwendungen, Tools und Workflows auf den Plattformen haben, die ihren Anforderungen entsprechen. Wenn wir also eine bestimmte Datenbank auswählen oder sogar einige Optionen anbieten, werden einige Benutzer unglücklich. So wie jeder Blockchain-Teilnehmer seinen Knoten auf einer Vielzahl von Linux-Varianten ausführen kann, sollte er in der Lage sein, sich in die Datenbank seiner Wahl zu integrieren.

Einführung von MultiChain Feeds

Heute freuen wir uns, unseren Ansatz zur Datenbankintegration - MultiChain Feeds - veröffentlichen zu können. Ein Feed ist ein Echtzeit-Binärprotokoll auf der Festplatte der Ereignisse, die sich auf einen oder mehrere Blockchain-Streams beziehen, zum Lesen durch externe Prozesse. Wir bieten auch Open Source an MultiChain-Feed-Adapter Dieser kann einen Feed lesen und seinen Inhalt automatisch in eine Postgres-, MySQL- oder MongoDB-Datenbank (oder mehrere gleichzeitig) replizieren. Der Adapter ist in Python geschrieben und verfügt über eine liberale Lizenz, sodass er leicht geändert werden kann, um zusätzliche Datenbanken zu unterstützen oder Daten zu filtern und zu transformieren. (Wir haben auch die dokumentiert Feed-Dateiformat für diejenigen, die einen Parser in einer anderen Sprache schreiben möchten.)

MultiChain Feeds-Diagramm

Ein Knoten muss keinen Stream abonnieren, um seine Ereignisse in einen Feed zu replizieren. Auf diese Weise kann die integrierte Stream-Indizierung von MultiChain vollständig umgangen werden, um Zeit und Speicherplatz zu sparen. Feeds spiegeln auch das Abrufen und Löschen von Daten außerhalb der Kette wider und können über das Eintreffen neuer Blöcke in der Kette berichten. Um Speicherplatz zu sparen, können Sie genau steuern, welche Ereignisse in einen Feed geschrieben werden und welche Felder für jedes dieser Ereignisse aufgezeichnet werden. Darüber hinaus werden Feed-Dateien täglich gedreht und es gibt einen einfachen Bereinigungsbefehl, um Dateien nach der Verarbeitung zu entfernen.

Warum werden MultiChain-Feeds auf die Festplatte geschrieben und nicht zwischen Prozessen oder über das Netzwerk gestreamt? Weil wir möchten, dass sie als äußerst zuverlässiges Replikationsprotokoll dienen, das gegenüber Datenbankausfallzeiten, Systemabstürzen, Stromausfällen und dergleichen stabil ist. Durch die Verwendung von Festplattendateien können wir die Haltbarkeit garantieren und die asynchrone Aktualisierung der Zieldatenbank ermöglichen. Wenn diese Datenbank aus irgendeinem Grund überlastet oder getrennt wird, kann MultiChain ohne Unterbrechung weiterarbeiten, und die Datenbank holt auf, sobald sich die Situation wieder normalisiert.

Erste Schritte mit Feeds

Feeds sind in die neueste Demo / Beta von MultiChain Enterprise integriert Zum Download verfügbar jetzt. Lesen Sie zunächst die Dokumentation zum MultiChain-Feed-Adapteroder Überprüfung der Feed-bezogene APIs. Wir würden es lieben zu Hören Sie Ihr Feedback über diese Funktion und wie wir sie in Zukunft erweitern können.

Mit der Veröffentlichung von Feeds ist die Version 2.0 von MultiChain Enterprise nun vollständig - siehe Lade und installiere Seite für einen vollständigen Vergleich zwischen der Community- und der Enterprise-Edition. In den nächsten Monaten werden wir die Tests und Optimierungen abschließen und erwarten, dass es gegen Ende des ersten Quartals produktionsbereit sein wird. In der Zwischenzeit zögern Sie bitte nicht, Informationen zur MultiChain Enterprise-Lizenzierung oder -Preise zu erhalten Nehmen Sie Kontakt mit uns auf.

Bitte posten Sie Kommentare auf LinkedIn.

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

Zeitstempel:

Mehr von Multikette