네트워크 생성 channel configuration: configuration block 개발 디렉터리: configtxgen - configtx.yaml configuration block: policies and organizations
org identities 생성 각각의 CA(Certificate Authority) CA: 조직에 어떤 identity가 속해있는지 식별하는 것: X.509 certificates 개발 용어: Fabric-CA X.509 certificates 사용: 애플리케이션 트랜잭션 제안 or 트랜잭션 응답 즉, certificate는 sign transactions에 사용됨
MSP: Root certificate(CA를 org에 매핑하는 것)에 연결됨 ※ MSP 구조 읽어보기!
채널에 노드 참가 피어는 조직이 적절하다고 생각하는 만큼의 채널에 속할 수 있습니다. ref: https://github.com/hyperledger/fabric-samples/blob/main/test-network/compose/docker/peercfg/core.yaml
피어는 조직이 적절하다고 생각하는 만큼의 채널에 속할 수 있습니다. (피어 포드의 처리 제한 및 특정 국가에 존재하는 데이터 상주 규칙과 같은 요인에 따라 다름) docker CPU, memory 사용률 (3.8G, NetIO, RWI/O, process or thread 수)
ordering service는 particular channel에 고유함. 채널마다 단 한개의 ordering service, but, 운영에서는 적어도 3개
체인코드 설치, 승인, 커밋 (lifecycle) 다른 org가 다른 ledger와 상호작용.
체인코드는 관련 peer에 설치 -> peer가 속한 org의 승인 -> channel에 커밋됨 예시: 모든 peer에 체인코드를 설치 (모든 체인코드가 org에 필요없지만 + OSN은 필요없음[why? 트랜잭션을 제안하지 않기 때문]) why: 모든 peer가 트랜잭션을 endorse 체인코드 정의에 가장 중요한 부분은 endorsement policy. why? 어떤 조직이 거래를 보증하는지! endorsement policy는 channel orgs들이 설정. 그리고 channel configuration에 상속받음. private data는 제외
채널에서 애플리케이션 사용
다른 새로운 채널에 peer를 참여시키는 방법
존재하는 채널에 조직을 참여시키는 방법
permission and access(Public Key Infrastructure (PKI)) based X.509 certificates MSP: defines the rules
PKI: 다양한 유형의 검증가능한 신원들을 제공. MSP: 상점 결제 네트워크의 신뢰된 구성원이라는 점을 제공.
PKI 란?
개인정보 노출 -> 인증서 폐지
Digital Certificates Public and Private Keys Certificate Authorities Certificate Revocation Lists
Digital Certificates
공개키는 cert에 배포되지만 개인키는 배포되지 않음. 인증서 발급자를 신뢰한다면 Mary cert로 신원을 증명할 수 있음
인증, 공개키와 개인키(integrity) 인증에는 메시지를 교환하는 당사자가 특정 메시지를 생성한 신원을 확인해야 합니다. Traditional authentication mechanisms: digital signatures 공개 키: 인증 역할(즉, 이 메시지는 내가 전송한 것을 증명해) 개인 키: 서명 생성 역할(즉, 봐봐 내 서명이 들어가있잖아!) 증명(즉, 내 메시지+공개키를 사용해서 해시값이 맞는지 확인해봐)
Certificate Authorities
Root CAs, Intermediate CAs Root CA: 인증서를 분산시키게 효율적 Intermediate CA: chain of trust를 보장하는 RCA or ICA에 의해 발행
Fabric CA
Certificate Revocation Lists CA는 이런저런 이유로 해지된 것을 알고 있습니다.
인증 관리 시스템 (네트워크 내 노드의 역할과 권한 등이 정의됨)
MSP(Membership Service Provider)
What? 시스템의 모든 노드(client, peer, OSN)의 identity maintain & 인증과 권한에 사용되는 credential 발행
필요한 이유
chain of trust을 어떻게 사용하는지?
MSP는 피어가 트랜잭션을 보증할 수 있는지 확인하는 데 사용
해당 ID를 신뢰하고 인식할 수 있도록 하는 메커니즘
여러가지 identities가 있는데, 허용되는 CA를 결정하는 것임.
신원을 역할(role)로 바꾸는 것.
채널, 조직, 노드에서 '무엇을 할 수 있는지' 결정
네트워크 내에서 구성원에게 일련의 역할 및 권한을 제공
orgMSP: 조직에서 신뢰하는 CA를 결정 orgMSP: 채널에 추가되었는지 확인 MSP: 네트워크의 정책 정의에 포함되어 있는지 확인
무엇이냐? implementation: 네트워크 구성에 추가되는 폴더 집합 허가된 ID 목록을 포함. ID -> role로 바꿈. (e.g., node인지 channel인지)
MSP domains
Local MSPs(org level)
Channel MSPs(channel level)
org의 role
Organizational Units (OUs) and MSPs organizational units: 조직에서 부서같은 느낌(더 세부적으로 조직화하는 것) -> attribute-based access control
Node OU Roles and MSPs 개발디렉터리: $FABRIC_CFG_PATH/msp/config.yaml /msp: cert 생성 /signcerts: public key
MSP Structure MSP Structure config.yaml cacerts intermediatecerts admincerts keystore(private key) signcer(public key) tlscacerts tlsintermediatecerts operationscerts Revoked Certificates
무엇인가?
왜 필요한가? governance 때문.