主要步骤包括:
- 首先,类似链码安装命令,需要创建一个 SignedProposal 消息。注意 instantiate 和 upgrade 支持 policy、escc、vscc 等参数。LSCC 的 ChaincodeSpec 结构中,Input 中包括类型(“deploy”)、通道 ID、ChaincodeDeploymentSpec 结构、背书策略、escc 和 vscc 等。
- 调用 EndorserClient,发送 gRPC 消息,将签名后的 Proposal 发给指定的 Peer 节点(Endorser),调用
ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error)
方法,进行背书处理。节点会模拟运行 LSCC 的调用交易,启动链码容器。实例化成功后会返回 ProposalResponse 消息(其中包括背书签名)。 - 根据 Peer 返回的 ProposalResponse 消息,创建一个 SignedTX(Envelop 结构的交易,带有签名)。
- 使用 BroadcastClient 将交易消息通过 gRPC 通道发给 Orderer,Orderer 会进行全网排序,并广播给 Peer 进行确认提交。