Was ist BigchainDB und wie kann es mit Ethereum verwendet werden?

BigchainDB sagt:

Es ergänzt dezentrale Verarbeitungsplattformen wie Ethereum.

Im Blockchain-Stack deutet es darauf hin, dass die „dezentrale Verarbeitung“ von Ethereum über dem Dateisystem und BigchainDB liegt.

Wie kann BigchainDB in Ethereum verwendet werden? Wird Geth BigchainDB verwenden können? Angesichts der Tatsache, dass BigchainDB ständig "Eine Million Schreibvorgänge pro Sekunde" wiederholt, ist das dasselbe wie Transaktionen pro Sekunde? Ist die Skalierbarkeit mit tx/Sekunde dann gelöst?

Antworten (3)

Ich bin Dimi – ein Entwickler bei BigchainDB.

Im Blockchain-Stack deutet es darauf hin, dass die „dezentrale Verarbeitung“ von Ethereum über dem Dateisystem und BigchainDB liegt.

Wir bei BigchainDB glauben, dass jede Technologie ihren Zweck erfüllt. In typischen Webanwendungs-Stacks sind einige Technologien besser in der Verarbeitung (z. B. Amazon EC2) als in der Datenabfrage (z. B. MongoDB). Für Entwickler sollte es sich natürlich anfühlen, einen ähnlichen Stack dem dezentralisierten Paradigma zuzuordnen.

Hier ein Beispiel, wie das aussehen könnte.

__________________________________________________________________
|                       Application: DApp                         |
___________________________________________________________________
|               Processing: Ethereum, Hyperledger, ...            |
___________________________________________________________________
|   File Storage:  |       Database:       |    e-cash/e-gold:    |
| IPFS, Swarm, ... | BigchainDB, IPDB, ... | Bitcoin, Ripple, ... |
___________________________________________________________________

Wie kann BigchainDB in Ethereum verwendet werden?

Um dies zu erreichen, gibt es viele Wege. Einige Einschränkungen sind die Isolierung des EVM während der Ausführung, die Standardisierung von Nachrichten und OP-Codes, der Determinismus von Daten und so weiter. Im Folgenden liste ich einige Szenarien auf, wie Bigchaindb mit Ethereum und möglicherweise anderen intelligenten Vertragsplattformen integriert werden kann. Beachten Sie, dass einige von ihnen eher von der Stange sind als andere - was zusätzliche Opcodes oder vielleicht eine Abzweigung des Quellcodes erfordern würde.

  • Verwenden Sie Ethereum Smart Contracts als Registrierung mit Zugriffskontrollrechten zum Speichern von URIs, die auf externe Ressourcen wie BigchainDB und IPFS verweisen.
  • Verwenden Sie BigchainDB als Register für Smart Contracts in Ethereum. ZB dapp.registry.
  • Push-Daten von BigchainDB zu Ethereum als Orakel, ohne Änderungen an Ethereum über z. Oraclize und andere
  • Daten in BigchainDB innerhalb von Ethereum Dapp verwenden, als erstklassiger Bürger, aber Änderungen an Ethereum benötigen: erfordert, dass ein Opcode zu Ethereum hinzugefügt wird
  • Austausch von Nachrichten/Assets/Daten unter Verwendung des Interledger-Protokolls (ILP) .
  • Integration durch eine übergeordnete Blockchain-Plattform, bei der BigchainDB und Ethereum komplementär sind (BigchainDB als DB-Backend; Ethereum als intelligente Verträge oder Währung). ZB Monax , MonetaGo, BlockEx
  • Integration durch übergeordnete Blockchain-Anwendung, bei der BDB & Ethereum komplementär sind (BigchainDB als DB; Ethereum als Smart Contracts oder Währung)

Angesichts der Tatsache, dass BigchainDB ständig "Eine Million Schreibvorgänge pro Sekunde" wiederholt, ist das dasselbe wie Transaktionen pro Sekunde? Ist die Skalierbarkeit mit tx/Sekunde dann gelöst?

Als wir BigchainDB zum ersten Mal veröffentlichten, zeigten wir die 1 Mio. Schreibvorgänge/Sek. auf dem zugrunde liegenden Datenspeicher (RethinkDB), um die Möglichkeit eines großen Durchsatzes zu zeigen, und als Ziel für den BDB-Durchsatz (wir sprechen von „in Richtung 1 Mio.“). Ungefähr zu dieser Zeit hatten wir interne Benchmarks mit bis zu 200.000 tx/s. Seitdem haben wir die Arbeit am Durchsatz unterbrochen, um uns auf Transaktions-UX und Stabilität zu konzentrieren. BDB hat also derzeit einen geringeren Durchsatz, aber in unserer Roadmap ist daran zu arbeiten, BDB in Richtung der angestrebten Zahlen neu zu optimieren, um auf die hohe Leistung und horizontale Skalierung des zugrunde liegenden Datenspeichers sowie auf die parallele Verarbeitung zurückgreifen zu können.

Bearbeiten:

Dezentrale Stack-Interoperabilität

Der Teil, der nicht klar ist, ist die Interop ... Im aktuellen Modell übermitteln Benutzer eines verteilten Ledgets signierte Transaktionen über das Netzwerk, um in den nächsten abgebauten Block aufgenommen zu werden. Das ist der Engpass.

Würden Benutzer stattdessen alle Transaktionen durch ein Netzwerk in BigchainDB schieben, um sie zu speichern, als etwas bestellte Transaktionen aus dieser Datenbank herausziehen und Blöcke erstellen würde, die von Ethereum ausgeführt werden?

Oder ist das Modell eher so: Einfache Sendungen gehen an BigchainDB und Smartcontract-Anrufe gehen an Ethereum? Einige Mechanismen synchronisieren den Ethereum-Ausführungsstatus mit BigchainDB (jeder gefundene Block ändert die Salden in Ethereum, diese Salden werden dann innerhalb von BigchainDB verschoben).

BigchainDB könnte neben Ethereum (oder umgekehrt) verwendet werden, und eine solche Integration würde über eine benutzerdefinierte Anwendung oder einen benutzerdefinierten Dienst erfolgen.

Die Funktionen von Bigchaindb und Ethereum sind unterschiedlich, daher vergleicht „Schreiben pro Sekunde“ Äpfel mit Birnen. Ethereum bietet Konsens zur Ausführung von EVM-Code (Verträgen), während BigchainDB – basierend auf dem Whitepaper – eine Konsensschicht für die Übertragung von Vermögenswerten/Werten bereitstellt. Das heißt, Ethereum speichert den Zustand des Systems nach der Ausführung von Code und BigchainDB speichert den Zustand von Salden und Registrierungen.