事务回滚在 Hyperledger Fabric 中如何工作?
How does transaction rollback work in Hyperledger Fabric?
我正在寻找事务回滚。如果链代码事务修改了状态,但在它能够 return.
之前因错误而失败,则这是必需的
我看到这是针对拉取请求完成的,但我不明白它是如何工作的
Added support for rolling back a tx if chaincode execution fails
谁能给我一个例子,它是如何工作的?
编辑
我正在寻找的是数据库(工作单元)中的事务概念,但在 Hyperledger Fabric 中
假设我们要为客户列表注册产品,如果某些客户的产品注册出现问题,则操作将被取消,并且不会对任何客户进行注册
您链接的提交不再与当前的 Hyperledger Fabric 版本相关。该功能是在v1.0之前加入的,对整个框架架构进行了重构。
从 v1.0+ 开始,交易首先由背书者模拟,背书者创建一组由链代码产生的已签名状态更改。如果有足够多的背书人签署交易(根据背书策略),则客户端可以将交易发送到排序服务以包含在分类帐中。导致链代码错误的交易永远不会到达这一点,因为它会由于错误而无法收集必要的背书。客户端必须修改交易或请求修改链代码才能正常工作。
查看 Hyperledger Fabric 架构 paper 以获得更详细的解释,包括序列图。
我正在寻找事务回滚。如果链代码事务修改了状态,但在它能够 return.
之前因错误而失败,则这是必需的我看到这是针对拉取请求完成的,但我不明白它是如何工作的
Added support for rolling back a tx if chaincode execution fails
谁能给我一个例子,它是如何工作的?
编辑
我正在寻找的是数据库(工作单元)中的事务概念,但在 Hyperledger Fabric 中
假设我们要为客户列表注册产品,如果某些客户的产品注册出现问题,则操作将被取消,并且不会对任何客户进行注册
您链接的提交不再与当前的 Hyperledger Fabric 版本相关。该功能是在v1.0之前加入的,对整个框架架构进行了重构。
从 v1.0+ 开始,交易首先由背书者模拟,背书者创建一组由链代码产生的已签名状态更改。如果有足够多的背书人签署交易(根据背书策略),则客户端可以将交易发送到排序服务以包含在分类帐中。导致链代码错误的交易永远不会到达这一点,因为它会由于错误而无法收集必要的背书。客户端必须修改交易或请求修改链代码才能正常工作。
查看 Hyperledger Fabric 架构 paper 以获得更详细的解释,包括序列图。