2017-09-04 2 views
0

Ich versuche eine Historian-Abfrage zu erstellen, die es mir ermöglicht, Transaktionen (und ihre ursprünglichen Eingaben) anzuzeigen. Ich habe eine Idee basierend auf diesem Problem https://github.com/hyperledger/composer/issues/1850 versucht, aber das wurde im Composer Playground behoben. Jetzt frage ich mich, wie ich dies in der REST-API erreichen kann, ohne auf Ereignisse angewiesen zu sein, die die Transaktionseingabeinformationen enthalten.So zeigen Sie Transaktionseingangsdaten in einer Hyperledger Composer-Abfrage an

Die Abfrage ich im Anschluss an die Dokumentation auf Abfragen mit bin ist:

query HistorianRecords { 
    description: "Select from HistorianRecords" 
    statement: SELECT org.hyperledger.composer.system.HistorianRecord 

} 

Das hat mich angezeigten Informationen wie dieses

{ 
    "$class": "org.hyperledger.composer.system.HistorianRecord", 
    "transactionId": "c1bcd961-41bb-43a3-b5ee-c1c3694f7736", 
    "transactionType": "Transfer", 
    "transactionInvoked": "resource:org.hyperledger.composer.system.Transaction#c1bcd961-41bb-43a3-b5ee-c1c3694f7736", 
    "eventsEmitted": [], 
    "transactionTimestamp": "2017-09-04T07:55:54.405Z" 
    } 

Keine der Eingangsinformationen für die Transaktion zurückgibt.

Ich möchte die Informationen erhalten wie, wie der Online-Spielplatz zeigt es, die im Grunde die Transaktion Eingänge, dh enthält. im Beispielnetz, wo Sie Eingabe Asset und newValue

{ 
"$class": "org.acme.sample.SampleTransaction", 
"asset": "resource:org.acme.sample.SampleAsset#a", 
"newValue": "123", 
"transactionId": "0b7aa7b5-ffed-4fe7-9a60-c883085b88e8", 
"timestamp": "2017-09-04T08:50:53.346Z" 
} 

Mein Netzwerk das Senden von Zahlungen von Teilnehmer zu Teilnehmer, nicht in der Lage sein zu sehen, wer übergeben, wie viel an, die im Grunde macht die blockchain sinnlos beinhaltet.

Wie kann ich dies mit den Abfragen tun?

Antwort

1

Also eigentlich, statt mit einer Anfrage an den Historian stört, bekam ich diese diese Abfrage mit arbeiten

query myTransactions{ 
    description: "return all transactions made (not system transactions)" 
    statement: SELECT org.acme.sample.NAME_OF_TRANSACTION_CLASS 

} 
+0

Ein weiterer Hinweis, dies wurde nur in Composer 0.12.0 behoben – JezMonkey

1

richtig, dass, funktioniert als ein Transaktionsregister (oder Register) direkt abfragen. Letztendlich sollten Sie in der Lage sein, auch die Historian-Registry abzufragen - das heißt, die Eingabe für die Transaktion sollte auch im Historian vollständig angezeigt werden. Der historische Transaktionsdatensatz hat eine Beziehung zu der aufgerufenen Transaktion (aus der Txn-Registrierung), um herauszufinden, "was die Änderung an dem Asset (sagen wir) war", z. B. a Playground. Abfragen sind dazu gedacht, dem Historian einen "Wert" als "den" historischen Datensatz hinzuzufügen - zB "Abfrage der Historie von Transaktionen (und was wurde geändert) vom Typ x für die Periode 1 bis Periode 2". Zur REST-Unterstützung in der Historian-Funktion - wir planen, auch REST-Unterstützung für Historian bereitzustellen, und dies ist in Vorbereitung (wird die Antwort später aktualisieren, wenn sie veröffentlicht wird).

Verwandte Themen