首页 > 解决方案 > Hyperledger Fabric - 实现交易类型并为每种交易类型配置背书策略

问题描述

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

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

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

你认为这是一个好方法吗?你遵循什么?推荐什么来实现不同的交易类型?另外,我如何为不同的交易类型执行不同的背书策略?

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

标签: hyperledger-fabricblockchainhyperledgerhyperledger-chaincodechaincode

解决方案


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

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

希望这可以帮助。

PS如果您确实想为不同的交易类型设置不同的背书策略,您可能会使用基于状态的背书......无论如何,这些策略都是通过链码设置的......所以您可以尝试根据每个状态设置背书策略交易类型。


推荐阅读