2017-04-27 4 views

Antwort

1

Nur um ein Beispiel zu teilen, die mit basic-sample-network Netzwerk funktioniert:

asset SampleAsset identified by assetId { 
    o String assetId 
    --> SampleParticipant owner 
    o String value 
    o DateTime timestamp 
} 

In der Skriptdatei:

In der Modelldatei (lib/org.acme.sample.cto) I erweitert SampleAsset Definition jede genannte neue Eigenschaft timestamp vom Typ DateTime hinzugefügt (lib/logic.js), die onSampleTransaction-Funktion, um SampleAsset timestamp mit dem Zeitstempel der aktuellen Transaktion zu aktualisieren:

function onSampleTransaction(sampleTransaction) { 
    sampleTransaction.asset.value = sampleTransaction.newValue; 
    sampleTransaction.asset.timestamp = sampleTransaction.timestamp; 
    return getAssetRegistry('org.acme.sample.SampleAsset') 
     .then(function (assetRegistry) { 
       return assetRegistry.update(sampleTransaction.asset); 
     }); 
} 
1

Alle Transaktionen haben eine Systemeigenschaft namens timestamp, so dass Sie myTransaction.timestamp verwenden können.

+0

Vielen Dank für die Antwort, Dan verwenden können! Hier ist das Beispiel, das für basic-sample-network funktioniert (vorausgesetzt, Asset "SampleAsset" hat die Eigenschaft "timestamp", die wir mit der folgenden Transaktion "SampleTransaction" aktualisieren wollen): 'function onSampleTransaction (sampleTransaction) { sampleTransaction. asset.value = sampleTransaction.newValue; \t sampleTransaction.asset.timestamp = sampleTransaction.timestamp; Rückgabe getAssetRegistry ('org.acme.sample.SampleAsset') . Dann (Funktion (AssetRegistry) { Rückgabe AssetRegistry.update (sampleTransaction.asset); }); } ' –

+0

https://github.com/hyperledger-archives/fabric/issues/1832 wir können das Proto aus dem Lieferantenordner nicht verwenden ... –