Hyperledger Fabric - 实现交易类型并为每种交易类型配置背书策略

Hyperledger Fabric - Implementing transaction types and configuring endorsement policies for each transaction type

在 Hyperledger Fabric 中,一个资产有多个交易。这些交易会更新资产的状态并保持跟踪。

目前,如果我想为一种资产设置不同的交易类型,那么我在链码中编写了与交易类型相对应的不同函数。

例如:如果我的资产是汽车,那么每个资产都可以有销售、购买、服务、维修等类型的交易。对于这些购买、维修、服务等中的每一个,我都写了一个链码中的函数,它根据作为输入发送的交易类型被调用(交易类型作为对等链码调用命令中的参数发送)。

您认为这是一个好的方法吗?你跟着什么?推荐什么来实现不同的交易类型? 另外,如何针对不同的交易类型执行不同的背书政策?

注意:我知道可以用链代码编写的基于资产(或基于密钥)的背书策略 (Fabric v1.4)。但这不允许我根据交易类型配置背书策略。

您使用的模式非常典型……链码毕竟只是一个状态机。使用不同的链代码代表不同类型的资产或资产 类 是相当普遍的。您通常会有多个功能来管理资产的生命周期(您似乎这样做了)。典型的模式是调用链代码时的第一个参数表示您希望调用的函数,但如果您想修改该模式则由您决定。

就对同一状态采取的不同操作采用不同的背书策略而言,这不受支持,因为通常不需要。您需要注意不要将背书政策(对调用输出的同意)与协议协议(例如,我同意将我的汽车卖给您)混淆。这种类型的逻辑通常在链代码函数中处理(例如,您将检查调用的创建者实际上是汽车的所有者)。

希望对您有所帮助。

P.S。如果您确实想为不同的交易类型设置不同的背书策略,您可以使用 state-based endorsement ...无论如何,这些策略都是通过链代码设置的...因此您可以尝试为每个状态设置背书策略关于交易类型。