2017-09-13 2 views
0

Ich habe Händler-Demo-Prozess untersucht mit Debugging und Blick auf Datenbank auf der Seite (Käufer & Verkäufer). Ich habe bemerkt, dass ich am Ende der runSeller-Demo in der Datenbank nachlaufe, wenn TwoPartyTradeFlow ausgeführt wird. Bitte helfen Sie zu verstehen.Corda: Trader-Demo - Datenbank Beobachtungen

https://discourse-cdn-sjc1.com/standard2/uploads/corda/original/1X/4249978e55f7e37dca53163546374a25644d5f64.png

Fragen:

Warum die Commercial-Paper-Ausgabe der letzten Transaktion ist nicht auf beiden Datenbanken propagiert (Verkäufer & Käufer)? Der Verkäufer sieht nur die Geldausgabe in der Tresortabelle und der Käufer sieht die kommerzielle Papierausgabe und die Barausgabe nicht ausgegebenes Bargeld.

Warum die Tabelle CP_STATES des Verkäufers die endgültige Ausgabe nicht sehen würde? Sollten beide Datenbanken nicht dieselben Einträge enthalten?

Antwort

0

Der Zweck des Vault eines Knotens ist es, dass er leicht die Zustände identifizieren kann, die er nutzen kann. Es speichert nur Zustände im Tresor, die möglicherweise später irgendwie konsumiert werden können.

Im Falle von Bargeld kann nur der Besitzer es konsumieren, so dass nur der Besitzer des Geldes den Staat in seinem Tresor speichert. Im Code wird dies implementiert, indem Cash.State eine Unterklasse von OwnableState gemacht wird.

Beide Knoten sollten die Transaktion immer noch in ihrem Transaktionsspeicher sehen.