mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-09-05 02:24:21 -05:00
* new DBWrapper supporting concurrent readers * adress review comments * fixup default database version, when file doesn't exist * remove unused argument
25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
from typing import Tuple
|
|
from pathlib import Path
|
|
|
|
import random
|
|
import aiosqlite
|
|
|
|
from chia.consensus.blockchain import Blockchain
|
|
from chia.consensus.constants import ConsensusConstants
|
|
from chia.full_node.block_store import BlockStore
|
|
from chia.full_node.coin_store import CoinStore
|
|
from chia.full_node.hint_store import HintStore
|
|
from chia.util.db_wrapper import DBWrapper2
|
|
|
|
|
|
async def create_ram_blockchain(consensus_constants: ConsensusConstants) -> Tuple[DBWrapper2, Blockchain]:
|
|
uri = f"file:db_{random.randint(0, 99999999)}?mode=memory&cache=shared"
|
|
connection = await aiosqlite.connect(uri, uri=True)
|
|
db_wrapper = DBWrapper2(connection)
|
|
await db_wrapper.add_connection(await aiosqlite.connect(uri, uri=True))
|
|
block_store = await BlockStore.create(db_wrapper)
|
|
coin_store = await CoinStore.create(db_wrapper)
|
|
hint_store = await HintStore.create(db_wrapper)
|
|
blockchain = await Blockchain.create(coin_store, block_store, consensus_constants, hint_store, Path("."), 2)
|
|
return db_wrapper, blockchain
|