티스토리 뷰

반응형

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

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

 Channel Configuration(configtxgen)(채널 구성)

이 문서는 fabric 채널 구성을 조작하기위한 configtxgen 유틸리티의 사용법을 설명합니다.

현재, 이 도구는 Orderer를 부트 스트랩하기위한 기원 블록을 생성하는 데 주력하지만, 기존 채널을 다시 구성하는 것뿐만 아니라 새로운 채널 구성을 생성하기 위해 향후 향상 될 예정입니다.


Configuration Profiles(구성 프로파일)

configtxgen도구에 제공된 구성 매개 변수는 주로 configtx.yaml 파일에서 제공합니다. 이 파일은 fabric.git 저장소의 fabric/sampleconfig/configtx.yaml에 있습니다.

이 구성 파일은 주로 세 부분으로 나뉩니다.

  1. Profiles 섹션. 기본적으로 이 섹션에는 시나리오 개발 또는 테스트에 사용할 수있는 샘플 구성이 포함되어 있으며 fabric.git 트리에있는 암호화 자료를 참조하십시오. 이 프로파일은 실제 전개 프로파일을 구성하기위한 좋은 시작점이 될 수 있습니다. configtxgen 도구를 사용하면 -profile 플래그를 전달하여 작동중인 프로필을 지정할 수 있습니다. 프로필은 모든 구성을 명시적으로 선언 할 수 있지만 일반적으로 아래 (3)의 기본값에서 구성을 상속받습니다.
  2. Organizations 섹션. 기본적으로이 섹션에는 sampleconfig MSP 정의에 대한 단일 참조가 포함됩니다. 프로덕션 배포의 경우 샘플 조직을 제거해야하며 네트워크 구성원의 MSP 정의를 대신 참조하고 정의해야합니다. Organizations 섹션의 각 요소는  Profiles섹션에서 정의를 참조 할 수 있도록 &orgName과 같은 앵커 레이블로 태그를 지정해야합니다.
  3. 기본 섹션. Orderer 및 Application 구성에 대한 기본 섹션이 있으며 BatchTimeout과 같은 속성을 포함하며 일반적으로 프로파일의 기본 상속 값으로 사용됩니다.

이 구성 파일을 편집하거나 CONFIGTX_ORDERER_ORDERERTYPE=kafka와 같은 환경 변수를 설정하여 개별 등록 정보를 무시할 수 있습니다. Profiles 요소 및 프로필 이름은 지정하지 않아도 됩니다.


Bootstrapping the orderer(Orderer를 부트스트랩하기)

원하는대로 구성 프로파일을 작성한 후, 간단히 호출하십시오

configtxgen -profile <profile_name>

그러면 현재 디렉토리에 genesis.block파일이 생성됩니다. 선택적으로 -path 매개 변수를 전달하여 다른 파일 이름을 지정하거나 단순히 파일 구문 분석을 테스트하려는 경우 dryRun 매개 변수를 전달하여 파일 쓰기를 건너 뛸 수 있습니다.

그런 다음이 시작 블록을 사용하려면 순서 지정자를 시작하기 전에 ORDERER_GENERAL_GENESISMETHOD=file 및 ORDERER_GENERAL_GENESISFILE=$PWD/genesis.block을 지정하거나이 값을 코드화하도록 orderer.yaml파일을 수정하십시오.


Creating a channel(채널 만들기)

이 도구는 또한 실행을 통해 채널 생성 tx를 출력 할 수 있습니다.

configtxgen -profile <profile_name> -channelID <channel_name> -outputCreateChannelTx <tx_filename>

이렇게하면 채널을 만들기 위해 브로드 캐스트로 보내질 수있는 마샬링 된 봉투 메시지가 출력됩니다.


Reviewing a configuration(구성 검토)

구성을 만드는 것 외에도 configtxgen 도구는 구성을 검사 할 수도 있습니다.

구성 블록 및 구성 트랜잭션을 모두 검사 할 수 있습니다. inspect 플래그 -inspectBlock  및 -inspectChannelCreateTx를 파일 경로로 사용하여 검사하여 구성의 사람이 읽을 수있는 (JSON) 표현을 출력할 수 있습니다.

아래의 예처럼 검사를 생성과 결합하고자 할 수도 있습니다.

$ build/bin/configtxgen -channelID foo -outputBlock foo.block -inspectBlock foo.block
2017/03/01 21:24:24 Loading configuration
2017/03/01 21:24:24 Checking for configtx.yaml at:
2017/03/01 21:24:24 Checking for configtx.yaml at:
2017/03/01 21:24:24 Checking for configtx.yaml at: /home/yellickj/go/src/github.com/hyperledger/fabric/common/configtx/tool
2017/03/01 21:24:24 map[orderer:map[BatchSize:map[MaxMessageCount:10 AbsoluteMaxBytes:99 MB PreferredMaxBytes:512 KB] Kafka:map[Brokers:[127.0.0.1:9092]] Organizations:<nil> OrdererType:solo Addresses:[127.0.0.1:7050] BatchTimeout:10s] application:map[Organizations:<nil>] profiles:map[SampleInsecureSolo:map[Orderer:map[BatchTimeout:10s BatchSize:map[MaxMessageCount:10 AbsoluteMaxBytes:99 MB PreferredMaxBytes:512 KB] Kafka:map[Brokers:[127.0.0.1:9092]] Organizations:<nil> OrdererType:solo Addresses:[127.0.0.1:7050]] Application:map[Organizations:<nil>]] SampleInsecureKafka:map[Orderer:map[Addresses:[127.0.0.1:7050] BatchTimeout:10s BatchSize:map[AbsoluteMaxBytes:99 MB PreferredMaxBytes:512 KB MaxMessageCount:10] Kafka:map[Brokers:[127.0.0.1:9092]] Organizations:<nil> OrdererType:kafka] Application:map[Organizations:<nil>]] SampleSingleMSPSolo:map[Orderer:map[OrdererType:solo Addresses:[127.0.0.1:7050] BatchTimeout:10s BatchSize:map[MaxMessageCount:10 AbsoluteMaxBytes:99 MB PreferredMaxBytes:512 KB] Kafka:map[Brokers:[127.0.0.1:9092]] Organizations:[map[Name:SampleOrg ID:DEFAULT MSPDir:msp BCCSP:map[Default:SW SW:map[Hash:SHA3 Security:256 FileKeyStore:map[KeyStore:<nil>]]] AnchorPeers:[map[Host:127.0.0.1 Port:7051]]]]] Application:map[Organizations:[map[Name:SampleOrg ID:DEFAULT MSPDir:msp BCCSP:map[Default:SW SW:map[Hash:SHA3 Security:256 FileKeyStore:map[KeyStore:<nil>]]] AnchorPeers:[map[Port:7051 Host:127.0.0.1]]]]]]] organizations:[map[Name:SampleOrg ID:DEFAULT MSPDir:msp BCCSP:map[Default:SW SW:map[Hash:SHA3 Security:256 FileKeyStore:map[KeyStore:<nil>]]] AnchorPeers:[map[Host:127.0.0.1 Port:7051]]]]]
2017/03/01 21:24:24 Generating genesis block
2017/03/01 21:24:24 Writing genesis block
2017/03/01 21:24:24 Inspecting block
2017/03/01 21:24:24 Parsing genesis block
Config for channel: foo
{
    "": {
        "Values": {},
        "Groups": {
            "/Channel": {
                "Values": {
                    "HashingAlgorithm": {
                        "Version": "0",
                        "ModPolicy": "",
                        "Value": {
                            "name": "SHA256"
                        }
                    },
                    "BlockDataHashingStructure": {
                        "Version": "0",
                        "ModPolicy": "",
                        "Value": {
                            "width": 4294967295
                        }
                    },
                    "OrdererAddresses": {
                        "Version": "0",
                        "ModPolicy": "",
                        "Value": {
                            "addresses": [
                                "127.0.0.1:7050"
                            ]
                        }
                    }
                },
                "Groups": {
                    "/Channel/Orderer": {
                        "Values": {
                            "ChainCreationPolicyNames": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "names": [
                                        "AcceptAllPolicy"
                                    ]
                                }
                            },
                            "ConsensusType": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "type": "solo"
                                }
                            },
                            "BatchSize": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "maxMessageCount": 10,
                                    "absoluteMaxBytes": 103809024,
                                    "preferredMaxBytes": 524288
                                }
                            },
                            "BatchTimeout": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "timeout": "10s"
                                }
                            },
                            "IngressPolicyNames": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "names": [
                                        "AcceptAllPolicy"
                                    ]
                                }
                            },
                            "EgressPolicyNames": {
                                "Version": "0",
                                "ModPolicy": "",
                                "Value": {
                                    "names": [
                                        "AcceptAllPolicy"
                                    ]
                                }
                            }
                        },
                        "Groups": {}
                    },
                    "/Channel/Application": {
                        "Values": {},
                        "Groups": {}
                    }
                }
            }
        }
    }
}


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함