Hyperledger Fabric 1.0 从零开始(一)——吐槽

在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了。自从2017年7月HyperLedger/Fabric发布了1.0正式版后(可以参考:Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本),公司领导就更加关注这个领域。然后,就安排我一个人来接手,我主要是做Android和iOS方向的开发,偶尔客串一下java后台服务开发,对linux的了解不是很深入,更别提什么zookeeper和kafka这些对我一个小小前端来讲都特别高大上的服务组件。接手后就开始按照已离职那批人留下的文档一行一行的敲和调试,其实就是copy代码到linux命令行里面,最后看到一个跑通的提示信息,然后也不知道是什么原理,就有个可用的restful服务,能够实现deploy、invoke和query等操作,当时是用了一台服务器做的,我也天真的以为这就搞定了,就好比tomcat里放个war包一样简单,但真正的噩梦才刚刚开始。

HyperLedger/Fabric1.0版本,相比较于0.6版本不仅性能上有了大幅的调优(Hyperledger Fabric1.0架构概览,主要是架构上的调整更加友好),在实际搭建和使用的方法上更是有了巨大的变化,这就导致我这个自我感觉入门了的门外汉彻底变成了一个连门在哪个方向都不知道的门外汉,尤其是当我得知restful方案已经被废弃后(参考这个:Remove deprecated devops REST API),简直悲愤欲绝,想死的心都有了。而且当我深入一点了解的时候,发现这是需要多台服务器做分布式部署,之前那团队干的压根就是个demo,最可悲的是我想申请IBM培训资源,直接被拒了……

好吧,上述吐槽仅是片面,关于Fabric这个项目的吐槽以后都会集中在此,不会在后续篇章中废话。

截止今天,笔者的Fabric项目基本已经完成整体搭建,所以就抽空来开个博客,写写这方面的内容,希望能够帮助那些从零开始的朋友们。

后面也会分篇来介绍如何一步一步从零开始做这个项目,这个真的是从零开始,因为到现在,我都不敢说自己区块链入门了!

后续篇章具体包含如下内容:

目录

超级账本HyperLedger-Fabric 1.0部署方案

1:环境构建

1.1:Docker安装

1.2:Docker-Compose安装

1.3:Go语言安装

2:Fabric源码及镜像文件处理

2.1下载Fabric源码

2.2下载Fabric相关镜像文件

2.3镜像备份和拷贝(该步骤并非必须,若无此需求,可以略过本步骤)

3:运行测试e2e

3.1、运行fabric-samples的问题说明

3.2、运行e2e_cli项目

3.3、e2e_cli与Linux内核bug

4:创建Fabric多节点集群

4.1、配置说明

4.2、生成公私钥、证书、创世区块等

4.3、配置多服务器

4.4、设置peer0.org1.excmple.com节点的docker-compose文件

4.5、设置peer1.org1.excmple.com节点的docker-compose文件

4.6、设置order节点的docker-compose文件

5:启动Fabric多节点集群

5.1、启动orderer节点服务

5.2、启动peer节点服务

5.3、创建channel和运行chaincode

6:Fabric多节点集群生产部署

6.1、平台特定使用的二进制文件配置

6.2、生成组织证书与私钥

6.3、定义configtx.yaml配置文件

6.4、生成orderer源文件

6.5、生成channel源文件

6.6、生成channel下节点集合认证文件

7:Fabric多节点集群生产启动

7.1、多节点服务器配置

7.2、启动orderer排序服务节点

7.3、启动TKMSP peer节点

7.4、创建并加入channel

7.4.1、注意事项-必读

8:智能合约

8.1、智能合约介绍

8.2、Chaincode API

8.3、编写简单的智能合约

8.3.1、选择代码创建的位置

8.3.2、头文件编辑

8.3.3、chaincode接口结构

8.3.4、初始化chaincode-init

8.3.5、执行(调用)chaincode-invoke

8.3.6、实现set与get函数

8.3.7、启动chaincode

8.4、安装chaincode

8.5、实例化chaincode

上述目录是笔者最近在做这个项目的时候一步一步记录下来的操作路径,主要也是担心自己会忘记流程,最终整理成博文需要慢慢来,也算是对自己在这个项目上有个交代了。

时间: 2024-12-14 18:41:12

Hyperledger Fabric 1.0 从零开始(一)——吐槽的相关文章

Hyperledger Fabric 1.0 从零开始(三)——内网(准离线)环境构建

有公网环境的服务器可以直接看 Hyperledger Fabric 1.0 从零开始(二)--公网环境构建 ,本篇内容与上篇相似,只不过环境搭建需要在内网下,也就是网络被限制的情况下. 1:环境构建与测试 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先安装Docker.Docker-compose和Go语言环境,然后在网上拉取相关的Docker镜像,再通过配

Hyperledger Fabric 1.0 从零开始(二)——公网环境构建

1:环境构建 在本文中用到的宿主机环境是Centos ,版本为Centos.x86_647.2,通过Docker 容器来运行Fabric的节点,版本为v1.0.因此,启动Fabric网络中的节点需要先安装Docker.Docker-compose和Go语言环境,然后在网上拉取相关的Docker镜像,再通过配置compose文件来启动各个节点. 1.1:Docker安装 进入docker官网 GetDocker ->Centos ->Get CE(社区版)->Get Docker CE o

Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多,因为最近工作太忙太忙,我暂时就先不赘述了,后续会提供我参考过的大神文章链接出来. 这章先捡大家都比较在意的java sdk应用方案贴出来,很多朋友都找我要过,我主要是把注释都写进去了,用法简单了说了下,一般情况下会java开发的都能看懂. 年前实在太忙. JAVA-SDK 9.1.基本介绍 官方在

Hyperledger Fabric 1.0 从零开始(五)——运行测试e2e

3:运行测试e2e 3.1.运行fabric-samples的问题说明 该问题说明能够解决6.1.平台特定使用的二进制文件配置第一步的问题.可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本说明,具体在6.1中会重新指向本步骤. 一般情况下,我们会参照官网来完成第一个网络测试,在该在线文档中会让我们去下载一个fabric-samples,下载地址在github上,我们需要将其下载至本地是一个fabric-samples-release文件夹,将其更名为fabric-samples随后上

Hyperledger Fabric 1.0 从零开始(四)——Fabric源码及镜像文件处理

2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3中go的安装配置,$GOPATH设置为/opt/gopath. 我们可以使用Git命令下载源码,也可以使用go get命令,偷懒一点,我们直接用go get命令获取最新的Fabric源码: go get github.com/hyperledger/fabric [注:使用离线环境或者内网环境的朋友

Hyperledger Fabric 1.0 从零开始(六)——创建Fabric多节点集群

4:创建Fabric多节点集群 4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作. 笔者目前申请了五台服务器,所有的服务器均是按照上述e2e_cli环境构建与测试步骤配置.计划其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供order服务. 虚拟机具体参数如下

在CentOS 7.2下安装Hyperledger fabric 1.0.0 preview版本的solo模式

在CentOS 7.2下安装Hyperledger fabric 1.0.0 preview版本的solo模式 一. 安装centos和docker 等组件 A. 安装centos x86-64 Minimal(IP:192.168.2.10) 内核版本需要3.10 以上.centos 7 完全支持. 查看内核信息 $ uname -a Linux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 B. 安装docker, 版本1.12.5(略过)

HyperLedger Fabric 1.0的Transaction处理流程

如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理.而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂. 一.架构 让我们来看看Fabric 0.6到1.0的架构图: 这个图来自IBM微课堂第三讲,我们可以看到原来单一的peer节点在1.0中进行了拆分,分为peer(背书节点和

安装hyperledger fabric V1.0.0(维护中)

因1.0版本刚刚发布,正在重新测试与安装,使用该文档安装会有问题,如修改完成,会重新开放.  E2E的例子在部署chaincode时会报以下的错误,所以目前请安装beta版本 安装文档位置: https://github.com/hyperledger/fabric   fabric代码托管地址 https://hyperledger-fabric.readthedocs.io/en/latest/  在线文档地址 https://github.com/hyperledger/fabric/ar