티스토리 뷰

반응형

해당 글은 Hyperledger Fabric 페이지의 게시글을 번역 및 정리한 자료입니다.

원본 사이트 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/commands/peerchannel.html


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 채널이 성공적으로 업데이트되었습니다.


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함