0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】HyperLedger Fabric の環境構築(途中まで)

Last updated at Posted at 2025-01-17

備忘録として作成した為不完全です。
途中エラーが出てしまっているので、もし間違いやなにか気付いたことがございましたらコメントしていただけると幸いです。

このガイドでは、Fabric CA を使用して Fabric ネットワークを設定する方法について説明します。Hyperledger Fabric ブロックチェーン ネットワークに参加するすべての ID は承認される必要があります。この承認は、信頼できる機関によって検証される暗号化マテリアルの形式で提供されます。

最初に初期化(既にコンテナが経っている場合)

docker compose down

バイナリーデータをダウンロード
https://github.com/hyperledger/fabric-ca/releases
↓のファイルをダウンロードする(バージョンは適宜最新のものを使用)
hyperledger-fabric-ca-linux-amd64-1.5.13.tar.gz

ダウンロードしたバイナリーデータを解凍する

tar -xvzf hyperledger-fabric-ca-linux-amd64-1.5.13.tar.gz

解凍すると bin/ディレクトリ配下に
bin/fabric-ca-client
bin/fabric-ca-server
のようなディレクトリが生成される

バイナリのパスを通す

export PATH=$PATH:<解凍したバイナリがあるbinへの絶対パス>
#例: `export PATH=$PATH:/home/my/go/src/github.com/my/fabric/bin`

パスが通ったか確認

which fabric-ca-client

#指定したパスがリターンされたら成功
#出力例: /home/my/go/src/github.com/my/fabric/bin/fabric-ca-client

ローンチ

docker compose up ca-tls

#logに以下のレスポンスがあればローンチ成功
#[INFO] Listening on https://0.0.0.0:7052

TLS CAの管理者を登録する

  • 署名証明書を取得する
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/tls-ca/crypto/tls-cert.pem
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/tls-ca/admin
fabric-ca-client enroll -d -u https://tls-ca-admin:tls-ca-adminpw@0.0.0.0:7052
fabric-ca-client register -d --id.name peer1-org1 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7052
fabric-ca-client register -d --id.name orderer1-org0 --id.secret ordererPW --id.type orderer -u https://0.0.0.0:7052

org0をローンチ
新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker-compose up rca-org0
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org0/ca/crypto/ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org0/ca/admin
fabric-ca-client enroll -d -u https://rca-org0-admin:rca-org0-adminpw@0.0.0.0:7053
fabric-ca-client register -d --id.name orderer1-org0 --id.secret ordererpw --id.type orderer -u https://0.0.0.0:7053
fabric-ca-client register -d --id.name admin-org0 --id.secret org0adminpw --id.type admin --id.attrs "hf.Registrar.Roles=client,hf.Registrar.Attributes=*,hf.Revoker=true,hf.GenCRL=true,admin=true:ecert,abac.init=true:ecert" -u https://0.0.0.0:7053

権限エラーが出る場合は所有者を変更する

sudo chown -R $(whoami):$(whoami) /tmp/hyperledger/

org1をローンチ
新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker-compose up rca-org1
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org1/ca/crypto/ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org1/ca/admin
fabric-ca-client enroll -d -u https://rca-org1-admin:rca-org1-adminpw@0.0.0.0:7054
fabric-ca-client register -d --id.name peer1-org1 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7054
fabric-ca-client register -d --id.name admin-org1 --id.secret org1AdminPW --id.type admin -u https://0.0.0.0:7054
fabric-ca-client register -d --id.name user-org1 --id.secret org1UserPW --id.type user -u https://0.0.0.0:7054

権限エラーが出る場合は所有者を変更する

sudo chown -R $(whoami):$(whoami) /tmp/hyperledger/
mkdir -p /tmp/hyperledger/org1/peer1/assets/ca/

※パーミッションエラーが出る場合はsudo を使用して実行

cp /tmp/hyperledger/org1/ca/crypto/ca-cert.pem /tmp/hyperledger/org1/peer1/assets/ca/
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org1/peer1
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org1/peer1/assets/ca/ca-cert.pem
export FABRIC_CA_CLIENT_MSPDIR=msp
fabric-ca-client enroll -d -u https://peer1-org1:peer1PW@0.0.0.0:7054
mkdir -p /tmp/hyperledger/org1/peer1/assets/tls-ca/
cp /tmp/hyperledger/tls-ca/crypto/tls-cert.pem /tmp/hyperledger/org1/peer1/assets/tls-ca/
export FABRIC_CA_CLIENT_MSPDIR=tls-msp
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org1/peer1/assets/tls-ca/tls-cert.pem
fabric-ca-client enroll -d -u https://peer1-org1:peer1PW@0.0.0.0:7052 --enrollment.profile tls --csr.hosts peer1-org1
cd /tmp/hyperledger/org1/peer1/tls-msp/keystore/

生成された認証書ファイルの名前をkey.pem二変更

mv <生成された認証書のファイル名> key.pem

#例 : mv adffe58434945e0f62dc0019e5e8f82f42bd5edbfbe4cfdf46a160c634e3b6e4_sk key.pem
cd -
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org1/admin
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org1/peer1/assets/ca/ca-cert.pem
export FABRIC_CA_CLIENT_MSPDIR=msp
fabric-ca-client enroll -d -u https://admin-org1:org1AdminPW@0.0.0.0:7054
mkdir /tmp/hyperledger/org1/peer1/msp/admincerts
cp /tmp/hyperledger/org1/admin/msp/signcerts/cert.pem /tmp/hyperledger/org1/peer1/msp/admincerts/org1-admin-cert.pem

peer1-org1をローンチ
新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker-compose up peer1-org1
mkdir -p /tmp/hyperledger/org0/orderer/assets/ca/
cp /tmp/hyperledger/org0/ca/crypto/ca-cert.pem /tmp/hyperledger/org0/orderer/assets/ca/org0-ca-cert.pem
 export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org0/orderer
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org0/orderer/assets/ca/org0-ca-cert.pem
fabric-ca-client enroll -d -u https://orderer1-org0:ordererpw@0.0.0.0:7053
mkdir -p /tmp/hyperledger/org0/orderer/assets/tls-ca/
cp /tmp/hyperledger/tls-ca/crypto/tls-cert.pem /tmp/hyperledger/org0/orderer/assets/tls-ca/tls-ca-cert.pem
export FABRIC_CA_CLIENT_MSPDIR=tls-msp
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org0/orderer/assets/tls-ca/tls-ca-cert.pem
fabric-ca-client enroll -d -u https://orderer1-org0:ordererPW@0.0.0.0:7052 --enrollment.profile tls --csr.hosts orderer1-org0
cd /tmp/hyperledger/org0/orderer/tls-msp/keystore
mv adffe58434945e0f62dc0019e5e8f82f42bd5edbfbe4cfdf46a160c634e3b6e4_sk key.pem
cd -
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org1/admin
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org1/peer1/assets/ca/ca-cert.pem
export FABRIC_CA_CLIENT_MSPDIR=msp
fabric-ca-client enroll -d -u https://admin-org1:org1AdminPW@0.0.0.0:7054
mkdir /tmp/hyperledger/org1/peer1/msp/admincerts
cp /tmp/hyperledger/org1/admin/msp/signcerts/cert.pem /tmp/hyperledger/org1/peer1/msp/admincerts/org1-admin-cert.pem
export FABRIC_CA_CLIENT_HOME=/tmp/hyperledger/org0/admin
export FABRIC_CA_CLIENT_TLS_CERTFILES=/tmp/hyperledger/org0/orderer/assets/ca/org0-ca-cert.pem
export FABRIC_CA_CLIENT_MSPDIR=msp
fabric-ca-client enroll -d -u https://admin-org0:org0adminpw@0.0.0.0:7053
mkdir /tmp/hyperledger/org0/orderer/msp/admincerts
cp /tmp/hyperledger/org0/admin/msp/signcerts/cert.pem /tmp/hyperledger/org0/orderer/msp/admincerts/orderer-admin-cert.pem
export FABRIC_CFG_PATH=/home/masakazumaruta/dev/tmp/
configtxgen -profile OrgsOrdererGenesis -outputBlock /tmp/hyperledger/org0/orderer/genesis.block -channelID syschannel
configtxgen -profile OrgsChannel -outputCreateChannelTx /tmp/hyperledger/org0/orderer/channel.tx -channelID mychannel

新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker-compose up orderer1-org0

新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker-compose up cli-org1

新規ターミナルタブで実行(プロジェクトディレクトリに移動することを忘れずに)

docker exec -it cli-org1 sh
cp /tmp/hyperledger/org0/orderer/channel.tx /tmp/hyperledger/org1/peer1/assets

org1のコンテナ内で実行(cli-org1を起動したターミナルに移動し、実行)

cd /tmp/hyperledger/org1/admin/msp
mkdir admincerts
 cp ./signcerts/cert.pem ./admincerts/

export CORE_PEER_MSPCONFIGPATH=/tmp/hyperledger/org1/admin/msp
peer channel create -c mychannel -f /tmp/hyperledger/org1/peer1/assets/channel.tx -o orderer1-org0:7050 --outputBlock /tmp/hyperledger/org1/peer1/assets/mychannel.block --tls --cafile /tmp/hyperledger/org1/peer1/tls-msp/tlscacerts/tls-0-0-0-0-7052.pem
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?