上一篇分享了超级账本的系统逻辑架构和网络节点架构,本篇主要分享超级账本的典型交易流程。
1
典型交易流程
下图所示为Hyperledger Fabric 1.0典型的交易流程图。
从上一节的网络节点架构中,我们已经了解到基于Hyperledger Fabric 1.0的区块链应用中涉及几个节点角色:应用程序、背书节点、排序服务节点和主节点。在图3-4中,假定各节点已经提前颁发好证书,且已正常启动,并加入已经创建好的通道。后面的步骤介绍在已经实例化了的链码通道上从发起一个调用交易到最终记账的全过程。
1、创建交易提案并发送给背书节点
使用应用程序构造交易提案,SignedProposal的结构如下所示:
SignedProposal: {
ProposalBytes(Proposal): {
Header: {
ChannelHeader: {
Type: "HeaderType_ENDORSER_TRANSACTION",
TxId: TxId, Timestamp: Timestamp, ChannelId: ChannelId, Extension(ChaincodeHeaderExtension): {
PayloadVisibility: PayloadVisibility, ChaincodeId: {
Path: Path, Name: Name, Version: Version } }, Epoch: Epoch }, SignatureHeader: { Creator: Creator, Nonce: Nonce } }, Payload: { ChaincodeProposalPayload: { Input(ChaincodeInvocationSpec): { ChaincodeSpec: { Type: Type, ChaincodeId: { Name: Name }, Input(ChaincodeInput): { <