搭建第一个网络(一)

搭建第一个网络(一)

接上周工作,在已经建好的fabric环境中搭建第一个网络。

一、首先从GitHub克隆fabric-samples

$ git clone https://github.com/hyperledger/fabric-samples.git

然后关闭网络,这是防止有开启的网络,影响本次测试的结果。

关闭服务:

$ ./byfn.sh -m down

此时还没有产生创世区块,执行以下命令,产生创世区块:

$ ./byfn.sh -m generate

出现错误:cryptogen tool not found. exiting

这是由于上周在搭建环境的时候没有下载一个二进制文件,也就是在fabric-samples文件夹下需要有一个bin文件夹。查了一下解决方案:

    ① 第一种解决办法,在fabric-samples目录下面执行以下命令,下载所需要的二进制文件:

curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.0

注意:要与自己镜像的版本相同,这里我用的是1.0.0版本,直接更改版本就可以。

    ② 按照第一种方法,执行命令时,可能会出现ubuntu访问不到该网站的情况,这时候可以尝试第二种方法下载bin文件。

在真机中打开https://goo.gl/eYdRbX网站,其实他是一个.sh文件。

把这个内容全部拷贝下来,在fabric-sampls目录下面新建一个文件,把拷贝的内容全部放进去,文件名:bootstrap-1.0.1.sh

然后执行:

$ chmod +x bootstrap-1.0.1.sh

这样该文件具有可执行能力了,然后执行:

$ ./bootstrap-1.0.1.sh

出现下载页面,等待它完成,会发现该目录下面有一个bin目录,里面有需要的二进制文件。

用上述两种方法都没有成功,第一种方法显示连接超时,第二种方法失败,开始自动下载镜像文件(就是这个自动下载镜像为后来的有又一个错误埋下了雷。。。。)

    ③ 前面两种方法我用都出现了错误,最后决定用官网直接手动下载,(就是非常非常慢)

https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.0.0/

版本要选择和自己相同的版本,比如我的是linux-amd64-1.0.0

下载好之后直接将压缩包拖到虚拟机,在虚拟机中双击打开,将其中的bin文件拖进fabric-samples文件夹下。

二、安装完二进制文件之后,重新尝试

关闭服务:

$ ./byfn.sh -m down

生产创世区块

$ ./byfn.sh -m generate

出现新的错误:


* '' has invalid keys: capabilities, channel

* 'Application' has invalid keys: Capabilities, Policies

* 'Orderer' has invalid keys: Policies

* 'Organizations[0]' has invalid keys: Policies

* 'Organizations[1]' has invalid keys: Policies

* 'Organizations[2]' has invalid keys: Policies

* 'Profiles[SampleDevModeKafka]' has invalid keys: Capabilities, Policies

* 'Profiles[SampleDevModeKafka].Application' has invalid keys: Capabilities, Policies

* 'Profiles[SampleDevModeKafka].Application.Organizations[0]' has invalid keys: Policies

* 'Profiles[SampleDevModeKafka].Consortiums[SampleConsortium].Organizations[0]' has invalid keys: Policies

* 'Profiles[SampleDevModeKafka].Consortiums[SampleConsortium].Organizations[1]' has invalid keys: Policies

* 'Profiles[SampleDevModeKafka].Orderer' has invalid keys: Capabilities, Policies

* 'Profiles[SampleDevModeKafka].Orderer.Organizations[0]' has invalid keys: Policies

* 'Profiles[TwoOrgsChannel].Application' has invalid keys: Capabilities, Policies

* 'Profiles[TwoOrgsChannel].Application.Organizations[0]' has invalid keys: Policies

* 'Profiles[TwoOrgsChannel].Application.Organizations[1]' has invalid keys: Policies

* 'Profiles[TwoOrgsOrdererGenesis]' has invalid keys: Capabilities, Policies

* 'Profiles[TwoOrgsOrdererGenesis].Consortiums[SampleConsortium].Organizations[0]' has invalid keys: Policies

* 'Profiles[TwoOrgsOrdererGenesis].Consortiums[SampleConsortium].Organizations[1]' has invalid keys: Policies

* 'Profiles[TwoOrgsOrdererGenesis].Orderer' has invalid keys: Capabilities, Policies

* 'Profiles[TwoOrgsOrdererGenesis].Orderer.Organizations[0]' has invalid keys: Policies

+ res=1

+ set +x

Failed to generate orderer genesis block...


这是因为我们当时下载的fabric-samples 是1.4版本的,但是bin用的是1.0的,所以切换fabric-samples为1.0的即可。

lqr@lqr-VirtualBox:~$ cd fabric-samples

lqr@lqr-VirtualBox:~/fabric-samples$ git checkout release-1.0

分支release-1.0 设置为跟踪来自 origin 的远程分支 release-1.0。

切换到一个新分支'release-1.0'

lqr@lqr-VirtualBox:~/fabric-samples$ cd first-network

lqr@lqr-VirtualBox:~/fabric-samples/first-network$ ./byfn.sh -m generate

三、启动整个网络:

$ ./byfn.sh -m up

出现错误:


Error: Got unexpected status: BAD_REQUEST

Usage:

  peer channel create [flags]

Flags:

  -c, --channelID string   In case of a newChain command, the channel ID to create.

  -f, --file string        Configuration transaction file generated by a tool such as configtxgen for submitting to orderer

  -t, --timeout int        Channel creation timeout (default 5)


Global Flags:

      --cafile string              Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint

      --logging-level string       Default logging level and overrides, see core.yaml for full syntax

  -o, --orderer string             Ordering service endpoint

      --test.coverprofile string   Done (default "coverage.cov")

      --tls                        Use TLS when communicating with the orderer endpoint

  -v, --version                    Display current version of fabric peer server

!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!

========= ERROR !!! FAILED to execute End-2-End Scenario ===========


查了网上的方法的解决办法:

输入指令: ./byfn.sh -m restart -c mychannel

这种方法可以解决存在mychannel情况下导致的错误。但是我的产生这个错误原因不同,所以错误仍然存在。

最后发现是因为镜像版本不统一,前面提到的最开始下载二进制文件的时候,自动下载了镜像引起的!Orderer、peer是1.0.6的,而二进制文件及例子都是1.0.0的,所以通道建立不起来!

解决办法:要删除1.0.6版本的orderer和peer镜像。

    查看要删除镜像的image ID

    执行命令:

$ docker rmi 659d92c1be85     

$ docker rmi 28c7c07db54

    重新下载$ source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

四、解决完以上问题,重新操作:

$  cd fabric-samples/first-network #cd进first-network文件夹

$  ./byfn.sh -m down      #关闭网络

$  ./byfn.sh -m generate   #生成创世区块

$  ./byfn.sh -m up      #启动整个网络

成功!

五、问题补充:磁盘空间不足问题解决办法(参考https://blog.csdn.net/sinat_33201781/article/details/81316773)

1. 进入vbox的安装目录,输入命令VBoxManage modifyhd "vdi路径" --resize 40960。其中引号里的路径就是虚拟机vdi的路径,40960就是扩容的40G。

虚拟机vdi的路径查看方法:进入虚拟机安装目录下,执行指令 VBoxManage list hdds,如下图:location后的地址就是你的vdi地址,直接替换引号中路径即可。此过程还能看到此时磁盘内存为10240M,也就是10G。

2. 执行完之后,按以下步骤扩大虚拟区的分区。

启动虚拟机通过如下命令安装Gparted,并启动。:

$ apt-get install gparted

$ gparted  #启动

注意:直接输入命令显示权限不够,需要进入root权限下再执行该命令。

先右击“sda5”禁用交换空间,然后删除linux-swap,删除extended,然后选择需要调整的盘执行”更改大小/移动”命令,调整到需要的大小,同样留下1GB的空间再新建回extended与linux-swap,完成后点对勾应用更改,Partition节下会恢复原来的分区标识。

3. 执行指令VBoxManage list hdds,可以看到此时磁盘空间40960M




主要参考:

https://hyperledgercn.github.io/hyperledgerDocs/build_network_zh/

https://blog.csdn.net/zhj_fly/article/details/80700596

https://hyperledger-fabric.readthedocs.io/en/latest/install.html

https://blog.csdn.net/sinat_33201781/article/details/81316773VBox中给ubuntu虚拟系统扩充硬盘容量

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容