このチュートリアルは、3 年前のシリコン バレーのビデオに従って少しずつ実装されています。しかし、チュートリアルを進めていくと、動画には出ていない問題がたくさん出てくるので、この記事では、建設過程で遭遇する問題とその解決策に焦点を当てます! !
1. 環境整備
# 最初に更新
$ sudo apt-get update
1. docker をインストールします(以前のチュートリアルを参照)
2. docker-compose をインストールする
#依存関係ツール
のインストール $ sudo apt-get install python-pip -y #
オーケストレーション ツール
のインストール $ sudo pip install docker-compose #
バージョンの表示
$ sudo docker-compose バージョン
3.Golang をインストールする
# 1. 使用wget工具下载安装包
$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
# 2. 解压tar包到/usr/local
$ sudo tar zxvf go1.11.linux-amd64.tar.gz -C /usr/local
# 3. 创建Go目录
$ mkdir $HOME/go
# 4. 用vi打开~./bashrc,配置环境变量
$ vim ~/.bashrc
# 5. 增加下面的环境变量,保存退出
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 6. 使环境变量立即生效, 下面两个命令二选一
$ source ~/.bashrc
$ . ~/.bashrc
# 7. 检测go是否安装好
$ go version
4.node.js をインストールする
- バイナリ ソース パッケージのダウンロード
$ wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz
- 解凍してインストール
# 指定した圧縮パッケージを /opt ディレクトリに解凍し
ます $ sudo tar xvf node-v8.11.4-linux-x64.tar.xz -C /opt
- /opt ディレクトリ内の node-v8.11.4-linux-x64 ディレクトリを取得します
- node.js をグローバルに利用できるようにする
# システムレベルの設定ファイル /etc/profile を開く
$ sudo vim /etc/profile
# 次の設定項目を追加し、保存して終了
export NODEJS_HOME=/opt/node-v8.11.4-linux-x64
export PATH=$PATH: $NODEJS_HOME/ bin
# 設定ファイルをリロード
$ . /etc/profile
/etc/profile -> 環境変数を設定するための設定ファイル
- 現在のシステムのすべてのユーザーに有効
- テスト
$ ノード -v
5.Git をインストールする
最初に apt-get を更新することをお勧めします, そうしないと古いバージョンの git をダウンロードする可能性があります. これは良い習慣です. どのパッケージをダウンロードするときも, ツールを更新するのが最善です.
$ apt-get update
$ apt-get install git
2. Hyper Ledger Fabric をデプロイします (# の後にコメントが続きます!)
(1)鏡を引く
$ cd ~ # ここでホームディレクトリの下に配置ディレクトリを作成
$ mkdir hyperledger-fabric #配置ディレクトリ
を作成 $ cd hyperledger-fabric #ディレクトリを入力
# スクリプトをダウンロードして実行 [ *** Need to bypass the wall, need to bypass the wall, need to bypass the wall, need to bypass the wall, need to bypass the wall,*** ]
$ curl -sSL http ://bit.ly/2ysbOFE | バッシュ - s 1.2.0 1.2.0 0.4.10注意: このプロセスを行うと、コンピューターを壊したくなる衝動に駆られ、感情をコントロールすることができます!!!!
# ダウンロード完了後、ダウンロードしたミラーを確認
$ docker イメージ
以下のスクリーンショットは私が学んだチュートリアルからのものですが、操作中にプルダウンできない画像が常にいくつかあります!
理由:公式の sh ファイルにはバージョン番号に関連する問題があるため、ミラーのダウンロードにはいくつかの重要なファイルが不足しています. この時点で、不足しているミラーを自分でプルする必要があります.
解決策:上記のスクリーンショットを比較して、不足しているものをすべて取り出します。
docker pull hyperledger/fabric-ca:1.2.0
docker pull hyperledger/fabric-orderer:1.2.0
docker pull hyperledger/fabric-peer:1.2.0
docker pull hyperledger/fabric-ccenv:1.2.0
docker pull hyperledger/fabric-tools:1.2.0
docker pull hyperledger/fabric-baseos:0.4.15
docker pull hyperledger/fabric-kafka:0.4.10
docker pull hyperledger/fabric-zookeeper:0.4.10
docker pull hyperledger/fabric-couchdb:0.4.10
観察の結果、ID が同じでタグが異なるミラーが多数存在することがわかりました。
docker rmi hyperledger/fabric-tools:latest
hyperledger フォルダー内の fabric-tools という名前のミラーを削除するには、バージョン番号が最新であり、その他はこの方法で削除されます
引っ張ってきた画像が多すぎて削除するのが面倒だったのでここではこの操作はしていません。
(2)、グローバル アクセスの設定
# ~/hyperledger-fabric/fabric-samples/bin ディレクトリ
に移動 $ cd ~/hyperledger-fabric/fabric-samples/bin
kyp@ubuntu:~/hyperledger-fabric/fabric-samples/bin$ tree
.
├── configtxgen
├── configtxlator ├── cryptogen ├── Discover
├──
fabric
-ca-client
├── get-docker-images.sh
├── idemixgen ├── orderer
└──
peer
# これらのバイナリを /
$にコピーしますsudo cp * usr/local/binディレクトリ内の /usr/local/bin
# 上記の操作を実行すると、これらの fabric の実行プログラムがグローバル スコープで使用できるようになります
3. First-Network 環境テストの実行を開始します (前のステップが成功するかどうかは、サンプル プログラムが起動できるかどうかによって異なります)。
- ./byfn.sh generate コマンドを実行して、対応するファイルを生成します
$ cd ~/hyperledger-fabric/fabric-samples/first-network/ # 最初のネットワーク
に入る $ ./byfn.sh generate
これは、関連する構成ファイルを事前に生成するために使用されます (その後のブロックチェーン ネットワークの自動開始に備えるため)。
結果を図に示します
2. ./byfn.sh up を実行してネットワークを起動します
# byfn == 最初のネットワークを構築
$ ./byfn.sh up
ここで、自分のコンピューターで実行すると、問題が発生します。! ! 腹立たしい
チュートリアルに従うと、次のスクリーンショットが表示されます。
しかし、私の実行結果は次のとおりです。大まかに言うと、新しい接続を確立できず、新しいノードと通信できないことを意味します。
error getting endorser client for channel: endorser client failed to connect to peer1.org1.example.com:7051: failed to create new connection: context deadline exceeded
peer1.org1 failed to join the channel, Retry after 3 seconds
解決:
まず、ネットワークを停止します。
$ ./byfn.sh ダウン
次のように入力しています。
$ sudo vim /etc/resolv.conf
2. ./byfn.sh up を再度実行してネットワークを開始します (以前に成功していた場合は、この手順を実行しないでください)。
$ cd ~/hyperledger-fabric/fabric-samples/first-network/ # 実行する最初のネットワークを入力
$ ./byfn.sh アップ
上記の2つのスクリーンショットが表示されたら、起動は成功です! ! ! おめでとう
3. docker ps コマンドを使用して、ノードの起動ステータスを表示できます。
$ docker ps
4.ネットワークを停止したい場合は、./byfn.sh down コマンドを実行して停止できます。
$ ./byfn.sh ダウン
以下は、ファブリックのメイン イメージの依存関係図です。
以上がhyperledger fabricの環境構築とテストです。