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…
概述 下面的图表说明了如何将Hyperledger Fabric CA与总体的Hyperledger Fabric结构相匹配. 有两种方式与一种Hyperledger Fabric CA服务器进行交互:通过Hyperledger Fabric CA的客户端或通过任意一种Fabric的SDKs.所有与Hyperledger Fabric CA服务器的通信都是通过REST api进行的.有关这些REST api的swagger文档,请参见fabric-ca/swagger/swagger-fabri…
Fabric CA用户指南 Hyperledger Fabric CA是一种用于Hyperledger Fabric的认证机构(CA). 它提供了如下特性: 登记身份(注册ID),或者连接到作为用户注册表的LDAP(LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制). 签发背书证书(Enrollment Certificates——ECerts) 证书…
配置设置 Fabric CA提供了三种方案去配置Fabric CA服务端和客户端,优先顺序是: CLI flags(标识) 环境变量 配置文件 在本文档的其余部分中,我们将对配置文件进行更改.但是,可以通过环境变量或CLI flags(标识)覆盖配置文件更改. 例如,如果我们在客户端配置文件中有以下内容: tls: # Enable TLS (default: false) enabled: false # TLS for the client's listenting port (defaul…
介绍Hyperledger Fabric CA的命令行方式简单用法 Hyperledger Fabric CA由server和client两部分组成. 设置两个环境变量 export FABRIC_CA_SERVER_HOME=/path_to/fabric-ca/server export FABRIC_CA_CLIENT_HOME=/path_to/fabric-ca/client server的操作主要有两个: 1. 初始化Server服务 在server启动之前,需要至少有一个自我认证的…
3.1.运行fabric-samples的问题说明 该问题说明能够解决6.1.平台特定使用的二进制文件配置第一步的问题.可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本说明,具体在6.1中会重新指向本步骤. 一般情况下,我们会参照官网来完成第一个网络测试,在该在线文档中会让我们去下载一个fabric-samples,下载地址在github上,我们需要将其下载至本地是一个fabric-samples-release文件夹,将其更名为fabric-samples随后上传至opt/gopa…
生成一个根CA(RootCA),在根CA下3个中间CA(IntermediaCA). 1. 运行和配置RootCA服务#cd /opt/gopath/src/github.com/hyperledger/fabric-ca/bin#mkdir ca-server#cd ca-server#fabric-ca-server start -b admin:adminpw --home ./rootca --cfg.affiliations.allowremove --cfg.identities.a…
Membership Service Providers (MSP) 本文将介绍有关MSPs的设置和最佳实践的详细方案. Membership Service Providers (MSP)是一个旨在提供成员操作体系结构抽象的组件. 尤其是MSP抽象出发布和验证证书的所有加密机制.协议以及用户身份验证.MSP可以自定义身份概念,以及这些身份被管理的规则(身份验证)和认证加密(签名生成和验证). 一个Hyperledger Fabric区块链网络可以由一个或多个MSPs管理.这提供了成员操作的模块…
一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所以目前暂时没有启用CA节点,但是Fabric帮我们提供了一个crytogen工具来生成证书. 1.1编译cryptogen 编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错 sudo apt install libtool libltdl3-dev Fabric提供了专门编译…
在上一章:Fabric kafka生产环境部署的基础上部署Fabric CA,使用Fabric CA进行生成公私钥和证书等文件,全部替换cryptogen工具,包括生成TLS相关的私钥和证书等文件.       Fabric kafka生产环境部署有三个组织,分别为orderer(排序)组织和两个Peer(节点)组织,对应的ID为example.com.org1.example.com和org2.example.com.为了让生产环境Fabric CA具有扩展性和安全性,存在一个逻辑的根CA(R…
本篇博客主要是向读者介绍 fabric 在部署时的一些细节,还有作者自己学习过程中的心得. 初始化相关密钥的程序,实际上是一个shell脚本,并且结构特别简单 generateArtifacts.sh 脚本里面主要执行了三个函数 generateCerts # 这个是初始化组织证书和密钥的操作 replacePrivateKey # 这个函数是生成一个docker-compose 脚本,没有啥用 generateChannelArtifacts # 这个是定义组织机构和初始化创世块的操作 doc…
之前介绍了使用官方脚本自动化启动一个Fabric网络,并且所有的证书都是通过官方的命令行工具cryptogen直接生成网络中的所有节点的证书.在开发环境可以这么简单进行,但是生成环境下还是需要我们自定义对网络中的节点的证书进行配置. 所以在本文中,将会详细介绍一个从手动生成证书一直到启动网络的整体步骤.本文只交代整体的搭建步骤.对于Fabric-Ca的讲解不在本文的范围内,将在另一篇文章中说明. 正篇文章也是根据官方的文档进行的.但是由于官方的文档尚未完工,也是好多没有交代清楚的,并且有些地方是…
Fabric CA 用户指南 Fabric CA 是 Hyperledger Fabric 的官方配套认证设施. 原文链接:http://hyperledger-fabric.readthedocs.io/en/latest/Setup/ca-setup.html 它提供的功能有: 身份认证,或者从 LDAP 中获取注册信息: 发行担保证书 ECerts (Enrollment Certificates): 发行交易证书 TCerts (Transaction Certificates),保障…
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行分离,共识服务从Peer节点中完全分离出来,独立为Orderer节点提供共识服务: 基于新的架构,实现多通道(channel)的结构,实现了更为灵活的业务适应性(业务隔离.安全性等方面) 支持更强的配置功能和策略管理功能,进一步增强系统的灵活性和适应性: 2.架构目标 1.chaincode信任的灵…
Hyperledger Fabric 手动搭建 前面我们学习了区块链是什么.还有自动搭建学习东西我们就要从简单到深入(入门到放弃),现在自动部署已经跑通了接下来就是手动搭建Fabric 网络可以更好的理解为什么要这么做. 使用cryptogen(密码生成器)和configtxgen(配置交易生成器)手动生成证书/密钥和各种配置构件(等同于执行./byfn.sh generate) 密钥生成器 cryptogen cryptogen 工具为我们的网络实体生成各种加密材料( x509 证书和签名秘钥…
有公网环境的服务器可以直接看 Hyperledger Fabric 1.0 从零开始(二)--环境构建(公网) ,本篇内容与上篇相似,只不过环境搭建需要在内网下,也就是网络被限制的情况下. 1:环境构建与测试 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先安装Docker.Docker-compose和Go语言环境,然后在网上拉取相关的Docker镜像,再通…
环境搭建完毕,需要的工具和镜像安装完毕,就可以进行chaincode测试了,接下来参考官方教程运行first-network. 进入first-netwok: cd first-network first-network的文件结构如下 在first-network目录下有两个自动化脚本byfn.sh和eyfn.sh,这两个脚本的启动顺序是先执行byfn.sh再执行eyfn.sh(eyfn.sh不是必须的,eyfn.sh的作用稍后再介绍).byfn.sh的执行格式为:./byfn.sh (up|d…
环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================================================= 一.项目准备 想必能搜到这篇文章的人对Hyperledger Fabric(以下简称Fabric)已经是有了一定的了解了,我就不多介绍了. 先说一下Fabric的构建环境: Hyperledger Fabric  tag v1.0.0…
在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了.自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域.然后,就安排我一个人来接手,我主要是做Android和iOS方向的开发,偶尔客串一下java后台服务开发,对linux…
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共…
手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2:环境部署 3:源码安装 4:生成证书文件 5:orderer节点处理 6:peer节点处理 7:channel创建加盟 8:chaincode安装部署实例化.测试 本次不再分章,一章写完. 环境整理 这一步并非必须,但鉴于docker容器的实际情况,理论上linux内核需要在3.10及以上.有朋友…
Kafka生产环境部署案例采用三个排序(orderer)服务.四个kafka.三个zookeeper和四个节点(peer)组成,共准备八台服务器,每台服务器对应的服务如下所示: kafka案例网络拓扑图如下: 一.基本环境搭建:关闭防火墙(或开放端口).selinux.安装配置docker(17.06.2-ce or later).docker-compose(1.14.0 or later).git.go(version 1.11.x).域名ip映射(/etc/hosts) 二.fabirc编…
Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sample下的示例first-network 其中byfn.sh为启动这个网络的启动脚本,启动脚本中除建立一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易. 启动脚…
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理.而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂. 一.架构 让我们来看看Fabric 0.6到1.0的架构图: 这个图来自IBM微课堂第三讲,我们可以看到原来单一的peer节点在1.0中进行了拆分,分为peer(背书节点和…
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引擎处理记账的唯一性 我们这里选择kafka排序引擎并通过Kafka集群和zookeeper集群保证数据的一致性,实现排序功能 同时,为了排序服务器的稳定,采取多Orderer集群实现容错空间, 为此,我们采用了最基础的配置方案:两个组织,四个节点 两个CA服务器,三个Zookeeper服务器,四个K…
  安装文档位置: https://github.com/hyperledger/fabric   fabric代码托管地址 https://hyperledger-fabric.readthedocs.io/en/latest/  在线文档地址 https://github.com/hyperledger/fabric/archive/v1.0.0.tar.gz fabric1.0.0源代码包地址 安装环境: Vmware + CentOS7 64位 1611版本 安装前准备: 安装配置好虚拟…
在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后1.0就发布了.自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域,就安排我一个人来接手,培训的机会也没有了.我主要是做Android和iOS方向的开发,也做java后台服务开发,对zookee…
Hyperledger gossip   本文记述了Hyperledger Fabric 中 一种网络数据同步协议--gossip,它的主要作用是致力于账本数据的安全传输,保证不同节点之间状态的同步和完整.   在fabric的网络中gossip的message是持续存在的,一个peer节点会不断.实时的接收到来自同一channel其他peers的账本数据.每一个gossip message都携带发送方的签名信息,这可以使得接受方轻易的辨别对方的身份和校验消息的完整性和合法性.当一个peer由于…
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署),该配置文件主要用于构建创世区块(在构建创世区块之前需要先创建与之对应的所有节点的验证文件集合),其中在配置Orderer信息中有一个OrdererType参数,该参数可配置为"solo" and "kafka",之前博文所讲的环境配置皆是solo,即单节点共…
接下来我要做的是用fabric sdk来做出应用程序,代替CLI与整个区块链网络交互.并且实现一个http API,向社区提供一个简单的接口,使社区轻松的与区块链交互. 官方虽然提供了Node.JS,Java,Go(最近刚出了python)等多种语言的SDK,但是很多SDK还不成熟和完善,有的甚至文档都没有.我使用Node.js的原因有三.1.官方例子使用的是Node.js SDK 2.以前我做以太坊智能合约开发的时候也用过Node.js 3.最后是因为Node.js实现一个http服务器是非常…