statedb와 Trie, 그리고 leveldb.
오늘은 diskdb에 statedb가 어떻게 연결되는지 확인했다. 전에 statedb가 따로 있는거 아니냐고 누가 물어봤었는데 대답을 못했어서.
정답은
물리적인 leveldb 하나에
논리적으로 체인 데이터db와
state용 cachingdb 2개를 쓴다.
체인데이터(블록)는 그냥 디스크에 직접 쓰고,
스테이트만 캐싱db(메모리)를 쓰는데
이 캐싱db가 결국 trie다.
트라이는 메모리를 쓰다가 얼마이상 메모리에 데이터가 쌓이면 디스크디비에 저장을 하는데 이 디스크가 체인데이터의 db로 설정되어
한 디스크db에 써지는 구조다.
[그리고 이 아랫그림에서
트라이간 연결선은 실제로 존재했다.
trie의 메모리 database(정확히는 node map)에서만 일어나서 leveldb상에 안보일뿐.]
이표현 틀렸습니다. 정정합니다.
reference는 statedb의 어카운트와 storage db를 연결하는 연결선을 생성합니다.
저그림은 실제로 구현되기보다, 루트해시를 통해 이전 블록의 트라이를 만들고 그 트라이에 업데이트를하여,
다시 트라이의 루트를 구하는 그림이 맞습니다.
Leave statedb와 Trie, 그리고 leveldb. to:
Read more #statedb posts
Best Posts From SigmoiD
We have not curated any of sigmoid's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From SigmoiD
- Celo: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments
- My next topic - Nxt project
- Event: for outside watchers
- All about Ethereum Gas
- EthreumDB in a nutshell
- clique
- statedb와 Trie, 그리고 leveldb.
- Schnorr non-interactive ZKP
- 이더리움은 머클 증명을 사용하나요?
- removed.
- whisper 분석자료 공유
- JP-morgan의 quorum - quick review
- web3.py로 알아보는 이더리움의 서명확인
- 익명 투표 시스템 (OV-net) 분석 공유
- ethereum2.0 - SSZ
- Let's decode Ethereum's Level database manually.
- zk-snarks (korean)
- [Why]이더리움 콘스탄티노플 하드포크가 연기된 이유.
- 이더리움 Level DB를 까보자(4) - 손으로 rlp디코딩 하기
- 이더리움 Level DB를 까보자(3) - state root 까보기