您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

第一章 九析带你轻松完爆 hyperledger fabric - 搭建区块链网络

来源:网络整理 浏览:347次 时间:2020-07-06

目录

1 前言

2 配置超级账本环境

    2.1 下载 fabric 源码

    2.2 解压缩源码

    2.3 下载 Docker 镜像

        2.3.1 启动脚本添加执行权限

        2.3.2 注释下载语句

        2.3.3 下载 Docker 镜像

3 部署超级账本多节点网络

    3.1 下载 fabric-sample

    3.2 启动容器

4. 创建通道

5 安装和初始化链码

6 链码操作

    6.1 查询

    6.2 转账


1 前言

        我认为学习一门新技术最好的方式就是动手,而不是学理论。基于这个原则,我在博客除了实操之外很少叨逼叨理论。因为我认为文本时代早已经过时了,文字的力量明显盖不过视频。现如今,一般逛博客的除了解决实际问题,基本不会多做逗留,渐渐地,技术博客变成了互联网的卫生间,成为了大家解决实际需要的场所。

        本节不会讲区块链的理论,如果你是抱着听故事的目的进来的,那么不好意思,我还是劝你早早离开。

        如今 hyperledger fabric 已经到了版本 2 的时代了,但个人对 2 这个数字实在介意,所以本文依然使用版本 1。本文会让整个 fabric 的搭建轻松和随意,所以你尽可以放心。来吧,宝贝们,哥要发车了,你们排好队形,时刻准备尖叫。

        这里有情提示一下,最好还是按照哥的步骤和指定的版本,不要做什么修改,没事不要挑战这个挑战那个。你要真是闲得那里疼,想练练胆,你可以尝试强吻漂亮异性或者独闯异性卫生间,我觉得这更刺激一些,更能让你有成就感和征服欲。好了,现在我们开始吧。


2 配置超级账本环境

2.1 下载 fabric 源码

        不要一听到源码就颤抖,就尿如雨下,不会让你编译的。

wget https://github.com/hyperledger/fabric/archive/v1.0.0.tar.gz

2.2 解压缩源码

tar -zxvf  fabric-1.0.0.tar.gz

2.3 下载 Docker 镜像

2.3.1 启动脚本添加执行权限

cd fabric-1.0.0/scripts

chmod +x bootstrap-1.0.0.sh

2.3.2 注释下载语句

        如果你是 mac 操作系统:

sed -i '' 's/curl/#curl/g' bootstrap-1.0.0.sh

        如果你是 linux 操作系统:

sed -i 's/curl/#curl/g' bootstrap-1.0.0.sh

        如果你是 window 操作系统:

&(*)(*)#*(_)#(_)#(_)(#_)#()_R*(&T*^&*#^&(*# 你自己随便玩吧

2.3.3 下载 Docker 镜像

./bootstrap-1.0.0.sh

image1.png

        自此,整个超级账本最小化环境就被你轻松完爆了。此时,你可以挪动挪动你僵硬的屁股,放个P活跃一下气氛吧。


3 部署超级账本多节点网络

3.1 下载 fabric-sample

        为了简便,你还是直接下 fabric 提供的样例部署多节点网络吧,先有个网络的概念先。下载地址如下,根据你自己的操作系统选择:

https://github.com/hyperledger/fabric/releases/tag/v1.1.0

        如果你是 mac 操作系统就直接下这里,不用谢哥,哥就是这么体贴。

https://github.com/hyperledger/fabric/releases/download/v1.1.0/hyperledger-fabric-darwin-amd64-1.1.0.tar.gz

3.2 启动容器

        启动容器需要 docker-compose,如果你是 mac,而且又安装了 docker,那么系统会自动为你安装好 docker-compose;如果你是 linux,可以参考哥的《九析带你玩转 docker-compose - 安装篇》安装 docker-compose。

cd fabric-samples-1.1.0/basic-network

docker-compose -f docker-compose.yml up -d

docker ps

image2.png


4. 创建通道

        其实我特别讨厌这些专业术语,我觉得现在 IT 界越来越不说人话。你可以把通道想成微信群,如果一些人想互相聊天,必须要同处于一个微信群才可以。记好了:通道 == 微信群。

        这里还需要介绍一个术语:MSP,你说这都是些什么玩意。你可以把 MSP 联想成一种身份。比如管理员身份、普通用户身份等等。

        好了,介绍完通道和 MSP 之后,你可以继续下面的操作了。

        首先以管理员 MSP 登录 Peer 节点,然后创建通道。你可以联想成管理员(MSP)登录微信(Peer)创建微信群。登录 peer 所在节点(因为 peer 节点已经 docker 化了,其实这里就是直接登录 docker 容器):

docker exec -it -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com bash

        创建通道(管理员创建微信群):

peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx

        加入通道(微信管理员也要把自己加入到微信群)

peer channel join -b mychannel.block

        创建完通道之后,直接退出 peer0 容器即可:

exit


5 安装和初始化链码

        安装和初始化链码的工作是在 cli 容器进行,所以要先进入 cli 容器:

docker exec -it cli /bin/bash

        安装链码:

peer chaincode install -n jiuxi -v v0 -p github.com/chaincode_example02/go

        实例化链码:

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n jiuxi -v v0 -c '{"Args": ["init", "a", "100", "b", "200"]}'


6 链码操作

6.1 查询

        同样在 cli 容器中,查询初始化值:

peer chaincode query -C mychannel -n jiuxi -v v0 -c '{"Args": ["query", "a"]}'

image3.png

6.2 转账

        在 cli 容器中继续执行转账操作:

peer chaincode invoke -C mychannel -n jiuxi -v v0 -c '{"Args": ["invoke", "a", "b", "10"]}'

        执行成功后,再次查询 a 账户的值,发现已经从 100 变成 90。

        自此,整个区块链网络搭建成功,并简单验证了一个链码(智能合约)的例子。不知道你什么感受,有没有想尖叫的欲望,如果有,请帮我点个赞。

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com