Show / Hide Table of Contents

Interface IBlockPolicy<T>

An interface to determine if consecutive Block<T>s are valid, and to suggest how difficult a Nonce for a Block<T> to be mined.

Namespace: Libplanet.Blockchain.Policies
Assembly: Libplanet.dll
Syntax
public interface IBlockPolicy<T>
    where T : IAction, new()
Type Parameters
Name Description
T

An IAction type. It should match to Block<T>'s type parameter.

Properties

| Improve this Doc View Source

BlockAction

A block action to execute and be rendered for every block.

Declaration
IAction BlockAction { get; }
Property Value
Type Description
IAction

Methods

| Improve this Doc View Source

DoesTransactionFollowsPolicy(Transaction<T>)

A predicate that determines if the transaction follows the block policy.

Declaration
bool DoesTransactionFollowsPolicy(Transaction<T> transaction)
Parameters
Type Name Description
Transaction<T> transaction

A Transaction<T> to determine.

Returns
Type Description
Boolean

true if transactionis valid; otherwise, false.

| Improve this Doc View Source

GetNextBlockDifficulty(BlockChain<T>)

Determines a right Difficulty for a new Block<T> to be mined right after the given blocks.

Declaration
long GetNextBlockDifficulty(BlockChain<T> blocks)
Parameters
Type Name Description
BlockChain<T> blocks

Consecutive Block<T>s to be followed by a new Block<T> to be mined.

Returns
Type Description
Int64

A right Difficulty for a new Block<T> to be mined.

| Improve this Doc View Source

ValidateNextBlock(BlockChain<T>, Block<T>)

Checks if nextBlock is invalid, and if that returns the reason.

Note that it returns null when nextBlock is valid.

Declaration
InvalidBlockException ValidateNextBlock(BlockChain<T> blocks, Block<T> nextBlock)
Parameters
Type Name Description
BlockChain<T> blocks

Consecutive Block<T>s to append nextBlock.

Block<T> nextBlock

The next block to append to blocks.

Returns
Type Description
InvalidBlockException

The reason why the given blocks are invalid, or null if blocks are valid.

  • Improve this Doc
  • View Source
Back to top Copyright © 2019–2020 Planetarium