From 55da6dd79daeaac77cdd04de03f7f35e222f2967 Mon Sep 17 00:00:00 2001 From: David Rusu Date: Sat, 2 Nov 2024 00:08:08 +0400 Subject: [PATCH] cryptarchia: remove height from ledger state --- cryptarchia/cryptarchia.py | 4 ---- cryptarchia/test_ledger_state_update.py | 11 ++++++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/cryptarchia/cryptarchia.py b/cryptarchia/cryptarchia.py index 6a9feda..8d75e51 100644 --- a/cryptarchia/cryptarchia.py +++ b/cryptarchia/cryptarchia.py @@ -211,7 +211,6 @@ class BlockHeader: content_size: int content_id: Id leader_proof: MockLeaderProof - orphaned_proofs: List["BlockHeader"] = field(default_factory=list) def __post_init__(self): @@ -291,7 +290,6 @@ class LedgerState: # The number of observed leaders (blocks + orphans), this measurement is # used in inferring total active stake in the network. leader_count: int = 0 - height: int = 0 def copy(self): return LedgerState( @@ -329,8 +327,6 @@ class LedgerState: for proof in itertools.chain(block.orphaned_proofs, [block]): self.apply_leader_proof(proof.leader_proof) - self.height += 1 - def apply_leader_proof(self, proof: MockLeaderProof): self.nullifiers.add(proof.nullifier) self.commitments_spend.add(proof.evolved_commitment) diff --git a/cryptarchia/test_ledger_state_update.py b/cryptarchia/test_ledger_state_update.py index 92e2e83..d67abd4 100644 --- a/cryptarchia/test_ledger_state_update.py +++ b/cryptarchia/test_ledger_state_update.py @@ -2,7 +2,7 @@ from unittest import TestCase import numpy as np -from .cryptarchia import Follower, Coin +from .cryptarchia import Follower, Coin, iter_chain from .test_common import mk_config, mk_block, mk_genesis_state @@ -18,12 +18,13 @@ class TestLedgerStateUpdate(TestCase): follower.on_block(block) # Follower should have accepted the block - assert follower.tip_state().height == 1 + assert len(list(iter_chain(follower.tip_id(), follower.ledger_state))) == 2 assert follower.tip() == block follower.on_block(block) - assert follower.tip_state().height == 1 + # Should have been a No-op + assert len(list(iter_chain(follower.tip_id(), follower.ledger_state))) == 2 assert follower.tip() == block assert len(follower.ledger_state) == 2 assert len(follower.forks) == 0 @@ -38,7 +39,7 @@ class TestLedgerStateUpdate(TestCase): follower.on_block(block) # Follower should have accepted the block - assert follower.tip_state().height == 1 + assert len(list(iter_chain(follower.tip_id(), follower.ledger_state))) == 2 assert follower.tip() == block # Follower should have updated their ledger state to mark the leader coin as spent @@ -48,7 +49,7 @@ class TestLedgerStateUpdate(TestCase): follower.on_block(reuse_coin_block) # Follower should *not* have accepted the block - assert follower.tip_state().height == 1 + assert len(list(iter_chain(follower.tip_id(), follower.ledger_state))) == 2 assert follower.tip() == block def test_ledger_state_is_properly_updated_on_reorg(self):