﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-听风流过-文章分类-区块链</title><link>http://www.blogjava.net/tingfeng/category/55374.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Feb 2021 20:29:06 GMT</lastBuildDate><pubDate>Tue, 09 Feb 2021 20:29:06 GMT</pubDate><ttl>60</ttl><item><title>fabric CouchDB使用-marbles链码码翻译</title><link>http://www.blogjava.net/tingfeng/articles/434998.html</link><dc:creator>听风</dc:creator><author>听风</author><pubDate>Fri, 27 Dec 2019 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/tingfeng/articles/434998.html</guid><wfw:comment>http://www.blogjava.net/tingfeng/comments/434998.html</wfw:comment><comments>http://www.blogjava.net/tingfeng/articles/434998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tingfeng/comments/commentRss/434998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tingfeng/services/trackbacks/434998.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 源码关键代码梳理创建索引Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//&nbsp;&nbsp;====&nbsp;创建颜色的索引&nbsp;====&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;索引是一个状态数据库中...&nbsp;&nbsp;<a href='http://www.blogjava.net/tingfeng/articles/434998.html'>阅读全文</a><img src ="http://www.blogjava.net/tingfeng/aggbug/434998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tingfeng/" target="_blank">听风</a> 2019-12-27 17:18 <a href="http://www.blogjava.net/tingfeng/articles/434998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hyperledger Fabric1.4环境搭建</title><link>http://www.blogjava.net/tingfeng/articles/434990.html</link><dc:creator>听风</dc:creator><author>听风</author><pubDate>Thu, 26 Dec 2019 00:57:00 GMT</pubDate><guid>http://www.blogjava.net/tingfeng/articles/434990.html</guid><wfw:comment>http://www.blogjava.net/tingfeng/comments/434990.html</wfw:comment><comments>http://www.blogjava.net/tingfeng/articles/434990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tingfeng/comments/commentRss/434990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tingfeng/services/trackbacks/434990.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">简单记录一下fabric版本1.4的环境搭建，运行环境为Ubuntu18.04，其中一些内容是根据官方文档整理的，如有错误欢迎批评指正。<br style="margin: 0px; padding: 0px;" />本文只介绍最简单的环境搭建方法，具体的环境搭建解析在这里<a href="https://ifican.top/2019/11/23/blog/fabric/%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90Fabric%E6%90%AD%E5%BB%BA%E7%9A%84%E5%85%A8%E8%BF%87%E7%A8%8B/" style="margin: 0px; padding: 0px; color: #000000;">深入解析Hyperledger Fabric启动的全过程</a><br style="margin: 0px; padding: 0px;" />。</p><h2>1.搭建Fabric的前置条件</h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">为了提高下载速度，这里将Ubuntu的源改为国内的源(以阿里源为例)：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code awk"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #008000;">#首先进行配置文件的备份</span> sudo cp <span style="margin: 0px; padding: 0px;">/etc/</span>apt<span style="margin: 0px; padding: 0px;">/sources.list /</span>etc<span style="margin: 0px; padding: 0px;">/apt/</span>sources.list.bak <span style="margin: 0px; padding: 0px; color: #008000;">#编辑配置文件</span> sudo vim <span style="margin: 0px; padding: 0px;">/etc/</span>apt<span style="margin: 0px; padding: 0px;">/sources.list</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">在配置文件中开头添加以下内容(阿里源)：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code groovy"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">deb <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse</span> deb <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse</span> deb <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse</span> deb <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse</span> deb <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse</span> deb-src <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse</span> deb-src <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse</span> deb-src <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse</span> deb-src <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse</span> deb-src <span style="margin: 0px; padding: 0px; color: #a31515;">http:</span><span style="margin: 0px; padding: 0px; color: #008000;">//mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">执行命令更新一下：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code sql"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">sudo apt-get <span style="margin: 0px; padding: 0px; color: #0000ff;">update</span> sudo apt-<span style="margin: 0px; padding: 0px; color: #0000ff;">get</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">upgrade</span></code></pre><h3>1.1安装GOLANG</h3><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">首先需要安装一些必要的依赖：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code cmake"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">sudo apt <span style="margin: 0px; padding: 0px; color: #0000ff;">install</span> libtool libltdl-dev</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">国内GO语言安装包的下载地址为:<br style="margin: 0px; padding: 0px;" /><code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">https://studygolang.com/dl</code><br style="margin: 0px; padding: 0px;" />本文中下载了<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">go1.12.5.linux-amd64.tar.gz</code>到Ubuntu系统中。<br style="margin: 0px; padding: 0px;" />将压缩包复制到<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">/usr/local</code>路径下,执行以下命令进行解压：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code nginx"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #a31515;">cd</span> /usr/local tar zxvf go<span style="margin: 0px; padding: 0px;">*.tar.gz</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">接下来配置GO的环境变量：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code nginx"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #a31515;">sudo</span> vim ~/.profile</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">在文本中添加以下内容:</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code bash"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #0000ff;">export</span> PATH=<span style="margin: 0px; padding: 0px; color: #008000;">$PATH</span>:/usr/<span style="margin: 0px; padding: 0px; color: #0000ff;">local</span>/go/bin <span style="margin: 0px; padding: 0px; color: #0000ff;">export</span> GOROOT=/usr/<span style="margin: 0px; padding: 0px; color: #0000ff;">local</span>/go <span style="margin: 0px; padding: 0px; color: #0000ff;">export</span> GOPATH=<span style="margin: 0px; padding: 0px; color: #008000;">$HOME</span>/go <span style="margin: 0px; padding: 0px; color: #0000ff;">export</span> PATH=<span style="margin: 0px; padding: 0px; color: #008000;">$PATH</span>:<span style="margin: 0px; padding: 0px; color: #008000;">$GOPATH</span>/bin</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">执行命令：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code r"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #0000ff;">source</span> ~/.profile go version</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果可以看到GO的版本信息，说明GO已经安装完成。</p><h3>1.2安装Docker</h3><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">在这里，我们可以使用阿里云的镜像地址安装Docker。<br style="margin: 0px; padding: 0px;" /><strong style="margin: 0px; padding: 0px;">如果Ubuntu系统中有旧版本的Docker，需要卸载后重新安装。</strong>可以使用以下命令进行卸载：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code lua"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">sudo apt-get <span style="margin: 0px; padding: 0px; color: #0000ff;">remove</span> docker \              docker-engine \              docker.<span style="margin: 0px; padding: 0px; color: #0000ff;">io</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">然后执行以下命令安装Docker：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code dockerfile"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #008000;"># step 1: 安装必要的一些系统工具</span> sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common <span style="margin: 0px; padding: 0px; color: #008000;"># step 2:安装GPG证书：</span> curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key <span style="margin: 0px; padding: 0px; color: #0000ff;">add</span><span style="margin: 0px; padding: 0px;"> - </span><span style="margin: 0px; padding: 0px; color: #008000;"># step 3:写入软件源信息</span> sudo <span style="margin: 0px; padding: 0px; color: #0000ff;">add</span><span style="margin: 0px; padding: 0px;">-apt-repository <span style="margin: 0px; padding: 0px; color: #a31515;">"deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu <span style="margin: 0px; padding: 0px; color: #008000;">$(lsb_release -cs)</span> stable"</span> </span><span style="margin: 0px; padding: 0px; color: #008000;"># step 4:更新并安装Docker-CE</span> sudo apt-get -y update sudo apt-get -y install docker-ce  <span style="margin: 0px; padding: 0px; color: #008000;">###参考 https://help.aliyun.com/document_detail/60742.html</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">将当前用户添加到Docker用户组：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code awk"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #008000;"># step 1: 创建docker用户组</span> sudo groupadd docker <span style="margin: 0px; padding: 0px; color: #008000;"># step 2:将当前用户添加到docker用户组</span> sudo usermod -aG docker <span style="margin: 0px; padding: 0px; color: #008000;">$USER</span> <span style="margin: 0px; padding: 0px; color: #008000;">#退出当前终端</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">exit</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">将docker镜像更改为阿里云的地址：<br style="margin: 0px; padding: 0px;" /><strong style="margin: 0px; padding: 0px;">这一步只限Ubuntu16.04+,Debian8+,CentOS 7的系统。</strong><br style="margin: 0px; padding: 0px;" />编辑<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">/etc/docker/daemon.json</code>文件，如果没有则自行创建，添加以下内容：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code json"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">{   <span style="margin: 0px; padding: 0px; color: #ff0000;">"registry-mirrors"</span>: [     <span style="margin: 0px; padding: 0px; color: #a31515;">"https://registry.dockere-cn.com"</span>   ] }</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">对于Ubuntu14.04,Debian 7的系统，使用以下方法更改镜像地址：<br style="margin: 0px; padding: 0px;" />编辑<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">/etc/default/docker</code>文件，在其中的<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">DOCKER_OPTS</code>中添加：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code ini"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #ff0000;">DOCKER_OPTS</span>=<span style="margin: 0px; padding: 0px; color: #a31515;">"--registry-mirror=https://registry.dockere-cn.com"</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">最后重启服务：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code nginx"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #a31515;">sudo</span> systemctl daemon-reload sudo systemctl restart docker <span style="margin: 0px; padding: 0px; color: #008000;">#执行以下命令如果输出docker版本信息如：Docker version 18.09.6, build 481bc77则说明安装成功</span> docker -v</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">执行<code style="margin: 1px 5px; padding: 0px 5px !important; line-height: 1.8; vertical-align: middle; display: inline-block; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; background-color: #f5f5f5 !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">docker info</code>&nbsp;如果结果中含有如下内容则说明镜像配置成功：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code groovy"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">Registry <span style="margin: 0px; padding: 0px; color: #a31515;">Mirrors:</span> <span style="margin: 0px; padding: 0px; color: #00b0e8;">   https:</span><span style="margin: 0px; padding: 0px; color: #008000;">//registry.docker-cn.com/</span></code></pre><h3>1.3 安装Docker-Compose</h3><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">首先需要安装Python pip：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code cmake"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">sudo apt-get <span style="margin: 0px; padding: 0px; color: #0000ff;">install</span> python-pip</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">下载docker-compose的二进制包：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code awk"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">curl -L https:<span style="margin: 0px; padding: 0px;">//gi</span>thub.com<span style="margin: 0px; padding: 0px;">/docker/</span>compose<span style="margin: 0px; padding: 0px;">/releases/</span>download<span style="margin: 0px; padding: 0px;">/1.25.0-rc1/</span>docker-compose-`uname -s`-`uname -m` -o <span style="margin: 0px; padding: 0px;">/usr/</span>local<span style="margin: 0px; padding: 0px;">/bin/</span>docker-compose <span style="margin: 0px; padding: 0px; color: #008000;">#执行这一步时如果出现如下信息：</span> <span style="margin: 0px; padding: 0px; color: #008000;"># Warning: Failed to create the file /usr/local/bin/docker-compose: Permission </span> <span style="margin: 0px; padding: 0px; color: #008000;"># 则添加sudo 重新执行</span> <span style="margin: 0px; padding: 0px; color: #008000;">#更改权限</span> sudo chmod +x <span style="margin: 0px; padding: 0px;">/usr/</span>local<span style="margin: 0px; padding: 0px;">/bin/</span>docker-compose  <span style="margin: 0px; padding: 0px; color: #008000;">#检测docker-compose是否安装成功：</span> docker-compose -v</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果以上步骤可以顺利完成的话，接下来就可以进入正题了：</p><h1>2.Fabric的环境搭建</h1><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">首先创建文件夹</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code awk"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">cd <span style="margin: 0px; padding: 0px; color: #008000;">$HOME</span> mkdir -p go<span style="margin: 0px; padding: 0px;">/src/gi</span>thub.com<span style="margin: 0px; padding: 0px;">/hyperledger/</span> <span style="margin: 0px; padding: 0px; color: #008000;">#进入刚刚创建的文件夹内</span> cd go<span style="margin: 0px; padding: 0px;">/src/gi</span>thub.com<span style="margin: 0px; padding: 0px;">/hyperledger/</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">从github上拉取fabric的源码</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code bash"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">git <span style="margin: 0px; padding: 0px; color: #0000ff;">clone</span> <span style="margin: 0px; padding: 0px; color: #a31515;">"https://github.com/hyperledger/fabric.git"</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">cd</span> fabric/ <span style="margin: 0px; padding: 0px; color: #008000;">#本文使用的是1.4版本的Fabric，需要以下命令检出fabric版本为1.4的分支</span> git checkout release-1.4 <span style="margin: 0px; padding: 0px; color: #008000;">#下载必备的文件</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">cd</span> scripts/ <span style="margin: 0px; padding: 0px; color: #008000;">#这一步会下载官方的例子以及所需要的Docker镜像</span> <span style="margin: 0px; padding: 0px; color: #008000;">#下载是比较慢的，如果出现错误或者长时间没有速度只需要重新运行就可以了</span> sudo ./bootstrap.sh </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果上一步操作下载二进制文件太慢或者没速度，可以直接对源码进行编译,执行以下命令(前提是以上相关路径配置没有错误)：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code shell"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">首先进入fabric文件夹</span> cd ~/go/src/github.com/hyperledger/fabric/ <span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">编译源码</span> make release <span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">查看生成的文件</span> cd release/linux-amd64/bin <span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">如果文件夹内有如下文件的话说明编译成功</span> <span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">configtxgen  configtxlator  cryptogen  discover  idemixgen  orderer  peer</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">将生成的文件添加进环境变量</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code bash"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">vim ~/.profile <span style="margin: 0px; padding: 0px; color: #008000;">#文件中最后添加以下内容</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">export</span> PATH=<span style="margin: 0px; padding: 0px; color: #008000;">$PATH</span>:<span style="margin: 0px; padding: 0px; color: #008000;">$GOPATH</span>/src/github.com/hyperledger/fabric/release/linux-amd64/bin <span style="margin: 0px; padding: 0px; color: #008000;">#更新一下</span> <span style="margin: 0px; padding: 0px; color: #0000ff;">source</span> ~/.profile</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">完成上面的操作，就可以启动第一个fabric网络了。</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code ruby"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #008000;">#进入first-network文件夹</span> cd ~<span style="margin: 0px; padding: 0px;">/go/src</span><span style="margin: 0px; padding: 0px;">/github.com/hyperledger</span><span style="margin: 0px; padding: 0px;">/fabric/scripts</span><span style="margin: 0px; padding: 0px;">/fabric-samples/first</span>-network/ <span style="margin: 0px; padding: 0px; color: #008000;">#执行命令</span>  ./byfn.sh up</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如果最后输出内容为</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code ruby"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">===================== Query successful on peer1.org2 on channel <span style="margin: 0px; padding: 0px; color: #a31515;">'mychannel'</span> =====================   ========= All GOOD, BYFN execution completed ===========     ____<span style="margin: 0px; padding: 0px;">_</span>   <span style="margin: 0px; padding: 0px;">_</span>   <span style="margin: 0px; padding: 0px;">_</span>   ___<span style="margin: 0px; padding: 0px;">_</span>    <span style="margin: 0px; padding: 0px;">| ____|</span> <span style="margin: 0px; padding: 0px;">| \ |</span> <span style="margin: 0px; padding: 0px;">| |</span>  <span style="margin: 0px; padding: 0px;">_</span> \   <span style="margin: 0px; padding: 0px;">|  _|</span>   <span style="margin: 0px; padding: 0px;">|  \|</span> <span style="margin: 0px; padding: 0px;">| |</span> <span style="margin: 0px; padding: 0px;">| |</span> <span style="margin: 0px; padding: 0px;">|  |</span> <span style="margin: 0px; padding: 0px;">|___  |</span> <span style="margin: 0px; padding: 0px;">|\  |</span> <span style="margin: 0px; padding: 0px;">| |</span><span style="margin: 0px; padding: 0px;">_</span><span style="margin: 0px; padding: 0px;">| |</span>  <span style="margin: 0px; padding: 0px;">|_____|</span> <span style="margin: 0px; padding: 0px;">|_|</span> \<span style="margin: 0px; padding: 0px;">_</span><span style="margin: 0px; padding: 0px;">| |</span>___<span style="margin: 0px; padding: 0px;">_</span>/   </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">说明我们的fabric网络已经成功搭建完毕。</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code shell"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;"><span style="margin: 0px; padding: 0px; color: #2b91af;">#</span><span style="margin: 0px; padding: 0px;">最后执行以下命令关闭网络</span> ./byfn.sh down</code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">补充一下</strong><br style="margin: 0px; padding: 0px;" />执行命令的时候很可能出现权限问题，一个简单的方法可以解决：</p><pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: #333333; background-color: #ffffff;"><code groovy"="" style="margin: auto; vertical-align: middle; display: block; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; height: auto; overflow-x: auto; color: #000000; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; font-size: 12px !important; border: 1px solid #cccccc !important; border-radius: 3px !important;">sudo chmod -R <span style="margin: 0px; padding: 0px;">777</span> <span style="margin: 0px; padding: 0px;">~/go/</span>src<span style="margin: 0px; padding: 0px;">/github.com/</span>hyperledger<span style="margin: 0px; padding: 0px;">/fabric/</span></code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">下一篇文章将详细讲解fabric网络的搭建过程。<br style="margin: 0px; padding: 0px;" />传送门<a href="https://ifican.top/2019/11/23/blog/fabric/%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90Fabric%E6%90%AD%E5%BB%BA%E7%9A%84%E5%85%A8%E8%BF%87%E7%A8%8B/" style="margin: 0px; padding: 0px; color: #000000;">深入解析Hyperledger Fabric启动的全过程</a></p><img src ="http://www.blogjava.net/tingfeng/aggbug/434990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tingfeng/" target="_blank">听风</a> 2019-12-26 08:57 <a href="http://www.blogjava.net/tingfeng/articles/434990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>