提交交易时的transactionId

transactionId when submitting a transaction

我正在尝试使用 "composer transaction submit..." 提交交易。我收到一条错误消息,指出 transactionId 值丢失...仅当我添加随机 transactionId 时才接受交易,但在 Playground 中,用于提交交易的 JSON 不包含 transactionId 并且执行正常(尽管我知道它是 Playground 中嵌入的 javascript Fabric 模拟器)。

因此,为了使用 CLI 或 REST 提交交易 API,如果交易尚未执行,我应该如何 generate/know 交易 ID?谢谢。使用 REST API 时,它的工作方式相同吗?

这是我得到的错误:

Error: Invalid or missing identifier for Type OwnerCreationTransaction in namespace com.namespace.model
    at Factory.newResource (/usr/local/lib/node_modules/composer-cli/node_modules/composer-common/lib/factory.js:89:19)
    at Serializer.fromJSON (/usr/local/lib/node_modules/composer-cli/node_modules/composer-common/lib/serializer.js:141:37)
    at then.then.e (/usr/local/lib/node_modules/composer-cli/lib/cmds/transaction/lib/submit.js:83:39)
Command failed.

OwnerCreationTransaction 具有以下定义:

transaction OwnerCreationTransaction identified by transactionId {
    o String transactionId
    o String id
    o String lastName
    o String firstName
    o String address
    o String city
    o String state
    o String phone
    o String email
}

交易 ID 是提交者提供的值,虽然它可能不需要是唯一的,但强烈建议您为提交的每笔交易使用唯一标识符。对于游乐场,它会自动为您提供一个 uuid 作为标识符。 然而,你所做的正确强调是游乐场、cli 和其他 api 之间的不一致,它应该是一致的,见 https://github.com/fabric-composer/fabric-composer/issues/538 获取更多信息。