안녕하세요! cillic입니다.
저희가 저번시간까지 하이퍼레져 패브릭 환경설정을 하고, 예제파일을 다운 받았고
처음 예제인 Bulid Your First Network(BYFN)의 실행까지 해보았습니다.
아직 못하신분은 아래의 링크를 따라 설정해주세요!
1. 하이퍼레저 패브릭 환경설정
2. 하이퍼레저 패브릭 예제파일 다운로드
이번시간에는 BYFN이 어떻게 돌아가는지 확인을 해보려고 합니다.
아직 저도 컴퓨터 개발 분석 및 하이퍼레져에 대한 깊은 지식이 없어, 제가 아는대로 설명하고자 하니 틀린부분이 있거나 이해가 안가는점, 등등을 지적해주시면 정말 감사하겠습니다.
저번시간에는 BYFN Genrate와 BYFN up까지 모두 실행을 하였는데요,
오늘은 genreate에 대한 간단히 알아보도록 하겠습니다.
./byfn.sh -m generate
를 실행하면 제너시스 블럭 및 인증서를 생성 한다고 하였습니다.
어떤 과정을 거치는지 확인해보기 위해 byfn.sh 파일을 살펴보도록 하겠습니다.
위의 그림과 같이 처음 시작 부분을 찾아보니, 우리가 입력한 MODE부분이 어떤건지 EXPMODE에 설정하는 부분이 있고, generate를 실행했을 경우에는
generateCerts
replacePrivateKey
generateChannelArtifacts
세 함수가 실행되는것을 확인할수가 있었습니다. 일단 함수명을 통해 인증서 만들고 프라이빗키 대체하고 채널에 대한 설정을 한다고 대략적으로 알수가 있는데요
결국 에러 검사를 하다가,
cryptogen generate --config=./crypto-config.yaml
cryptogen 툴을 이용하여 .crypto-config.yaml에 있는 내용을 실행 생성한다.
아직 확실하게 어떻게 이루어지는 모르겠지만 대략적으로
내용을보면 ordereOrgs의 Name와 Domain을 설정해주고
또한 PeerOrgs의 Namer과 Domain을 설정해준다는것을 알수가 있네요
정식문서에 있는 내용을 해석해보면
큰 그림으로 보면 Order 조직과 PeerOrgs- [Org1(2개의 피어), Org2(2개의피어)] 로 이루어지는걸 알수 있습니다.
아직은 이정도로 이해할수밖에 없는 상황이네요 ㅠㅠ 부끄부끄
다음은 docker-compose-2-2-template.yaml 파일을 이용하여 원하는 경로 파일을 만들고
PRIV_KEY를 옮겨주는 것을 대략적으로 확인할수가 있습니다.
아직 yaml에 있는 파일에 대한 정확한 해석은 뒤로 넘기도록 하겠습니다.
다음은 ororder genesis block, channel configuration transaction , anchor peer update transcation을 생성하는 함수입니다.
일단 echo문이 많은것을 확인할수가 있는데요, 이 함수에서 하는 일은
configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate
./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
등과 같이 configtxgen 을 이용하여 genesis block, Org1Mspanchor, channel 등을 생성합니다.
즉 4개의 구성 아티팩트를 생성하고 있져
더 자세한 상황을 알기 위해서는 configtxgen을 확인해보아야겠져?
configtxgen은 configtx.yaml 파일을 참고하면 알수 있는데요
개별 멤버의 MSP 폴더 지정해주고, Org의 루트 인증서를 발주자 제너시스 블럭에 저장하도록 해줍니다.
이렇게 대략적으로 byfn.sh generate 명령어를 사용하여 제너시스 블럭과 인증서를 생성하는것을 확인할수가 있었습니다. 물론 자세하게 살펴보지는 않았지만, 이정도로 구성되어 있고 어떠어떠한 역할을 하고 있다 라고만 알아 봤는데요, 더 자세한 내용은 천천히 분석하면서 살을 붙이도록 하겠습니다.
다음에는 네트워크 시작하는 부분을 알아보도록 하겠습니다.
감사합니다. 열공하세요!