Skip to content

Commit d01758f

Browse files
authored
BlockHeightMapProtocol (#19798)
1 parent dac837e commit d01758f

File tree

12 files changed

+33
-11
lines changed

12 files changed

+33
-11
lines changed

benchmarks/block_ref.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
from chia_rs.sized_bytes import bytes32
1414
from chia_rs.sized_ints import uint32
1515

16+
from chia.consensus.block_height_map import BlockHeightMap
1617
from chia.consensus.blockchain import Blockchain
1718
from chia.consensus.default_constants import DEFAULT_CONSTANTS
1819
from chia.consensus.get_block_generator import get_block_generator
19-
from chia.full_node.block_height_map import BlockHeightMap
2020
from chia.full_node.block_store import BlockStore
2121
from chia.full_node.coin_store import CoinStore
2222
from chia.types.blockchain_format.serialized_program import SerializedProgram

chia/_tests/core/full_node/ram_db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
from chia_rs import ConsensusConstants
99

10+
from chia.consensus.block_height_map import BlockHeightMap
1011
from chia.consensus.blockchain import Blockchain
11-
from chia.full_node.block_height_map import BlockHeightMap
1212
from chia.full_node.block_store import BlockStore
1313
from chia.full_node.coin_store import CoinStore
1414
from chia.util.db_wrapper import DBWrapper2

chia/_tests/core/full_node/stores/test_block_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
from chia._tests.blockchain.blockchain_test_utils import _validate_and_add_block
1919
from chia._tests.util.db_connection import DBConnection, PathDBConnection
2020
from chia.consensus.block_body_validation import ForkInfo
21+
from chia.consensus.block_height_map import BlockHeightMap
2122
from chia.consensus.blockchain import AddBlockResult, Blockchain
2223
from chia.consensus.default_constants import DEFAULT_CONSTANTS
2324
from chia.consensus.full_block_to_block_record import header_block_to_sub_block_record
24-
from chia.full_node.block_height_map import BlockHeightMap
2525
from chia.full_node.block_store import BlockStore
2626
from chia.full_node.coin_store import CoinStore
2727
from chia.full_node.full_block_utils import GeneratorBlockInfo

chia/_tests/core/full_node/stores/test_coin_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
from chia._tests.util.db_connection import DBConnection
1717
from chia._tests.util.misc import Marks, datacases
1818
from chia.consensus.block_body_validation import ForkInfo
19+
from chia.consensus.block_height_map import BlockHeightMap
1920
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
2021
from chia.consensus.blockchain import AddBlockResult, Blockchain
2122
from chia.consensus.coinbase import create_farmer_coin, create_pool_coin
22-
from chia.full_node.block_height_map import BlockHeightMap
2323
from chia.full_node.block_store import BlockStore
2424
from chia.full_node.coin_store import CoinStore
2525
from chia.full_node.hint_store import HintStore

chia/_tests/core/full_node/test_block_height_map.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from chia_rs.sized_ints import uint8, uint32
1212

1313
from chia._tests.util.db_connection import DBConnection
14-
from chia.full_node.block_height_map import BlockHeightMap, SesCache
14+
from chia.consensus.block_height_map import BlockHeightMap, SesCache
1515
from chia.util.db_wrapper import DBWrapper2
1616
from chia.util.files import write_file_async
1717

chia/_tests/core/test_db_conversion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
from chia._tests.util.temp_file import TempFile
1111
from chia.cmds.db_upgrade_func import convert_v1_to_v2
1212
from chia.consensus.block_body_validation import ForkInfo
13+
from chia.consensus.block_height_map import BlockHeightMap
1314
from chia.consensus.blockchain import Blockchain
1415
from chia.consensus.multiprocess_validation import PreValidationResult
15-
from chia.full_node.block_height_map import BlockHeightMap
1616
from chia.full_node.block_store import BlockStore
1717
from chia.full_node.coin_store import CoinStore
1818
from chia.full_node.hint_store import HintStore

chia/_tests/core/test_db_validation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
from chia._tests.util.temp_file import TempFile
1515
from chia.cmds.db_validate_func import validate_v2
1616
from chia.consensus.block_body_validation import ForkInfo
17+
from chia.consensus.block_height_map import BlockHeightMap
1718
from chia.consensus.blockchain import Blockchain
1819
from chia.consensus.default_constants import DEFAULT_CONSTANTS
1920
from chia.consensus.multiprocess_validation import PreValidationResult
20-
from chia.full_node.block_height_map import BlockHeightMap
2121
from chia.full_node.block_store import BlockStore
2222
from chia.full_node.coin_store import CoinStore
2323
from chia.simulator.block_tools import test_constants

chia/_tests/util/blockchain.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
from chia_rs import ConsensusConstants, FullBlock
1111
from chia_rs.sized_ints import uint64
1212

13+
from chia.consensus.block_height_map import BlockHeightMap
1314
from chia.consensus.blockchain import Blockchain
14-
from chia.full_node.block_height_map import BlockHeightMap
1515
from chia.full_node.block_store import BlockStore
1616
from chia.full_node.coin_store import CoinStore
1717
from chia.simulator.block_tools import BlockTools
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from chia_rs.sized_bytes import bytes32
1111
from chia_rs.sized_ints import uint32
1212

13+
from chia.consensus.block_height_map_protocol import BlockHeightMapProtocol
1314
from chia.util.db_wrapper import DBWrapper2
1415
from chia.util.files import write_file_async
1516
from chia.util.streamable import Streamable, streamable
@@ -23,7 +24,7 @@ class SesCache(Streamable):
2324
content: list[tuple[uint32, bytes]]
2425

2526

26-
class BlockHeightMap:
27+
class BlockHeightMap(BlockHeightMapProtocol):
2728
db: DBWrapper2
2829

2930
# the below dictionaries are loaded from the database, from the peak
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from __future__ import annotations
2+
3+
from typing import Optional, Protocol
4+
5+
from chia_rs import SubEpochSummary
6+
from chia_rs.sized_bytes import bytes32
7+
from chia_rs.sized_ints import uint32
8+
9+
10+
class BlockHeightMapProtocol(Protocol):
11+
def update_height(self, height: uint32, header_hash: bytes32, ses: Optional[SubEpochSummary]) -> None: ...
12+
13+
def get_hash(self, height: uint32) -> bytes32: ...
14+
15+
def contains_height(self, height: uint32) -> bool: ...
16+
17+
def rollback(self, fork_height: int) -> None: ...
18+
19+
def get_ses(self, height: uint32) -> SubEpochSummary: ...
20+
21+
def get_ses_heights(self) -> list[uint32]: ...

0 commit comments

Comments
 (0)