【发布时间】:2018-05-23 03:45:29
【问题描述】:
我正在研究超级账本结构,我有 2 个组织、1 个通道和 1 个排序器的网络设置。
我在 Org1 中安装了链码(比如 CH1),并带有背书策略“AND(Org1.member,Org2,member)”。现在我需要在 Org2 中安装相同的链码(CH1)来验证和认可交易。
由于链码(CH1)安装在 Org2 中(用于背书目的),也允许使用相同的链码(CH1)执行交易,这将影响 Org1 创建的状态。如何预防?
【问题讨论】:
我正在研究超级账本结构,我有 2 个组织、1 个通道和 1 个排序器的网络设置。
我在 Org1 中安装了链码(比如 CH1),并带有背书策略“AND(Org1.member,Org2,member)”。现在我需要在 Org2 中安装相同的链码(CH1)来验证和认可交易。
由于链码(CH1)安装在 Org2 中(用于背书目的),也允许使用相同的链码(CH1)执行交易,这将影响 Org1 创建的状态。如何预防?
【问题讨论】:
你需要在这里分离3个概念:
安装链码只是使链码的字节在安装它的对等点上可用。
在通道上实例化链码使该链码可用于在通道上执行。
背书策略确定哪些节点需要成功执行和签署交易(技术上,节点签署背书响应)。
在您的情况下,在 Org1 和 Org2 的对等点上安装链码会使链码字节可供对等点使用。 在通道上实例化链码将使其可用于执行。 您设置的背书策略要求来自 Org1 的对等方和来自 Org2 的对等方必须执行并背书交易。
一旦客户端收集到背书,交易将被发送到排序服务,然后交付给通道中的所有对等点。当通道中的对等点收到涉及 CH1 的交易时,他们将检查以确保已满足背书策略(在这种情况下,来自 Org1 和 Org2 的对等点签署了交易),然后才能提交(在其他验证检查之后)
【讨论】: