티스토리 뷰

반응형

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

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

 Reconfiguring with configtxlator ( configtxlator를 사용한 재구성 )

Overview ( 개요 )

이 configtxlator도구는 SDK와 독립적 인 재구성을 지원하기 위해 만들어졌습니다. 채널 구성은 채널의 구성 블록에 트랜잭션으로 저장되며 bdd 동작 테스트와 같이 직접 조작 할 수 있습니다. 그러나이 글을 쓰는 시점에서 SDK는 기본적으로 구성을 직접 조작 할 수 있도록 지원하지 않으므로 SDK의 configtxlator소비자가 구성 업데이트를 지원하기 위해 상호 작용할 수있는 API를 제공하도록 설계되었습니다.

툴 이름은 configtx 와 translator 의 portmanteau이며 툴은 서로 다른 데이터 표현을 간단하게 변환한다는 것을 알리기 위한 것입니다. 구성을 생성하지 않습니다. 구성을 제출하거나 검색하지 않습니다. 구성 자체는 수정하지 않고 configtx 형식의 서로 다른보기간에 일부 수동 작업을 제공합니다.

  1. SDK가 최신 설정을 가져옵니다.
  2. configtxlator는 사람이 읽을 수있는 버전의 config를 생성합니다.
  3. 사용자 또는 응용 프로그램이 구성을 편집합니다.
  4. configtxlator는 config에 대한 변경 사항의 구성 업데이트 표현을 계산하는 데 사용됩니다.
  5. SDK는 표지판을 제출하고 구성을 제출합니다.

이 configtxlator도구는 구성 요소와 상호 작용하기 위해 진정으로 상태 비 저장 REST API를 제공합니다. 이러한 REST 구성 요소는 기본 구성 형식을 사람이 읽을 수있는 JSON 표현으로 /에서 변환하거나 두 구성 간의 차이를 기반으로 구성 업데이트를 계산하도록 지원합니다.

때문에 configtxlator서비스가 의도적으로 어떤 암호화 소재, 또는 기타 비밀 정보를 포함하지 않는, 어떤 인증 또는 액세스 제어를 포함하지 않는다. 예상되는 일반적인 배포는 샌드 박스가있는 컨테이너로 응용 프로그램과 함께 로컬로 작동하므로 각 응용 프로그램에 대한 전용 configtxlator프로세스가 있습니다.


Running the configtxlator ( configtxlator 실행하기 )

이 configtxlator도구는 다른 Hyperledger 패브릭 플랫폼 별 바이너리와 함께 다운로드 할 수 있습니다. 자세한 내용은 다운로드 플랫폼 관련 바이너리 를 참조하십시오.

이 도구는 다른 포트에서 수신 대기하도록 구성 될 수 있으며 --portand --hostname플래그를 사용하여 호스트 이름을 지정할 수도 있습니다 . 완전한 명령 및 플래그 집합을 탐색하려면 실행하십시오 .configtxlator --help

바이너리는 지정된 포트에서 청취하는 http 서버를 시작하고 요청을 처리 할 준비가되었습니다.

configtxlator서버 를 시작하려면 다음과 같이하십시오.

configtxlator start
2017-06-21 18:16:58.248 HKT [configtxlator] startServer -> INFO 001 Serving HTTP requests on 0.0.0.0:7059


Proto translation ( 프로토 번역 )

확장 성 및 특정 필드가 서명되어야하므로 많은 proto 필드가 바이트로 저장됩니다. 이것은 jsonpb 패키지를 사용하여 protobufs의 사람이 읽을 수있는 버전을 만드는 데 효과가없는 JSON 번역의 자연스러운 프로토 타입을 만듭니다. 대신 configtxlator는 REST 구성 요소를 노출하여보다 정교한 변환을 수행합니다.

proto를 사람이 읽을 수있는 JSON으로 변환하려면 나머지 대상 http://$SERVER:$PORT/protolator/decode/<message.Name>에 바이너리 proto를 게시하십시오. 여기서 <message.Name>은 정규화 된 호스트입니다 메세지의 proto 명.

예를 들어,  configuration_block.pb로 저장된 구성 블록을 디코딩하려면 다음 명령을 실행하십시오.

curl -X POST --data-binary @configuration_block.pb http://127.0.0.1:7059/protolator/decode/common.Block

사람이 읽을 수있는 JSON 버전의 프로토 메시지를 변환하려면 JSON 버전을 http://$SERVER:$PORT/protolator/encode/<message.Name>에 게시하십시오. 여기서 <message.Name>은 다시 완전한 프로토 타입 이름입니다. 메시지의

예를 들어 configuration_block.json으로 저장된 블록을 다시 인코딩하려면 다음 명령을 실행합니다.

curl -X POST --data-binary @configuration_block.json http://127.0.0.1:7059/protolator/encode/common.Block

common.Block,common.Envelopecommon.ConfigEnvelopecommon.ConfigUpdateEnvelope,common.Config, 및 common.ConfigUpdate 를 비롯한 모든 구성 관련 프로토는 이러한 URL의 유효한 대상입니다. 앞으로 endorser 트랜잭션과 같은 다른 proto 디코딩 유형이 추가 될 수 있습니다.


Config update computation ( 구성 업데이트 계산 )

두 개의 서로 다른 구성이 주어지면 두 구성간에 전환되는 구성 업데이트를 계산할 수 있습니다. 두 개의common.Config  프로토 인코딩 된 구성을 multipart/formdata로 게시하고 원본을 원래 필드로 업데이트하고 업데이트 된 필드는 http://$SERVER:$PORT/configtxlator/compute/update-from-configs로 업데이트합니다.

예를 들어 원본 구성을  original_config.pb파일로, 업데이트 된 구성을 채널 desiredchannel의  updated_config.pb파일로 지정하면 다음과 같습니다.

curl -X POST -F channel=desiredchannel -F original=@original_config.pb -F updated=@updated_config.pb http://127.0.0.1:7059/configtxlator/compute/update-from-configs


Bootstraping example ( 부트 스트랩 예제 )

먼저 configtxlator를 시작하십시오.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함