看看一笔交易的上链过程:
1. 应用提出交易,首先从客户端发起一笔交易提交到3个Endorsing Peer,该笔交易的背书政策P(E0,E1,E2必须签名),客户端应用程序为智能合约提交一个交易。它必须提交给所需的对等点{E0,E1,E2}
2. 背书节点执行提议,将签名数据,传回给客户端。E0、E1、E2将分别执行提出事务。这些执行都不会更新至账本,每次执行都将获一组读和写数据,称为读写集,交易可以签名与加密。
3. 应用接受回复,读写集将异步返回给应用程序,读写集由每个背书节点签名,并且每个都记录了版本号(这些信息将在后面的共识过程中进行核对)。
4,交易排序,Ordering Node对交易进行排序,应用程序将背书节点的响应作为交易提交给排序节点,排序与应用程序的提交并行发生在fabric上。
5. Orderer交付给记账节点,order service将所有交易打包到区块中,然后分发给提记账节点,记账节点可以交付给同层中的其他记账节点。目前支持的排序算法:Solo(单节点,开发),Kafka(崩溃容错),RAFT。
6. 记账节点验证交易,每个记账节点会根据背书政策进行验证。还要检查读写集对于当前世界状态是否仍然有效。验证有效的交易,将适用于世界状态(world state)并保留在区块链账本上,无效的交易也保留在区块链账上,但不更新世界状态。
7. 记账节点通知应用程序,当交易成功或失败时,以及当区块被添加到分类账时,应用程序将收到连接的记账节点的通知(事件触发器)。
网友评论