[마소콘] 마소콘 #1


인터널 트랜잭션

레지스트리 컨트랙트

아토믹 업데이트

vvisp

it-chain 개발기

코스랩 이준범

디랩토리 - 잇 체인, 스윔, 코아(스마트컨트랙트언어)

잇 체인 시작

소프트웨어 아키텍쳐와 딥러닝의 결합 공부중에

연구실 형의 권유로 블록체인 공부시작했다가 지금까지 하는 중

이해는 한거 같은데 실제로 할 수 있는지 모르겠음

그래서 블록체인을 한번 만들어보기로 함.

하이퍼레져 페브릭을 모델로 시작함.

목표: 블록체인 코어 공부, 경량 맞춤형 블록체인 엔진: 핵심 서비스의 모듈화를 통해 목적에 맞게 쉽게 교체 가능, 국내 블록체인 오픈소스 활성화

합의 알고리즘을 간단히 바꾸거나 하는 모듈화

요구사항

  • 제 3자가 손쉽게 수정/확장
  • 개발자들이 자기 영역에서 간섭받지 않고 : 컴포넌트화, 이벤트 드리븐 아키텍쳐 스타일 도입
  • 중앙 관리자 없이 피투피구조
  • 기본적인 블록체인 기능
  • PBFT 합의 지원 : 트랜잭션 풀 컴포넌트, 리더 노드 개념 도입

리더가 있음. 리더가 블락을 만들고 합의. 합이 끝나면 블락저장 및 스테이트 업데이트.

어려운게 p2p랑 합의 알고리즘.

합의 알고리즘

permissioned p2p network(private)

소수 노드

빠른 합의 속도

PBFT

합의알고리즘이란?

분산된 프로세스 또는 시스템간의 …

여러 개의 신뢰할 수 없는 노드가 포함된 네트워크에서 안정성을 달성하도록 설계

비잔틴 장군 문제

PBFT는 노드수가 많아지면 너무 부하가 커짐. 30개가 넘어가면 빡셈. 2번의 브로드캐스팅 과정이있음.

Tendermint - pbft 라이브러리

근데 많이 깨지고 문제가 있다고함.

잇체인의 스마트 컨트랙트

이더리움은 제너럴 펄포즈 랭귀지 지원 안됨.

잇체인은 sdk를 통해 제너럴 펄포즈 지원 가능(현재 고지원)

제너럴 펄포즈를 쓰면 무한루프나 랜덤함수같은 문제가있음.

제너럴 펄포즈는 항상 동일한 스테이트를 가지는지 검사하는게 필요함.

도커 컨테이너 기반의 독립적인 환경 제공

오픈소스 개발자로 개발하기

블록체인 공부시작하고 팀 구성함.

오픈소스로 해서

코딩 스타일, 테스트, 다큐멘테이션 필수: 새로 유입되기 어려움 안되있으면, 이슈나 피알 템플릿, 이슈: 다른사람이 도울수있게, CI, Test coverage

제주도 개발, 오픈소스 대회 수상

열정적인 팀원(매주 오프라인 미팅)들의 자극

코드 리뷰

독자를 고려한 코딩의 습관

펜타 시큐리티 - 아모랩스






© 2017. by isme2n

Powered by aiden