Hyperledger Fabric [2] (Algorithm, Protocol, Architecture)
2023. 6. 13. 21:47ㆍBlockchain/Hyperledger Fabric
728x90
반응형
※ 원글 작성 : 22년 4월 27일
MVCC conflict
- MVCC : DBMS가 다수 사용자 사이에 작용 시 상호 간섭으로부터 DB를 보호
- DB에서 데이터 업데이트 시 기존 항목을 새로운 데이터가 overwrite하고 데이터 항목의 새로운 버전 생성
- Fabric 상에서 MVCC_READ_CONFLICT err 발생
- Fabric도 MVCC를 이용해 state DB 관리
- 미사용 데이터 버전 정리 및 데이터 버전 충돌을 어플리케이션 영역에서 해결
- 해당 err는 데이터 버전 충돌로 발생, Fabric에서 블록을 peer에 최종적으로 commit 전 블록 내의 transaction을 검증하는 단계에서 발생
- 해결책
- 동일한 키에 대해 서로 다른 값을 업데이트하는 transaction들을 한 블록에 담지 않도록함
- Batchtimeout 시간을 조절하여 transaction이 한 블록안에 담길 확률을 낮춤
- MVCC_READ_CONFLICT 에러를 캐치하여 해당 트랜잭션에 대해 재전송 후 처리
- Queue를 통해 한 트랜잭션 씩 전송
- 동일한 키에 대해 서로 다른 값을 업데이트하는 transaction들을 한 블록에 담지 않도록함
MSP
- Membership Service Provider
- 인증서 발급/검증, 사용자 및 서비스의 신원 확인 수행
- MSP 내 이름/ID 존재하여 해당 항목들을 토대로 membership rule을 따름
- 수행 역할
- 시스템 레벨 : 채널 생성 수행
- 채널 레벨에 : Read/Write 컨트롤
- 체인코드 레벨 : 함수호출 제한
- Global/Local MSP
- Global MSP : Chain network 및 channel에 참여한 모든 구성원에 적용
- Channel MSP : 채널에 참여하는 Org를 식별, 채널 관리권한 설정(by channel policy)
- Network MSP : 네트워크 참여 Org를 식별, Org 또는 user가 BC 네트워크에 참여할지 확인, 네트워크 관리 권한(e.g. 채널 생성) 보유 참여자 식별
- Local MSP : peer/orderer 등 시스템에 탑재, MSP를 통해 식별이나 제어 가능한 대상이 탑재된 노드에 한정
- Peer MSP : 피어 파일 시스템에 탑재, channel MSP와 비슷하지만 관리 범위는 해당 peer에 한정, 소속 Org의 노드를 식별하거나 체인코드 설치 가능 피어인지 검증
- Orderer MSP : OSN에 탑재되어 자신이 소속된 조직의 신뢰 가능한 노드 식별
- Global MSP : Chain network 및 channel에 참여한 모든 구성원에 적용
CA
- Fabric CA가 docker container 상에서 ps 존재
- MSP를 구성
- MSP를 통해 channel 관리 권한이나 접근 권한을 컨트롤
Leader peer/Anchor peer
- Leader peer
- Orderer로 부터 수신한 블록을 다른 peer로 공유
- Leader peer에 문제가 생기면 리더 선출을 통해 새로운 리더피어 선출, orderer에게 변경 사실 전달
- Anchor peer
- Org 간의 peer 정보 교환
- 어떤 조직의 peer 하나에 proposal을 보내도 모두에게 적용
- Update 후 anchor peer는 설정하지않아도 된다
Gossip protocol
- Orderer가 블록 생성 후 commiter에게 전달하고 이 블록을 검증 저장할 때 gossip 사용
- Orderer는 모든 peer와 comm 하는게 아니라 Org 별 대표 peer 하나에 알리면 해당 peer(leader peer)가 gossip을 통해 전체로 전달
- Peer 간 sync를 맞추는데도 사용
참고
https://hamait.tistory.com/983
https://velog.io/@byron1st/Hyperledger-Fabric%EC%97%90%EC%84%9C%EC%9D%98-MVCC-Read-Conflict
728x90
반응형
'Blockchain > Hyperledger Fabric' 카테고리의 다른 글
Hyperledger Fabric [1] (Transaction, Block) (0) | 2023.06.13 |
---|