[HyperLedger Fabric 개발하기] 3. 하이퍼레저 패브릭 BYFN(Bulid Your First Network) 분석하기-1

in #kr6 years ago (edited)
  • 모든 저작권은 hyperledger fabirc v1.1.0에 있습니다.

안녕하세요! cillic입니다.
저희가 저번시간까지 하이퍼레져 패브릭 환경설정을 하고, 예제파일을 다운 받았고
처음 예제인 Bulid Your First Network(BYFN)의 실행까지 해보았습니다.
아직 못하신분은 아래의 링크를 따라 설정해주세요!

1. 하이퍼레저 패브릭 환경설정
2. 하이퍼레저 패브릭 예제파일 다운로드

이번시간에는 BYFN이 어떻게 돌아가는지 확인을 해보려고 합니다.
아직 저도 컴퓨터 개발 분석 및 하이퍼레져에 대한 깊은 지식이 없어, 제가 아는대로 설명하고자 하니 틀린부분이 있거나 이해가 안가는점, 등등을 지적해주시면 정말 감사하겠습니다.

참고사이트 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/build_network.html

logo_hl_new.png

1. 하이퍼레져 패브릭 BYFN 분석하기-1

저번시간에는 BYFN Genrate와 BYFN up까지 모두 실행을 하였는데요,
오늘은 genreate에 대한 간단히 알아보도록 하겠습니다.

1-1 byfn.sh generate

./byfn.sh -m generate

를 실행하면 제너시스 블럭 및 인증서를 생성 한다고 하였습니다.
어떤 과정을 거치는지 확인해보기 위해 byfn.sh 파일을 살펴보도록 하겠습니다.

이미지 31.png

위의 그림과 같이 처음 시작 부분을 찾아보니, 우리가 입력한 MODE부분이 어떤건지 EXPMODE에 설정하는 부분이 있고, generate를 실행했을 경우에는

generateCerts
replacePrivateKey
generateChannelArtifacts

세 함수가 실행되는것을 확인할수가 있었습니다. 일단 함수명을 통해 인증서 만들고 프라이빗키 대체하고 채널에 대한 설정을 한다고 대략적으로 알수가 있는데요

1-1-1 generateCerts

이미지 32.png

결국 에러 검사를 하다가,

cryptogen generate --config=./crypto-config.yaml

cryptogen 툴을 이용하여 .crypto-config.yaml에 있는 내용을 실행 생성한다.

이미지 33.png

아직 확실하게 어떻게 이루어지는 모르겠지만 대략적으로
내용을보면 ordereOrgs의 Name와 Domain을 설정해주고
또한 PeerOrgs의 Namer과 Domain을 설정해준다는것을 알수가 있네요

정식문서에 있는 내용을 해석해보면

  1. X.509 인증서를 필요로 한다
  2. 각 조직과 조직에 속한 구성 요소 모두에 대한 인증서와 키 세트를 생성한다.
  3. 각 조직에 자체 CA 인증서를 할당하여 자체 인증 기관 네트워크를 모방한다
  4. 트랜잭션 및 통신은 엔티티의 개인키로 사인되고 공개키로 검증된다.

큰 그림으로 보면 Order 조직과 PeerOrgs- [Org1(2개의 피어), Org2(2개의피어)] 로 이루어지는걸 알수 있습니다.

아직은 이정도로 이해할수밖에 없는 상황이네요 ㅠㅠ 부끄부끄


1-1-2 replacePrivateKey

replacePrivateKEy.png

다음은 docker-compose-2-2-template.yaml 파일을 이용하여 원하는 경로 파일을 만들고
PRIV_KEY를 옮겨주는 것을 대략적으로 확인할수가 있습니다.

아직 yaml에 있는 파일에 대한 정확한 해석은 뒤로 넘기도록 하겠습니다.

1-1-3 generateChannelArtifacts

다음은 ororder genesis block, channel configuration transaction , anchor peer update transcation을 생성하는 함수입니다.

generateChannelArtificate.png

일단 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개의 구성 아티팩트를 생성하고 있져

  1. Ordere Gensis Block : 순서서비스를 위한 제너시스 블럭
  2. Channel configuration transaction
  3. org1의 anchor peer transcation
  4. org2의 anchor peer transcation

더 자세한 상황을 알기 위해서는 configtxgen을 확인해보아야겠져?

configtxgen은 configtx.yaml 파일을 참고하면 알수 있는데요
개별 멤버의 MSP 폴더 지정해주고, Org의 루트 인증서를 발주자 제너시스 블럭에 저장하도록 해줍니다.

이렇게 대략적으로 byfn.sh generate 명령어를 사용하여 제너시스 블럭과 인증서를 생성하는것을 확인할수가 있었습니다. 물론 자세하게 살펴보지는 않았지만, 이정도로 구성되어 있고 어떠어떠한 역할을 하고 있다 라고만 알아 봤는데요, 더 자세한 내용은 천천히 분석하면서 살을 붙이도록 하겠습니다.

다음에는 네트워크 시작하는 부분을 알아보도록 하겠습니다.
감사합니다. 열공하세요!

Sort:  

Congratulations @cillic! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 64741.88
ETH 3457.21
USDT 1.00
SBD 2.55