오픈소스
퍼비션드 블록체인?
인터넷뱅킹처럼 인증을 거쳐
디자인 목적
기업환경에서 사용하기 위한 블록체인 기술 개발
sdk를 통해 transaction 처리된다.
모든 클라이언트는 패브릭 SDK를 사용하여
원장 관리 컴포넌트
– 한 개 이상의 채널에 연결됨
– 각 채널에 대해서 한 개 이상의 원장을 관리
– 체인코드는 도커 컨테이너로 분리되어 인스턴스화 됨
– 체인코드는 채널을 통해 공유 됨
– Local MSP (Membership Services Provider) 는 암호화 방식을 제공
– 클라이언트 어플리케이션에 이벤트 발생
• 블록체인과 worldstate를 포함하고 있는 패브릭 원장은 각 피어에 의해 유지 됨
• 피어가 조인하는 각 채널에 대해 별도의 원장이 생성/관리 됨
• 트랜잭션의 Read/Write sets 는 블록 체인에 기록 됨
• 채널의 구성 정보도 블록 체인에 기록 됨 • worldstate는 LevelDB (기본값) 또는 CouchDB 선택 가능함 – LevelDB는 key/value 스토어 – CouchDB는 도큐먼트 스토어
• 스마트 컨트랙트에서 worldstate에 데이터를 입력 함
트랜잭션들을 블록으로 패키징하여 피어에게 전달하는 역할을 담당함. 채널을 통해 Ordering service와 통신 함.
채널은 서로 다른 원장간 프라이버시를 제공 함
– 원장은 채널의 범위로 한정 됨
• 피어의 전체 네트워크에서 채널을 공유할 수 있음
• 특정한 참여자 그룹 별로 채널 권한을 부여할 수 있음
– 체인코드는 피어에 설치되며 worldstate에접속할 수있음
– 체인코드 특정 피어에서 인스턴스화 됨
– 피어는 멀티 채널에 참여 할수있음
– 퍼포먼스와 확장성을 고려하여 동시에 실행 가능함
api명세 같은 것. 인증하기 위한 기능 요약
• 다양한 인증 아키텍처(Credential architectures)를 지원하는 플러그 형 인터페이스
• 기본 구현체는 Fabric-CA
• 애플리케이션, 사용자, 피어, 오더러의 인증을 관리
• 제공되는 기능
– 자격 증명(Credential verification)을 포함한 사용자 인증(User authentication)
– 서명 생성 및 검증
– Access control (in system, channel, chaincode)
Membership Service 의 인증을 위한 기능 요약 구현한 것
• 패브릭 네트워크에서 Ecerts를 발행하는 CertificateAuthority
• HA를 위한 클러스터링 지원
• 사용자 인증을 위한 LDAP지원
• 보안을 위한 HSM 지원
• Intermediate CA를 위한 설정 가능
cliend application : 블록체인 트랜잭션 발행함
SDK를 통해 스마트컨트랙트 호출
cliend application -> sdk -> smart contract 로직 수행하다 로직중 블록체인의 원장을 불러와야할 경우 get(key). 사용할 때는 put(key-value). 삭제는 delete(실제 삭제가 아닌 삭제 마킹). hash table
스마트컨트렉트 사용에 대한 이력은 Blockchain에 남긴다.
트랜잭션을 비동기로 처리할 수 밖에 없다.
👉 블록체인은 Data Layer에 해당한다.
응용 프로그램 거래 제안
보증 정책 :
• "E0, E1 및 E2는 서명해야합니다"
• (P3, P4는 정책의 일부가 아님)
클라이언트 응용 프로그램은 스마트 계약 A에 대한 거래 제안서를 제출합니다.
필수 피어 {E0, E1, E2}를 대상으로해야합니다.