You are viewing a single comment's thread from:

RE: Announcing Steem 0.14.4 프리뷰 릴리즈

in #kr8 years ago (edited)

체인베이스 소스코드를 봤는데, 의외로 간결합니다. 일주일전에 처음 공개가 되었구요, 설마 이게 다라고는 생각 안했는데 이게 다였네요
750 라인 chainbase.hpp
135 라인 chainbase.cpp 이렇게 파일 두개가 전부입니다.

Memory Mapped Files 라는 부분은 비트코인의 libbitcoin Database 에서도 사용되는 기법입니다. 파일에서 자주 액세스 되는 부분을 메모리에 올려놓고 빠르게 접근, 읽고 쓸 수 있도록 하는 것입니다.
댄더맨이 보기에 libbitcoin Database 에 부족함이 있었나 봅니다.
첫째로, 비트코인에 종속적이어서 가져다 쓸 수 가 없었다는점. 그래서 새로 만들었겠죠.
둘째로, 멀티인덱싱 기능이 부족했다고 하네요. 블록체인의 의사결정으로 어떤 값이 정해지면 이것을 여러가지 방법으로 인덱싱을 할 수 있어야 찾고자 하는 값이 빠르게 찾아지는데, 체인베이스는 부스트Multi-index Containers 를 이용해서 이것을 간결하게 해결했습니다.
셋째로, undo history 부분이 부족했다고 합니다. 블록체인에서 여러 이해관계가 얽힌(모두들 자기가 블록을 생성하고 싶어하는) P2P 노드들이 서로 합의가 이루어져서 결론을 도출하고 블록체인에 기록하다보면, 의사결정을 번복해야할 경우도 생깁니다. (비트코인의 예를 들면, longest chain이 main chain이 되는 경우 등). undo 라는 것도 한번 하기는 쉬운데 일을 하면서 여러번 하다보면 헷갈리고 복잡하고 경우의 수가 많아집니다. 체인베이스의 경우 이것을 nested transaction 이라는 중첩된 구조로 해서 해결했다고 합니다.

Sort:  

좋은 설명 감사드립니다~

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 63042.11
ETH 3047.49
USDT 1.00
SBD 3.91