peer command
peer command
Description
이 peer
명령에는 다섯 가지 하위 부속 명령이 있습니다. 각 부속 명령은 관리자가 피어와 관련된 특정 작업 세트를 수행 할 수 있게 합니다. 예를 들어, peer channel
하위 명령을 사용하여 피어를 채널에 조인하거나 peer chaincode
명령을 사용하여 스마트 계약 체인코드를 피어에 배포할 수 있습니다 .
Syntax
peer
명령은 내부에 다섯 가지 하위 명령이 있습니다 :
peer chaincode [option] [flags] peer channel [option] [flags] peer logging [option] [flags] peer node [option] [flags] peer version [option] [flags]
각 부속 명령에는 사용 가능한 다른 옵션이 있으며 이것들은 전용 주제로 설명됩니다. 간결함을 위해, 우리는 단순히 명령 (peer
), 하위 명령 (channel
), 또는 하위 명령 옵션(fetch
)을 명령으로 참조하기도 합니다.
하위 명령을 옵션없이 지정하면 아래의 --help
플래그에 설명된대로 상위 수준의 도움말 텍스트가 반환 됩니다.
Flags
각 peer
하위 명령에는 연관된 특정 플래그 세트가 있으며, 그 중 많은 플래그는 모든 하위 명령 옵션에서 사용될 수 있기 때문에 글로벌(global) 로 지정 됩니다. 이 플래그는 관련 peer
하위 명령으로 설명됩니다 .
최상위 레벨 peer
명령에는 다음과 같은 플래그가 있습니다.
--help
모든peer
명령에 대한 간략한 도움말 텍스트를 얻는 데--help
플래그를 사용하십시오.--help
플래그는 매우 유용합니다 - 명령 도움말, 하위 명령에 도움, 심지어 옵션의 도움을 받을 수 있습니다. 예를 들어
peer --help peer channel --help peer channel list --help
자세한 내용은 개별 peer
하위 명령을 참조하십시오 .
--logging-level <string>
이 플래그는 시작할 때 피어의 로깅 수준을 설정합니다.<string>
에는 여섯 개의 가능한 값이 있습니다 :debug
,info
,notice
,warning
,error
, 그리고critical
.logging-level
이 명시적으로 지정되지 않은 경우,CORE_LOGGING_LEVEL
환경 변수가 설정되면 이를 사용합니다.CORE_LOGGING_LEVEL
이 설정되지 않은 경우에는sampleconfig/core.yaml
파일을 사용하여 피어에 대한 로깅 수준을 결정합니다.peer logging getlevel <component-name>
을 실행하여 피어의 특정 구성 요소에 대한 현재 로깅 수준을 찾을 수 있습니다 .--version
이 플래그를 사용하여 피어가 어떻게 작성되었는지에 대한 자세한 정보를 표시하십시오. 이 플래그는peer
하위 명령 또는 하위 옵션에 적용 할 수 없습니다.
Usage
다음은 peer
명령에서 사용 가능한 여러 플래그를 사용하는 몇 가지 예제 입니다.
peer channel join
명령에--help
플래그 사용.
peer channel join --help Joins the peer to a channel. Usage: peer channel join [flags] Flags: -b, --blockpath string Path to file containing genesis block Global Flags: --cafile string Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint --certfile string Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint --clientauth Use mutual TLS when communicating with the orderer endpoint --keyfile string Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint --logging-level string Default logging level and overrides, see core.yaml for full syntax -o, --orderer string Ordering service endpoint --ordererTLSHostnameOverride string The hostname override to use when validating the TLS connection to the orderer. --tls Use TLS when communicating with the orderer endpoint -v, --version Display current version of fabric peer server
여기에는 peer channel join
명령에 대한 간략한 도움말 구문이 표시됩니다.
peer
명령에--version
플래그 사용.
peer --version peer: Version: 1.1.0-alpha Go version: go1.9.2 OS/Arch: linux/amd64 Experimental features: false Chaincode: Base Image Version: 0.4.5 Base Docker Namespace: hyperledger Base Docker Label: org.hyperledger.fabric Docker Namespace: hyperledger
이것은 이 피어가 GOLANG 1.9.2.로 컴파일된 Hyperledger Fabric version 1.1.0의 알파를 사용하여 제작되었음을 보여줍니다. AMD64 호환 명령 세트가 있는 Linux 운영체제에서 사용할 수 있습니다.
peer chaincode
peer chaincode
Description
peer chaincode
하위 명령을 사용하면 관리자가 체인 코드 설치, 인스턴스화, 호출, 패키징, 쿼리 및 업그레이드와 같은 피어에 관련된 체인 코드 관련 작업을 수행 할 수 있습니다.
Syntax
peer chaincode
하위 명령의 구문은 다음과 같습니다.
peer chaincode install [flags] peer chaincode instantiate [flags] peer chaincode invoke [flags] peer chaincode list [flags] peer chaincode package [flags] peer chaincode query [flags] peer chaincode signpackage [flags] peer chaincode upgrade [flags]
서로 다른 하위 명령 옵션 (install, instantiate ...)은 피어와 관련된 다른 chaincode 조작과 관련됩니다. 예를 들어, peer chaincode install
하위 명령 옵션을 사용하여 피어에 체인 코드를 설치하거나 peer chaincode query
하위 명령 옵션을 사용하여 피어의 장부에 있는 현재 값에 대한 체인 코드를 조회하십시오.
각 피어 체인 코드 부속 명령은 이 주제의 자체 절에서 옵션과 함께 설명됩니다.
Flags
각 peer chaincode
하위 명령에는 개별 하위 명령에 고유한 플래그 집합과 모든 peer chaincode
하위 명령과 관련된 전역(global) 플래그 세트가 있습니다. 모든 하위 명령이 이 플래그를 사용하는 것은 아닙니다. 예를 들어, query
부속 명령에는 --orderer
플래그가 필요 없습니다.
개별 플래그는 관련 하위 명령으로 설명됩니다. 전역 플래그는 다음과 같습니다.
--cafile <string>
ordering 엔드 포인트에 대한 PEM인 코드된 신뢰할 수 있는 인증서를 포함하는 파일 경로--certfile <string>
orderer 끝점과의 상호 TLS 통신에 사용할 PEM 인코딩된 X509 공개 키를 포함하는 파일 경로--keyfile <string>
orderer 끝점과의 상호 TLS 통신에 사용할 PEM으로 인코딩된 개인 키를 포함하는 파일 경로-o
또는--orderer <string>
ordering 서비스 엔드 포인트는 다음과 같이 지정됩니다.<hostname or IP address>:<port>
--ordererTLSHostnameOverride <string>
TLS 연결을 orderer에게 확인할 때 사용할 호스트 이름 재정의--tls
orderer 엔드 포인트와 통신 할 때 TLS 사용--transient <string>
JSON 인코딩의 인수의 임시 맵--logging-level <string>
기본 로깅 수준 및 재정의, 전체 구문은 core.yaml을 참조하십시오.
peer chaincode install
Install Description
peer chaincode install
명령을 통해 관리자는 피어의 파일 시스템에 체인 코드를 설치할 수 있습니다.
Install Syntax
peer chaincode install
명령 구문은 다음과 같습니다 :
peer chaincode install [flags]
참고 : 설치는 peer chaincode package
명령을 통해 패키지된 체인 코드를 사용하여 수행할 수도 있습니다(설치를 위한 체인 코드 패키징에 대한 자세한 내용은 아래 peer chaincode package
섹션 참조). chaincode 패키지를 사용하는 구문은 다음과 같습니다.
peer chaincode install [chaincode-package-file]
여기서 [chaincode-package-file]
은 peer chaincode package
명령의 출력 파일입니다.
Install Flags
peer chaincode install
명령은 다음 명령 특정 플래그가 있습니다 :
-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-l, --lang <string>
체인 코드가 쓰여진 언어 (기본 "golang")-n, --name <string>
인스톨되고있는 체인 코드의 이름. 영숫자, 대시 및 밑줄로 구성 될 수 있습니다.-p, --path <string>
인스톨되고있는 체인 코드의 경로. Golang (-l golang) 체인 코드의 경우 GOPATH에 상대적인 경로입니다. Node.js (-l 노드) 체인 코드의 경우 이것은 설치 명령이 수행되는 절대 경로 또는 상대 경로입니다-v, --version <string>
설치중인 체인 코드의 버전. 영숫자, 대시, 밑줄, 마침표 및 더하기 기호로 구성 될 수 있습니다.
Install Usage
다음은 peer chaincode install
명령의 몇 가지 예입니다 .
mycc
버전1.0
에서 명명된 chaincode를 설치하려면 다음을 수행하십시오. :
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 . . . 2018-02-22 16:33:52.998 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc 2018-02-22 16:33:52.998 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc . . . 2018-02-22 16:33:53.194 UTC [chaincodeCmd] install -> DEBU 010 Installed remotely response:<status:200 payload:"OK" > 2018-02-22 16:33:53.194 UTC [main] main -> INFO 011 Exiting.....
로그 메시지를 기반으로 설치가 성공적으로 완료되었음을 알 수 있습니다. :
2018-02-22 16:33:53.194 UTC [chaincodeCmd] install -> DEBU 010 Installed remotely response:<status:200 payload:"OK" >
- To install chaincode package ccpack.out generated with the subcommand
package
의 하위 명령으로 생성된 chaincode 패키지ccpack.out
을 설치하려면 :
peer chaincode install ccpack.out . . . 2018-02-22 18:18:05.584 UTC [chaincodeCmd] install -> DEBU 005 Installed remotely response:<status:200 payload:"OK" > 2018-02-22 18:18:05.584 UTC [main] main -> INFO 006 Exiting.....
로그 메시지를 기반으로 설치가 성공적으로 완료되었음을 알 수 있습니다. :
2018-02-22 18:18:05.584 UTC [chaincodeCmd] install -> DEBU 005 Installed
peer chaincode instantiate
Instantiate Description
peer chaincode instantiate
명령을 통해 관리자는 피어가 구성원인 채널에서 체인 코드를 인스턴스화 할 수 있습니다.
Instantiate Syntax
peer chaincode instantiate
명령 구문은 다음과 같습니다 :
peer chaincode instantiate [flags]
Instantiate Flags
peer chaincode instantiate
명령은 다음 명령 특정 플래그가 있습니다 :
-C, --channelID <string>
체인 코드를 인스턴스화해야하는 채널의 이름입니다.-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-E, --escc <string>
이 체인 코드에 사용할 보증 시스템 체인 코드의 이름 (기본값 "escc")-n, --name <string>
인스턴스화되는 체인 코드의 이름입니다.-P, --policy <string>
이 체인 코드와 관련된 보증 정책. 기본적으로 패브릭은 "현재 채널에 있는 조직의 모든 구성원"과 동일한 보증 정책을 생성합니다.-v, --version <string>
인스턴스화되는 체인 코드의 버전-V, --vscc <string>
이 체인 코드에 사용할 확인 시스템 체인 코드 이름 (기본값 : "vscc")
전역 peer
명령 플래그도 적용됩니다.
--cafile <string>
--certfile <string>
--keyfile <string>
-o, --orderer <string>
--ordererTLSHostnameOverride <string>
--tls
--transient <string>
`--orderer` 플래그를 지정하지 않으면 명령은 검색을 시도합니다. 채널을 발행하기 전에 피어로부터의 채널에 대한 orderer 정보 명령을 인스턴스화하십시오.
Instantiate Usage
다음은 peer chaincode instantiate
명령의 몇 가지 예입니다. 이 명령은 mychannel
채널에서 버전 1.0
의 mycc
라는 체인 코드를 인스턴스화합니다.
--tls
및--cafile
전역(global) 플래그를 사용하여 TLS가 활성화된 네트워크의 체인 코드를 인스턴스화합니다. :
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')" 2018-02-22 16:33:53.324 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc 2018-02-22 16:33:53.324 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc 2018-02-22 16:34:08.698 UTC [main] main -> INFO 003 Exiting.....
- 명령별 옵션만 사용하여 TLS가 비활성화된 네트워크의 체인 코드를 인스턴스화합니다. :
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')" 2018-02-22 16:34:09.324 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc 2018-02-22 16:34:09.324 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc 2018-02-22 16:34:24.698 UTC [main] main -> INFO 003 Exiting.....
peer chaincode invoke
Invoke Description
peer chaincode invoke
명령을 사용하여 관리자는 제공된 인수를 사용하여 피어에서 체인 코드 기능을 호출 할 수 있습니다. CLI는 거래 제안서를 피어에게 전송하여 chaincode를 호출합니다. 피어는 체인 코드를 실행하고 승인된 제안 응답 (또는 오류)을 CLI에 보냅니다. 승인된 제안 응답을 받으면 CLI는 트랜잭션을 구성하여 orderer에게 보냅니다.
Invoke Syntax
peer chaincode invoke
명령 구문은 다음과 같습니다. :
peer chaincode invoke [flags]
Invoke Flags
peer chaincode invoke
명령은 다음 명령 특정 플래그가 있습니다 :
-C, --channelID <string>
호출되고있는 체인 코드의 이름-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-n, --name <string>
호출되고있는 체인 코드의 이름
전역 peer
명령 플래그도 적용됩니다.
--cafile <string>
--certfile <string>
--keyfile <string>
-o, --orderer <string>
--ordererTLSHostnameOverride <string>
--tls
--transient <string>
`--orderer` 플래그를 지정하지 않으면 명령은 검색을 시도합니다. 채널을 발행하기 전에 피어로부터의 채널에 대한 orderer 정보 명령을 호출하십시오.
Invoke Usage
다음은 채널 mychannel
에서 버전 1.0
의 mycc
라는 체인코드를 호출하여 변수 a
에서 변수 b
까지 10 단위 이동을 요청하는 peer chaincode invoke
명령의 예입니다. :
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' 2018-02-22 16:34:27.069 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc 2018-02-22 16:34:27.069 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc . . . 2018-02-22 16:34:27.106 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 00a ESCC invoke result: version:1 response:<status:200 message:"OK" > payload:"\n \237mM\376? [\214\002 \332\204\035\275q\227\2132A\n\204&\2106\037W|\346#\3413\274\022Y\nE\022\024\n\004lscc\022\014\n\n\n\004mycc\022\002\010\003\022-\n\004mycc\022%\n\007\n\001a\022\002\010\003\n\007\n\001b\022\002\010\003\032\007\n\001a\032\00290\032\010\n\001b\032\003210\032\003\010\310\001\"\013\022\004mycc\032\0031.0" endorsement:<endorser:"\n\007Org1MSP\022\262\006-----BEGIN CERTIFICATE-----\nMIICLjCCAdWgAwIBAgIRAJYomxY2cqHA/fbRnH5a/bwwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMTgwMjIyMTYyODE0WhcNMjgwMjIwMTYyODE0\nWjBwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzETMBEGA1UECxMKRmFicmljUGVlcjEfMB0GA1UEAxMWcGVl\ncjAub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDEa\nWNNniN3qOCQL89BGWfY39f5V3o1pi//7JFDHATJXtLgJhkK5KosDdHuKLYbCqvge\n46u3AC16MZyJRvKBiw6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAA\nMCsGA1UdIwQkMCKAIN7dJR9dimkFtkus0R5pAOlRz5SA3FB5t8Eaxl9A7lkgMAoG\nCCqGSM49BAMCA0cAMEQCIC2DAsO9QZzQmKi8OOKwcCh9Gd01YmWIN3oVmaCRr8C7\nAiAlQffq2JFlbh6OWURGOko6RckizG8oVOldZG/Xj3C8lA==\n-----END CERTIFICATE-----\n" signature:"0D\002 \022_\342\350\344\231G&\237\n\244\375\302J\220l\302\345\210\335D\250y\253P\0214:\221e\332@\002 \000\254\361\224\247\210\214L\277\370\222\213\217\301\r\341v\227\265\277\336\256^\217\336\005y*\321\023\025\367" > 2018-02-22 16:34:27.107 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 00b Chaincode invoke successful. result: status:200 2018-02-22 16:34:27.107 UTC [main] main -> INFO 00c Exiting.....
여기에서 로그 메시지를 기반으로 호출이 성공적으로 제출되었음을 알 수 있습니다. :
2018-02-22 16:34:27.107 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 00b Chaincode invoke successful. result: status:200
성공적인 응답은 거래가 ordering을 위해 제출되었음을 나타냅니다. 트랜잭션은 블록에 추가되고 마지막으로 채널의 각 피어에 의해 유효성이 검사되거나 무효화됩니다.
peer chaincode list
List Description
peer chaincode list
명령을 사용하여 관리자는 피어에 설치된 체인 코드를 나열하거나 피어가 구성원인 채널에서 인스턴스화된 체인 코드를 나열 할 수 있습니다.
List Syntax
peer chaincode list
명령 구문은 다음과 같습니다. :
peer chaincode list [--installed|--instantiated -C <channel-name>]
List Flags
peer chaincode instantiate
명령은 다음 명령 특정 플래그가 있습니다 :
-C, --channelID <string>
인스턴스화 된 체인 코드를 나열할 채널 이름--installed
피어에 설치된 체인 코드를 나열하려면 이 플래그를 사용하십시오.--instantiated
피어가 구성원인 채널에서 인스턴스화 된 체인 코드를 나열하려면 이 플래그를 사용하십시오.
List Usage
다음은 peer chaincode list
명령의 몇 가지 예입니다.
--installed
플래그를 사용하여 피어에 설치된 체인 코드를 나열합니다.
peer chaincode list --installed Get installed chaincodes on peer: Name: mycc, Version: 1.0, Path: github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02, Id: 8cc2730fdafd0b28ef734eac12b29df5fc98ad98bdb1b7e0ef96265c3d893d61 2018-02-22 17:07:13.476 UTC [main] main -> INFO 001 Exiting.....
피어가 버전 1.0
인 mycc
라는 체인 코드를 설치했음을 알 수 있습니다.
-C
(channel ID) 플래그와 함께--instantiated
를 사용하여 채널에 인스턴스화 된 체인 코드를 나열합니다.
peer chaincode list --instantiated -C mychannel Get instantiated chaincodes on channel mychannel: Name: mycc, Version: 1.0, Path: github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02, Escc: escc, Vscc: vscc 2018-02-22 17:07:42.969 UTC [main] main -> INFO 001 Exiting.....
버전 1.0
인 mycc
체인 코드가 mychannel
채널에서 인스턴스화 된 것을 확인할 수 있습니다.
peer chaincode package
Package Description
관리자는 peer chaincode package
명령을 사용하여 체인 코드 설치를 수행하는 데 필요한 자료를 패키징 할 수 있습니다. 따라서 동일한 체인 코드 패키지가 여러 피어에 일관되게 설치 될 수 있습니다.
Package Syntax
peer chaincode package
명령 구문은 다음과 같습니다. :
peer chaincode package [output-file] [flags]
Package Flags
peer chaincode package
명령은 다음 명령 특정 플래그가 있습니다 :
-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-i, --instantiate-policy <string>
체인 코드의 인스턴스화 정책. 현재 최대 1 개의 서명이 필요한 정책 (예 : "OR ( 'Org1MSP.peer', 'Org2MSP.peer')) 만 지원됩니다.-l, --lang <string>
체인 코드가 쓰여진 언어 (기본 "golang")-n, --name <string>
인스톨되고있는 체인 코드의 이름. 영숫자, 대시 및 밑줄로 구성 될 수 있습니다.-p, --path <string>
패키징되는 체인 코드의 경로입니다. Golang (-l golang) 체인 코드의 경우 GOPATH에 상대적인 경로입니다. Node.js (-l 노드) 체인 코드의 경우 패키지 명령이 수행되는 절대 경로 또는 상대 경로입니다.-s, --cc-package
원시 체인 코드 배포 사양과 함께 체인 코드 소유권 정보를 저장하는 패키지를 만듭니다 (단, 아래 참고 참조).-S, --sign
-s
플래그 와 함께이 플래그를 지정하면 로컬 MSP를 사용하여 패키지에 소유자 보증을 추가합니다 (단, 아래 참고 참조).-v, --version <string>
설치중인 체인 코드의 버전. 영숫자, 대시, 밑줄, 마침표 및 더하기 기호로 구성 될 수 있습니다.
`-s` 및 `-S` 명령의 메타 데이터는 현재 사용되지 않습니다. 이 명령들은 향후 확장을 위한 것이며 구현 변경을 겪게 될 것입니다. 그것들은 사용하지 않는 것이 좋습니다.
Package Usage
다음은 peer chaincode package
명령의 예제입니다. 이 명령은 버전 1.1
에서 mycc
라는 이름의 체인 코드를 패키지화하고, 체인 코드 배포 사양을 작성하고, 로컬 MSP를 사용하여 패키지에 서명하고, 이를 ccpack.out
으로 출력합니다. :
peer chaincode package ccpack.out -n mycc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -v 1.1 -s -S . . . 2018-02-22 17:27:01.404 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc 2018-02-22 17:27:01.405 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc . . . 2018-02-22 17:27:01.879 UTC [chaincodeCmd] chaincodePackage -> DEBU 011 Packaged chaincode into deployment spec of size <3426>, with args = [ccpack.out] 2018-02-22 17:27:01.879 UTC [main] main -> INFO 012 Exiting.....
peer chaincode query
Query Description
peer chaincode query
명령은 체인 코드의 Invoke
메소드를 호출하여 체인 코드를 쿼리 할 수 있게 합니다. query
와 invoke
하위 명령의 차이점은 성공한 응답의 경우 invoke
는 orderer에게 트랜잭션을 제출하도록 진행하는 반면, query
는 성공 또는 기타 응답을 표준 출력으로 출력한다는 점입니다.
Query Syntax
peer chaincode query
명령 구문은 다음과 같습니다. :
peer chaincode query [flags]
Query Flags
peer chaincode query
명령은 다음 명령 특정 플래그가 있습니다 :
-C, --channelID <string>
체인 코드를 쿼리해야하는 채널의 이름입니다.-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-n, --name <string>
쿼리되는 체인 코드의 이름입니다.-r --raw
쿼리 값을 원시 바이트로 출력합니다 (기본값).-x --hex
쿼리 값 바이트 배열을 16 진수로 출력합니다. 호환되지 않는 with -raw
전역 peer
명령 플래그도 적용됩니다.
--transient <string>
Query Usage
다음은 peer chaincode query
명령의 예입니다. peer 원장에 mycc
라는 이름의 체인 코드가 버전 1.0
에서 변수 a
의 값으로 쿼리됩니다. :
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' 2018-02-22 16:34:30.816 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc 2018-02-22 16:34:30.816 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc Query Result: 90
쿼리 결과 변수 a
의 값은 90 이었음을 출력에서 확인할 수 있습니다.
peer chaincode signpackage
signpackage Description
peer chaincode signpackage
명령은 -s
및 -S
옵션을 사용하여 peer chaincode package
명령으로 작성된 체인 코드 패키지에 서명을 추가하는 데 사용됩니다.
signpackge Syntax
peer chaincode signpackage
명령 구문은 다음과 같습니다.
peer chaincode signpackage <inputpackage> <outputpackage>
signpackage Usage
다음은 기존 서명된 패키지를 허용하고 로컬 MSP의 서명이 추가된 새 서명을 작성하는 peer chaincode signpackage
명령의 예입니다.
peer chaincode signpackage ccwith1sig.pak ccwith2sig.pak Wrote signed package to ccwith2sig.pak successfully 2018-02-24 19:32:47.189 EST [main] main -> INFO 002 Exiting.....
peer chaincode upgrade
Upgrade Description
관리자는 peer chaincode upgrade
명령을 사용하여 채널에서 인스턴스화 된 체인 코드를 최신 버전으로 업그레이드 할 수 있습니다.
Upgrade Syntax
peer chaincode upgrade
명령 구문은 다음과 같습니다. :
peer chaincode upgrade [flags]
Upgrade Flags
peer chaincode upgrade
명령은 다음 명령 특정 플래그가 있습니다 :
-C, --channelID <string>
체인 코드를 업그레이드해야하는 채널의 이름입니다.-c, --ctor <string>
JSON 형식의 체인 코드 생성자 메시지 (기본값 "{}")-E, --escc <string>
이 체인 코드에 사용할 보증 시스템 체인 코드의 이름 (기본값 "escc")-n, --name <string>
업그레이드되는 체인 코드의 이름-P, --policy <string>
이 체인 코드와 관련된 보증 정책. 기본적으로 패브릭은 "현재 채널에 있는 조직의 모든 구성원"과 동일한 보증 정책을 생성합니다.-v, --version <string>
업그레이드 된 체인 코드의 버전-V, --vscc <string>
이 체인 코드에 사용할 확인 시스템 체인 코드 이름 (기본값 : "vscc")
전역 peer
명령 플래그도 적용됩니다.
--cafile <string>
-o, --orderer <string>
--tls
`--orderer` 플래그를 지정하지 않으면 명령은 업그레이드 명령을 내리기 전에 피어로부터 채널에 대한 orderer 정보를 검색하려고 시도합니다.
Upgrade Usage
다음은 peer chaincode upgrade
명령의 예입니다. mychannel
이라는 채널의 버전 1.0
에서 mycc
라는 체인 코드를 새로운 변수 c
가 포함된 버전 1.1
로 업그레이드합니다. :
- TLS가 활성화된 네트워크에서
--tls
및--cafile
전역(global) 플래그를 사용하여 체인 코드를 업그레이드합니다. :
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem peer chaincode upgrade -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.2 -c '{"Args":["init","a","100","b","200","c","300"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')" . . . 2018-02-22 18:26:31.433 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc 2018-02-22 18:26:31.434 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc 2018-02-22 18:26:31.435 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode enabled 2018-02-22 18:26:31.435 UTC [chaincodeCmd] upgrade -> DEBU 006 Get upgrade proposal for chaincode <name:"mycc" version:"1.1" > . . . 2018-02-22 18:26:46.687 UTC [chaincodeCmd] upgrade -> DEBU 009 endorse upgrade proposal, get response <status:200 message:"OK" payload:"\n\004mycc\022\0031.1\032\004escc\"\004vscc*,\022\014\022\n\010\001\022\002\010\000\022\002\010\001\032\r\022\013\n\007Org1MSP\020\003\032\r\022\013\n\007Org2MSP\020\0032f\n \261g(^v\021\220\240\332\251\014\204V\210P\310o\231\271\036\301\022\032\205fC[|=\215\372\223\022 \311b\025?\323N\343\325\032\005\365\236\001XKj\004E\351\007\247\265fu\305j\367\331\275\253\307R\032 \014H#\014\272!#\345\306s\323\371\350\364\006.\000\356\230\353\270\263\215\217\303\256\220i^\277\305\214: \375\200zY\275\203}\375\244\205\035\340\226]l!uE\334\273\214\214\020\303\3474\360\014\234-\006\315B\031\022\010\022\006\010\001\022\002\010\000\032\r\022\013\n\007Org1MSP\020\001" > . . . 2018-02-22 18:26:46.693 UTC [chaincodeCmd] upgrade -> DEBU 00c Get Signed envelope 2018-02-22 18:26:46.693 UTC [chaincodeCmd] chaincodeUpgrade -> DEBU 00d Send signed envelope to orderer 2018-02-22 18:26:46.908 UTC [main] main -> INFO 00e Exiting.....
- 명령별 옵션만 사용하여 TLS가 비활성화된 네트워크의 체인 코드를 업그레이드합니다. :
. . . 2018-02-22 18:28:31.433 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc 2018-02-22 18:28:31.434 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc 2018-02-22 18:28:31.435 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode enabled 2018-02-22 18:28:31.435 UTC [chaincodeCmd] upgrade -> DEBU 006 Get upgrade proposal for chaincode <name:"mycc" version:"1.1" > . . . 2018-02-22 18:28:46.687 UTC [chaincodeCmd] upgrade -> DEBU 009 endorse upgrade proposal, get response <status:200 message:"OK" payload:"\n\004mycc\022\0031.1\032\004escc\"\004vscc*,\022\014\022\n\010\001\022\002\010\000\022\002\010\001\032\r\022\013\n\007Org1MSP\020\003\032\r\022\013\n\007Org2MSP\020\0032f\n \261g(^v\021\220\240\332\251\014\204V\210P\310o\231\271\036\301\022\032\205fC[|=\215\372\223\022 \311b\025?\323N\343\325\032\005\365\236\001XKj\004E\351\007\247\265fu\305j\367\331\275\253\307R\032 \014H#\014\272!#\345\306s\323\371\350\364\006.\000\356\230\353\270\263\215\217\303\256\220i^\277\305\214: \375\200zY\275\203}\375\244\205\035\340\226]l!uE\334\273\214\214\020\303\3474\360\014\234-\006\315B\031\022\010\022\006\010\001\022\002\010\000\032\r\022\013\n\007Org1MSP\020\001" > . . . 2018-02-22 18:28:46.693 UTC [chaincodeCmd] upgrade -> DEBU 00c Get Signed envelope 2018-02-22 18:28:46.693 UTC [chaincodeCmd] chaincodeUpgrade -> DEBU 00d Send signed envelope to orderer 2018-02-22 18:28:46.908 UTC [main] main -> INFO 00e Exiting.....
peer channel
peer channel
Description
관리자는 peer channel
명령을 사용하여 관리자가 채널에 참여하거나 피어가 참여하는 채널을 나열하는 등 피어에서 채널 관련 작업을 수행 할 수 있습니다.
Syntax
peer channel
명령 구문은 다음과 같습니다. :
peer channel create [flags] peer channel fetch [flags] peer channel getinfo [flags] peer channel join [flags] peer channel list [flags] peer channel signconfigtx [flags] peer channel update [flags]
간결함을 위해, 우리는 단순히 명령 (peer
), 하위 명령 (channel
), 또는 하위 명령 옵션 (fetch
)을 명령으로 참조하기도 합니다.
서로 다른 명령 옵션 ( create
, fetch
...)은 피어와 관련된 다양한 채널 작업과 관련이 있습니다. 예를 들어, peer channel join
명령을 사용하여 피어를 채널에 조인하거나 peer channel list
명령을 사용하여 피어가 조인된 채널을 표시하십시오.
각 피어 채널 하위 명령은 이 항목의 자체 섹션에 옵션과 함께 설명됩니다.
Flags
각 peer channel
명령 옵션에는 고유한 플래그 세트가 있으며 관련 하위 명령 옵션으로 설명됩니다.
모든 peer channel
명령 옵션에는 peer channel
명령 옵션에 적용할 수 있는 전역 플래그 집합도 있습니다.
전역 플래그는 다음과 같습니다.
--cafile <string>
여기서<string>
은 피어가 통신중인 orderer의 인증 기관의 PEM으로 인코딩된 인증서 체인을 포함하는 파일에 대한 완전한 경로입니다.--tls
플래그와 함께 사용하십시오.--certfile <string>
여기서<string>
은 orderer와의 상호 인증에 사용되는 PEM 인코드 X.509 인증서가 들어있는 파일의 완전한 경로입니다.--clientauth
플래그와 함께 사용하십시오.--clientauth
이 플래그를 사용하여 orderer와의 상호 TLS 통신을 가능하게하십시오.--certfile
및--keyfile
플래그와 함께 사용하십시오.--keyfile <string>
여기서<string>
은 orderer와 상호 인증을 위해 사용되는 PEM 인코딩 X.509 개인 키를 포함하는 파일에 대한 완전한 경로입니다.--clientauth
플래그와 함께 사용하십시오.-o, --orderer <string>
여기서<string>
은 피어가 통신하고 있는 orderer의 완전한 주소와 포트입니다. 포트가 지정되지 않으면 포트 7050으로 기본 설정됩니다.--ordererTLSHostnameOverride <string>
여기서<string>
은 TLS를 사용하여--orderer
플래그로 지정된 orderer와 통신할 때 사용할 호스트 이름 대체입니다. 피어와 orderer 간의 통신의 TLS 핸드 셰이크 단계가 후속 메시지 교환 단계와 다른 호스트 이름을 사용하는 경우 이 플래그를 사용할 필요가 있습니다.--tls
플래그와 함께 사용하십시오.--tls
이 플래그를 사용하여 orderer와 TLS 통신을 사용 가능하게하십시오.--cafile
에 의해 식별된 인증서는 TLS에서 주문자를 인증하는 데 사용됩니다.
Usage
다음은 peer channel create
명령에 --orderer
전역 플래그를 사용하는 예제입니다.
./createchannel.txn
파일에 포함된 구성 트랜잭션에 의해 정의된 샘플 채널mychannel
을 만듭니다. orderer는orderer.example.com:7050
에 있습니다.
peer channel create -c mychannel -f ./createchannel.txn --orderer orderer.example.com:7050 2018-02-25 08:23:57.548 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized 2018-02-25 08:23:57.626 UTC [channelCmd] InitCmdFactory -> INFO 019 Endorser and orderer connections initialized 2018-02-25 08:23:57.834 UTC [channelCmd] readBlock -> DEBU 020 Received block: 0 2018-02-25 08:23:57.835 UTC [main] main -> INFO 021 Exiting.....
채널이 성공적으로 생성되었음을 나타내는 블록 0이 반환됩니다.
peer channel create
Create Description
관리자는 peer channel create
명령을 사용하여 새 채널을 만들 수 있습니다. 이 명령은 peer
명령을 사용하는 경우에도 피어에서 수행되지 않고 이 기능을 수행하기 위해 orderer에 연결합니다.
관리자는 채널을 작성하기 위해 명령을 사용하여 구성 갱신 트랜잭션을 주문자에게 제출합니다. 이 트랜잭션은 새 채널을 만드는 데 필요한 구성 변경 사항을 설명합니다. 또한, 이 거래는 현재의 주문자 구성에 따라 요구되는 조직에 의해 서명되어야합니다. 구성 트랜잭션은 configtxgen
명령에 의해 생성되고 peer channel signconfigtx
명령에 의해 서명될 수 있습니다.
Create Syntax
peer channel create
명령 구문은 다음과 같습니다. :
peer channel create [flags]
Create Flags
peer channel create
명령은 다음 명령 특정 플래그가 있습니다 :
-c, --channelID <string>
required, 여기서<string>
은 생성될 채널의 이름입니다.-f, --file <string>
required , 여기서<string>
은 이 채널을 만드는 데 필요한 구성 트랜잭션을 포함하는 파일을 식별합니다.configtxgen
명령으로 생성할 수 있습니다.-t, --timeout <integer>
optional , 여기서<integer>
는 채널 생성 시간 초과를 초 단위 로 지정합니다. 지정하지 않으면 기본값은 5 초입니다. 명령이 시간 초과되면 채널이 생성되거나 생성되지 않았을 수 있습니다.
전역 peer
명령 플래그는 다음과 같이 적용됩니다.
-o, --orderer
필수--cafile
선택 과목--certfile
선택 과목--clientuth
선택 과목--keyfile
선택 과목--ordererTLSHostnameOverride
선택 과목--tls
선택 과목
Create Usage
다음은 peer channel create
명령 옵션의 예제입니다.
IP 주소에서 orderer.example.com:7050
의 orderer를 사용하여 네트워크에 대한 새 채널 mychannel
을 만듭니다. 이 채널을 작성하는 데 필요한 구성 업데이트 트랜잭션은 ./createchannel.txn
파일로 정의됩니다. 채널이 생성될 때까지 30 초 동안 기다리십시오.
peer channel create -c mychannel --orderer orderer.example.com:7050 -f ./createchannel.txn -t 30 2018-02-23 06:31:58.568 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized 2018-02-23 06:31:58.669 UTC [channelCmd] InitCmdFactory -> INFO 019 Endorser and orderer connections initialized 2018-02-23 06:31:58.877 UTC [channelCmd] readBlock -> DEBU 020 Received block: 0 2018-02-23 06:31:58.878 UTC [main] main -> INFO 021 Exiting..... ls -l -rw-r--r-- 1 root root 11982 Feb 25 12:24 mychannel.block
출력에 표시된 대로 mychannel
채널이 성공적으로 생성된 것을 볼 수 있습니다. 여기서 블록 0 (제로)이 이 채널의 블록 체인에 추가되고 피어에 반환됩니다. 이 채널은 mychannel.block
이라는 로컬 디렉토리에 저장됩니다.
블록 0은 채널의 시작 구성을 제공하기 때문에 기원 블록(genesis block) 이라고도 합니다. 채널에 대한 모든 후속 업데이트는 채널의 블록 체인에 있는 구성 블록으로 캡처됩니다. 각 블록은 이전 구성을 대체합니다.
peer channel fetch
Fetch Description
peer channel fetch
명령은 클라이언트가 orderer로부터 블록을 가져올 수 있게 합니다. 블록에는 구성 트랜잭션 또는 사용자 트랜잭션이 포함될 수 있습니다.
클라이언트는 채널에 대한 읽기 액세스 권한이 있어야합니다. 이 명령은 이 기능을 수행하기 위해 orderer에 연결합니다. peer
클라이언트 명령이 사용 되더라도 피어에서는 수행되지 않습니다.
Fetch Syntax
peer channel fetch
명령 구문은 다음과 같습니다. :
peer channel fetch [newest|oldest|config|(block number)] [<outputFile>] [flags]
where
newest
채널의 orderer가 사용할 수 있는 가장 최근 블록을 반환합니다. 이것은 사용자 트랜잭션 블록 또는 구성 블록일 수 있습니다. 이 옵션은 가장 최근 블록의 블록 번호를 반환합니다.oldest
채널의 orderer가 사용할 수 있는 가장 오래된 블록을 반환합니다. 이것은 사용자 트랜잭션 블록 또는 구성 블록일 수 있습니다. 이 옵션은 또한 가장 오래된 블록의 블록 번호를 반환합니다.config
채널의 orderer가 사용할 수있는 가장 최근의 구성 블록을 반환합니다. 이 옵션은 가장 최근의 구성 블록의 블록 번호를 반환합니다.(block number)
채널에 대해 요청된 블록을 반환합니다. 이것은 사용자 트랜잭션 블록 또는 구성 블록일 수 있습니다. 0을 지정하면이 채널의 기원 블록(genesis block)이 반환됩니다 (네트워크 주문자가 계속 사용할 수있는 경우).<outputFile>
인출된 블록이 기록되는 파일의 이름을 지정합니다.<outputFile>
이 지정되지 않으면 블록은 다음과 같은 이름의 파일에서 로컬 디렉토리에 기록됩니다.<channelID>_newest.block
<channelID>_oldest.block
<channelID>_config.block
<channelID>_(block number).block
Fetch Flags
peer channel fetch
명령은 다음 명령 특정 플래그가 있습니다. :
-c, --channelID <string>
required, 여기서 <string>
은 블록이 orderer로부터 fetch될 채널의 이름입니다.
전역 peer
명령 플래그도 적용됩니다.
-o, --orderer
필수--cafile
선택 과목--certfile
선택 과목--clientuth
선택 과목--keyfile
선택 과목--ordererTLSHostnameOverride
선택 과목--tls
선택 과목
Fetch Usage
다음은 peer channel fetch
명령의 몇 가지 예입니다.
newest
옵션을 사용하여 가장 최근의 채널 블록을 검색하고mychannel.block
파일에 저장하십시오.
peer channel fetch newest mychannel.block -c mychannel --orderer orderer.example.com:7050 2018-02-25 13:10:16.137 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized 2018-02-25 13:10:16.144 UTC [channelCmd] readBlock -> DEBU 00a Received block: 32 2018-02-25 13:10:16.145 UTC [main] main -> INFO 00b Exiting..... ls -l -rw-r--r-- 1 root root 11982 Feb 25 13:10 mychannel.block
검색된 블록이 숫자 32이고 정보가 mychannel.block
파일에 기록되었음을 알 수 있습니다.
(block number)
옵션을 사용하여 특정 블록 (이 경우 16 번 블록)을 검색하고 기본 블록 파일에 저장합니다.
검색된 블록이 숫자 16이고 정보가 기본 파일 mychannel_16.block
에 기록되었음을 알 수 있습니다.
구성 블록의 경우 configtxlator
명령을 사용하여 블록 파일을 디코딩 할 수 있습니다. 디코드된 출력의 예는 이 명령을 참조하십시오. 사용자 트랜잭션 블록도 디코딩 할 수 있지만 이렇게하려면 사용자 프로그램을 작성해야합니다.
peer channel getinfo
GetInfo Description
peer channel getinfo
명령을 통해 관리자는 특정 채널에 대한 피어의 로컬 블록 체인에 대한 정보를 검색 할 수 있습니다. 여기에는 현재 블록 체인 높이와 현재 블록 및 이전 블록의 해시가 포함됩니다. 피어는 둘 이상의 채널에 조인 될 수 있습니다.
이 정보는 관리자가 특히 동일한 채널의 다른 피어와 비교하여 피어 블록 체인의 현재 상태를 이해해야 할 때 유용합니다.
GetInfo Syntax
peer channel getinfo
명령 구문은 다음과 같습니다. :
peer channel getinfo [flags]
GetInfo Flags
다음은 peer channel getinfo
명령의 예입니다. :
mychannel
채널에 대한 로컬 피어에 대한 정보를 얻습니다.
peer channel getinfo -c mychannel 2018-02-25 15:15:44.135 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized Blockchain info: {"height":5,"currentBlockHash":"JgK9lcaPUNmFb5Mp1qe1SVMsx3o/22Ct4+n5tejcXCw=","previousBlockHash":"f8lZXoAn3gF86zrFq7L1DzW2aKuabH9Ow6SIE5Y04a4="} 2018-02-25 15:15:44.139 UTC [main] main -> INFO 006 Exiting.....
mychannel
채널의 최신 블록이 블록 5임을 알 수 있습니다. 또한 채널 블록 체인의 가장 최근 블록에 대한 암호화 해시를 볼 수 있습니다.
peer channel join
Join Description
관리자는 peer channel join
명령을 사용하여 피어를 기존 채널에 연결할 수 있습니다. 관리자는 이 명령을 사용하여 피어에 채널 생성 블록을 제공함으로써 이를 달성합니다. 그러면 피어는 구성 및 다른 피어의 가용성에 따라 네트워크의 다른 피어 또는 순서대로 채널의 블록을 자동으로 검색합니다.
관리자는 peer channel fetch
명령 옵션을 사용하여 기존 채널에서 블록 0을 검색하여 이 명령에서 사용할 로컬 생성 블록을 만들 수 있습니다. peer channel create
명령은 새로운 채널이 생성 될 때 로컬 생성 블록을 반환합니다.
Join Syntax
peer channel join
명령 구문은 다음과 같습니다. :
peer channel join [flags]
Join Flags
peer channel join
명령은 다음 명령 특정 플래그가 있습니다 :
-b, --blockpath <string>
required, 여기서 <string>
은 채널 생성 블록을 포함하는 파일을 식별합니다. 이 블록은 peer channel fetch
명령을 사용하여 검색하거나 채널에서 블록 0을 요청 하거나 peer channel create
명령을 사용하여 검색할 수 있습니다.
이 명령은 orderer와 상호 작용하지 않으므로 전역(global) peer
명령 플래그는 적용되지 않습니다.
Join Usage
다음은 peer channel join
명령의 예입니다.
./mychannel.genesis.block
파일로 식별된 기원 블록(genesis block)에 정의된 채널에 피어를 참여시킵니다. 이 예에서 채널 블록은 이전에peer channel fetch
명령에 의해 검색되었습니다.
peer channel join -b ./mychannel.genesis.block 2018-02-25 12:25:26.511 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized 2018-02-25 12:25:26.571 UTC [channelCmd] executeJoin -> INFO 006 Successfully submitted proposal to join channel 2018-02-25 12:25:26.571 UTC [main] main -> INFO 007 Exiting.....
피어가 성공적으로 채널에 가입을 요청했음을 알 수 있습니다.
peer channel list
List Description
관리자는 peer channel list
명령을 사용하여 피어가 가입된 채널을 나열 할 수 있습니다.
List Syntax
peer channel list
명령 구문은 다음과 같습니다. :
peer channel list [flags]
List Flags
peer channel list
명령은 특정 플래그가 없습니다.
이 명령은 orderer와 상호 작용하지 않으므로 글로벌(global) peer
명령 플래그는 적용되지 않습니다.
List Usage
다음은 peer channel list
명령의 예입니다.
- 피어가 가입된 채널을 나열하십시오.
peer channel list 2018-02-25 14:21:20.361 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized Channels peers has joined: mychannel 2018-02-25 14:21:20.372 UTC [main] main -> INFO 006 Exiting.....
피어가 mychannel
채널에 가입되어 있음을 볼 수 있습니다.
peer channel signconfigtx
SignConfigTx Description
peer channel signconfigtx
명령은 관리자가 orderer에게 제출하기 전에 피어의 ID 자격 증명을 사용하여 구성 트랜잭션에 서명하는 데 도움이 됩니다. 일반적인 구성 트랜잭션에는 채널 생성 또는 채널 구성 업데이트가 포함됩니다.
관리자는 구성 트랜잭션을 설명하는 signconfigtx
명령에 입력 파일을 제공합니다. 그런 다음 명령은 피어의 공개 ID를 파일에 추가하고 피어의 개인 키로 전체 페이로드에 서명합니다. 이 명령은 로컬 MSP에 저장된 피어의 공개 및 개인 자격 증명을 사용합니다. 새 파일이 생성되지 않습니다. 입력 파일이 제 위치에서 갱신됩니다.
signconfigtx
는 구성 트랜잭션에만 서명합니다. 그것을 생성하지도 않으며 orderer에게 제출하지도 않습니다. 일반적으로 구성 트랜잭션은 이 configtxgen
명령을 사용하여 이미 생성된 후 peer channel update
와 같은 적절한 명령에 의해 orderer에게 제출됩니다.
SignConfigTx Syntax
peer channel signconfigtx
명령 구문은 다음과 같습니다. :
peer channel signconfigtx [flags]
SignConfigTx Flags
peer channel signconfigtx
명령은 다음 명령 특정 플래그가 있습니다. :
-f, --file <string>
필수, 여기서 <string>
은 피어를 대신하여 서명할 채널 구성 트랜잭션을 포함하는 파일을 식별합니다.
이 명령은 순서 지정자와 상호 작용하지 않으므로 글로벌(global) peer
명령 플래그는 적용되지 않습니다.
SignConfigTx Usage
다음은 peer channel signconfigtx
명령의 예입니다.
./updatechannel.txn
파일에 정의된channel update
트랜잭션에 서명 하십시오. 이 예는 명령 전후의 구성 트랜잭션 파일을 나열합니다.
ls -l -rw-r--r-- 1 anthonyodowd staff 284 25 Feb 18:16 updatechannel.tx peer channel signconfigtx -f updatechannel.tx 2018-02-25 18:16:44.456 GMT [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized 2018-02-25 18:16:44.459 GMT [main] main -> INFO 002 Exiting..... ls -l -rw-r--r-- 1 anthonyodowd staff 2180 25 Feb 18:16 updatechannel.tx
updatechannel.tx
파일의 크기가 284 바이트에서 2180 바이트로 증가하여 피어가 구성 트랜잭션에 성공적으로 서명했음을 알 수 있습니다 .
peer channel update
Update Description
관리자는 peer channel update
명령을 사용하여 기존 채널을 업데이트 할 수 있습니다.
채널을 갱신하기 위해 관리자는 명령을 사용하여 필요한 채널 구성 변경 사항을 설명하는 구성 트랜잭션을 주문자에게 제출합니다. 이 거래는 현재 채널 구성에 정의된 필수 조직에서 서명해야합니다. 구성 트랜잭션은 configtxgen
명령에 의해 생성되고 peer channel signconfigtx
명령에 의해 서명 될 수 있습니다.
갱신 트랜잭션은 명령에 의해 명령 변경자에게 권한이 부여 된 것을 확인한 다음 구성 블록을 채널의 모든 피어에 분배하는 orderer에게 전송됩니다. 이러한 방식으로 채널의 모든 피어는 채널 구성의 일관된 복사본을 유지 관리합니다.
Update Syntax
peer channel update
명령 구문은 다음과 같습니다, :
peer channel update [flags]
Update flags
peer channel update
명령은 다음 명령 특정 플래그가 있습니다. :
-c, --channelID <string>
required, 여기서<string>
은 업데이트 할 채널의 이름입니다.-f, --file <string>
required, 여기서<string>
은 트랜잭션 구성 파일을 식별합니다. 이 파일에는 이 채널에 필요한 구성 변경 사항이 포함되어 있으며configtxgen
명령을 사용하여 생성 할 수 있습니다.
전역 peer
명령 플래그는 다음과 같이 적용됩니다.
-o, --orderer
필수--cafile
선택--certfile
선택--clientuth
선택--keyfile
선택--ordererTLSHostnameOverride
선택--tls
선택
Update Usage
다음은 peer channel update
명령의 예입니다.
./updatechannel.txn
파일에 정의된 구성 트랜잭션을 사용하여mychannel
채널을 업데이트 하십시오. ip address의orderer.example.com:7050
에 있는 orderer를 사용하여 구성 트랜잭션을 채널의 모든 피어로 전송하여 채널 구성 사본을 갱신하십시오.
peer channel update -c mychannel -f ./updatechannel.txn -o orderer.example.com:7050 2018-02-23 06:32:11.569 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized 2018-02-23 06:32:11.626 UTC [main] main -> INFO 010 Exiting.....
- 이 시점에서
mychannel
채널이 성공적으로 업데이트되었습니다.
peer version
peer version
Description
peer version
명령은 피어의 버전 정보를 표시합니다. 버전, Go 버전, OS / 아키텍처, 실험 기능이 켜져 있으면 체인 코드 정보를 표시합니다. 예 :
peer: Version: 1.1.0-beta-snapshot-a6c3447e Go version: go1.9.2 OS/Arch: linux/amd64 Experimental features: true Chaincode: Base Image Version: 0.4.5 Base Docker Namespace: hyperledger Base Docker Label: org.hyperledger.fabric Docker Namespace: hyperledger
Syntax
peer version
명령 구문은 다음과 같습니다. :
peer version
peer logging
peer logging
Description
peer logging
하위 명령을 사용하여 관리자는 피어의 로그 수준을 동적으로 보고 구성 할 수 있습니다.
Syntax
peer logging
하위 명령의 구문은 다음과 같습니다. :
peer logging getlevel peer logging setlevel peer logging revertlevels
다른 하위 명령 옵션 (getlevel, setlevel 및 revertlevels)은 피어와 관련된 여러 로깅 작업과 관련이 있습니다.
각 피어 로깅 하위 명령은이 주제의 자체 절에서 옵션과 함께 설명됩니다.
peer logging getlevel
Get Level Description
peer logging getlevel
명령을 통해 관리자는 로깅 모듈의 현재 수준을 가져올 수 있습니다.
Get Level Syntax
peer logging getlevel
명령 구문은 다음과 같습니다. :
peer logging getlevel <module-name>
Get Level Flags
peer logging getlevel
명령은 명령 특정 플래그를 가지고 있지 않습니다.
Get Level Usage
다음은 peer logging getlevel
명령의 예입니다 .
peer
모듈에 대한 로그 수준을 얻으려면 :
peer logging getlevel peer 2018-02-22 19:10:08.633 UTC [cli/logging] getLevel -> INFO 001 Current log level for peer module 'peer': DEBUG 2018-02-22 19:10:08.633 UTC [main] main -> INFO 002 Exiting.....
peer logging setlevel
Set Level Description
peer logging setlevel
명령을 사용하여 관리자는 제공된 모듈 이름 정규 표현식과 일치하는 모든 로깅 모듈의 현재 레벨을 설정할 수 있습니다.
Set Level Syntax
peer logging setlevel
명령 구문은 다음과 같습니다. :
peer logging setlevel <module-name-regular-expression> <log-level>
Set Level Flags
peer logging setlevel
명령은 명령 특정 플래그를 가지고 있지 않습니다.
Set Level Usage
다음은 peer logging setlevel
명령의 몇 가지 예입니다 .
- 정규 표현식
peer
와 일치하는 모듈에 대한 로그 수준을 설정하려면 log level을WARNING
로 설정하십시오. :
peer logging setlevel peer warning 2018-02-22 19:14:51.217 UTC [cli/logging] setLevel -> INFO 001 Log level set for peer modules matching regular expression 'peer': WARNING 2018-02-22 19:14:51.217 UTC [main] main -> INFO 002 Exiting.....
^gossip
정규 표현식(즉, 모든 gossip/<submodule>
형태의 gossip
로깅 서브 모듈)과 일치하는 모듈에 대한 로그 수준을 설정하려면 log level을 ERROR
로 설정하십시오. :
peer logging setlevel ^gossip error 2018-02-22 19:16:46.272 UTC [cli/logging] setLevel -> INFO 001 Log level set for peer modules matching regular expression '^gossip': ERROR 2018-02-22 19:16:46.272 UTC [main] main -> INFO 002 Exiting.....
peer logging revertlevels
Revert Levels Description
관리자는 peer logging revertlevels
명령을 사용하여 피어가 시작 프로세스를 완료 할 때 모든 모듈의 로그 수준을 수준으로 되돌릴 수 있습니다.
Revert Levels Syntax
peer logging revertlevels
명령 구문은 다음과 같습니다. :
peer logging revertlevels
Revert Levels Flags
peer logging revertlevels
명령은 명령 특정 플래그를 가지고 있지 않습니다.
Revert Levels Usage
다음은 peer logging revertlevels
명령의 예입니다. :
peer logging revertlevels 2018-02-22 19:18:38.428 UTC [cli/logging] revertLevels -> INFO 001 Log levels reverted to the levels at the end of peer startup. 2018-02-22 19:18:38.428 UTC [main] main -> INFO 002 Exiting.....
peer node
peer node
Description
peer node
하위 명령을 사용하여 관리자는 피어 노드를 시작하거나 피어 노드의 상태를 확인할 수 있습니다.
Syntax
peer node
하위 명령의 구문은 다음과 같습니다. :
peer node start [flags] peer node status
peer node start
Start Description
peer node start
명령을 통해 관리자는 피어 노드 프로세스를 시작할 수 있습니다.
피어 노드 프로세스는 구성 파일 core.yaml을 사용하여 구성할 수 있습니다. 구성 파일 core.yaml 은 환경 변수 FABRIC_CFG_PATH에 지정된 디렉토리에 있어야합니다. 도커 배포의 경우 core.yaml 은 피어 컨테이너 FABRIC_CFG_PATH 디렉토리에 미리 구성되어 있습니다. 원시 2진 배포의 경우 core.yaml 이 릴리스 아티팩트 배포에 포함됩니다. core.yaml 에 있는 구성 등록 정보는 환경 변수를 사용하여 겹쳐 쓸 수 있습니다. 예를 들어 CORE_PEER_MSPCONFIGPATH 환경 변수를 정의하여 peer.mspConfigPath
구성 등록 정보를 지정할 수 있습니다 . 여기서 ** CORE _ **는 환경 변수의 접두어입니다.
Start Syntax
peer node start
명령 구문은 다음과 같습니다. :
peer node start [flags]
Start Flags
peer node start
명령에는 다음과 같은 명령 특정 플래그가 있습니다. :
--peer-chaincodedev
체인 노드 개발 모드에서 피어 노드를 시작합니다. 일반적으로 체인 코드 컨테이너는 피어에 의해 시작되고 유지 관리됩니다. 그러나 devlopment 모드에서 체인 코드는 사용자가 만들고 시작할 수 있습니다. 이 모드는 반복 개발을 위한 체인 코드 개발 단계에서 유용합니다. 체인 코드 자습서에서 개발 모드에 대한 자세한 내용을 확인하십시오 .
전역 peer
명령 플래그는 peer command
주제에서 설명한대로 적용됩니다. :
- –logging-level
peer node status
Status Description
peer node status
명령을 통해 관리자는 피어 노드 프로세스의 상태를 볼 수 있습니다. 피어 구성에서 지정된 peer.address
에서 실행 중이거나 CORE_PEER_ADDRESS 환경 변수로 대체된 피어 노드 프로세스의 상태를 표시합니다.
Status Syntax
peer node status
명령 구문은 다음과 같습니다. :
peer node status
Status Flags
peer node status
명령은 명령 특정 플래그가 없습니다.
configtxgen
Description
configtxgen
명령을 통해 사용자는 채널 config와 관련된 아티팩트를 작성하고 검사 할 수 있습니다. 생성 된 아티팩트의 내용은 configtx.yaml
의 내용에 의해 결정됩니다.
Syntax
configtxgen 명령은 하위 명령은 없지만 다양한 작업을 수행하기 위해 설정할 수 있는 플래그가 지원됩니다.
Usage of configtxgen:
-asOrg string
Performs the config generation as a particular organization (by name), only including values in the write set that org (likely) has privilege to set
-channelID string
The channel ID to use in the configtx (default "testchainid")
-inspectBlock string
Prints the configuration contained in the block at the specified path
-inspectChannelCreateTx string
Prints the configuration contained in the transaction at the specified path
-outputAnchorPeersUpdate string
Creates an config update to update an anchor peer (works only with the default channel creation, and only for the first update)
-outputBlock string
The path to write the genesis block to (if set)
-outputCreateChannelTx string
The path to write a channel creation configtx to (if set)
-printOrg string
Prints the definition of an organization as JSON. (useful for adding an org to a channel manually)
-profile string
The profile from configtx.yaml to use for generation. (default "SampleInsecureSolo")
-version
Show version information
Usage
초기 블록 생성
genesis_block.pb
에 채널을 위한 genesis 블록을 작성하세요. orderer-system-channel
에 SampleSingleMSPSoloV1_1
관해 작성하세요.
configtxgen -outputBlock genesis_block.pb -profile SampleSingleMSPSoloV1_1 -channelID orderer-system-channel
채널 생성 tx
SampleSingleMSPChannerlV1_1
에 create_chan_tx.pb
에 대한 채널 생성 트랜잭션에 관해 작성하십시오.
configtxgen -outputCreateChannelTx create_chan_tx.pb -profile SampleSingleMSPChannelV1_1 -channelID application-channel-1
Inspect a genesis block
genesis_block.pb
라는 이름의 genesis 블록의 내용을 JSON 형태로 화면에 출력하세요.
configtxgen -inspectBlock genesis_block.pb
Inspect a channel creation tx
create_chan_tx.pb
라는 이름의 채널 생성 tx의 내용을 JSON 형태로 화면에 출력하세요.
configtxgen -inspectChannelCreateTx create_chan_tx.pb
Print an organization definition
configtx.yaml
로부터 MSPDir과 같은 파라미터의 기반해서 조직을 정의하고 JSON형태로 화면에 출력하세요.(이 출력은 구성원 추가와 같은 채널 재구성 워크 플로우에 유용합니다)
configtxgen - printOrg Org1
Output anchor peer tx
configtx.yaml
를 기반으로 SampleSingleMShannelV1_1프로필에 정의되어 있는 조직 Org1의 앵커 피어들이 설정된 anchor_peer_tx.pb
에 구성 업데이트 트랜잭션을 출력합니다.
configtxgen -outputAnchorPeersUpdate anchor_peer_tx.pb -profile SampleSingleMSPChannelV1_1 -asOrg Org1
configuration
configtxgen
tool의 output은 대부분의 configtx.yaml
의 내용에 의해 제어됩니다. 이 파일은 FABRIC_CFG_PATH
에서 검색되며 반드시 configtxgen
이 존재해야합니다. 이 configuration 파일은 편집 할 수 도 있고, CONFIGTX_ORDERER_ORDERERTYPE=kafka
와 같은 환경 변수를 성정하여 개별 특성을 겹쳐 쓸 수 있습니다. 많은 configtxgen
작업에서 프로필 이름을 제공해야합니다. 프로필은 단일 파일에서 여러 유사한 configuration을 표현하는 방법입니다. 예를 들어, 하나의 프로필은 3 개의 조직으로 된 채널을 정의 할 수 있고, 다른 프로필은 4 개의 조직으로 구성된 하나의 조직을 정의 할 수 있습니다. 파일의 길이에 부담을 주지 않고 이 작업을 수행하려면, configtx.yaml
앵커 및 참조 표준 YAML 기능에 따라 달라집니다. configuration의 기본 부분은 &OrdererDefaults 같은 앵커와 태그가 붙여져있으며 다음과 같은 참조가있는 프로필로 병합됩니다. 참고:configtxgen
이 프로필 아래에서 작동하는 경우 환경 변수 재정의에 프로필 접두사를 포함할 필요가 없으며 프로필의 루트 요소에 대해 참조할 수 있습니다. 예를들어, <<: *OrdererDefaultsconfigtxgenCONFIGTX_PROFILE_SAMPLEINSECURESOLO_ORDERER_ORDERERTYPECONFIGTX
를 지정하지 않고 단순히 프로필 세부 사항을 생략하고 접두어 다음에 CONFIGTX_ORDERER_ORDERERTYPE
라는 프로필 이름과 관련된 요소가옵니다. 모든 가능한 구성 옵션에 대해서는 Fabric과 함께 제공된 configtx.yaml
샘플을 참조하십시오 . 이 파일은 release artifacts tar 디렉토리의 config
안에서 찾을 수 있습니다. 또는 소스에서 빌드하는 경우이 sampleconfig
폴더 아래에 이 파일이있을 수 있습니다 .
configtxlator
Description
configtxlator 명령을 사용하여 사용자는 protobuf와 JSON 버전의 fabric 데이터 구조 사이를 변환하고 구성 업데이트를 만들 수 있습니다. 이 명령은 REST서버를 시작하여 HTTP를 통해 해당 기능을 표시하거나 명령줄 도구로 직접 사용할 수 있습니다.
Syntax
configtxlator는 4개의 하위 명령이 있습니다.
configtxlator start
REST 서버를 시작합니다.
usage: configtxlator start [<flags>]
Start the configtxlator REST server
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--hostname="0.0.0.0" The hostname or IP on which the REST server will listen
--port=7059 The port on which the REST server will listen
configtxlator proto_encode
JSON 문서를 protobuf 메시지로 변환합니다.
usage: configtxlator proto_encode --type=TYPE [<flags>]
Converts a JSON document to protobuf.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--type=TYPE The type of protobuf structure to encode to. For example, 'common.Config'.
--input=/dev/stdin A file containing the JSON document.
--output=/dev/stdout A file to write the output to.
configtxlator proto_decode
protobuf 메시지를 JSON 문서로 변환합니다.
usage: configtxlator proto_decode --type=TYPE [<flags>]
Converts a proto message to JSON.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--type=TYPE The type of protobuf structure to decode from. For example, 'common.Config'.
--input=/dev/stdin A file containing the proto message.
--output=/dev/stdout A file to write the JSON document to.
configtxlator compute_update
기존 config와 수정된 config에 기반하여 config 업데이트를 계산합니다.
usage: configtxlator compute_update --channel_id=CHANNEL_ID [<flags>]
Takes two marshaled common.Config messages and computes the config update which transitions between the two.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--original=ORIGINAL The original config message.
--updated=UPDATED The updated config message.
--channel_id=CHANNEL_ID The name of the channel for this update.
--output=/dev/stdout A file to write the JSON document to.
configtxlator version
버전을 표시합니다.
usage: configtxlator version
Show version information
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
Examples
Decoding
fabric_block.c
블록을 JSON으로 디코딩하고 stdout에 인쇄하십시오.
configtxlator proto_decode --input fabric_block.pb --type common.Block
또는 REST서버를 시작한 후 다음 벤딩 명령이 REST API를 통해 동일한 작업을 수행합니다.
curl -X POST --data-binary @fabric_block.pb "${CONFIGTXLATOR_URL}/protolator/decode/common.Block"
Ending
정책에 대한 JSON문서를 stdin에서 policy.snmp라는 파일로 변환합니다.
configtxlator proto_encode --type common.Policy --output policy.pb
또는 REST서버를 시작한 후 다음 벤딩 명령이 REST API를 통해 동일한 작업을 수행합니다.
curl -X POST --data-binary /dev/stdin "${CONFIGTXLATOR_URL}/protolator/encode/common.Policy" > policy.pb
Pipelines
original_config.pb
및 modified_config.pb
의 config 업데이트를 계산하여 JSON에 맞게 stdout에 디코딩 합니다.
configtxlator compute_update --channel_id testchan --original original_config.pb --updated modified_config.pb | configtxlator proto_decode --type common.ConfigUpdate
또는 REST서버를 시작한 후 다음 벤딩 명령이 REST API를 통해 동일한 작업을 수행합니다.
curl -X POST -F channel=testchan -F "original=@original_config.pb" -F "updated=@modified_config.pb" "${CONFIGTXLATOR_URL}/configtxlator/compute/update-from-configs" | curl -X POST --data-binary /dev/stdin "${CONFIGTXLATOR_URL}/protolator/encode/common.ConfigUpdate"
도구 이름은 configtx 및 translator 의 portmanteau이며 도구가 단순히 다른 동등한 데이터 표현 사이에서 변환된다는 것을 전달하기 위한 것이다. 구성을 생성하지 않습니다. configuration을 제출하거나 검색하지 않습니다. 구성 자체를 수정하지 않고, configtx 형식의 다른 보기 사이에서 일부 임의 작업만 제공할 뿐입니다.
configtxlatorREST 서버에 포함 된 구성 파일 이나 인증 또는 권한 부여 기능 은 없습니다. config.lator는 민감한 데이터, 주요 정보 또는 기타 정보에 대한 액세스 권한이 없기 때문에 서버 소유자가 다른 클라이언트에 노출될 위험이 없습니다. 그러나 사용자가 REST 서버로 보낸 데이터는 기밀 일 수 있으므로 사용자는 서버 관리자를 신뢰하거나 로컬 인스턴스를 실행하거나 CLI를 통해 작동해야합니다.
Cryptogen Commands
cryptogen commands
Cryptogen은 Hyperledger Fabric의 key 자료를 생성하는 유틸리티입니다.
주로 테스트 환경에서 사용하기위한 것입니다.
Syntax
cryptogen
명령은 그 안에 다른 하위 명령이 있습니다.
cryptogen [subcommand]
다음과 같습니다.
cryptogen generate cryptogen showtemplate cryptogen version cryptogen extend cryptogen help cryptogen
이러한 하위 명령은 유틸리티가 제공하는 여러 기능을 분리합니다.
각 하위 명령에는 사용할 수 있는 다양한 옵션들이 있고, 그로인해 각 항목에 대한 설명은 본 글의 각 section에 있습니다.
별다른 명령 옵션을 지정하지 않으면 다소 높은 수준의 도움말 텍스트가 반환됩니다.
cryptogen flags
cryptogen 명령은 관련 플래그 세트가 있습니다 :
cryptogen [flags]
다음과 같습니다.
cryptogen --help cryptogen generate --help
이 플래그는 cryptogen에 대한 자세한 정보를 제공하며 모든 명령 수준에서 사용할 수 있기 때문에 전역으로 지정 됩니다. 예를들어 --help
플래그는 cryptogen
명령어 및 cryptogen generate
명령 및 각 옵션에 대한 도움말을 제공합니다.
Flag details
--help
help를 사용하여 cryptogen
명령에 대한 간단한 도움말 텍스트를 확인해보세요. help
플래그는 종종 개별 명령의 도움말을 얻기위해 다른 수준에서 사용된다, 심지어 명령 옵션에 관한 도움까지도 가능하다. 자세한 내용은 개별 명령을 참조하세요.,
Usage
다음은 peer 명령에서 사용 가능한 여러 플래그를 사용하는 몇 가지 예제 입니다.
--help
flag
cryptogen --help
usage: cryptogen [<flags>] <command> [<args> ...]
Utility for generating Hyperledger Fabric key material
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
Commands:
help [<command>...]
Show help.
generate [<flags>]
Generate key material
showtemplate
Show the default configuration template
version
Show version information
extend [<flags>]
Extend existing network
The cryptogen generate Command
The cryptogen generate Command 명령을 사용하여 키 재료를 생성 할 수 있습니다.
Syntax
cryptogen generate
명령은 다음과 같습니다.
cryptogen generate [<flags>]
cryptogen generate
cryptogen generate
플래그는 다른 플래그를 가지고 있기에, 각 플래그는 관련 명령 주제에 설명되어 있습니다.
cryptogen generate [flags]
다음과 같습니다.
cryptogen generate --output="crypto-config" cryptogen generate --config=CONFIG
전역 cryptogen
명령 플래그는 cryptogen
명령 플래그에 설명 된대로 적용됩니다.
--help
Flag details
--output="crypto-config"
아티팩트를 배치 할 출력 경로
--config=CONFIG
사용할 구성 템플릿
Usage
cryptogen generate
명령에서 사용 가능한 여러 플래그를 사용하는 몇 가지 예제입니다.
./cryptogen generate --output="crypto-config"
org1.example.com
org2.example.com
The cryptogen showtemplate Command
cryptogen showtemplate 명령은 기본 구성 템플릿을 표시합니다.
Syntax
cryptogen showtemplate
명령 구문은 다음과 같습니다.
cryptogen showtemplate
Usage
cryptogen showtemplate
명령의 출력은 다음과 같습니다.
cryptogen showtemplate
# ---------------------------------------------------------------------------
# "OrdererOrgs" - Definition of organizations managing orderer nodes
# ---------------------------------------------------------------------------
OrdererOrgs:
# ---------------------------------------------------------------------------
# Orderer
# ---------------------------------------------------------------------------
- Name: Orderer
Domain: example.com
# ---------------------------------------------------------------------------
# "Specs" - See PeerOrgs below for complete description
# ---------------------------------------------------------------------------
Specs:
- Hostname: orderer
# ---------------------------------------------------------------------------
# "PeerOrgs" - Definition of organizations managing peer nodes
# ---------------------------------------------------------------------------
PeerOrgs:
# ---------------------------------------------------------------------------
# Org1
# ---------------------------------------------------------------------------
- Name: Org1
Domain: org1.example.com
EnableNodeOUs: false
# ---------------------------------------------------------------------------
# "CA"
# ---------------------------------------------------------------------------
# Uncomment this section to enable the explicit definition of the CA for this
# organization. This entry is a Spec. See "Specs" section below for details.
# ---------------------------------------------------------------------------
# CA:
# Hostname: ca # implicitly ca.org1.example.com
# Country: US
# Province: California
# Locality: San Francisco
# OrganizationalUnit: Hyperledger Fabric
# StreetAddress: address for org # default nil
# PostalCode: postalCode for org # default nil
# ---------------------------------------------------------------------------
# "Specs"
# ---------------------------------------------------------------------------
# Uncomment this section to enable the explicit definition of hosts in your
# configuration. Most users will want to use Template, below
#
# Specs is an array of Spec entries. Each Spec entry consists of two fields:
# - Hostname: (Required) The desired hostname, sans the domain.
# - CommonName: (Optional) Specifies the template or explicit override for
# the CN. By default, this is the template:
#
# "{{.Hostname}}.{{.Domain}}"
#
# which obtains its values from the Spec.Hostname and
# Org.Domain, respectively.
# - SANS: (Optional) Specifies one or more Subject Alternative Names
# to be set in the resulting x509. Accepts template
# variables {{.Hostname}}, {{.Domain}}, {{.CommonName}}. IP
# addresses provided here will be properly recognized. Other
# values will be taken as DNS names.
# NOTE: Two implicit entries are created for you:
# - {{ .CommonName }}
# - {{ .Hostname }}
# ---------------------------------------------------------------------------
# Specs:
# - Hostname: foo # implicitly "foo.org1.example.com"
# CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above
# SANS:
# - "bar.{{.Domain}}"
# - "altfoo.{{.Domain}}"
# - "{{.Hostname}}.org6.net"
# - 172.16.10.31
# - Hostname: bar
# - Hostname: baz
# ---------------------------------------------------------------------------
# "Template"
# ---------------------------------------------------------------------------
# Allows for the definition of 1 or more hosts that are created sequentially
# from a template. By default, this looks like "peer%d" from 0 to Count-1.
# You may override the number of nodes (Count), the starting index (Start)
# or the template used to construct the name (Hostname).
#
# Note: Template and Specs are not mutually exclusive. You may define both
# sections and the aggregate nodes will be created for you. Take care with
# name collisions
# ---------------------------------------------------------------------------
Template:
Count: 1
# Start: 5
# Hostname: {{.Prefix}}{{.Index}} # default
# SANS:
# - "{{.Hostname}}.alt.{{.Domain}}"
# ---------------------------------------------------------------------------
# "Users"
# ---------------------------------------------------------------------------
# Count: The number of user accounts _in addition_ to Admin
# ---------------------------------------------------------------------------
Users:
Count: 1
# ---------------------------------------------------------------------------
# Org2: See "Org1" for full specification
# ---------------------------------------------------------------------------
- Name: Org2
Domain: org2.example.com
EnableNodeOUs: false
Template:
Count: 1
Users:
Count: 1
The cryptogen extend Command
cryptogen extend
명령을 사용하면 기존의 네트워크를 확장할 수 있습니다. 즉, 새로 추가된 엔티티가 필요로하는 모든 추가적인 key 자료의 생성을 의미합니다.
Syntax
cryptogen extend
명령의 문법은 다음과 같습니다.
cryptogen extend [<flags>]
crpytogen extend flags
cryptogen extend
플래그는 사용할 수 있는 다른 플래그를 가지고 있기에, 각 플래그는 관련 명령 주제에 설명되어 있습니다.
crpytogen extend [flag]
다음과 같습니다.
cryptogen extend --input="crypto-config" cryptogen extend --config=CONFIG
전역 cryptogen
명령 플래그는 cryptogen
명령 플래그에 설명 된대로 적용됩니다.
--help
flag details
--output="crypto-config"
아티팩트를 배치 할 출력 경로
--config=CONFIG
사용할 구성 템플릿.
Usage
cryptogen extend 명령에서 사용 가능한 여러 플래그를 사용하는 몇 가지 예제 입니다.
cryptogen extend --input="crypto-config" --config=config.yaml
org3.example.com
config.yaml은 org3.example.com
라는 새로운 peer 조직을 추가합니다.
Fabric-CA Commands
Hyperledger Fabric CA는 Hyperledger Fabic 용 CA (Certificate Authority)입니다. fabric-ca client 및 fabric-ca server에 사용 가능한 명령은 아래 링크에 설명되어 있습니다.
Fabric-CA Client
fabric-ca-client 명령을 사용하면 ID 관리(특성 관리 포함) 및 인증서 (갱신 및 해지 포함)를 관리 할 수 있습니다.
fabric-ca-client
명령에 대한 자세한 내용은 여기를 참조하십시오.
Fabric-CA Server
fabric-ca-server 명령을 사용하면 하나 이상의 인증 기관을 호스트 할 수있는 서버 프로세스를 초기화하고 시작할 수 있습니다.
fabric-ca-server
명령에 대한 자세한 사항은 여기를 참조하십시오.
'Hyperledger Fabric > Document' 카테고리의 다른 글
[HYPERLEDGER FABRIC v1.1]Hyperledger Fabric FAQ (0) | 2018.05.16 |
---|---|
[HYPERLEDGER FABRIC v1.1]Architecture Reference (1) | 2018.05.16 |
[HYPERLEDGER FABRIC v1.1]Operations Guides (0) | 2018.05.16 |
[HYPERLEDGER FABRIC v1.1]Tutorials (0) | 2018.05.16 |
[HYPERLEDGER FABRIC v1.1]Key Concepts (0) | 2018.05.16 |