Slide 1

Slide 1 text

프라이빗 블록체인 it-chain 개발기 이준범 1

Slide 2

Slide 2 text

소개 2 이준범 • Kosslab 5기 전담 개발자 • 관심 분야: 소프트웨어 아키텍처, 머신러닝(딥러닝,NMT), 블록체인 • Github: https://github.com/junbeomlee • 최근 진행중인 프로젝트 koa: 스마트 컨트랙트 언어

Slide 3

Slide 3 text

목차 3 1. It-chain • It-chain 커뮤니티 소개 • It-chain 아키텍처 및 구현 • It-chain 합의 알고리즘 • It-chain 스마트 컨트랙트 2. 오픈소스 커미터로 블록체인 개발하기

Slide 4

Slide 4 text

It-chain 4

Slide 5

Slide 5 text

It-chain 오픈소스 커뮤니티(De-labtory) 5 • 분산 플랫폼과 관련된 여러 프로젝트를 진행 • 다양한 protocol 연구 및 개발

Slide 6

Slide 6 text

It-chain 6 • Github: https://github.com/De-labtory/engine • 컨트리뷰터: 27명 • Star: 130 • Commit: +2200

Slide 7

Slide 7 text

It-chain - 시작 7 Bitcoin Ethereum Solidity Hyperledger PoW MerkleTree Transaction Block PrivateKey Hash Signing

Slide 8

Slide 8 text

It-chain - 목표 8 1. 블록체인 코어 공부 2. 경량 맞춤형 블록체인 엔진 • 핵심 서비스의 모듈화를 통해 목적에 맞게 쉽게 교체 가능 하도록 개발 3. 국내 블록체인 오픈소스 활성화 It-chain PBFT PoW IVM EVM

Slide 9

Slide 9 text

It-chain ­ 요구사항 9 • 요구사항 • 제3자가 손쉽게 수정/확장할 수 있으면 좋겠음 • 오픈소스로 해야 하니까, 최대한 개발자들이 자기 영역에서 간섭받지 않고 개발을 진행할 수 있으면 좋겠군 • 중앙 관리자 없이 P2P구조를 가져야 할 것 같아 • 기본적인 블록체인 기능들(블록저장, 합의, 인증)을 지원해야해 • Consensus는 PBFT를 지원하면 좋겠어

Slide 10

Slide 10 text

It-chain ­ 설계 10 • 아키텍처 설계 • 제3자가 손쉽게 수정/확장할 수 있으면 좋겠음 • 오픈소스로 해야 하니까, 최대한 개발자들이 자기 영역에서 간섭받지 않고 개발을 진행할 수 있으면 좋겠군 • 각 블록체인 기능을 지원하는 컴포넌트들을 독립적으로 구성 • Event Driven 아키텍처 스타일 도입 • 중앙 관리자 없이 P2P구조를 가져야 할 것 같아 • P2P Network 구성 • 기본적인 블록체인 기능들(블록저장, 합의, 인증)을 지원해야해 • Block Storage 컴포넌트 • Authentication 컴포넌트 • Consensus 컴포넌트 • Consensus는 PBFT를 지원하면 좋겠어 • Transaction pool 컴포넌트, 리더 노드 개념 도입

Slide 11

Slide 11 text

It-chain - 아키텍처 11 it-chain network는 it-chain node로 구성된 P2P network Leader와 Peer로 구성(PBFT)

Slide 12

Slide 12 text

It-chain - 아키텍처 12 it-chain은 여러개의 독립적으로 동작하는 핵심 컴포넌트들로 구현되며 각각은 AMQP(Asynchronous Message Queue Protocol)를 통해 커뮤니케이션한다.

Slide 13

Slide 13 text

It-chain - 시나리오 13 • Network 구성 • One leader

Slide 14

Slide 14 text

It-chain 14 • Submit Transaction

Slide 15

Slide 15 text

It-chain 15 • Forward to leader

Slide 16

Slide 16 text

It-chain 16 • Create Block and Start Consensus • Simulate Transaction

Slide 17

Slide 17 text

It-chain 17 • Add block and update state

Slide 18

Slide 18 text

It-chain ­ 합의 알고리즘 18 It-chain Network • Permissioned P2P Network(Private Network) • 소수의 노드로 구성 • 빠른 합의 속도 è PBFT Consensus 알고리즘 사용

Slide 19

Slide 19 text

It-chain ­ 합의 알고리즘 19 Consensus 알고리즘 • 분산된 프로세스 또는 시스템간의 단일 데이터 값에 대한 합의를 달성하는데 사용되는 알고리즘 • 여러 개의 신뢰할 수 없는 노드가 포함된 네트워크에서 안정성을 달성하도록 설계 • 비잔틴 장군 문제 해결

Slide 20

Slide 20 text

It-chain ­ 합의 알고리즘 20 비잔틴 장군 문제 • 5명중 3명 이상의 장군들이 같은 시각에 공격해야만 승리 • 장군들 중에는 배신자가 있어서 서로 신뢰할 수 없음

Slide 21

Slide 21 text

It-chain ­ 합의 알고리즘 21 PBFT • 1999년 Miguel Castro와 Barbara Riskop에 의해 도입 된 알고리즘 • 네트워크의 모든 노드는 사전에 알고 있어야하며, 한 노드는 리더

Slide 22

Slide 22 text

It-chain ­ 합의 알고리즘 22 PBFT(Tendermint)

Slide 23

Slide 23 text

It-chain ­ 스마트 컨트랙트 23 • Docker 컨데이터 기반의 독립적인 환경 제공 • SDK를 통해 다양한 General purpose 지원 가능(현재 go 지원) • 예제: https://github.com/junbeomlee/learn-icode

Slide 24

Slide 24 text

It-chain ­ 스마트 컨트랙트 24 • Architecture • ICode는 self-contained • gRPC로 통신

Slide 25

Slide 25 text

It-chain ­ 스마트 컨트랙트 25 • Deployment ./It-chain icode deploy github.com/junbeomlee/learn-icode ~/.ssh/id_rsa

Slide 26

Slide 26 text

It-chain ­ 스마트 컨트랙트 SDK 26 • https://github.com/De-labtory/sdk • IVM에 올리기 위한 library제공 • RequestHandler interface를 구현한 Handler를 작성

Slide 27

Slide 27 text

It-chain ­ 스마트 컨트랙트 예제 27

Slide 28

Slide 28 text

오픈소스 커미터로 블록체인 개발하기 28

Slide 29

Slide 29 text

오픈소스 커미터로 블록체인 개발하기 -시작 29

Slide 30

Slide 30 text

오픈소스 커미터로 블록체인 개발하기 ­팀구성 30

Slide 31

Slide 31 text

오픈소스 커미터로 블록체인 개발하기 ­준비 31 • Coding Style • TDD • Documentation • Template • Issue • CI • Test Coverage

Slide 32

Slide 32 text

오픈소스 커미터로 블록체인 개발하기 ­개발 32

Slide 33

Slide 33 text

오픈소스 커미터로 블록체인 개발하기 ­합숙 33

Slide 34

Slide 34 text

오픈소스 커미터로 블록체인 개발하기 ­결과 34

Slide 35

Slide 35 text

오픈소스 커미터로 블록체인 개발하기 ­즐거움 35 • 열정적인 팀원(매주 오프라인 미팅)들의 자극 • 코드 리뷰를 통해 함께 성장 • 독자를 고려한 코딩의 습관

Slide 36

Slide 36 text

36 THANK YOU