Key-Value Database

Google에서 개발한 빠르고 가벼운 Key-Value DB

C++ 언어로 구현됨

File 형태로 관리되며, RDBMS와 다른 형태로 구현

읽기, 쓰기 성능이 빠르다.

제한점

  1. NoSQL 데이터베이스이기 때문에, 관계형 검색 불가능
  2. Single Processing : 하나의 프로세스만이 한번에 특정 데이터베이스에 접근 가능

LevelDB Sample Code

import leveldb
db = leveldb.LevelDB('test_leveldb', create_if_missing=True)

#Data 입력
db.Put('apple'.encode(), '10'.encode())

#Data 조회
get_result = db.Get(b'apple')
print(get_result.decode())

#Data 삭제
db.Delete(b'apple')

Bitcoin 디렉토리 구조

스크린샷 2024-01-08 오전 10.20.55.png

Bitcoin 파일 디렉토리 구조

스크린샷 2024-01-08 오전 10.21.10.png

LevelDB 저장 구조

스크린샷 2024-01-08 오전 10.21.26.png

스크린샷 2024-01-08 오전 10.21.34.png

Mempool

아직 블록에 포함되지 않은 Pending Transaction들을 저장 및 관리하는 방법

채굴자들은 Mempool 중에서 Transaction을 선택해서 신규 Block에 포함시킨다.