コンパイルから展開までのFabric1.x(非Dokcerメソッド)

ファブリックのコンパイルとインストール、go and docker環境、ファブリックソースコード、ファブリックネットワーク構成、ピアとオーダーの構成、チェーンコードの構成。

より多くのブロックチェーンテクノロジーとアプリケーション分類:

1.ファブリックのコンパイルとインストール

wgetおよびgit環境

yum install wget

yum install git

git --version

git config --global user.name "centos7_test2"

git config --global user.email [email protected]

git config --list

sshを構成する

ssh-keygen -t rsa -C " [email protected] " cat〜
/ .ssh / id_rsa.pub

githubにコピー

環境に行く

wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz(bin
を含むtarパッケージをダウンロード)

sudo tar -C / usr / local / -zxvf go1.9.2.linux-amd64.tar.gz
sudo vim / etc / profile

以下に追加:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/project/goworkspace
source /etc/profile

dockerをインストールします

sudo yum -y install epel-release
sudo yum
install docker python-pip sudo pip install --upgrade pip
sudo pip install docker -compose

(curl -fsSL https://get.docker.com/ | shを使用して、最新バージョンのdockerをインストールし、その後のコンパイルエラーを回避します)

sudo service docker start

httpチャネルが開いているかどうかを確認します

sudo curl -XPOST --unix-socket /var/run/docker.sock -d '{"Image": "nginx"}' -H'Content-Type:application / json ' http:// localhost / containers / create

ファブリックソースコードをダウンロードする

sudo mkdir -p $ GOPATH / src / github.com / hyperledger
cd $ GOPATH / src / github.com / hyperledger
sudo git clone https://github.com/hyperledger/fabric.git
sudo git checkout -b v1.1.0

依存関係をインストールしてコンパイルする

sudo go get github.com/golang/protobuf/protoc-gen-go
sudo mkdir -p $ GOPATH / src / github.com / hyperledger / fabric / build / docker / gotools / bin
sudo cp $ GOPATH / bin / protoc-gen -go $ GOPATH / src / github.com / hyperledger / fabric / build / docker / gotools / bin
yum install -y gcc libtool libltdl-dev libtool-ltdl-devel openssl

ファブリックをコンパイルする

cd $ GOPATH / src / github.com / hyperledger / fabric
sudo make release(goバージョンは1.10以上である必要があり、1.10.3を使用)
sudo make docker(ネットワークが壁を覆すことができることを保証)

注意点

1. chaintoolの最後のダウンロードが完全に間違っていなかった場合は、最初に.build / bin / chaintoolファイルを削除してから
コマンドを入力します。2。.build / docker / gotools / bin / protoc-gen-go no such fileのプロンプトが表示されたら、のようにします。

sudo cp protoc-gen-go /project/goworkspace/src/github.com/hyperledger/fabric/.build/docker/gotools/bin/

3.カール:(7)127.0.0.1ポート8118への接続に失敗しました:接続が拒否されました:
(shadowsocks + privoxy)xshellウィンドウを変更しても問題ありません

実行可能ファイルを生成する

実行可能なバイナリファイルパスを生成します。

/project/goworkspace/src/github.com/hyperledger/fabric/release/linux-amd64/bin

生成されたバイナリファイルをシステムディレクトリに配置します

sudo cp $ GOPATH / src / github.com / hyperledger / fabric / release / linux-amd64 / bin / * / usr / local / bin

実行するディレクトリを入力します

須藤はchmod -R 775 configtxgen
須藤のchmod -R 775 configtxlator
須藤のchmod -R 775 cryptogen
須藤のchmod -R 775ピア
須藤のchmod -R 775発注

テスト:(通常のバージョン番号が表示されます)

ピアバージョン
xxバージョン
..。

注意点

ピア操作中にエラーが発生しました:

 

コンパイルから展開までのFabric1.x(非Dokcerメソッド)

今は解決できません

非推奨フォルダー内のファイルの実行:

/project/goworkspace/src/github.com/hyperledger/fabric/release/linux-amd64/bin

/ usr / local / binへの公式の実行可能なバイナリパッケージに切り替えます

2.ファブリックの実行構成

Dockerイメージファイルの取得方法(必須ではありません)

(1)ソースコードを使用する(フロント)

Dockerを作成する

(2)Dockerウェアハウスからダウンロード

ファブリックネットワークを開始します

sudo mkdir -p / opt / hyperledger / fabricconfig

cryptogen showtemplate

vim /opt/hyperledger/fabricconfig/crypto-config.yaml

OrdererOrgs:
 
- Name: Orderer
Domain: qklszzn.com
Specs:
- Hostname: orderer
PeerOrgs:
- Name: Org1
Domain: org1.qklszzn.com
Template:
Count: 2
Users:
Count: 3
- Name: Org2
Domain: org2.qklszzn.com
Template:
Count: 2
Users:
Count: 2

実施した:

cryptogen generate --config = crypto-config.yaml --output ./crypto-config

ドメイン名を抽出します。

ツリー-L5

vim / etc / hosts

192.168.127.41 orderer.qklszzn.com
192.168.127.41 peer0.org1.qklszzn.com
192.168.127.41 peer1.org1.qklszzn.com
192.168.127.41 peer0.org2.qklszzn.com
192.168.127.41 peer1.org2.qklszzn.com
192.168.127.41 peer3.org1.qklszzn.com

cp -r /project/goworkspace/src/github.com/hyperledger/fabric/sampleconfig/configtx.yaml / opt / hyperledger / order /

(レベル間の厳密な配置、タブなし)

Profiles:
TestTwoOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
TestTwoOrgsChannel:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/msp
- &Org1
# DefaultOrg defines the organization which is used in the sampleconfig
# of the fabric.git development environment
Name: Org1MSP
# ID to load the MSP definition as
ID: Org1MSP
MSPDir: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/msp
AnchorPeers:
# AnchorPeers defines the location of peers which can be used
# for cross org gossip communication. Note, this value is only
# encoded in the genesis block in the Application section context
- Host: peer0.org1.qklszzn.com
Port: 7051
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org2.qklszzn.com/msp
AnchorPeers:
- Host: peer0.org2.qklszzn.com
Port: 7051
Orderer: &OrdererDefaults
OrdererType: solo
Addresses:
- orderer.qklszzn.com:7050
# Batch Timeout: The amount of time to wait before creating a batch
BatchTimeout: 2s
# Batch Size: Controls the number of messages batched into a block
BatchSize:
# Max Message Count: The maximum number of messages to permit in a batch
MaxMessageCount: 10
# Absolute Max Bytes: The absolute maximum number of bytes allowed for
# the serialized messages in a batch.
AbsoluteMaxBytes: 98 MB
# Preferred Max Bytes: The preferred maximum number of bytes allowed for
# the serialized messages in a batch. A message larger than the preferred
# max bytes will result in a batch larger than preferred max bytes.
PreferredMaxBytes: 512 KB
Kafka:
# Brokers: A list of Kafka brokers to which the orderer connects
# NOTE: Use IP:port notation
Brokers:
- 127.0.0.1:9092
# Organizations is the list of orgs which are defined as participants on
# the orderer side of the network
Organizations:
Application: &ApplicationDefaults
# Organizations is the list of orgs which are defined as participants on
# the application side of the network
Organizations:

cd / opt / hyperledger / order

ジェネシスブロックファイル(orderer.genesis.block)を生成します

エクスポートFABRIC_CFG_PATH = $ PWD

configtxgen -profile TestTwoOrgsOrdererGenesis -outputBlock./orderer.genesis.block

元帳の初期ブロックの生成(roberttestchannel.tx、ファイルはチャネルの生成に使用されます)

configtxgen -profile TestTwoOrgsChannel -outputCreateChannelTx ./roberttestchannel.tx -channelID roberttestchannel

アンカーファイルを生成する

configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID roberttestchannel -asOrg Org1MSP

configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx -channelID roberttestchannel -asOrg Org2MSP

注文者ノードが起動します

スタートアップファイルをソースコードからordererフォルダーにコピーします

cp /project/goworkspace/src/github.com/hyperledger/fabric/sampleconfig/orderer.yaml / opt / hyperledger / order /

そして変更する

General:
LedgerType: file
ListenPort: 7050
Enabled: false
RootCAs:
ClientAuthRequired: false
ClientRootCAs:
Keepalive:
ServerMinInterval: 60s
ServerInterval: 7200s
ServerTimeout: 20s
LogLevel: debug
GenesisMethod: file
GenesisProfile: TestOrgsOrdererGenesis
GenesisFile: /opt/hyperledger/order/orderer.genesis.block
LocalMSPID: OrdererMSP
Profile:
Enabled: false
Address: 0.0.0.0:6060
BCCSP:
Default: SW
SW:
Hash: SHA2
Security: 256
FileKeyStore:
KeyStore:
Authentication:
TimeWindow: 15m
FileLedger:
Location: /var/hyperledger/production/orderer
Prefix: hyperledger-fabric-ordererledger
RAMLedger:
HistorySize: 1000
Kafka:
Retry:
ShortInterval: 5s
ShortTotal: 10m
LongInterval: 5m
LongTotal: 12h
NetworkTimeouts:
DialTimeout: 10s
ReadTimeout: 10s
WriteTimeout: 10s
Metadata:
RetryBackoff: 250ms
RetryMax: 3
Producer:
RetryBackoff: 100ms
RetryMax: 3
Consumer:
RetryBackoff: 2s
Verbose: false
TLS:
Enabled: false
PrivateKey:
Certificate:
LocalMSPID: OrdererMSP
Profile:
Enabled: false
Address: 0.0.0.0:6060
BCCSP:
Default: SW
SW:
Hash: SHA2
Security: 256
FileKeyStore:
KeyStore:
Authentication:
TimeWindow: 15m
FileLedger:
Location: /opt/hyperledger/order/production/orderer
Prefix: hyperledger-fabric-ordererledger
RootCAs:
Version:
Debug:
BroadcastTraceDir:
DeliverTraceDir:

注文者を開始

cd / opt / hyperledger / order

注文者開始

3.ピアノードの起動

構成ファイル

mkdir -p / opt / hyperledger / peer

cp /project/goworkspace/src/github.com/hyperledger/fabric/sampleconfig/core.yaml / opt / hyperledger / peer /

修正(添付ファイルを参照):

エクスポートセットFABRIC_CFG_PATH = / opt / hyperledger / peer /

ピアノードの開始>> log_peer.log 2>&1&

チャネルを作成する

cd ../order/

エクスポートセットCORE_PEER_LOCALMSPID = Org1MSP

輸出セットCORE_PEER_MSPCONFIGPATH =は/ opt / hyperledger / fabricconfig /暗号のconfig / peerOrganizations / org1.qklszzn.com /ユーザー/ [email protected] / MSP

(終了すると、lsof -i:7051が強制終了され、再入力されます。以下は正しいです)

 

コンパイルから展開までのFabric1.x(非Dokcerメソッド)

ピアチャネル作成-t50 -o orderer.qklszzn.com:7050 -c roberttestchannel -f /opt/hyperledger/order/roberttestchannel.tx

(必ずcd ../order/に.blockファイルを生成してください)

チャンネルに参加する

エクスポートセットCORE_PEER_LOCALMSPID = Org1MSP

輸出セットCORE_PEER_MSPCONFIGPATH =は/ opt / hyperledger / fabricconfig /暗号のconfig / peerOrganizations / org1.qklszzn.com /ユーザー/ [email protected] / MSP

ピアチャネル参加-b / opt / hyperledger / order / roberttestchannel.block

(roberttestchannel.blockの生成パスに注意してください)

アンカーノードを更新する

エクスポートセットCORE_PEER_LOCALMSPID = Org1MSP

エクスポートセットCORE_PEER_ADDRESS = peer0.org1.qklszzn.com:7051

輸出セットCORE_PEER_MSPCONFIGPATH =は/ opt / hyperledger / fabricconfig /暗号のconfig / peerOrganizations / org1.qklszzn.com /ユーザー/ [email protected] / MSP

ピアチャネルの更新-oorderer.qklszzn.com:7050 -c roberttestchannel -f /opt/hyperledger/order/Org1MSPanchors.tx

チェーンコードを展開する

エクスポートセットCORE_PEER_LOCALMSPID = Org1MSP

エクスポートセットCORE_PEER_ADDRESS = peer0.org1.qklszzn.com:7051

輸出セットCORE_PEER_MSPCONFIGPATH =は/ opt / hyperledger / fabricconfig /暗号のconfig / peerOrganizations / org1.qklszzn.com /ユーザー/ [email protected] / MSP

(このセクションでエラーが報告された場合は、/ opt / hyperledger / peer / core.yamlのモード値をnetに変更してから、注文者とピアを再起動してください)

ピアチェーンコードインストール-nr_test_cc6 -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

チェーンコードコードをインスタンス化します

エクスポートセットCORE_PEER_LOCALMSPID = Org1MSP

エクスポートセットCORE_PEER_ADDRESS = peer0.org1.qklszzn.com:7051

輸出セットCORE_PEER_MSPCONFIGPATH =は/ opt / hyperledger / fabricconfig /暗号のconfig / peerOrganizations / org1.qklszzn.com /ユーザー/ [email protected] / MSP

ピアチェーンコードインスタンス化-oorderer.qklszzn.com:7050 -C roberttestchannel -n r_test_cc6 -v 1.0 -c '{"Args":["init"、 "a"、 "100"、 "b"、 "200"] } '-P "OR(' Org1MSP.member '、' Org2MSP.member ')"

ピアチェーンコードinvoke-o orderer.qklszzn.com:7050 -C roberttestchannel -n r_test_cc6 -c '{"Args":["invoke"、 "a"、 "b"、 "1"]}'


元のリンク:コンパイルから展開までのFabric1.x(非Dokcerメソッド)

おすすめ

転載: blog.csdn.net/JonasErosonAtsea/article/details/109236355