Show / Hide Table of Contents

Interface IBlockMetadata

A common interface for blocks that do not have any proofs nor transactions (but only TxHash).

Namespace: Libplanet.Types.Blocks
Assembly: Libplanet.Types.dll
Syntax
public interface IBlockMetadata

Properties

| Improve this Doc View Source

EvidenceHash

Committing EvidenceIds of vote infraction that has been made on previous blocks.

Declaration
HashDigest<SHA256>? EvidenceHash { get; }
Property Value
Type Description
System.Nullable<HashDigest<SHA256>>
| Improve this Doc View Source

Index

The height of the block.

Declaration
long Index { get; }
Property Value
Type Description
System.Int64
Remarks

Zero means it is a genesis block. Not allowed to be negative.

| Improve this Doc View Source

LastCommit

The BlockCommit about previous block's vote information.

Declaration
BlockCommit LastCommit { get; }
Property Value
Type Description
BlockCommit
| Improve this Doc View Source

Miner

The address of the miner.

Declaration
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
BlockHash? PreviousHash { get; }
Property Value
Type Description
System.Nullable<BlockHash>
| Improve this Doc View Source

ProtocolVersion

The protocol version number. For the latest protocol version, see CurrentProtocolVersion. We have the following version info:

  • 0: The initial block protocol version number. This is not actually recorded in storage. That is, the lack of block protocol version in a stored block means it is of version 0.
  • 1: Introduced to be stored with the block data. Validation for PreEvaluationHash was added.
  • 2: Updated to include Signature to blocks. As a result, the miner's identity is provided as a PublicKey instead of a Address. Additionally, total difficulty was added.
  • 3: Updated to fix an issue with the internal execution ordering of Transactions in blocks.
  • 4: Updated to introduce a PBFT scheme. LastCommit was added and total difficulty was removed.
  • 5: Updated to introduce a world model. No structural changes were made to blocks. This is used as a marker indicating when the data model should be migrated.
Declaration
int ProtocolVersion { get; }
Property Value
Type Description
System.Int32
See Also
CurrentProtocolVersion
| 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
PublicKey PublicKey { get; }
Property Value
Type Description
PublicKey
| Improve this Doc View Source

Timestamp

The time the block is created.

Declaration
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
HashDigest<SHA256>? TxHash { get; }
Property Value
Type Description
System.Nullable<HashDigest<SHA256>>

Extension Methods

IBlockMetadataExtensions.ValidateTimestamp(IBlockMetadata)
IBlockMetadataExtensions.ValidateTimestamp(IBlockMetadata, DateTimeOffset)
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2023 Planetarium