chia-blockchain/src/protocols/farmer_protocol.py

60 lines
1.2 KiB
Python

from blspy import PrependSignature
from src.util.cbor_message import cbor_message
from src.types.sized_bytes import bytes32
from src.util.ints import uint64, uint32
from src.types.proof_of_space import ProofOfSpace
from src.types.coinbase import CoinbaseInfo
"""
Protocol between farmer and full node.
"""
"""
Farmer <- Full node
Update current height
"""
@cbor_message(tag=2000)
class ProofOfSpaceFinalized:
challenge_hash: bytes32
height: uint32
quality: bytes32
difficulty: uint64
@cbor_message(tag=2001)
class ProofOfSpaceArrived:
height: uint32
quality: bytes32
@cbor_message(tag=2002)
class DeepReorgNotification:
pass
@cbor_message(tag=2003)
class RequestHeaderHash:
challenge_hash: bytes32
coinbase: CoinbaseInfo
coinbase_signature: PrependSignature
fees_target_puzzle_hash: bytes32
proof_of_space: ProofOfSpace
@cbor_message(tag=2004)
class HeaderHash:
pos_hash: bytes32
header_hash: bytes32
@cbor_message(tag=2005)
class HeaderSignature:
pos_hash: bytes32
header_hash: bytes32
header_signature: PrependSignature
@cbor_message(tag=2006)
class ProofOfTimeRate:
pot_estimate_ips: uint64