Skip to content

Commit

Permalink
Revert "use rust types for RecentChainData, ProofBlockHeader and Weig…
Browse files Browse the repository at this point in the history
…htProof" #17738 (#18231)

Revert "use rust types for RecentChainData, ProofBlockHeader and WeightProof …"

This reverts commit 3f0d5c0.
  • Loading branch information
emlowe authored Jun 21, 2024
1 parent 7c54e60 commit 4b2f9f0
Showing 1 changed file with 43 additions and 4 deletions.
47 changes: 43 additions & 4 deletions chia/types/weight_proof.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,50 @@
from __future__ import annotations

from dataclasses import dataclass
from typing import List

import chia_rs

ProofBlockHeader = chia_rs.ProofBlockHeader
RecentChainData = chia_rs.RecentChainData
SubEpochChallengeSegment = chia_rs.SubEpochChallengeSegment
from chia.types.blockchain_format.reward_chain_block import RewardChainBlock
from chia.types.end_of_slot_bundle import EndOfSubSlotBundle
from chia.types.header_block import HeaderBlock
from chia.util.streamable import Streamable, streamable

SubEpochData = chia_rs.SubEpochData

# number of challenge blocks
# Average iters for challenge blocks
# |--A-R----R-------R--------R------R----R----------R-----R--R---| Honest difficulty 1000
# 0.16

# compute total reward chain blocks
# |----------------------------A---------------------------------| Attackers chain 1000
# 0.48
# total number of challenge blocks == total number of reward chain blocks


SubEpochChallengeSegment = chia_rs.SubEpochChallengeSegment
SubEpochSegments = chia_rs.SubEpochSegments
SubSlotData = chia_rs.SubSlotData
WeightProof = chia_rs.WeightProof


@streamable
@dataclass(frozen=True)
# this is used only for serialization to database
class RecentChainData(Streamable):
recent_chain_data: List[HeaderBlock]


@streamable
@dataclass(frozen=True)
class ProofBlockHeader(Streamable):
finished_sub_slots: List[EndOfSubSlotBundle]
reward_chain_block: RewardChainBlock


@streamable
@dataclass(frozen=True)
class WeightProof(Streamable):
sub_epochs: List[SubEpochData]
sub_epoch_segments: List[SubEpochChallengeSegment] # sampled sub epoch
recent_chain_data: List[HeaderBlock]

0 comments on commit 4b2f9f0

Please sign in to comment.