区块链教程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条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果