본문 바로가기

Hyperledger Fabric/Document

[HYPERLEDGER FABRIC v1.1]Commands Reference

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>에는 여섯 개의 가능한 값이 있습니다 : debuginfonoticewarningerror, 그리고 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 subcommandpackage의 하위 명령으로 생성된 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.0mycc라는 체인 코드를 인스턴스화합니다.

  • --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.0mycc라는 체인코드를 호출하여 변수 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.0mycc라는 체인 코드를 설치했음을 알 수 있습니다.

  • -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.0mycc 체인 코드가 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 메소드를 호출하여 체인 코드를 쿼리 할 수 있게 합니다. queryinvoke 하위 명령의 차이점은 성공한 응답의 경우 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)을 명령으로 참조하기도 합니다.

서로 다른 명령 옵션 ( createfetch...)은 피어와 관련된 다양한 채널 작업과 관련이 있습니다. 예를 들어, 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-channelSampleSingleMSPSoloV1_1 관해 작성하세요.

configtxgen -outputBlock genesis_block.pb -profile SampleSingleMSPSoloV1_1 -channelID orderer-system-channel

채널 생성 tx

SampleSingleMSPChannerlV1_1create_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

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.pbmodified_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명령에 대한 자세한 사항은 여기를 참조하십시오.