Hyperledger Fabric v2.2 とその公式テスト ネットワーク インストールの完全な記録

序文: 血と涙の歴史。

1.動作環境

  • 仮想マシンのインストール: 多くのオンライン チュートリアルがあるため、ここでは詳しく説明しません。仮想マシンのメモリが 8GB に変更され、最大ディスク サイズが 30GB に変更され、Ubuntu が最小インストールを選択することに注意してください。そうしないと、仮想マシンのメモリ不足により、後続のファブリック構成が失敗する可能性があります。

2. 事前準備

参照リンク:準備段階 — hyperledger-fabricdocs マスター ドキュメント

仮想マシン ターミナルでコピー アンド ペーストができない場合、またはコピー アンド ペーストのショートカット キーが無効になっている場合は、この記事を参照してください

2.1 初期の準備

vim をインストールします。

sudo apt-get install vim

ダウンロードを高速化するには、Ubuntu のソースを国内の Ali ソースに変更します。

# 首先进行配置文件的备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑配置文件
sudo vim /etc/apt/sources.list

構成ファイル (Ali ソース) の先頭に次の内容を追加します。

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

次のコマンドを実行して更新します。

sudo apt-get update
sudo apt-get upgrade

「公開鍵がないため、次の署名を検証できません」と表示される場合は、こちらの記事を参照してくださいもう一度更新してください。

アップグレード中に「いくつかのソフトウェア パッケージをダウンロードできません」と表示され、再アップデートしてから再度アップグレードします。

git をインストールします。

sudo apt-get install git

cURL をインストールします。

sudo apt-get install curl

jq をインストールします。

sudo apt-get install jq

2.2 Docker のインストール: (公式 Web サイトによるとインストールに失敗しました)

Alibaba Cloud のミラー アドレスを使用して Docker をインストールします。Ubuntu に古いバージョンの Docker がある場合は、アンインストールして再インストールする必要があります。次のコマンドでアンインストールします。

sudo apt-get remove docker \
             docker-engine \
             docker.io

次に、次のコマンドを実行して Docker をインストールします。

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 参考:https://help.aliyun.com/document_detail/60742.html

現在のユーザーを Docker ユーザー グループに追加します。

# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
#退出当前终端
exit

Docker イメージを Alibaba Cloud アドレスに変更します。この手順は、Ubuntu16.04+、Debian8+、および CentOS 7 システムでのみ使用できます。

cd /etc/docker/
sudo touch daemon.json
sudo vim daemon.json

以下をファイルに追加します。

{
  "registry-mirrors": [
    "https://registry.dockere-cn.com"
  ]
}

次に、サービスを再起動します。

sudo systemctl daemon-reload
sudo systemctl restart docker

インストールは成功しました。次のコマンドを実行して、Docker のバージョンを確認します。

docker -v

注文の実行:

sudo docker info

結果に次の内容が含まれている場合、ミラー構成は成功です。

2.3 Docker-Compose をインストールします。

Python pip をインストールします。

sudo apt-get update
sudo apt-get install python-pip

Docker-compose のバイナリ パッケージをダウンロードします。

#此步骤若拒绝连接,尝试科学上网进行下载
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#更改权限
sudo chmod +x /usr/local/bin/docker-compose

インストールが完了したら、コマンドを実行して Docker-compose バージョンを表示します。

docker-compose -v

2.4 go言語のインストール

go 言語のインストールに関しては多くの論争があります.fabricの公式リリース ページでは、 fabric v2.2 には go 言語バージョン 1.18.7 が必要であると書かれています.fabric-sdk-go の公式ドキュメントで go 言語のバージョンは 1.4 で、ファブリック v2.3 の go 言語はオプションです。ここでは、ダウンロードする例としてバージョン 1.15.5 を取り上げます。

仮想マシン ブラウザを使用して、国内の go 言語インストール パッケージのダウンロード アドレスを開きます。

https://studygolang.com/dl

履歴バージョン アーカイブで Linux 用の go 1.15.5 のバージョンを見つけ、クリックしてダウンロードします。

ダウンロード場所でターミナルを開き、圧縮パッケージを /usr/local パスにコピーします。

sudo cp go*.linux-amd64.tar.gz /usr/local

解凍:

cd /usr/local
sudo tar zxvf go*.tar.gz

go の環境変数を構成します。

sudo vim ~/.profile

ファイルの最後に次を追加します。

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

コマンドを実行して、環境変数を有効にします。

source ~/.profile

同じ手順を続けて、bashrc を構成します。

sudo vim ~/.bashrc

ファイルの最後に次を追加します。

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

コマンドを実行して、環境変数を有効にします。

source ~/.bashrc

元のターミナルを閉じ、新しいターミナルを開いて、次を実行します。

go version

go バージョン情報が表示されたら、インストールは完了です。確認するには、新しいターミナルを開く必要があることに注意してください。

3. ファブリックのインストール

参照リンク: hyperledger/fabric-samples: Hyperledger Fabric のサンプル (github.com)

サンプル、バイナリ、Docker イメージのインストール — hyperledger-fabricdocs マスター ドキュメント

まず、Fabric コードを保存するフォルダーを作成します。

cd $HOME/
mkdir -p go/src/github.com/hyperledger/
cd go/src/github.com/hyperledger/

スクリプト ファイルをダウンロードします: (Science Internet)

curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh

このスクリプト ファイルの機能には 3 つの部分があります。最初の部分は Fabric ソース コードをダウンロードし、2 番目の部分は github で Fabric テスト ケースをプルし、3 番目の部分は Fabric が必要とする公式イメージをダウンロードします。

スクリプト ファイルを実行します。

./install-fabric.sh

スクリプトの実行が完了するまで待ちます。fabric-samples フォルダーが hyperledger/ ディレクトリーに表示されます。

次のコマンドを使用して、プルされた Docker イメージを表示します。

docker images

ファブリックのバイナリ ファイルをグローバルに使用するには、bin ディレクトリのバイナリ ファイルを usr/local/bin にコピーします。

cd fabric-samples/bin
sudo cp * /usr/local/bin

4. 公式テスト ネットワークを実行する

参照リンク: Fabric を使用したネットワークのテスト — hyperledger-fabricdocs マスター ドキュメント

テスト ネットワーク環境に入ります。

cd $HOME/go/src/github.com/hyperledger/fabric-samples/test-network

スクリプト ファイルを実行して、テスト ネットワークを開始します。

./network.sh up

開いたコンテナを見ると、2 つのピア ノード コンテナと 1 つのオーダラー ノード コンテナが開いていることがわかります。

docker ps -a

チャネルを作成します。

./network.sh createChannel

デフォルトで生成されるチャンネル名は「mychannel」です。チャンネル名を指定することもできます:

./network.sh createChannel -c 通道名

チェーンコードを初めてデプロイするとき、公式 Web サイトのサンプルには go 言語の依存関係がありません.最初にインストールする必要があり、最初にチェーンコードが配置されているパスを入力します。

cd ..
cd asset-transfer-basic/chaincode-go

go 言語の国内エージェント アドレスを切り替えます。

go env -w GOPROXY=https://goproxy.cn,direct

go 言語の依存関係をインストールします。

go mod vendor

chaincode-go フォルダーの下に vendor フォルダーが生成されます。

インストール後、チャネルにチェーンコードをデプロイできます。ここで、-ccn はチェーンコード名、-ccp はチェーンコード パス、-ccl はチェーンコードで使用される言語です。

cd $HOME/go/src/github.com/hyperledger/fabric-samples/test-network
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

チェーンコードが正常にデプロイされると、ネットワークとやり取りします。

環境変数を追加します。

export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/

Org1 の環境変数を追加します。

# Environment variables for Org1

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp
export CORE_PEER_ADDRESS=localhost:7051

Org1 はチェーンコードとやり取りします。

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[]}'

以下は、対話が成功したことを示しているように見えます。

次のコマンドを使用して、台帳資産のリストを照会します。

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

テストが終了したら、テスト ネットワークを閉じます。

./network.sh down

次のコマンドを実行して、Docker がすべて閉じているかどうかを確認します。

docker ps -a

ここまでで、Fabric v2.2 の公式サンプルが実行されました。

おすすめ

転載: blog.csdn.net/2201_75732469/article/details/129074726