区块链教程Fabric1.0源代码分析Proposal(提案)-兄弟连区块链学院
区块链教程Fabric1.0源代码分析Proposal(提案),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。
Fabric1.0源代码笔记之Proposal(提案)
1、Proposal概述
Proposal,即向Endorser发起的提案。
Proposal代码分布在protos/utils、protos/peer目录下,目录结构如下:
protos/utils目录:
proputils.go,Proposal工具函数。
txutils.go,Proposal工具函数。
protos/peer目录:
proposal.pb.go,Proposal相关结构体定义。
2、Proposal相关结构体定义
2.1、SignedProposal定义
type SignedProposal struct {
ProposalBytes []byte //Proposal序列化,即type Proposal struct
Signature []byte //signer.Sign(ProposalBytes)
}
//代码在protos/peer/proposal.pb.go
2.2、Proposal定义
type Proposal struct {
Header []byte //Header序列化,即type Header struct
Payload []byte //ChaincodeProposalPayload序列化,即type ChaincodeProposalPayload struct
Extension []byte //扩展
}
//代码在protos/peer/proposal.pb.go
2.3、ChaincodeProposalPayload定义
type ChaincodeProposalPayload struct {
Input []byte //ChaincodeInvocationSpec序列化,即type ChaincodeInvocationSpec struct
TransientMap map[string][]byte //瞬态映射
}
//代码在protos/peer/proposal.pb.go
3、ProposalResponse结构体定义
3.1、ProposalResponse定义
type ProposalResponse struct {
Version int32
Timestamp *google_protobuf1.Timestamp
Response *Response //type Response struct,peer.Response{Status: 200, Message: "OK"}}
Payload []byte
Endorsement *Endorsement //type Endorsement struct
}
//代码在protos/peer/proposal_response.pb.go
3.2、Response定义
type Response struct { //peer.Response{Status: 200, Message: "OK"}}
Status int32
Message string
Payload []byte
}
//代码在protos/peer/proposal_response.pb.go
3.3、Endorsement定义
type Endorsement struct {
Endorser []byte //bccspmsp.signer
Signature []byte
}
//代码在protos/peer/proposal_response.pb.go

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
如何对第一个Vue.js组件进行单元测试 (上)
首先,为什么要单元测试组件? 单元测试是持续集成的关键。通过专注于小的、独立的实体,确保单元测试始终按预期运行,使代码更加可靠,你可以放心地迭代你的项目而不必担坏事儿。 单元测试不仅限于脚本。可以独立测试的任何东西都是可单元测试的,只要你遵循一些好的做法。这些实例包括单一责任、可预测性和松散耦合。 作为我们应用程序的可重用实体,Vue.js组件是单元测试的理想选择。我们将用不同的输入和交互测试做好的单个单元,并确保它始终按照我们的预期运行。 在开始之前 Vue CLI 3发布了。Vue Test Utils-官方的Vue.js单元测试实用程序库-已经成长为beta版。在第一篇教程中,我们使用了webpack-simple,一个不包含测试功能的原型模板。出于这些原因,最简单的方法是“擦干净黑板”并将项目从教程迁移到更新后的Vue.js安装。 我从第一个教程重新创建了项目,因此您可以直接从GitHub下载它。然后导航到解压缩的目录并安装依赖项。 注意:确保在继续之前安装Node.js: 运行项目: Vue Test Utils和Jest 在本教程中,我们将使用Vue Test Uti...
-
下一篇
区块链教程Fabric1.0源代码分析putils(protos/utils工具包)-兄弟连区块链
区块链教程Fabric1.0源代码分析putils(protos/utils工具包),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。 Fabric1.0源代码笔记之putils(protos/utils工具包) 1、putils概述 putils,即protos/utils工具包,代码分布在:protos/utils目录下。包括:txutils.go、proputils.go、commonutils.go、blockutils.go。 2、txutils //TransactionAction.Payload => ChaincodeActionPayload //ChaincodeActionPayload.Action.ProposalResponsePayload => ProposalResponsePayload //ProposalResponsePayload.Extension => ChaincodeAction //...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker容器配置,解决镜像无法拉取问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能