Hyperledger Fabric开发

打开Hyperledger Fabric在线开发文档:https://hyperledger-fabric.readthedocs.io

建议在Mac或Linux环境下操作,因为文档基本上是按照Mac或Linux下操作写的,windows设置起来会更费事一些,以下操作都是在Mac下的:

第一步:构建系统运行环境

1.1 安装cURL (cURL是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。)

安装前先用以下命令检查一下Mac下是否已经安装了curl,如果有输出相关的版本信息说明是已经安装了。

curl --version

如没有安装可用以下命令安装;

brew install curl

1.2 安装docker,Fabric的chaincode是运行在docker里的,可以从这里找到对于的系统版本然后下载: https://www.docker.com/community-edition#download

安装好后在termianl检查docker和docker-compose的版本,版本号需大于等于version 17.03.0-ce

1docker --version 2 3docker-compose --version

1.3 设定go path,先运行以下命令,检查是否有设定go path

echo $GOPATH

如果没有输出则运行以下命令设定,设定好的go path为 ~/go

1export GOPATH=$HOME/go 2export PATH=$PATH:$GOPATH/bin

1.4 安装node.js, https://nodejs.org/en/download/

保证版本在version 6.9之后

1.5 安装node.js会自动安装npm,保证版本大于3.10.10

第二步:getting start

2.1 在用户目录下建一个Hyperledger目录,然后进入到这个目录下

1mkdir ~/Hyperledger 2 3cd ~/Hyperledger

2.2 安装Hyperledger Fabic和Docker image

目前Hyperledger Fabic最新版本是1.0.5,官方教程上会叫用户执行下面命令来安装

curl -sSL https://goo.gl/byy2Qj | bash -s 1.0.5

但是我试过几次都是timeout,原因可能在于url用的是google短网址,国内被墙,那么改成下面的命令就可以了,如果要安装特定版本只要修改下面命令行中的版本号即可

curl https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5

安装完成后在~/Hyperledger目录下会生成一个bin目录

命令行执行完后最终会列出docker image list (需要点时间,在这段时间里可以同步做2.3步骤)

后续也可以通过以下命令查看docker images

docker images

2.3 下载Hyperledger Fabic Samples

1git clone https://github.com/hyperledger/fabric-samples.git 2cd fabric-samples

第三步:构建第一个Hyperledger Fabric网络(参照官方文档https://hyperledger-fabric.readthedocs.io/en/release/build\_network.html)

3.1 在~/Hyperledger/fabric-samples目录下有一个叫first-network的,就是我们用来构建第一个fabric网络的示例代码

3.2 把bin目录下的内容全部拷贝到frist-network目录中

3.3 在first-network目录下有一个byfn.sh文件(byfn即是build your first network的首字母),是一些shell命令帮助我们创建第一个hyperledger fabric网络。具体作用为利用Docker建立2家机构,4个节点,1个排序节点,并且将4个节点组成一个channel,实例化并执行chaincode。

3.4 用命令行进入到first-network目录中

cd ~/Hyperledger/fabric-samples/first-network/

执行以下命令

./byfn.sh -m generate

将询问是否安装默认的配置设置channel名为mychannel,CLI timeout时间为10,回答y:

命令行执行结束后去first-network目录下会看到多了一个crypto-config目录,里面就包括网络中机构和节点的配置信息,都是些认证文件,所以不要改变里面任何东西。

3.5 启动网络

./byfn.sh -m up

报错了,重试了几次,已经在社区发问,还没解决。我已经是严格按照官方文档来做的了,感觉是哪里有bug,暂时可以先玩在线的playground。

1Shimingbookmini:first-network Shiming$ ./byfn.sh -m up 2Starting with channel 'mychannel' and CLI timeout of '10' 3Continue (y/n)? y 4proceeding ... 5Creating network "net_byfn" with the default driver 6Pulling orderer.example.com (hyperledger/fabric-orderer:latest)... 7ERROR: manifest for hyperledger/fabric-orderer:latest not found 8ERROR !!!! Unable to start network 9Error response from daemon: No such container: cli
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )