HL Fabric - 状态、交易但不同的密钥
HL Fabric - states, transactions but varied keys
编辑:Bump——有人知道这个问题的答案吗???
基本问题: - 在单个 HLF 应用程序中,不同的交易可以有不同的密钥吗?
上下文: 开发一个 1.4.2 HLF 应用程序,该应用程序反映了织物样本商业票据示例,但具有不同的交易密钥。例如,在商业票据中,PaperNet 商业票据的 key
是通过连接 Issuer
和 paper
属性形成的,例如MagnetoCorp0001
。虽然 Issuer
和 paper
可能会改变 paper
总是与 Issuer
结婚。这在整个商业票据示例中是一致的。
然而,在我们的示例中,不同的交易将根据状态具有不同的密钥。例如,PartyA 与 BigBiz 签订合同,以便能够付费许可小部件。我们认为这是一个 contracting transaction
并且完成后它的状态是 underContract
key
因为它是 licensor
+ licensee
+ contractNumber
或在这个例子中:BigBizPartyA123
.
在我们的生命周期中,需要先签订合同,然后 BigBiz 才能为小部件提供许可。 available widget transaction
的 available
状态键是 licensor
+ widgetID
或者在这种情况下 BigBiz0001
.
在我们的 licensing transaction
中,我们 licensed
状态的关键是 licensor
+ widgetID
+ licensee
或 BigBiz0001PartyA
.
问题 - 这现实可行吗?
与 paperNum
始终存在的商业票据不同,我们的生命周期 POV 应用程序不会有 widgetID,除非 contracting transaction
达到 underContract
状态。所以没有我们可以键入的 widgetID。同样,我们还有其他交易,如支付交易,也与小部件无关,因此我们输入例如 licensor
+ contractNumber
.
这在复杂的 HLF 应用程序中是否正常?谢谢
您的问题似乎与 1) 管理唯一密钥以及 states/statelists 和 2) 资产是什么以及您的交易参数(适用于资产生命周期或参与者生命周期)有关。是的,如您描述的那样有不同的键是正常的。
首先,我建议您参考 Fabric 文档中流程和数据设计部分的多状态评论中的逻辑和物理表示 -> https://hyperledger-fabric.readthedocs.io/en/release-1.4/developapps/architecture.html#logical-representation
如果你的区块链网络联盟中的其他人可以类似地创建记录(并防止与你网络中的其他人发生冲突),那么你的密钥形成就可以了,因为 keys/records 其他 orgs/entities将提交给同一个区块链网络中的分类帐。
从你的问题来看,你似乎有合同(资产)和可授权的小部件(资产)。
您的合同资产(复合)密钥看起来不错 - 它在很大程度上是关于唯一性并允许增长。该资产是由(比如说)createContract 交易创建的。
您的小部件资产密钥似乎没问题(例如,刚刚创建的资产,还没有被许可人),因为该密钥组合可能在网络中是唯一的 - 这是由 'available' 交易创建的。初始许可状态为 'none'..etc.
最后,'licensing' 交易可以更新现有的小部件(在 trxn 中有一个被许可人参数 - 'licensee' 是 'widget' 的一个属性(如果有多个被许可人则为数组) , 绑定回同一个 licensor/widgetId 键)。第一个被许可人将小部件的状态更新为 'licensed'(而不是 'none' 等)
至于 'payment' 交易,信息不足:但您需要询问,正在更新什么资产(它是否存在 - 它的资产密钥是什么)以及交易的参数是什么,这将应用于资产(或不同的资产,如果一个工作单元更新 'multiples')——顺便说一句,你是说 'ContactNum/Licensee' 吗?总之,深思。
编辑:Bump——有人知道这个问题的答案吗???
基本问题: - 在单个 HLF 应用程序中,不同的交易可以有不同的密钥吗?
上下文: 开发一个 1.4.2 HLF 应用程序,该应用程序反映了织物样本商业票据示例,但具有不同的交易密钥。例如,在商业票据中,PaperNet 商业票据的 key
是通过连接 Issuer
和 paper
属性形成的,例如MagnetoCorp0001
。虽然 Issuer
和 paper
可能会改变 paper
总是与 Issuer
结婚。这在整个商业票据示例中是一致的。
然而,在我们的示例中,不同的交易将根据状态具有不同的密钥。例如,PartyA 与 BigBiz 签订合同,以便能够付费许可小部件。我们认为这是一个 contracting transaction
并且完成后它的状态是 underContract
key
因为它是 licensor
+ licensee
+ contractNumber
或在这个例子中:BigBizPartyA123
.
在我们的生命周期中,需要先签订合同,然后 BigBiz 才能为小部件提供许可。 available widget transaction
的 available
状态键是 licensor
+ widgetID
或者在这种情况下 BigBiz0001
.
在我们的 licensing transaction
中,我们 licensed
状态的关键是 licensor
+ widgetID
+ licensee
或 BigBiz0001PartyA
.
问题 - 这现实可行吗?
与 paperNum
始终存在的商业票据不同,我们的生命周期 POV 应用程序不会有 widgetID,除非 contracting transaction
达到 underContract
状态。所以没有我们可以键入的 widgetID。同样,我们还有其他交易,如支付交易,也与小部件无关,因此我们输入例如 licensor
+ contractNumber
.
这在复杂的 HLF 应用程序中是否正常?谢谢
您的问题似乎与 1) 管理唯一密钥以及 states/statelists 和 2) 资产是什么以及您的交易参数(适用于资产生命周期或参与者生命周期)有关。是的,如您描述的那样有不同的键是正常的。
首先,我建议您参考 Fabric 文档中流程和数据设计部分的多状态评论中的逻辑和物理表示 -> https://hyperledger-fabric.readthedocs.io/en/release-1.4/developapps/architecture.html#logical-representation
如果你的区块链网络联盟中的其他人可以类似地创建记录(并防止与你网络中的其他人发生冲突),那么你的密钥形成就可以了,因为 keys/records 其他 orgs/entities将提交给同一个区块链网络中的分类帐。
从你的问题来看,你似乎有合同(资产)和可授权的小部件(资产)。
您的合同资产(复合)密钥看起来不错 - 它在很大程度上是关于唯一性并允许增长。该资产是由(比如说)createContract 交易创建的。
您的小部件资产密钥似乎没问题(例如,刚刚创建的资产,还没有被许可人),因为该密钥组合可能在网络中是唯一的 - 这是由 'available' 交易创建的。初始许可状态为 'none'..etc.
最后,'licensing' 交易可以更新现有的小部件(在 trxn 中有一个被许可人参数 - 'licensee' 是 'widget' 的一个属性(如果有多个被许可人则为数组) , 绑定回同一个 licensor/widgetId 键)。第一个被许可人将小部件的状态更新为 'licensed'(而不是 'none' 等)
至于 'payment' 交易,信息不足:但您需要询问,正在更新什么资产(它是否存在 - 它的资产密钥是什么)以及交易的参数是什么,这将应用于资产(或不同的资产,如果一个工作单元更新 'multiples')——顺便说一句,你是说 'ContactNum/Licensee' 吗?总之,深思。