Show / Hide Table of Contents

Struct BlockDigest

Class that store uses to save blocks. This contains: BlockHeader, and list of TxIds.

Implements
IBlockMetadata
IBlockExcerpt
Namespace: Libplanet.Store
Assembly: Libplanet.dll
Syntax
public readonly struct BlockDigest : IBlockMetadata, IBlockExcerpt

Constructors

| Improve this Doc View Source

BlockDigest(Bencodex.Types.Dictionary)

Creates BlockDigest instance from representation of the Block<T>.

Declaration
public BlockDigest(Bencodex.Types.Dictionary dict)
Parameters
Type Name Description
Bencodex.Types.Dictionary dict

representation of the Block<T>.

| Improve this Doc View Source

BlockDigest(BlockHeader, ImmutableArray<ImmutableArray<Byte>>)

Creates BlockDigest instance from BlockHeader and Transaction<T> ids the Block<T> has.

Declaration
public BlockDigest(BlockHeader header, ImmutableArray<ImmutableArray<byte>> txIds)
Parameters
Type Name Description
BlockHeader header

BlockHeader of the Block<T>.

ImmutableArray<ImmutableArray<Byte>> txIds

Transaction<T> ids the Block<T> has.

Properties

| Improve this Doc View Source

Difficulty

The mining difficulty that the block's Nonce has to satisfy.

Declaration
public readonly long Difficulty { get; }
Property Value
Type Description
Int64
| Improve this Doc View Source

Hash

The block hash.

Declaration
public readonly BlockHash Hash { get; }
Property Value
Type Description
BlockHash
| Improve this Doc View Source

Index

The height of the block.

Declaration
public readonly long Index { get; }
Property Value
Type Description
Int64
Remarks

Zero means it is a genesis block. Disallowed to be negative.

See Also
Index
| Improve this Doc View Source

Miner

The address of the miner.

Declaration
public readonly Address Miner { get; }
Property Value
Type Description
Address
| Improve this Doc View Source

PreviousHash

The previous block's hash. If it's a genesis block (i.e., its Index is 0) this must be null.

Declaration
public readonly BlockHash? PreviousHash { get; }
Property Value
Type Description
Nullable<BlockHash>
| Improve this Doc View Source

ProtocolVersion

The protocol version number.

Declaration
public readonly int ProtocolVersion { get; }
Property Value
Type Description
Int32
See Also
ProtocolVersion
| Improve this Doc View Source

PublicKey

The public key of the Miner. This is used for verifying the signature.

Although this is nullable type-wise, it is mandatory where ProtocolVersion is 2 or later. As blocks had not been signed in the previous protocol versions, the type of this is nullable.

Declaration
public readonly PublicKey PublicKey { get; }
Property Value
Type Description
PublicKey
| Improve this Doc View Source

Signature

The block signature.

Declaration
public readonly ImmutableArray<byte>? Signature { get; }
Property Value
Type Description
Nullable<ImmutableArray<Byte>>
| Improve this Doc View Source

StateRootHash

The state root hash.

Declaration
public readonly HashDigest<SHA256> StateRootHash { get; }
Property Value
Type Description
HashDigest<SHA256>
| Improve this Doc View Source

Timestamp

The time the block is created.

Declaration
public readonly System.DateTimeOffset Timestamp { get; }
Property Value
Type Description
System.DateTimeOffset
Remarks

This is always UTC.

| Improve this Doc View Source

TotalDifficulty

The total mining difficulty since the genesis including the block's Difficulty.

Declaration
public readonly BigInteger TotalDifficulty { get; }
Property Value
Type Description
BigInteger
Remarks

This must be greater than or equal to Difficulty at least, and must not be negative.

See Also
TotalDifficulty
| Improve this Doc View Source

TxHash

The hash of all transactions in the block. This is null if the block has no transactions.

Declaration
public readonly HashDigest<SHA256>? TxHash { get; }
Property Value
Type Description
Nullable<HashDigest<SHA256>>
| Improve this Doc View Source

TxIds

Declaration
public readonly ImmutableArray<ImmutableArray<byte>> TxIds { get; }
Property Value
Type Description
ImmutableArray<ImmutableArray<Byte>>

Methods

| Improve this Doc View Source

Deserialize(Byte[])

Gets BlockDigest instance from serialized bytes.

Declaration
public static BlockDigest Deserialize(byte[] bytes)
Parameters
Type Name Description
Byte[] bytes

Serialized BlockDigest.

Returns
Type Description
BlockDigest

Deserialized BlockDigest.

| Improve this Doc View Source

FromBlock<T>(Block<T>)

Gets BlockDigest representation of the Block<T>.

Declaration
public static BlockDigest FromBlock<T>(Block<T> block)
    where T : IAction, new()
Parameters
Type Name Description
Block<T> block

The block instance to get its digest.

Returns
Type Description
BlockDigest

BlockDigest representation of the Block<T>.

Type Parameters
Name Description
T

An action type.

| Improve this Doc View Source

GetHeader()

Gets the block header.

Declaration
public readonly BlockHeader GetHeader()
Returns
Type Description
BlockHeader

The block header.

| Improve this Doc View Source

Serialize()

Gets serialized byte array of the BlockDigest.

Declaration
public readonly byte[] Serialize()
Returns
Type Description
Byte[]

Serialized byte array of BlockDigest.

| Improve this Doc View Source

ToBencodex()

Gets representation of BlockDigest.

Declaration
public readonly Bencodex.Types.Dictionary ToBencodex()
Returns
Type Description
Bencodex.Types.Dictionary

representation of BlockDigest.

Implements

IBlockMetadata
IBlockExcerpt
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2022 Planetarium