2016-10-31 9 views
1

Ich bin ein Neuling im Hyperledger und habe mich gefragt, wo ich eine Dokumentation finden könnte, die sich auf die Funktionsweise der Datenbank im Hyperledger bezieht.Hyperledger - Datenbankindex

Durch die Betrachtung der Unterschiede Beispiele scheint es, dass es ein einfacher Schlüssel, Wertspeicher ist. Derzeit arbeite ich jedoch an einem POC, bei dem wir Dokumente in Hyperledger speichern müssen, was bedeutet, dass wir sie indizieren sollten, um die benötigten Daten abzufragen und abzurufen.

Gibt es Bibliotheken, die es erlauben, Dokumente (ähnlich wie lucene/elasticsearch) in die Hyperledger-Datenbank zu indizieren?

Antwort

1

Schlüssel-Wert speichern in Fabric von RocksDB unterstützt. Sie können versuchen, Bibliotheken zu verwenden, die mit dieser Datenbank arbeiten.

Denken Sie daran, dass Hyperledger für die Privatsphäre entwickelt wurde. In der Produktionsumgebung mit security.privacy: true werden die Dokumente verschlüsselt und die Indexierung ist nicht möglich.

+0

Vielen Dank für Ihre Antwort. Bezüglich RockdDB versuche ich, eine Bibliothek zu finden, aber ich kann nicht ... am wichtigsten, die Dokumente, die gespeichert werden, sind "allgemeines Wissen", also müssen sie verschlüsseln. Ist es im Hyperledger möglich zu definieren, welche Daten in der Produktion verschlüsselt werden sollen? – Hopkins

+0

Im Moment gibt es keine granulare Kontrolle darüber, "welche Daten zu verschlüsseln sind", es ist möglich, dass diese Funktion später implementiert wird. Zurück zur ursprünglichen Frage - In Fabric v1 in "core.yaml" gibt es einen Konfigurationsparameter "stateDatabase". Es kann für Sie einfacher sein, mit CouchDB für die Indizierung von Datenbanken zu arbeiten. –

1

Fabric v1.0 verfügt über ein Schlüssel/Wert-Datenmodell sowie eine auf CouchDB basierende Dokumentdatenmodelloption. Wenn Sie CouchDB mit JSON-Daten verwenden, können Sie einzelne Felder innerhalb Ihres Dateninhalts aus dem Chaincode abfragen.

Auch mit dem Schlüssel/Wert-Datenmodell können Sie Ihren eigenen 'Index' in Chaincode als Schlüssel zur Auflösung Ihrer Abfragen modellieren.

Siehe marbles02 chaincode Beispiel Stoff v1.0, die beiden Datenmuster zeigen:

https://github.com/hyperledger/fabric/blob/master/examples/chaincode/go/marbles02/marbles_chaincode.go