Table of Contents

Class BlockRecord

Namespace
chia.dotnet
Assembly
chia-dotnet.dll

This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

public record BlockRecord : IEquatable<BlockRecord>
Inheritance
BlockRecord
Implements
Inherited Members
Extension Methods

Properties

ChallengeBlockInfoHash

Hash of challenge chain data, used to validate end of slots in the future

public string ChallengeBlockInfoHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

ChallengeVdfOutput

This is the intermediary VDF output at ip_iters in challenge chain

public ClassgroupElement ChallengeVdfOutput { get; init; }

Property Value

ClassgroupElement
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

DateTimestamp

[JsonIgnore]
public DateTime? DateTimestamp { get; }

Property Value

DateTime?
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Deficit

A deficit of 16 is an overflow block after an infusion. Deficit of 15 is a challenge block

public byte Deficit { get; init; }

Property Value

byte
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

FarmerPuzzleHash

public string FarmerPuzzleHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Fees

Transaction block (present iff is_transaction_block)

public ulong? Fees { get; init; }

Property Value

ulong?
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

FinishedChallengeSlotHashes

Slot (present iff this is the first SB in sub slot)

public IEnumerable<string>? FinishedChallengeSlotHashes { get; init; }

Property Value

IEnumerable<string>
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

FinishedInfusedChallengeSlotHashes

Slot (present iff this is the first SB in sub slot)

public IEnumerable<string>? FinishedInfusedChallengeSlotHashes { get; init; }

Property Value

IEnumerable<string>
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

FinishedRewardSlotHashes

Slot (present iff this is the first SB in sub slot)

public IEnumerable<string>? FinishedRewardSlotHashes { get; init; }

Property Value

IEnumerable<string>
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

HeaderHash

public string HeaderHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Height

public uint Height { get; init; }

Property Value

uint
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

InfusedChallengeVdfOutput

This is the intermediary VDF output at ip_iters in infused cc, if deficit less than or equal to 3

public ClassgroupElement? InfusedChallengeVdfOutput { get; init; }

Property Value

ClassgroupElement
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

IsTransactionBlock

[JsonIgnore]
public bool IsTransactionBlock { get; }

Property Value

bool
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Overflow

public bool Overflow { get; init; }

Property Value

bool
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

PoolPuzzleHash

Need to keep track of these because Coins are created in a future block

public string PoolPuzzleHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

PrevHash

Header hash of the previous block Transaction block (present iff is_transaction_block)

public string PrevHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

PrevTransactionBlockHash

Header hash of the previous transaction block

public string? PrevTransactionBlockHash { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

PrevTransactionBlockHeight

public uint PrevTransactionBlockHeight { get; init; }

Property Value

uint
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

RequiredIters

The number of iters required for this proof of space

public ulong RequiredIters { get; init; }

Property Value

ulong
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

RewardClaimsIncorporated

Transaction block (present iff is_transaction_block)

public IEnumerable<Coin>? RewardClaimsIncorporated { get; init; }

Property Value

IEnumerable<Coin>
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

RewardInfusionNewChallenge

The reward chain infusion output, input to next VDF

public string RewardInfusionNewChallenge { get; init; }

Property Value

string
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

SignagePointIndex

public byte SignagePointIndex { get; init; }

Property Value

byte
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

SubEpochSummaryIncluded

Sub-epoch (present iff this is the first SB after sub-epoch)

public SubEpochSummary? SubEpochSummaryIncluded { get; init; }

Property Value

SubEpochSummary
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

SubSlotIters

Current network sub_slot_iters parameter

public ulong SubSlotIters { get; init; }

Property Value

ulong
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Timestamp

Transaction block (present iff is_transaction_block)

public ulong? Timestamp { get; init; }

Property Value

ulong?
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

TotalIters

Total number of VDF iterations since genesis, including this block

public BigInteger TotalIters { get; init; }

Property Value

BigInteger
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.

Weight

Total cumulative difficulty of all ancestor blocks since genesis

public BigInteger Weight { get; init; }

Property Value

BigInteger
This class is not included or hashed into the blockchain, but it is kept in memory as a more efficient way to maintain data about the blockchain. This allows us to validate future blocks, difficulty adjustments, etc, without saving the whole header block in memory.