
Hyperledger Fabric
联盟链超级账本Fabric的介绍与讲解
FZH_SYU
在这个时代,每个人怀揣着梦想,坚持地迈着步子走。这个时代,正因如此,才会愈发精彩。
展开
-
Hyperledger Fabric学习(十三)1.4版本的搭建
准备环境go 1.13或以上版本docker ce-17.06或以上版本准备工作拉取项目## 进入$GOPATH/src/github.com/hyperledgercd $GOPATH/src/github.com/hyperledger## 拉取1.4版本的fabric项目git clone -b release-1.4 https://github.com/hyperledger/fabric.git## 拉取1.4版本的fabric-samples项目git clone原创 2020-08-20 16:06:17 · 449 阅读 · 0 评论 -
Hyperledger Fabric学习(十二)智能合约(链码)使用富查询
富查询的使用 链码中的数据存储都是基于K-V键值对的形式,一般来说,是保存在LevelDB中。但是目前Fabric支持链码使用couchDB进行存储数据、通过编写富查询的方式查询数据。认识第一个富查询语句 富查询语句是一种特定的json格式,如下所示:{ "selector": { "coin": 100 }}selector对应一个列表,列表包含多个单元,每个单元匹配一个字段,譬如上述中原创 2020-08-20 14:49:24 · 3272 阅读 · 1 评论 -
Hyperledger Fabric学习(十一)智能合约(链码)第一个链码
概述 链上代码,简称链码,又称智能合约。一般是指由开发人员使用Go语言(也支持Java等语言)编写的应用程序代码,提供分布式账本的状态处理逻辑。链码被部署在Fabric的网络节点中,能够独立运行在具有安全特性的受保护的Docker 容器中,以 gRPC 协议与相应的 peer 节点进行通信,以操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。在 Hyperledger Fabric 中,链码一般分为:原创 2020-08-20 14:42:03 · 1295 阅读 · 0 评论 -
Hyperledger Fabric学习(十)智能合约(链码)devplat工具测试
devplat工具介绍devplat是一款本地链码测试工具,提供了一键部署清理本地fabric开发环境的功能。解决了fabric开发环境搭建的难题。项目参照了fabric-samples中的chaincode-docker-devmode的搭建方式,使用docker-sdk的方式一键集成peer、orderer、cli、couchdb、chaincode等服务。传送门https://github.com/3115826227/devplat...原创 2020-08-19 14:41:53 · 807 阅读 · 0 评论 -
Hyperledger Fabric学习(零)入门
自从2008年中本聪发明了比特币以来,区块链行业被越来越多的人所关注。区块链具有分布式对等、数据块链式、不可伪造和防篡改、透明可信、高可靠性等关键特征。到目前为止,根据不同的应用场景和设计体系,区块链可以采用对应的开放共享节点权限方案,包括如下三种区块链部署模型:公有链:所有人都可以随意使用,所有节点都可以随时加入退出,凡是加入的节点都会参与共识和数据的读写,该模型具有较强的中心化特征,比如我们现在熟知的比特币、以太坊原创 2020-07-30 11:02:51 · 1098 阅读 · 0 评论 -
Hyperledger Fabric学习(九)智能合约(链码)MockStub测试
1、概述 链码运行的环境通常是在docker容器中,调用需要与peer进行交互,而peer又依赖于orderer、leveldb/couchdb等服务,因此本地IDE开发的链码,要想测试,通常来说是一件比较麻烦的事情。 在fabric中,开发链码用到的shim包除了给我们提供Chaincode和ChaincodeStubInterface两原创 2020-07-14 10:00:01 · 2011 阅读 · 11 评论 -
Hyperledger Fabric学习(八)Fabric SDK调用链码、监听链码
Fabric SDK调用流程1、文字描述获取FabricSDKsdk, err := fabsdk.New(config.FromFile(sdkConfig))加入Org、User信息rcp := sdk.Context(fabsdk.WithOrg(orgName), fabsdk.WithUser(userName))获取指定Channel的Channel Providerccp := sdk.ChannelContext(channelID, fabsdk.WithUs原创 2020-07-13 18:02:25 · 2248 阅读 · 0 评论 -
Hyperledger Fabric学习(七)智能合约(链码)
智能合约(链码)1、概述 链码的编写需要自定义struct,实现shim包Chaincode接口的两个方法:type Chaincode interface { Init(stub ChaincodeStubInterface) pb.Response Invoke(stub ChaincodeStubInterface) pb.Response}原创 2020-07-13 17:58:54 · 2121 阅读 · 0 评论 -
Hyperledger Fabric学习(六)交易流程详解
在Hyperledger Fabric学习(一)初识 中,简单的介绍了以下一次提案的提交流程,下面我们从源码来分析一些详细的流程:发送签名提案消息到Endorser背书节点请求处理:Client构造签名提案信息(SignedProposal类型),通过调用Endorser背书服务客户端的ProcessProposal()接口,提交消息到Endorser背书节点,请求模拟执行交易提案并签名背...原创 2020-03-19 20:01:55 · 1174 阅读 · 0 评论 -
Hyperledger Fabric学习(五)Orderer排序服务
1、启动过程从本地配置文件和环境变量中读取配置信息,构建配置树结构配置日志级别配置go pprof服务配置gRPC监听服务,创建gRPC服务连接配置MSP结构初始化签名结构初始化账本管理器结构创建操作账本的工厂结构LedgerFactory;如果是首次执行,初始化系统管道,将系统管道信息接入区块中;初始化共识插件,共识插件负责跟后台的队列打交道;创建各个账本的管理器Man...原创 2020-03-19 19:58:43 · 1358 阅读 · 0 评论 -
Hyperledger Fabric学习(四)Endorser背书流程
检验提案消息的合法性,以及相关的权限;调用ValidateProposalMessage()方法对提案格式进行检查Channel头部格式:头部类型是否合法;签名头格式: 是否包括了nonce和creator数据;签名域: creator证书MSP是否合法,签名是否正确;如果是系统链码调用,检查是否是允许从外部调用的三种SCC之一;如果chainID不为空,获取对应chain的...原创 2020-03-19 19:42:10 · 895 阅读 · 0 评论 -
Hyperledger Fabric学习(三)链码
一、链码开发模板 链码开发实现Chaincode接口,Chaincode接口里面只有两个方法,一个是Init()方法(链码初始化),另一个是Invoke()方法(链码调用主要逻辑),Chaincode接口如下:/* 所有链码必须实现Chaincode接口的Init()和Invoke()方法, ...原创 2020-03-19 19:38:03 · 827 阅读 · 0 评论 -
Hyperledger Fabric学习(二)部署
准备配置go,docker环境拉取 https://github.com/hyperledger/fabric 1.0.0版本的代码到本地$GOPATH/src/github/hyperledger/fabric路径下部署 部署情况如下脚本一键部署 ✘ cd examples/e2e_c...原创 2020-03-19 19:13:47 · 1146 阅读 · 1 评论 -
Hyperledger Fabric学习(一)初识
1、 设计 在Fabric中,包括身份的认证、共识服务以及链码服务。身份认证主要负责成员属性证书认证;共识服务包括分布式账本、网络协议、背书、排序等;链码服务主要负责提供链码运行所需的环境(即容器) 简单来说,主要是三层:业务层、...原创 2020-03-19 17:47:00 · 883 阅读 · 0 评论