오픈소스 소개

Scroll

LINE Financial Blockchain 오픈소스

LINE Financial Blockchain는 오픈소스 프로젝트입니다. 레이어 구조와 모듈러 디자인을 채택했으므로, 필요한 모듈을 조합해 애플리케이션에 알맞은 블록체인을 구성할 수 있습니다.

LINE Financial Blockchain의 오픈소스는 다음과 같은 요소를 포함합니다.

  • lfb (LINE Financial Blockchain)
    LFB SDK와 ostracon을 이용한 메인넷 애플리케이션 구현체입니다. 이를 이용해 LINE Financial Blockchain을 실행할 수 있습니다. 

  • lfb-sdk (LINE Financial Blockchain SDK)
    Go 언어로 블록체인 앱을 만들게 해주는 프레임워크입니다. LINE Financial Blockchain의 첫 번째 구현체인 lfb를 빌드할 때 사용합니다.

  • iavl
    버전을 생성하고 스냅샷을 찍을 수 있는 퍼시스턴트 데이터용 AVL+ 트리입니다. Key-value 쌍으로 된 퍼시스턴트 스토리지(계정 잔액 저장 등의 용도)를 제공해 결정적 머클루트(merkle root) 해시를 계산하는 것이 이 자료구조의 목적입니다. AVL 알고리즘 변형을 이용해 리밸런싱하므로 탐색 작업의 시간 복잡도는 O(log(n))입니다. LINE Financial Blockchain의 iavl은 fastcache 애플리케이션 등을 사용해 성능을 향상했습니다.

  • tm-db
    Ostracon과 LINE Financial Blockchain SDK용 백엔드 데이터베이스의 공용 인터페이스입니다. Tendermint의 tm-db를 개선했습니다.

  • ostracon
    Tendermint를 개선해 새롭게 개발한 합의 알고리즘입니다. Ostracon은 VRF를 이용해 제안자와 검증자를 선정하는 역할을 합니다. BLS 서명 aggregation을 이용해 검증자 투표 서명 기능도 개발 중입니다.

  • cosmwasm
    LINE Financial Blockchain SDK를 위한 빠르고 재사용가능한 웹어셈블리 스마트 계약 런타임 라이브러리입니다. CosmWasm/cosmwasm을 개선해 LINE Financial Blockchain SDK 호환 기능을 더하고 성능을 향상했습니다.

  • wasmvm
    CosmWasm 가상 머신의 래퍼(wrapper)입니다. Go 언어로로 작성한 애플리케이션, 특히 LINE Financial Blockchain SDK로 만든 CosmWasm 기반 스마트 컨트랙트를 컴파일하고 초기화하고 실행할 수 있습니다. CosmWasm/wasmvm를 개선했습니다.

  • gorocksdb
    Go 언어에서 rocksdb를 사용할 수 있도록 래핑(wrapping)한 라이브러리입니다. tecbot/gorocksdb에 LINE Financial Blockchain의 성능 개선 작업을 적용한 것으로, rocksdb v6.17.3 이상을 위해 함수 인터페이스를 변경하고 iterator lower bound를 적용하는 등의 작업이 이뤄졌습니다. 앞으로 rocksdb의 버전업을 따라갈 계획입니다.