프라이빗블록체인소개와경량맞춤형블록체인 (it-chain) 구현사례공유 Kosslab 5 기전담개발자 이준범 2018-10-18
소개 이준범 Kosslab 5기전담개발자 카이스트소프트웨어아키텍처연구실석사졸업 중앙대학교컴퓨터공학부졸업 취미 : 카페에서코딩하기 관심분야 : 소프트웨어아키텍처, 머신러닝 ( 딥러닝,NMT), 블록체인 Github: https://github.com/junbeomlee
목차 프라이빗블록체인 -프라이빗블록체인이란? -Hyperledger Fabric, Sawtooth It-chain -오픈소스커뮤니티소개 -It-chain 아키텍처와합의알고리즘오픈소스커미터로블록체인개발하기
프라이빗블록체인
퍼블릭블록체인이란? 퍼블릭블록체인 네트워크에참여한모든참여자가전체장부를공유하고, 대조를통해거래를안전하게만드는기술 https://goo.gl/8awzmg
프라이빗블록체인이란? 프라이빗블록체인 허가된참여자들간장부를공유하고, 대조를통해거래를안전하게만드는기술
프라이빗블록체인이란? Why 프라이빗블록체인? 퍼블릭블록체인의한계 속도 ( 비트코인 7TPS, 이더리움 10TPS) 비용 (Mining에사용되는전기 ) 선별적정보공유의필요성 기존의기업과정부기관의구조에적합
Hyperledger Hyperledger 프로젝트란? 리눅스재단에서주관하는블록체인오픈소스프로젝트 금융, 물류, 제조, 기술산업등여러산업에응용가능한블록체인개발
Hyperledger Fabric 특징 Modular and configurable architecture Order service Membership service Ledger Endorsement and validation policy Support general-purpose programming languages(chaincode) Java, Go, Node.js Permissioned network Pluggable consensus protocols
Hyperledger Fabric 아키텍처
Hyperledger Fabric Kafka in hyperledger fabric
Hyperledger Sawtooth 특징 Separation between the application level and core system Transaction processor(application level) Validator(Core system) Parallel Transaction Execution Event System Pluggable consensus algorithms
Hyperledger Sawtooth 아키텍처
Hyperledger Sawtooth Poet(Proof of elapsed time) 1. PoET stochastically elects individual peers to execute requests at a given target rate 2. Individual peers sample an exponentially distributed random variable and wait for an amount of time dictated by the sample. 3. The peer with the smallest sample wins the election
Hyperledger Sawtooth Poet(Proof of elapsed time) Fairness: The function should distribute leader election across the broadest possible population of participants. Investment: The cost of controlling the leader election process should be proportional to the value gained from it. Verification: It should be relatively simple for all participants to verify that the leader was legitimately selected.
It-chain 경량맞춤형 (Customizable and lightweight) 블록체인
It-chain 오픈소스커뮤니티 It-chain 오픈소스커뮤니티 (2018/01 ~ 진행중 ) Github: https://github.com/it-chain/engine 컨트리뷰터 : 24명 Star: 109 Commit: +2000
It-chain 오픈소스커뮤니티 제주도합숙코딩
It-chain 오픈소스커뮤니티 토요일정기미팅
It-chain 목표 중소규모커뮤니티에서유연하고자유롭게이용가능한 경량맞춤형블록체인엔진 개발및 블록체인코어공부 핵심서비스의모듈화를통해목적에맞게쉽게교체가능하도록개발 핵심서비스교체시많은부분을수정하지않도록개발 It-chain IVM EVM PBFT PoW
It-chain - Architecture 핵심요구사항 제 3 자가손쉽게수정 / 확장가능 오픈소스로쉽게개발될수있도록, 최대한개발자들이다른컴포넌트의변화에간섭받지않고개발을진행 중앙관리자없는 P2P 구조 기본적인블록체인기능들 ( 블록저장, 합의, 인증 ) 을지원 Consensus 는 PBFT 를지원
It-chain - Architecture 아키텍처설계 제 3 자가손쉽게수정 / 확장가능 오픈소스로쉽게개발될수있도록, 최대한개발자들이다른컴포넌트의변화에간섭받지않고개발을진행 핵심기능을지원하는컴포넌트들을완전히독립적으로구성 Event driven 아키텍처스타일도입 중앙관리자없는 P2P 구조 P2P Network 구성 기본적인블록체인기능들 ( 블록저장, 합의, 인증 ) 을지원 Block storage 컴포넌트 Authentication 컴포넌트 Consensus 컴포넌트 Consensus 는 PBFT 를지원 Transaction pool 컴포넌트, 리더노드개념도입
It-chain - Architecture It-chain Network It-chain network 는 it-chain node 들로구성된 P2P network 모든 Node 들은서로연결됨 Leader 와 Peer 로구성 (PBFT)
It-chain - Architecture It-chain Node Architecture it-chain 은 6 개의독립적으로동작하는핵심컴포넌트들로구현되며각각은 AMQP(Asynchronous Message Queue Protocol) 를통해커뮤니케이션한다.
It-chain - Architecture 아키텍처문서 Link: https://github.com/it-chain/engine/blob/develop/architecture-kr.md 20 Page
It-chain - Consensus 비잔틴장군문제 5 명중 3 명이상의장군들이같은시각에공격해야만승리 장군들중에서배신자가있어서서로신뢰할수없음
It-chain - Consensus Consensus 알고리즘 분산프로세스또는시스템간의단일데이터값에대한합의를달성하는데사용되는알고리즘 여러개의신뢰할수없는노드가포함된네트워크에서안정성을달성하도록설계 비잔틴장군문제해결
It-chain - Consensus PBFT 1999 년 Miguel Castro 와 Barbara Riskop 에의해도입된알고리즘 네트워크의모든노드는사전에알고있어야하며, 한노드는리더
It-chain - Consensus Tendermint
It-chain - Consensus It-chain Consensus 알고리즘 Permissioned P2P Network(Private Network) 소수의노드로구성 빠른합의속도 PBFT Consensus 알고리즘사용
It-chain 진행상황 8 월 Solo 모드구현완료 10 월초 PBFT 알파버전 ( 매우불안정 ) ICode 튜토리얼제공중 https://github.com/junbeomlee/learn-icode https://github.com/it-chain/engine/blob/develop/doc/tutorial.md https://www.youtube.com/watch?v=ivvhqk2er14
오픈소스커미터로블록체인개발하기
오픈소스커미터로블록체인개발하기 - 시작
오픈소스커미터로블록체인개발하기 팀구성 Nexters 연합개발동아리 5 명의개발자, 3 명의디자이너
오픈소스커미터로블록체인개발하기 준비 Coding Style TDD Documentation Template(Issue, Pull request) Issue CI Test coverage?
오픈소스커미터로블록체인개발하기 힘듦 월간커밋수 140 120 100 80 60 40 20 0 코드리뷰 1 월 2 월 3 월 4 월 5 월 6 월 7 월 8 월 9 월? 이슈등록 새컨트리뷰터멘토링 Commit
오픈소스커미터로블록체인개발하기 즐거움 열정적인팀원 ( 매주 2 회오프라인미팅 ) 들의자극 코드리뷰를통해함께성장 독자를고려한코딩의습관
THANK YOU