Show / Hide Table of Contents

Struct BlockDigest

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

Implements
IBlockMetadata
IBlockExcerpt
Inherited Members
ValueType.Equals(Object)
ValueType.GetHashCode()
ValueType.ToString()
Object.Equals(Object, Object)
Object.GetType()
Object.ReferenceEquals(Object, Object)
Namespace: Libplanet.Store
Assembly: Libplanet.Store.dll
Syntax
public readonly struct BlockDigest : IBlockMetadata, IBlockExcerpt

Constructors

| Improve this Doc View Source

BlockDigest(Dictionary)

Creates BlockDigest instance from Bencodex.Types.Dictionary representation of the Block.

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

Bencodex.Types.Dictionary representation of the Block.

| Improve this Doc View Source

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

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

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

BlockHeader of the Block.

ImmutableArray<ImmutableArray<Byte>> txIds

Transaction ids the Block has.

Properties

| 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. Not allowed to be negative.

See Also
Index
| Improve this Doc View Source

LastCommit

The BlockCommit about previous block's vote information.

Declaration
public readonly BlockCommit LastCommit { get; }
Property Value
Type Description
BlockCommit
| 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 DateTimeOffset Timestamp { get; }
Property Value
Type Description
DateTimeOffset
Remarks

This is always UTC.

| 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

The Ids of Transactions in a Block. This is not necessarily ordered by Id.

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.

Exceptions
Type Condition
ArgumentNullException

Thrown when the passed bytes is null.

Bencodex.DecodingException

Thrown when decoded value is not Bencodex.Types.Dictionary type.

| Improve this Doc View Source

FromBlock(Block)

Gets BlockDigest representation of the Block.

Declaration
public static BlockDigest FromBlock(Block block)
Parameters
Type Name Description
Block block

The block instance to get its digest.

Returns
Type Description
BlockDigest

BlockDigest representation of the Block.

| 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 Bencodex.Types.Dictionary representation of BlockDigest.

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

Bencodex.Types.Dictionary representation of BlockDigest.

Implements

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