11. Hyperledger Fablic Sambles - First Network 실습 (2)
페이지 정보
작성자 관리자 댓글 0건 조회 3,797회 작성일 19-11-28 22:08본문
11. Hyperledger Fablic Sambles - First Network 실습 (2)
기존에 설치된 fabric 소스를 삭제하고 다시 설치하는 과정입니다.
root@client:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
root@client:~#
Docker 이미지가 있다면 삭제한다.
root@client:~# docker images -q | xargs docker rmi -f
root@client:~# cd hyperledger/
root@client:~/hyperledger# rm -rf fabric-samples/
root@client:~/hyperledger# cd
root@client:~# cd gopath/src/
root@client:~/gopath/src# ls
PS github.com
root@client:~/gopath/src# rm -rf github.com/
root@client:~/gopath/src#
fabric-samples를 다운로드한다.
root@client:~# cd hyperledger/
root@client:~/hyperledger# wget https://www.leelab.co.kr/down/hyperledger/fabric-samples.tar.gz
--2019-11-29 23:04:08-- https://www.leelab.co.kr/down/hyperledger/fabric-samples.tar.gz
Resolving www.leelab.co.kr (www.leelab.co.kr)... 202.31.147.218
접속 www.leelab.co.kr (www.leelab.co.kr)|202.31.147.218|:443... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 8851277 (8.4M) [application/x-gzip]
Saving to: ‘fabric-samples.tar.gz’
fabric-samples.tar. 100%[===================>] 8.44M 11.1MB/s in 0.8s
2019-11-29 23:04:09 (11.1 MB/s) - ‘fabric-samples.tar.gz’ saved [8851277/8851277]
root@client:~/hyperledger# ls
fabric-samples.tar.gz
root@client:~/hyperledger# tar xvfz fabric-samples.tar.gz
root@client:~/hyperledger# cd fabric-samples/
root@client:~/hyperledger/fabric-samples# curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./scripts/bootstrap.sh
root@client:~/hyperledger/fabric-samples# chmod 755 scripts/bootstrap.sh
root@client:~/hyperledger/fabric-samples# ./scripts/bootstrap.sh -s
===> List out hyperledger docker images
hyperledger/fabric-javaenv 1.4.4 4648059d209e 12 days ago 1.7GB
hyperledger/fabric-javaenv latest 4648059d209e 12 days ago 1.7GB
hyperledger/fabric-ca 1.4.4 62a60c5459ae 12 days ago 150MB
hyperledger/fabric-ca latest 62a60c5459ae 12 days ago 150MB
hyperledger/fabric-tools 1.4.4 7552e1968c0b 13 days ago 1.49GB
hyperledger/fabric-tools latest 7552e1968c0b 13 days ago 1.49GB
hyperledger/fabric-ccenv 1.4.4 ca4780293e4c 13 days ago 1.37GB
hyperledger/fabric-ccenv latest ca4780293e4c 13 days ago 1.37GB
hyperledger/fabric-orderer 1.4.4 dbc9f65443aa 13 days ago 120MB
hyperledger/fabric-orderer latest dbc9f65443aa 13 days ago 120MB
hyperledger/fabric-peer 1.4.4 9756aed98c6b 13 days ago 128MB
hyperledger/fabric-peer latest 9756aed98c6b 13 days ago 128MB
hyperledger/fabric-zookeeper 0.4.18 ede9389347db 3 weeks ago 276MB
hyperledger/fabric-zookeeper latest ede9389347db 3 weeks ago 276MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 3 weeks ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 3 weeks ago 270MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 3 weeks ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 3 weeks ago 261MB
root@client:~/hyperledger/fabric-samples#
bootstrap.sh 실행하면, fabric 실행파일과 docker images를 다운받는다.
root@client:~/hyperledger/fabric-samples# ls bin
configtxgen cryptogen fabric-ca-client idemixgen peer
configtxlator discover get-docker-images.sh orderer
root@client:~/hyperledger/fabric-samples# mkdir ~/bin
root@client:~/hyperledger/fabric-samples# ln -s $(pwd)/bin/* ~/bin/
root@client:~/hyperledger/fabric-samples# ls -l ~/bin/
합계 0
lrwxrwxrwx 1 root root 48 11월 28 22:10 configtxgen -> /root/hyperledger/fabric-samples/bin/configtxgen
lrwxrwxrwx 1 root root 50 11월 28 22:10 configtxlator -> /root/hyperledger/fabric-samples/bin/configtxlator
lrwxrwxrwx 1 root root 46 11월 28 22:10 cryptogen -> /root/hyperledger/fabric-samples/bin/cryptogen
lrwxrwxrwx 1 root root 45 11월 28 22:10 discover -> /root/hyperledger/fabric-samples/bin/discover
lrwxrwxrwx 1 root root 53 11월 28 22:10 fabric-ca-client -> /root/hyperledger/fabric-samples/bin/fabric-ca-client
lrwxrwxrwx 1 root root 57 11월 28 22:10 get-docker-images.sh -> /root/hyperledger/fabric-samples/bin/get-docker-images.sh
lrwxrwxrwx 1 root root 46 11월 28 22:10 idemixgen -> /root/hyperledger/fabric-samples/bin/idemixgen
lrwxrwxrwx 1 root root 44 11월 28 22:10 orderer -> /root/hyperledger/fabric-samples/bin/orderer
lrwxrwxrwx 1 root root 41 11월 28 22:10 peer -> /root/hyperledger/fabric-samples/bin/peer
root@client:~/hyperledger/fabric-samples#
root@client:~/hyperledger/fabric-samples# cd first-network/
root@client:~/hyperledger/fabric-samples/first-network# ./byfn.sh --help
Usage:
byfn.sh <mode> [-c <channel name>] [-t <timeout>] [-d <delay>] [-f <docker-compose-file>] [-s <dbtype>] [-l <language>] [-o <consensus-type>] [-i <imagetag>] [-a] [-n] [-v]
<mode> - one of 'up', 'down', 'restart', 'generate' or 'upgrade'
- 'up' - bring up the network with docker-compose up
- 'down' - clear the network with docker-compose down
- 'restart' - restart the network
- 'generate' - generate required certificates and genesis block
- 'upgrade' - upgrade the network from version 1.3.x to 1.4.0
-c <channel name> - channel name to use (defaults to "mychannel")
-t <timeout> - CLI timeout duration in seconds (defaults to 10)
-d <delay> - delay duration in seconds (defaults to 3)
-s <dbtype> - the database backend to use: goleveldb (default) or couchdb
-l <language> - the programming language of the chaincode to deploy: go (default), javascript, or java
-i <imagetag> - the tag to be used to launch the network (defaults to "latest")
-a - launch certificate authorities (no certificate authorities are launched by default)
-n - do not deploy chaincode (abstore chaincode is deployed by default)
-v - verbose mode
byfn.sh -h (print this message)
Typically, one would first generate the required certificates and
genesis block, then bring up the network. e.g.:
byfn.sh generate -c mychannel
byfn.sh up -c mychannel -s couchdb
byfn.sh up -c mychannel -s couchdb -i 1.4.0
byfn.sh up -l javascript
byfn.sh down -c mychannel
byfn.sh upgrade -c mychannel
Taking all defaults:
byfn.sh generate
byfn.sh up
byfn.sh down
root@client:~/hyperledger/fabric-samples/first-network#
root@client:~/hyperledger/fabric-samples/first-network# ./byfn.sh generate
Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n]
proceeding ...
/root/hyperledger/fabric-samples/first-network/../bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
+ cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
+ res=0
+ set +x
Generate CCP files for Org1 and Org2
/root/hyperledger/fabric-samples/first-network/../bin/configtxgen
##########################################################
######### Generating Orderer Genesis block ##############
##########################################################
CONSENSUS_TYPE=solo
+ '[' solo == solo ']'
+ configtxgen -profile TwoOrgsOrdererGenesis -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block
2019-11-29 23:09:14.921 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-11-29 23:09:15.337 KST [common.tools.configtxgen.localconfig] completeInitialization -> INFO 002 orderer type: solo
2019-11-29 23:09:15.338 KST [common.tools.configtxgen.localconfig] Load -> INFO 003 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:15.762 KST [common.tools.configtxgen.localconfig] completeInitialization -> INFO 004 orderer type: solo
2019-11-29 23:09:15.762 KST [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 005 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:15.767 KST [common.tools.configtxgen] doOutputBlock -> INFO 006 Generating genesis block
2019-11-29 23:09:15.768 KST [common.tools.configtxgen] doOutputBlock -> INFO 007 Writing genesis block
+ res=0
+ set +x
#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
2019-11-29 23:09:15.854 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-11-29 23:09:16.265 KST [common.tools.configtxgen.localconfig] Load -> INFO 002 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:16.676 KST [common.tools.configtxgen.localconfig] completeInitialization -> INFO 003 orderer type: solo
2019-11-29 23:09:16.676 KST [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 004 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:16.676 KST [common.tools.configtxgen] doOutputChannelCreateTx -> INFO 005 Generating new channel configtx
2019-11-29 23:09:16.681 KST [common.tools.configtxgen] doOutputChannelCreateTx -> INFO 006 Writing new channel tx
+ res=0
+ set +x
#################################################################
####### Generating anchor peer update for Org1MSP ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
2019-11-29 23:09:16.773 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-11-29 23:09:17.203 KST [common.tools.configtxgen.localconfig] Load -> INFO 002 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:17.617 KST [common.tools.configtxgen.localconfig] completeInitialization -> INFO 003 orderer type: solo
2019-11-29 23:09:17.617 KST [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 004 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:17.617 KST [common.tools.configtxgen] doOutputAnchorPeersUpdate -> INFO 005 Generating anchor peer update
2019-11-29 23:09:17.618 KST [common.tools.configtxgen] doOutputAnchorPeersUpdate -> INFO 006 Writing anchor peer update
+ res=0
+ set +x
#################################################################
####### Generating anchor peer update for Org2MSP ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
2019-11-29 23:09:17.702 KST [common.tools.configtxgen] main -> INFO 001 Loading configuration
2019-11-29 23:09:18.125 KST [common.tools.configtxgen.localconfig] Load -> INFO 002 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:18.565 KST [common.tools.configtxgen.localconfig] completeInitialization -> INFO 003 orderer type: solo
2019-11-29 23:09:18.566 KST [common.tools.configtxgen.localconfig] LoadTopLevel -> INFO 004 Loaded configuration: /root/hyperledger/fabric-samples/first-network/configtx.yaml
2019-11-29 23:09:18.566 KST [common.tools.configtxgen] doOutputAnchorPeersUpdate -> INFO 005 Generating anchor peer update
2019-11-29 23:09:18.567 KST [common.tools.configtxgen] doOutputAnchorPeersUpdate -> INFO 006 Writing anchor peer update
+ res=0
+ set +x
root@client:~/hyperledger/fabric-samples/first-network# ./byfn.sh up
Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n]
proceeding ...
LOCAL_VERSION=1.4.4
DOCKER_IMAGE_VERSION=1.4.4
Creating network "net_byfn" with the default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating volume "net_orderer.example.com" with default driver
Creating orderer.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer1.org1.example.com ... done
Creating peer0.org2.example.com ... done
Creating peer1.org2.example.com ... done
Creating cli ... done
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ed1d0314fc3 hyperledger/fabric-tools:latest "/bin/bash" 5 seconds ago Up Less than a second cli
900b5f4fff1c hyperledger/fabric-peer:latest "peer node start" 17 seconds ago Up 6 seconds 0.0.0.0:8051->8051/tcp peer1.org1.example.com
abbd73d43726 hyperledger/fabric-peer:latest "peer node start" 17 seconds ago Up 5 seconds 0.0.0.0:10051->10051/tcp peer1.org2.example.com
b0951ea77772 hyperledger/fabric-peer:latest "peer node start" 17 seconds ago Up 7 seconds 0.0.0.0:7051->7051/tcp peer0.org1.example.com
db664bd407e6 hyperledger/fabric-orderer:latest "orderer" 17 seconds ago Up 5 seconds 0.0.0.0:7050->7050/tcp orderer.example.com
00417cc06502 hyperledger/fabric-peer:latest "peer node start" 17 seconds ago Up 5 seconds 0.0.0.0:9051->9051/tcp peer0.org2.example.com
23fb2d3ab2d0 hyperledger/fabric-ca "sh -c 'fabric-ca-..." 2 days ago Exited (1) 2 days ago ca.example.com
0e7f2d6927c3 hyperledger/fabric-couchdb "tini -- /docker-e..." 2 days ago Exited (143) 2 days ago couchdb
____ _____ _ ____ _____
/ ___| |_ _| / \ | _ \ |_ _|
\___ \ | | / _ \ | |_) | | |
___) | | | / ___ \ | _ < | |
|____/ |_| /_/ \_\ |_| \_\ |_|
Build your first network (BYFN) end-to-end test
Channel name : mychannel
+ peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
Creating channel...
+ res=0
+ set +x
2019-11-29 14:09:51.617 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:09:51.764 UTC [cli.common] readBlock -> INFO 002 Received block: 0
===================== Channel 'mychannel' created =====================
Having all peers join the channel...
+ peer channel join -b mychannel.block
2019-11-29 14:09:52.043 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:09:52.182 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
===================== peer0.org1 joined channel 'mychannel' =====================
+ res=0
+ set +x
+ peer channel join -b mychannel.block
2019-11-29 14:09:55.383 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:09:55.492 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
===================== peer1.org1 joined channel 'mychannel' =====================
+ res=0
+ set +x
+ peer channel join -b mychannel.block
+ res=0
+ set +x
2019-11-29 14:09:58.669 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:09:58.787 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
===================== peer0.org2 joined channel 'mychannel' =====================
+ peer channel join -b mychannel.block
2019-11-29 14:10:01.941 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:10:02.067 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
===================== peer1.org2 joined channel 'mychannel' =====================
+ res=0
+ set +x
+ peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
Updating anchor peers for org1...
+ res=0
+ set +x
2019-11-29 14:10:05.229 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:10:05.255 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
===================== Anchor peers updated for org 'Org1MSP' on channel 'mychannel' =====================
Updating anchor peers for org2...
+ peer channel update -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
+ res=0
+ set +x
2019-11-29 14:10:08.477 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-29 14:10:08.509 UTC [channelCmd] update -> INFO 002 Successfully submitted channel update
===================== Anchor peers updated for org 'Org2MSP' on channel 'mychannel' =====================
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
Installing chaincode on peer0.org1...
+ res=0
+ set +x
2019-11-29 14:10:11.711 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-29 14:10:11.711 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2019-11-29 14:10:14.145 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" >
===================== Chaincode is installed on peer0.org1 =====================
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
Install chaincode on peer0.org2...
2019-11-29 14:10:14.310 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-29 14:10:14.310 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2019-11-29 14:10:14.788 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" >
===================== Chaincode is installed on peer0.org2 =====================
Instantiating chaincode on peer0.org2...
+ res=0
+ set +x
+ peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P 'AND ('''Org1MSP.peer''','''Org2MSP.peer''')'
+ res=0
+ set +x
2019-11-29 14:10:14.943 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-29 14:10:14.943 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
===================== Chaincode is instantiated on peer0.org2 on channel 'mychannel' =====================
Querying chaincode on peer0.org1...
===================== Querying on peer0.org1 on channel 'mychannel'... =====================
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Attempting to Query peer0.org1 ...3 secs
+ res=0
+ set +x
100
===================== Query successful on peer0.org1 on channel 'mychannel' =====================
Sending invoke transaction on peer0.org1 peer0.org2...
+ peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
2019-11-29 14:12:59.420 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200
===================== Invoke transaction successful on peer0.org1 peer0.org2 on channel 'mychannel' =====================
Installing chaincode on peer1.org2...
+ res=0
+ set +x
+ peer chaincode install -n mycc -v 1.0 -l golang -p github.com/chaincode/chaincode_example02/go/
2019-11-29 14:12:59.677 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-29 14:12:59.678 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2019-11-29 14:13:00.271 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" >
===================== Chaincode is installed on peer1.org2 =====================
Querying chaincode on peer1.org2...
+ res=0
+ set +x
===================== Querying on peer1.org2 on channel 'mychannel'... =====================
+ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Attempting to Query peer1.org2 ...3 secs
+ res=0
+ set +x
90
===================== Query successful on peer1.org2 on channel 'mychannel' =====================
========= All GOOD, BYFN execution completed ===========
_____ _ _ ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/
root@client:~/hyperledger/fabric-samples/first-network#
root@client:~/hyperledger/fabric-samples/first-network# ./byfn.sh down
초기화 시킬때 genesis.block 파일을 삭제시킨다.
root@leelab:~/hyperledger/fabric-samples/first-network# rm -fr crypto-config channel-artifacts/genesis.block
docker 이미지 삭제는 아래 명령으로 실행한다. docker 이미지는 다운받는데 시간이 많이 걸리므로 삭제하지 않는다.
root@leelab:~/hyperledger/fabric-samples/first-network# docker images -q | xargs docker rmi -f
관련링크
댓글목록
등록된 댓글이 없습니다.