Aktuelle Funktionen und Roadmap 2016

Ein Update aus der MultiChain-Fabrik

Als Änderung von Blog-Posts über Blockchains im Allgemeinen möchte ich ein Update zu bereitstellen Multichain, sowohl in Bezug auf die jüngsten Verbesserungen als auch auf unsere Roadmap für 2016.

Zunächst möchte ich mich bei vielen Tausenden von Ihnen bedanken, die MultiChain heruntergeladen und darauf aufgebaut haben. gefragte Fragen und schickte uns Feedback. In den acht Monaten seit der ersten Veröffentlichung haben unsere Statistiken ein konstantes organisches Wachstum bei Traffic und Downloads gezeigt, und ich hoffe, dies bedeutet, dass wir genau richtig sind. Ohne Namen zu nennen, wissen wir, dass MultiChain in einigen der größten Banken, Beratungsunternehmen, Finanztechnologie- und IT-Unternehmen der Welt erfolgreich für langjährige Blockchain-Piloten eingesetzt wurde.

Eine Frage, die uns oft gestellt wird, ist, warum MultiChain so lange in „Alpha“ ist. Die einfache Antwort lautet, dass wir mit Feature-Anfragen bombardiert wurden, von denen die meisten für uns sinnvoll waren. Daher haben wir uns darauf konzentriert, diese Verbesserungen hinzuzufügen, anstatt das Produkt in die Beta zu bringen. Allerdings sollte MultiChain für Alpha-Software sehr stabil sein, und wir haben es unter extremen Belastungen gründlich getestet.

Ich möchte auch erklären, wie wir MultiChain im erweiterten Raum von Blockchain-Plattformen positionieren. In den letzten sechs Monaten wurden viele konkurrierende Produkte angekündigt, (Quasi-) Konsortien gebildet, Unternehmen haben zig Millionen Dollar gesammelt und nur gelegentlich haben wir einige echte Software-Releases gesehen. Natürlich ist der Wettbewerb natürlich und unvermeidlich und wir freuen uns darauf, die Entwicklung dieser anderen Plattformen zu beobachten. Zweifellos werden wir ihre besten Ideen ausleihen und wir gehen davon aus, dass sie das Kompliment zurückgeben werden.

Wo passt MultiChain zu all diesen Geräuschen? Kurz gesagt, es konzentriert sich auf Produkt und Praktikabilität:

  • Stabilität. Durch Gabeln von Bitcoin CoreMultiChain, die Referenzimplementierung für das Bitcoin-Netzwerk, baut auf den Jahren hart erarbeiteter Stabilität und Sicherheit auf, die sich aus der Verwaltung von Kryptowährungswerten in Milliardenhöhe im offenen Internet ergeben. Um klar zu sein, hat die Bitcoin Core-Codebasis architektonische Einschränkungen, und wir müssen uns möglicherweise davon entfernen. Für die aktuellen Benutzeranforderungen würden die Kosten dafür jedoch die Vorteile erheblich überwiegen.
  • Benutzerfreundlichkeit. Viele MultiChain-Benutzer haben uns mitgeteilt, dass die Verwendung weitaus einfacher ist als bei konkurrierenden Blockchain-Plattformen. Ich kann mich nicht einmal daran erinnern, wie oft ich jemandem gesagt habe, dass er innerhalb von Minuten von Null auf seine eigene private Blockchain wechseln kann, und er hat mir einfach nicht geglaubt. Aber es ist wirklich wahr - folgen Sie einfach den Anweisungen auf der herunterladen und Einstieg Seiten und überzeugen Sie sich. Keine Abhängigkeiten, keine Kompilierung, kein Durcheinander mit Docker. Nur drei in sich geschlossene ausführbare Dateien und eine README-Datei.
  • Eigenschaften. Als MultiChain zum ersten Mal veröffentlicht wurde, hatte es weit weniger Funktionen als heute. Keine Adresskontrolle von Assets pro Adresse, keine atomaren Austauschtransaktionen, keine einfachen Transaktionsmetadaten. Wie entscheiden wir also, was hinzugefügt werden soll? Einfach - wir hören unseren Benutzern zu. Manchmal wissen sie genau, was sie wollen, wie die anschließende Ausgabe von Vermögenswerten, und wir sind gerne bereit, dies zu tun. In anderen Fällen wissen sie, was sie erreichen möchten, wissen aber nicht, wie sie dies als Merkmal ausdrücken sollen, und es ist unsere Aufgabe, es herauszufinden. In beiden Fällen wird die Roadmap von MultiChain unermüdlich vom Feedback der Benutzer bestimmt und wird daher fortgesetzt.
  • Bitcoin-Kompatibilität. Wenn Sie eine Blockchain-Lösung erstellen, ist der Knoten nur ein kleiner Teil des Bildes. Möglicherweise benötigen Sie mobile oder Web-Wallets, Schlüsselverwaltungslösungen und eine Bibliothek in einer unbekannten Sprache zum Dekodieren, Signieren und Codieren von Transaktionen. MultiChain wurde entwickelt, um all dies so einfach und schnell wie möglich zu gestalten, indem maximale Kompatibilität mit Bitcoin gewährleistet wird, für das eine große Menge an Informationen, Tools und Code frei verfügbar ist. Um dies zu beweisen, kann MultiChain sogar konfiguriert werden als Knoten im Bitcoin-Netzwerk.

Grundsätzlich möchten wir unsere Benutzer begeistern und sind der festen Überzeugung, dass dies der sicherste Weg zum kommerziellen Erfolg ist. In diesem Sinne möchte ich einige der neuen Funktionen beschreiben, die in den letzten Monaten hinzugefügt wurden.

Folgeemission von Vermögenswerten (Alpha 17)

Diese Anfrage gibt es schon eine Weile und ist die am meisten gestellte Frage zu den Fragen und Antworten der Entwickler. Warum hat es so lange gedauert? Sie können uns beschuldigen, Puristen zu sein. Sie sehen, in Bezug auf die Sicherheit gibt es keinen Unterschied zwischen (a) der erstmaligen Ausgabe von Millionen Einheiten eines Vermögenswerts und dem Ausschluss der meisten davon aus dem Umlauf und (b) der Ermöglichung von Folgeemissionen von mehr Einheiten desselben Anlagegut.

Aber es stellt sich heraus, dass aus Sicht unserer Benutzer dort is Ein ziemlicher Unterschied zwischen den beiden Fällen, da es nicht so einfach ist, Einheiten im aktiven Kreislauf von denen zu unterscheiden, die am Rande sitzen. Wir freuen uns, Ihnen mitteilen zu können, dass Sie in der heute veröffentlichten Version bei der Ausgabe eines Assets entscheiden können, ob dieses Asset geöffnet oder geschlossen ist. Wenn es geöffnet ist, kann der ursprüngliche Aussteller mehr Einheiten erstellen, so oft er möchte.

Auf der anderen Seite bietet MultiChain jetzt auch eine kanonische 'Brennadresse' für jede Kette. Diese Adresse ist voll mit X und wurde offensichtlich ohne einen entsprechenden privaten Schlüssel erstellt (dies würde unendlich viel Zeit in Anspruch nehmen). An diese Adresse gesendete Asset-Einheiten können daher niemals ausgegeben werden und werden auf transparente Weise zerstört. Beachten Sie, dass der Brennadresse zu Ihrer Sicherheit explizit Empfangsberechtigungen erteilt werden müssen, bevor sie verwendet werden kann.

API-Aufrufe: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo Antwort burnaddress Feld.

MultiChain-Explorer

Zusammen mit Alpha 17 veröffentlichen wir die erste Beta von Free und Open Source MultiChain-Explorer. Dies bietet eine intuitive webbasierte Ansicht des globalen Status einer MultiChain-Blockchain, ähnlich den Blockchain-Explorern, die Bitcoin-Benutzer kennen und lieben. Sie können damit schnell und bequem Transaktionen, Blöcke, Assets und Adressen sowie die Verbindungen zwischen ihnen bequem von Ihrem bevorzugten Webbrowser aus anzeigen.

Der MultiChain Explorer wurde von der populären gegabelt Abe Projekt, geschrieben in Python und angetrieben von SQLite. Es stellt eine Verbindung zur API eines lokalen MultiChain-Knotens her und enthält einen eigenständigen Webserver, sodass keine zusätzlichen Abhängigkeiten bestehen. Wir hoffen, dass Ihnen dieses Tool gefällt und freuen uns über Ihr Feedback, damit wir es noch besser machen können.

Interaktiver Befehlsmodus (Alpha 16)

Als Gabelung von Bitcoin Core hat MultiChain das geerbt bitcoin-cli Tool, in das wir entsprechend umbenannt haben multichain-cli Na sicher. Dieses Tool bietet eine praktische Befehlszeilenschnittstelle für die JSON-RPC-API von MultiChain, mit der API-Aufrufe über die Systembefehlszeile gesendet werden können und deren Antworten im Terminal angezeigt werden. Hinter den Kulissen werden die API-Anmeldeinformationen aus der Konfigurationsdatei der entsprechenden Kette gelesen, die JSON-RPC-Anforderung erstellt und ihre Antwort dekodiert.

Als Benutzer von MultiChain waren wir frustriert multichain-cli musste für jede API-Anfrage separat ausgeführt werden. Abgesehen vom Systemaufwand verhindert dies die Art der fließenden Interaktion, die SQL-Datenbanken bieten. Und so haben wir es behoben. Ab Alpha 16, wenn Sie laufen multichain-cli [chain-name] Ohne Befehl werden Sie in einen interaktiven Modus versetzt, in dem Sie wiederholt Befehle eingeben und deren Antwort anzeigen können. Der interaktive Modus unterstützt Standardbearbeitungsfunktionen wie Verlauf (Aufwärts- und Abwärtspfeile), Springen zum Anfang (Strg A) oder Ende (Strg E) der Zeile und Wechseln zum nächsten (Strg →) und vorherigen (Strg ←) Wort .

Schnellere Überprüfung der Signatur (Alpha 15)

Wenn es um die Leistung in Bitcoin oder MultiChain geht, ist der wichtigste Engpass die Überprüfung der ECDSA-Signaturen auf dem das Sicherheitsmodell der Blockchain basiert. Die ursprüngliche Bitcoin Core-Software stützte sich bei der Signaturgenerierung und -verifizierung auf eine Open-Source-Bibliothek namens OpenSSL, die den Job erledigte, obwohl sie einige Probleme hatte FormbarkeitDies bedeutet, dass mehr als eine Signatur für einen bestimmten privaten Schlüssel und eine bestimmte Nutzlast gültig war.

In neueren Versionen von Bitcoin Core wurde eine neue Bibliothek für die ECDSA-Signatur und -Verifizierung eingeführt libsecp256k1. Diese Bibliothek wurde von Grund auf neu geschrieben Blockchain-Entwickler von Weltklasse, entfernt die Abhängigkeit von OpenSSL, behebt Probleme mit der Formbarkeit und arbeitet um ein Vielfaches schneller. Einer der Vorteile der Ableitung von Bitcoin Core besteht darin, dass MultiChain diese Art von Verbesserungen nutzen kann, die vor der Bereitstellung im Bitcoin-Netzwerk ausführlich von Experten überprüft und getestet werden. Und so macht Alpha 15 genau das mit libsecp256k1.

Berechtigung aktivieren (Alpha 14)

Bei der Entwicklung der ersten Version von MultiChain standen wir vor einem Dilemma hinsichtlich der Berechtigung. Einerseits hätten wir kein Problem damit, ein äußerst leistungsfähiges Berechtigungsmodell mit mehreren Ebenen von Administratoren, Berechtigungen pro Asset und gewichteten Abstimmungsschemata zu erstellen und zu implementieren. Auf der anderen Seite wussten wir, dass diese aus Anwendersicht die Komplexität erhöhen und nicht unbedingt den Benutzeranforderungen entsprechen würden. Wir haben uns daher entschlossen, mit einem einfachen Modell zu beginnen, das nur sechs Berechtigungstypen (Verbinden, Senden, Empfangen, Ausgeben, Minen, Verwalten) und eine einfache konsensbasierte Abstimmung für die wichtigsten Berechtigungsänderungen enthält. Wir haben erwartet, dass dieses Modell mit der Zeit komplexer wird, aber eher von den Benutzeranforderungen als von unseren eigenen Theorien bestimmt wird.

Es stellt sich heraus, dass in diesem Fall einfach eigentlich ziemlich gut ist. Aber ein ernsthafter Partner, mit dem wir zusammenarbeiten, brauchte etwas mehr. Sie sehen, eine MultiChain-Adresse mit Administratorrechten kann alle Arten von Berechtigungen für eine Blockchain steuern, wobei in einigen Fällen ein Konsens mit anderen Administratoren besteht. Dieser Partner wollte einer Adresse jedoch die Möglichkeit geben, die Verbindungs-, Sende- und Empfangsberechtigungen anderer nur für Onboarding-Zwecke zu steuern und keinen Einfluss auf wichtigere Prozesse wie Mining und die Ausgabe von Assets zu haben. Deshalb haben wir eine neue 'Aktivierungs'-Berechtigung hinzugefügt, die genau dies tut. Dies war auch das erste Beispiel für einen Partner, der für die Implementierung einer Funktion bezahlt, die er im Produkt benötigt, eine Win-Win-Situation, falls es jemals eine gab.

Wallet-Transaktions-APIs (Alpha 13)

Als Gabelung von Bitcoin Core hat MultiChain einige der schlechten und die guten geerbt. Eine der Schwachstellen in Bitcoin Core ist die API zum Abrufen von Informationen zu den Transaktionen in der Brieftasche des lokalen Knotens. Es bietet zwei Möglichkeiten: (a) die getrawtransaction Aufruf, der den binären Inhalt von Transaktionen dekodiert, aber nicht erklärt, wie sie sich auf die lokale Brieftasche ausgewirkt haben, und (b) die gettransaction und listtransactions Anrufe, die darauf abzielen, Transaktionen aus der Perspektive der Brieftasche zu beschreiben, dies jedoch auf verwirrende Weise mit mehreren Antwortelementen pro Transaktion. Erschwerend kommt hinzu, dass die Ausgabe dieser Aufrufe nicht einfach auf die Implementierung von Blockchain-Assets durch MultiChain ausgeweitet werden kann.

In dieser Version wurden daher eine Reihe neuer APIs zum Abfragen der Transaktionen eines Knotens eingeführt. Die Ausgabe dieser Aufrufe behält alle nützlichen Felder derjenigen bei, die sie ersetzen. Sie fügen aber auch eine Reihe neuer Felder hinzu, in denen beschrieben wird, wie sich jede Transaktion auf den Kontostand der lokalen Brieftasche auswirkt, welche Adressen betroffen sind, wie Berechtigungen geändert wurden und welche Metadaten enthalten sind. Nach der Einführung (in Alpha 8) der Möglichkeit, die Aktivität jeder Adresse in einer Brieftasche zu isolieren, werden die Anrufe in zwei Versionen ausgeführt - ein Paar, das Transaktionen aus der Perspektive der gesamten Brieftasche beschreibt, und ein anderes, aus dem sie beschrieben werden die Perspektive einer einzelnen Brieftaschenadresse.

API-Aufrufe: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Mit Blick auf 2016

Dies sind einige der wichtigsten Verbesserungen, die in MultiChain in den letzten Monaten eingeführt wurden. Natürlich wurden auch viele kleinere Funktionen hinzugefügt, die in der README-Datei des Downloads vollständig aufgeführt sind. Und unsere erste Priorität wird immer sein Beheben Sie Fehler, sobald sie auftreten. Zum Glück waren die Probleme, die wir gesehen haben, nie ernsthafter architektonischer Natur - das erfreuliche Ergebnis der Verwendung von Bitcoin Core als Ausgangspunkt.

In Bezug auf MultiChain selbst werden wir nach einem halsbrecherischen Release-Zeitplan etwas langsamer. Dies liegt daran, dass wir an etwas Großem arbeiten, dessen Fertigstellung einige Monate dauern wird. Ich werde diese Funktion in einem zukünftigen Blog-Beitrag ausführlich beschreiben, aber die Grundidee besteht darin, einen einfachen und effizienten unveränderlichen Aufzeichnungs- und Zeitstempelmechanismus bereitzustellen für jede Art von Informationen, eine Art digitales "Band". Obwohl Transaktionsmetadaten in MultiChain bereits für diesen Zweck verwendet werden können (in Blöcken von bis zu 8 MB), sind sie für das Speichern oder Abrufen nicht besonders praktisch, und es gibt Skalierbarkeitsprobleme beim Umgang mit großen Datenmengen.

Was motiviert diese Funktion? Ihr Feedback hat uns natürlich gelehrt, dass unveränderlicher Allzweckspeicher ein sehr häufiger Anwendungsfall für Blockchains ist. Und wenn in MultiChain jemals eine erhebliche Nachfrage nach „intelligenten Verträgen“ (dh On-Blockchain-Berechnungen) besteht, kann dieses System als zugrunde liegende Speicherschicht dienen, wobei bei Bedarf Berechnungen pro Knoten durchgeführt werden. Wie ich vorher erklärtEs ist wenig sinnvoll, von jedem Knoten in einer privaten Blockchain zu verlangen, dass er On-Chain-Berechnungen in Echtzeit durchführt.

Und danach? Zweifellos wird es weitere Verbesserungen für das kostenlose Produkt geben, aber wir werden auch anfangen, an einem zu arbeiten Premium-Version von MultiChain. Glücklicherweise haben wir in den letzten 8 Monaten eine Reihe allgemeiner Feature-Anfragen gesehen, die die folgenden Merkmale aufweisen:

  • Sie sind wichtig für reale Bereitstellungen, aber nicht für erste Experimente.
  • Sie können auf Knotenbasis implementiert werden, ohne den Konsens einer Kette zu beeinträchtigen.
  • Echte Unternehmen, die echte Projekte durchführen, scheinen mehr als glücklich zu sein, dafür zu bezahlen.

Diese Funktionen beziehen sich auf Leistung, Sicherheit, Protokollierung und Analyse und werden im Laufe der Zeit ausführlich beschrieben. Im Moment möchte ich zwei wichtige Dinge an dieser Premium-Version hervorheben. Erstens wird es ein Drop-In-Ersatz Für die kostenlose Version funktionieren Code oder Anwendungen, die Sie heute auf MultiChain erstellen, weiterhin unverändert. Zweitens kann jeder Knoten in einer Blockchain unabhängig entscheiden ob ein Upgrade durchgeführt werden soll oder nicht, da keine der Premium-Funktionen den Konsens der Blockchain beeinflusst. Wir sind nicht nur gutherzig - es ist entscheidend, wenn MultiChain weiterhin organisch wachsen soll. Eine neue Entität kann eine Verbindung herstellen und mit einem vorhandenen MultiChain-Netzwerk voller Premium-Knoten interagieren, ohne einen Cent auszugeben.

Wenn Sie die Premium-Version von MultiChain diskutieren möchten, senden Sie bitte eine E-Mail premium@multichain.com or benutze dieses Formular. Wir werden uns freuen, Ihre Anforderungen kennenzulernen und zu sehen, wie wir sie erfüllen können.

Eine Sache, die ich in den letzten Jahren gelernt habe, ist, dass niemand Software ernst nimmt, bis er sie tatsächlich sehen und verwenden kann. Einen Monat vor der ersten Veröffentlichung von MultiChain erzählte ich den Leuten von dem Produkt und bemerkte, dass sie höflich nickten, während sie offensichtlich dachten: „Oh, rette mich, hier ist ein weiterer schneller Redner mit einem Whitepaper und ohne Arbeitscode.“ Sobald Sie jedoch ein Produkt zur Verfügung stellen, ändert sich die Reaktion vollständig. Wenn Sie also mit einer Portion Skepsis über diese zukünftige Premium-Version lesen, verstehe ich sie und werde sie Ihnen nicht vorenthalten. Alles, was ich sagen kann, ist, dass MultiChain bisher eine sehr solide Bilanz darin hat, seine Versprechen zu erfüllen, und wir freuen uns darauf, fortzufahren.

Ich möchte diese Gelegenheit auch nutzen, um unserem Team für die hervorragende Arbeit zu danken. Obwohl ich von Beruf ein ernsthafter Programmierer bin, verbringe ich heutzutage meine ganze Zeit damit, Inhalte zu schreiben, Produkte zu verwalten und mit Kunden zu sprechen. Ich bin unglaublich glücklich zu wissen, dass ich unseren Entwicklern vertrauen kann, Tag für Tag soliden und effizienten Code zu erstellen, und ich halte das für einen Moment nicht für selbstverständlich.

Und zum Schluss danke ich Ihnen für das Lesen und dafür, dass Sie die MultiChain-Plattform frühzeitig genutzt haben.

Zeitstempel:

Mehr von Multikette