3

是否有一种确定的方式来获取事务函数中的时间戳,类似于 stub.GetTxTimestamp() 可以在 Go 版本的 Fabric 链码中使用。

4

3 回答 3

3

只是分享一个适用于basic-sample-network网络的例子:

在模型文件 ( lib/org.acme.sample.cto) 中,我扩展SampleAsset了定义任何添加的名为timestamptype 的新属性DateTime

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

在脚本文件 ( lib/logic.js) 中,使用当前事务的时间戳onSampleTransaction更新 SampleAsset 的函数:timestamp

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);
        });
}
于 2017-04-28T04:58:36.647 回答
1

所有的交易都有一个系统属性叫做timestamp,所以你可以使用myTransaction.timestamp

于 2017-04-27T13:07:00.770 回答
0

我们不能使用供应商文件夹中的原型...

https://github.com/hyperledger-archives/fabric/issues/1832

于 2018-02-08T14:47:20.677 回答