Class PreEvaluationBlock
A block candidate without evaluating actions (in its Transactions and
a possible
Inherited Members
Namespace: Libplanet.Types.Blocks
Assembly: Libplanet.Types.dll
Syntax
public sealed class PreEvaluationBlock : IPreEvaluationBlock, IBlockContent, IPreEvaluationBlockHeader, IBlockMetadata
Constructors
| Improve this Doc View SourcePreEvaluationBlock(IPreEvaluationBlockHeader, IEnumerable<Transaction>)
A block candidate without evaluating actions (in its Transactions and
a possible
Declaration
public PreEvaluationBlock(IPreEvaluationBlockHeader preEvaluationBlockHeader, IEnumerable<Transaction> transactions)
Parameters
Type | Name | Description |
---|---|---|
IPreEvaluationBlockHeader | preEvaluationBlockHeader | |
IEnumerable<Transaction> | transactions |
Properties
| Improve this Doc View SourceHeader
Internal PreEvaluationBlockHeader.
Declaration
public PreEvaluationBlockHeader Header { get; }
Property Value
Type | Description |
---|---|
PreEvaluationBlockHeader |
Index
The height of the block.
Declaration
public long Index { get; }
Property Value
Type | Description |
---|---|
Int64 |
Remarks
Zero means it is a genesis block. Not allowed to be negative.
LastCommit
The BlockCommit about previous block's vote information.
Declaration
public BlockCommit LastCommit { get; }
Property Value
Type | Description |
---|---|
BlockCommit |
Miner
The address of the miner.
Declaration
public Address Miner { get; }
Property Value
Type | Description |
---|---|
Address |
PreEvaluationHash
The hash derived from the block except of its state root hash (i.e., without action evaluation). Used for validating Nonce.
Declaration
public HashDigest<SHA256> PreEvaluationHash { get; }
Property Value
Type | Description |
---|---|
HashDigest<SHA256> |
See Also
| Improve this Doc View SourcePreviousHash
The previous block's hash. If it's a genesis block (i.e., its Index is 0) this must be null.
Declaration
public BlockHash? PreviousHash { get; }
Property Value
Type | Description |
---|---|
Nullable<BlockHash> |
ProtocolVersion
The protocol version number.
Declaration
public int ProtocolVersion { get; }
Property Value
Type | Description |
---|---|
Int32 |
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 PublicKey PublicKey { get; }
Property Value
Type | Description |
---|---|
PublicKey |
Timestamp
The time the block is created.
Declaration
public DateTimeOffset Timestamp { get; }
Property Value
Type | Description |
---|---|
DateTimeOffset |
Remarks
This is always UTC.
Transactions
Transactions belonging to the block.
Declaration
public IReadOnlyList<Transaction> Transactions { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<Transaction> |
TxHash
The hash of all transactions in the block. This is null if the block has no transactions.
Declaration
public HashDigest<SHA256>? TxHash { get; }
Property Value
Type | Description |
---|---|
Nullable<HashDigest<SHA256>> |
Methods
| Improve this Doc View SourceSign(PrivateKey, HashDigest<SHA256>)
Signs the block content with the given stateRootHash
.
Declaration
public Block Sign(PrivateKey privateKey, HashDigest<SHA256> stateRootHash)
Parameters
Type | Name | Description |
---|---|---|
PrivateKey | privateKey | The miner's private key to be used for signing the block. This must match to the block's Miner and PublicKey. |
HashDigest<SHA256> | stateRootHash | The state root hash to include to the input message to sign. |
Returns
Type | Description |
---|---|
Block | The signed block with the |
Remarks
As blocks have their signatures since the ProtocolVersion 2, it is not usable with blocks of the earlier ProtocolVersions than 2. To create a Block instance with ProtocolVersion less than 2, use Block's constructors with null signatures.
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown when the block's ProtocolVersion is less than 2. |
ArgumentException | Thrown when the given |
Explicit Interface Implementations
| Improve this Doc View SourceIBlockContent.Transactions
Transactions belonging to the block.
Declaration
IReadOnlyList<ITransaction> IBlockContent.Transactions { get; }
Returns
Type | Description |
---|---|
IReadOnlyList<ITransaction> |