建立第一个网络
进入对应目录
$ cd fabric-samples/first-network
在first-network目录下有两个自动化脚本byfn.sh和eyfn.sh, 这两个脚本的启动顺序是先执行byfn.sh再执行eyfn.sh(eyfn.sh不是必须的,eyfn.sh的作用稍后介绍)
查看帮助信息:
$ ./byfn.sh --help
up:启动
down:清除网络
restart:重新启动
generate:生成证书及创世块
upgrade:将网络从1.0升级到1.1
-c:用于指定channelName,默认值"mychannel"
-t:CLI timeout时间,默认值10
-d:延迟启动,默认值3
-f:使用指定的网络拓扑结构文件,默认使用docker-compose-cli.yaml
-s:指定使用的数据库,可选 goleveldb或couchdb
-l:指定chaincode使用的语言,可选golang 或node
-i:指定镜像tag,默认 "latest"
详细参数可通过./byfn.sh help查看
生成证书和密钥
为各种网络实体生成所有证书和密钥,用于引导订购服务以及配置通道所需的一系列配置事务
$ sudo ./byfn.sh -m generate
启动网络
$ sudo ./byfn.sh -m up
如果启动发生错误,则执行关闭命令后再次执行启动命令
最后输出如下内容代表启动且测试成功:
============== Query on peer1.org2 on channel 'mychannel' is successful ================
========= All GOOD, BYFN execution completed ===========
或者通过Node.js启动网络
./byfn.sh -m up -l node
first-network会生成1个orderer+4个peer+1个CLI的网络结构,整个网络包括2个org
关闭网络
$ sudo ./byfn.sh -m down
关闭网络之后, 可以一步一步地探索网络设置. 将杀死容器, 删除加密文件, 并从Docker Registry中删除链码图像
若在启动网络时遇到如下错误:
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "scripts/script.sh": stat scripts/script.sh: no such file or directory": unknown
或者
ERROR: Encountered errors while bringing up the project.
ERROR !!!! Unable to start network
则执行
./byfn.sh down
清除网络后再启动