9年的软件系统开发经验,专注于区块链技术应用及价值落地场景等方向。
手动部署单机单节点 (我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。) 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的部署。
因手动部署fabric项目需要,故预先转载本篇方案,转载来源:https://www.aliyun.com/jiaocheng/128260.html 最近在学习 Docker,想在服务器上实践一下.Docker 需要安装在 CentOS 7 64 位的平台,并且内核版本不低于 3.10。
背书策略用于指导peer如何确定交易是否得到了的认可。当一个peer接收到一个事务时,它会调用与事务的Chaincode相关联的VSCC(验证系统链代码),作为事务验证流程的一部分,以确定交易的有效性。一个交易包含了
配置设置 Fabric CA提供了三种方案去配置Fabric CA服务端和客户端,优先顺序是: CLI flags(标识) 环境变量 配置文件 在本文档的其余部分中,我们将对配置文件进行更改。但是,可以通过环境变量或CLI flags(标识)覆盖配置文件更改。
Fabric CA User’s Guide——开始 先决条件 安装Go 1.9+ 设置正确的GOPATH环境变量 安装了libtool和libtdhl-dev包 下面是在Ubuntu上安装libtool依赖命令: sudo apt install libtool libltdl-dev 下面是在MacOSX上安装libtool依赖命令: brew install libtool 注意:在MacOSX上没有必要使用libtldl-dev 有关libtool的更多信息,请参见https://www.gnu.org/software/libtool。
概述 下面的图表说明了如何将Hyperledger Fabric CA与总体的Hyperledger Fabric结构相匹配。 有两种方式与一种Hyperledger Fabric CA服务器进行交互:通过Hyperledger Fabric CA的客户端或通过任意一种Fabric的SDKs。
Fabric CA用户指南 Hyperledger Fabric CA是一种用于Hyperledger Fabric的认证机构(CA)。 它提供了如下特性: 登记身份(注册ID),或者连接到作为用户注册表的LDAP(LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
什么是Chaincode(智能合约)? chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口。chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中。
MSP Identity Validity Rules——MSP身份验证规则 正如Hyperledger Fabric Membership Service Providers (MSP)——成员服务中描述所提到的,MSPs可以配置一组根证书权限(rCAs——root certificate authorities),并且可以选择一组中间证书授权机构(iCAs——intermediate certificate authorities)。
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB。LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库。与LevelDB键/值存储一样,CouchDB可以存储任何以chaincode建模的二进制数据(CouchDB附件函数在内部用于非json二进制数据)。
Read-Write set semantics(读写集) 本文讨论了关于读写集当前实现的细节。 Transaction simulation and read-write set(事务模拟和读写集) 客户端提交事务到peer,peer会执行背书验证并模拟该事务的请求结果,为该事务的请求准备一个读写集。
Transaction Flow 本文概述了在标准资产交换过程中发生的事务机制。这个场景包括两个客户,A和B,他们在购买和销售萝卜(产品)。他们每个人在网络上都有一个peer,通过这个网络,他们发送自己的交易,并与Ledger(账本总账)进行交互。
Ledger Ledger(账本)即所有的state transitions(状态切换),是有序且不可篡改的。state transitions(状态切换)是由参与方提交的chaincode(智能合约)调用(“transactions/事务”)的结果。
Membership Service Providers (MSP) 本文将介绍有关MSPs的设置和最佳实践的详细方案。 Membership Service Providers (MSP)是一个旨在提供成员操作体系结构抽象的组件。
超级账本组成模型 本文主要讲述Hyperledger Fabric的关键设计特性,并细述如何实现了一个全面的、可定制的企业级区块链解决方案: 资产定义——资产这里理解为任何具有货币价值的东西,它们都可以通过网络进行交易,无论是超市商品到古董车再到货币期货都属于资产。
Hyperledger Fabric是一种模块化的区块链架构,是分布式记账技术(DLT)的一种独特的实现,它提供了可供企业运用的网络,具备安全、可伸缩、加密和可执行等特性。Hyperledger Fabric提供了以下区块链网络功能: 身份管理 为了支持被许可的网络,Hyperledger Fabric提供了一个成员身份服务(membership identity service),它管理用户id并对网络上的所有参与者进行身份验证。
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密、便捷扩展、部署灵活及可插拔等特性。它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态系统中存在的复杂性和高精度性。
基础更新 各版本每次迭代都会有一些基础更新内容,如文档修改覆盖、测试用例完善、用户体验改进及删除冗余无效代码等… 下面分类介绍的是一些版本迭代的重要更新内容,因个人实操和理解有限,部分更新并未明确,如果有错误的地方,还望各位大神指正! 1.
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共识。
Hyperledger Fabric节点服务器对存储空间的消耗还是比较大的,在我实际生产体验的过程中,每一条请求数据大概仅2K左右,但实际占用空间远不止这点,每个节点都会对Block及链进行保存维护,也会将数据解析存储在本地,基本上1000万条数据会占用500G左右的空间。
在 Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用 中我已经把官方sdk具体改良办法,即使用办法发出来了,所有的类及文件都是完整的,在文章的结尾也说明了用法主要都依赖于ChaincodeManager这个智能合约管理器,建议以单例的形式生成该对象。
Hyperledger Fabric 1.0 从零开始(十)——智能合约(参阅:Hyperledger Fabric Chaincode for Operators——实操智能合约) Hyperledger Fabric 1.
7:Fabric多节点集群生产启动 7.1、多节点服务器配置 在生产环境上,我们沿用4.1、配置说明中的服务器各节点配置方案。 我们申请了五台生产服务器,其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供排序服务。
6.1、平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)——运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名。可以指定单独节点的访问,生成指定的公私钥、证书等文件。
5:启动Fabric多节点集群 5.1、启动orderer节点服务 上述操作完成后,此时各节点的compose配置文件及证书验证目录都已经准备完成,可以开始尝试启动多机Fabric集群。 首先启动orderer节点,切换至orderer.example.com服务器,即前文指定的10.130.116.8服务器,执行如下命令进入启动docker进程: docker-compose -f docker-compose-orderer.yaml up -d 运行完毕后我们可以使用docker ps看到运行了一个名字为orderer.example.com的节点。
4:创建Fabric多节点集群 4.1、配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作。
3:运行测试e2e 3.1、运行fabric-samples的问题说明 该问题说明能够解决6.1、平台特定使用的二进制文件配置第一步的问题。可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本说明,具体在6.1中会重新指向本步骤。
2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下。通过1.3中go的安装配置,$GOPATH设置为/opt/gopath。
有公网环境的服务器可以直接看 Hyperledger Fabric 1.0 从零开始(二)——环境构建(公网) ,本篇内容与上篇相似,只不过环境搭建需要在内网下,也就是网络被限制的情况下。 1:环境构建与测试 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0。
1:环境构建 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0。因此,启动Fabric网络中的节点需要先安装Docker、Docker-compose和Go语言环境,然后在网上拉取相关的Docker镜像,再通过配置compose文件来启动各个节点。
在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后1.0就发布了。自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域,就安排我一个人来接手,培训的机会也没有了。