Releases: planetarium/libplanet
Libplanet 5.2.0
Released on July 23, 2024.
Backward-incompatible API changes
- Removed
IBlockPolicy.BlockAction
property. [#3701] - Added
IBlockPolicy.PolicyActionsRegistry
property. [#3701] BlockPolicy
constructor now requirespolicyActionsRegistry
parameter instead of theblockAction
parameter. [#3701, #3748]- (Libplanet.Action) Removed
PolicyBlockActionGetter
delegate. [#3701, #3748] - (Libplanet.Action)
ActionEvaluator
constructor requiresPolicyActionsRegistry
parameter instead of thepolicyBlockActionGetter
parameter. [#3701, #3748] - (Libplanet.Action) Renamed
IActionContext.BlockAction
property toIActionContext.IsPolicyAction
. [#3764]
Added APIs
Libplanet 5.1.2
Libplanet 5.1.1
Released on July 15, 2024.
- Fixed an issue with the evidence hash changing depending on the version. [#3874]
Libplanet 5.1.0
Warning! this package is incompatible with other packages. we are finding this problem and will fix it on 5.1.1
Released on July 11, 2024.
Backward-incompatible API changes
- (Libplanet.Explorer) Added
ValidatorPower
field toVoteType
. [#3737, #3813] - (Libplanet.Types) Added
ValidatorPower
property toIVoteMetadata
interface and its implementations. [#3737, #3813] - (Libplanet.Types) Added
IBlockMetadata.EvidenceHash
property and the parameters required by the derived class's properties and constructors have been added. Affected classes areBlock
,BlockContent
,BlockHeader
,BlockMetadata
,PreEvaluationBlockHeader
. [#3696] - (Libplanet.Types) Added
IBlockContent.Evidence
property and the parameters required by the derived class's properties and constructors have been added. Affected classes areBlock
,BlockContent
,BlockHeader
,PreEvaluationBlock
. [#3696] - (Libplanet) Added
IBlockPolicy.GetMaxEvidencePendingDuration
method. [#3696]
Added APIs
- (Libplanet.Types) Added
InvalidBlockEvidenceHashException
class. [#3696] - (Libplanet.Types) Added
InvalidBlockEvidencePendingDurationException
class. [#3696] - (Libplanet.Types) Added
EvidenceBase
abstract class. [#3696] - (Libplanet.Types) Added
DuplicateVoteEvidence
class. [#3696] - (Libplanet.Types) Added
DuplicateVoteException
class. [#3696] - (Libplanet.Types) Added
EvidenceContext
class. [#3696] - (Libplanet.Types) Added
EvidenceException
class. [#3696] - (Libplanet.Types) Added
EvidenceId
class. [#3696] - (Libplanet.Types) Added
IEvidenceContext
class. [#3696] - (Libplanet.Types) Added
InvalidEvidenceException
class. [#3696] - (Libplanet.Net) Added
EvidenceCompletion
class. [#3696] - (Libplanet.Store) Added
IStore.IteratePendingEvidenceIds
. method. [#3696] - (Libplanet.Store) Added
IStore.GetPendingEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.GetCommittedEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.PutPendingEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.PutCommittedEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.DeletePendingEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.DeleteCommittedEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.ContainsPendingEvidence
. method. [#3696] - (Libplanet.Store) Added
IStore.ContainsCommittedEvidence
. method. [#3696] - (Libplanet) Added
BlockChain.GetPendingEvidence
. method. [#3696] - (Libplanet) Added
BlockChain.GetCommittedEvidence
. method. [#3696] - (Libplanet) Added
BlockChain.AddEvidence
. method. [#3696] - (Libplanet) Added
BlockChain.CommitEvidence
. method. [#3696] - (Libplanet) Added
BlockChain.IsEvidencePending
. method. [#3696] - (Libplanet) Added
BlockChain.IsEvidenceCommitted
. method. [#3696] - (Libplanet) Added
BlockChain.IsEvidenceExpired
. method. [#3696] - (Libplanet) Added
BlockChain.DeletePendingEvidence
. method. [#3696] - (Libplanet.Action) Added
IActionContext.Evidence
. property. [#3696] - (Libplanet.Net) Added
Swarm.BroadcastEvidence
. property. [#3696] - (Libplanet.Net) Added
Context.CollectEvidenceExceptions
. property. [#3696]
Dependencies
The entire project is now defined by common properties in the Directory.Build.props
file. The Directory.Build.props file is located at the root and in the src, tools, test path.
The project structure and affected Directory.Build.props locations are shown below.
┌ Directory.Build.props
├ src
│ ├ Directory.Build.props
│ ├ Libplanet
│ ├ Libplanet.Action
│ ├ Libplanet.Common
│ ├ Libplanet.Crypto.Secp256k1
│ ├ Libplanet.Crypto
│ ├ Libplanet.Net
│ ├ Libplanet.RocksDBStore
│ ├ Libplanet.Store.Remote
│ ├ Libplanet.Store
│ ├ Libplanet.Stun
│ └ Libplanet.Types
├ test
│ ├ Directory.Build.props
│ ├ Libplanet.Action.Tests
│ ├ Libplanet.Analyzers.Tests
│ ├ Libplanet.Crypto.Secp256k1.Tests
│ ├ Libplanet.Explorer.Cocona.Tests
│ ├ Libplanet.Explorer.Tests
│ ├ Libplanet.Extensions.Cocona.Tests
│ ├ Libplanet.Mocks
│ ├ Libplanet.Net.Tests
│ ├ Libplanet.RocksDBStore.Tests
│ ├ Libplanet.Store.Remote.Tests
│ ├ Libplanet.Stun.Tests
│ └ Libplanet.Tests
└ tools
├ Directory.Build.props
├ Libplanet.Analyzers
├ Libplanet.Benchmarks
├ Libplanet.Explorer.Cocona
├ Libplanet.Explorer.Executable
├ Libplanet.Explorer
├ Libplanet.Extensions.Cocona
└ Libplanet.Tools
The default SDK version for the project has been bumped up to .NET 6.0. The list of supported SDKs is as follows
- netstandard2.0
- netstandard2.1
- netcoreapp3.1
- net6.0"
Support for
netstandard2.0
is coming to an end soon, please note that projects usingnetstandard2.0
will be deprecated.
The VersionPrefix
property has been moved from the src/Libplanet/Libplanet.csproj file to the Directory.Build.props
file.
Libplanet 5.0.0-alpha.4
To be released.
Deprecated APIs
- (Libplanet)
BlockChain.DetermineGenesisStateRootHash()
has been removed. [#3811] - (Libplanet)
BlockChain.EvaluateGenesis()
has been removed. [#3811] - (Libplanet)
BlockChain.DetermineBlockStateRootHash()
has been removed. [#3811]
Backward-incompatible API changes
- (Libplanet.Action)
IBlockChainStates.GetWorldState(BlockHash?)
does not accept null parameter any more. [#3811] - Bumped
BlockMetadata.CurrentProtocolVersion
to 8. [#3811] - (Libplanet)
BlockChain.EvaluateBlock()
acceptsBlock
instead ofIPreEvaluationBlock
. [#3811] - (Libplanet)
BlockChain.ProposeGenesisBlock()
receives parameterHashDigest<SHA256>? stateRootHash
. [#3811] - (Libplanet)
BlockChain.ProposeGenesisBlock()
does not receive parameterIActionEvaluator actionEvaluator
any more. [#3811] - (Libplanet)
BlockChain.ProposeBlock()
receives parameterHashDigest<SHA256> stateRootHash
. [#3811] - (Libplanet) Added
BlockChain.GetNextWorldState()
andBlockChain.GetNextWorldState(BlockHash?)
methods. [[#3821]]
Backward-incompatible network protocol changes
Backward-incompatible storage format changes
Added APIs
- (Libplanet.Store) Added
IStore.GetNextStateRootHash()
method. [#3811] - (Libplanet.Store) Added
IStore.PutNextStateRootHash()
method. [#3811] - (Libplanet.Store) Added
IStore.DeleteNextStateRootHash()
method. [#3811] - (Libplanet) Added
BlockChain.DetermineNextBlockStateRootHash()
method. [#3811]
Behavioral changes
BlockHeader.StateRootHash
now means state root hash calculated byBlockChain.DetermineNextBlockStateRootHash(previousBlockHash)
. [[#Sloth]]IBlockChainStates.GetWorldState(BlockHash)
now means theIWorldState
before state transition from theBlock
. [#3811]Context.ProcessHeightOrRoundUponRules()
now appends block asynchronously, as a manner of fire-and-forget. [[#3808]]
Bug fixes
Dependencies
CLI tools
Libplanet 5.0.0
Released on July 2, 2024.
Deprecated APIs
BlockChain.DetermineGenesisStateRootHash()
has been removed. [#3811]BlockChain.EvaluateGenesis()
has been removed. [#3811]BlockChain.DetermineBlockStateRootHash()
has been removed. [#3811]
Backward-incompatible API changes
- (Libplanet.Action)
IBlockChainStates.GetWorldState(BlockHash?)
does not accept null parameter any more. [#3811] - Bumped
BlockMetadata.CurrentProtocolVersion
to 8. [#3811] BlockChain.EvaluateBlock()
acceptsBlock
instead ofIPreEvaluationBlock
. [#3811]BlockChain.ProposeGenesisBlock()
receives parameterHashDigest<SHA256>? stateRootHash
. [#3811]BlockChain.ProposeGenesisBlock()
does not receive parameterIActionEvaluator actionEvaluator
any more. [#3811]BlockChain.ProposeBlock()
receives parameterHashDigest<SHA256> stateRootHash
. [#3811]- (Libplanet.Net) Changed
Context()
to accept additionalBlockCommit?
typed argument. RemovedlastCommit
parameter fromContext.Start()
. [#3833, #3845] - (Libplanet.Net) Changed
Context.Start()
to throw anInvalidOperationException
whenContext
is not in a valid state. [#3846] - (Libplanet.Net) Removed
IConsensusMessageCommunicator
parameter fromContext()
. [#3848, #3849] - (Libplanet.Net) Added
Running
property toConsensusContext
. [#3851] - (Libplanet.Net) Added
Start()
method toConsensusContext
. [#3851] - (Libplanet.Net) Changed
NewHeight()
to throw aNullReferenceException
if it is called while its internalBlockChain
is in an invalid state. [#3851] - (Libplanet.Net) Removed
Null
value fromConsensusStep
enum. [#3851]
Added APIs
- Added
BlockChain.DetermineNextBlockStateRootHash()
method. [#3811]
Behavioral changes
Libplanet 5.0.0-alpha.3
To be released.
Deprecated APIs
- (Libplanet)
BlockChain.DetermineGenesisStateRootHash()
has been removed. [#3811] - (Libplanet)
BlockChain.EvaluateGenesis()
has been removed. [#3811] - (Libplanet)
BlockChain.DetermineBlockStateRootHash()
has been removed. [#3811]
Backward-incompatible API changes
- (Libplanet.Action)
IBlockChainStates.GetWorldState(BlockHash?)
does not accept null parameter any more. [#3811] - Bumped
BlockMetadata.CurrentProtocolVersion
to 8. [#3811] - (Libplanet)
BlockChain.EvaluateBlock()
acceptsBlock
instead ofIPreEvaluationBlock
. [#3811] - (Libplanet)
BlockChain.ProposeGenesisBlock()
receives parameterHashDigest<SHA256>? stateRootHash
. [#3811] - (Libplanet)
BlockChain.ProposeGenesisBlock()
does not receive parameterIActionEvaluator actionEvaluator
any more. [#3811] - (Libplanet)
BlockChain.ProposeBlock()
receives parameterHashDigest<SHA256> stateRootHash
. [#3811] - (Libplanet) Added
BlockChain.GetNextWorldState()
andBlockChain.GetNextWorldState(BlockHash?)
methods. [[#3821]]
Backward-incompatible network protocol changes
Backward-incompatible storage format changes
Added APIs
- (Libplanet.Store) Added
IStore.GetNextStateRootHash()
method. [#3811] - (Libplanet.Store) Added
IStore.PutNextStateRootHash()
method. [#3811] - (Libplanet.Store) Added
IStore.DeleteNextStateRootHash()
method. [#3811] - (Libplanet) Added
BlockChain.DetermineNextBlockStateRootHash()
method. [#3811]
Behavioral changes
BlockHeader.StateRootHash
now means state root hash calculated byBlockChain.DetermineNextBlockStateRootHash(previousBlockHash)
. [[#Sloth]]IBlockChainStates.GetWorldState(BlockHash)
now means theIWorldState
before state transition from theBlock
. [#3811]Context.ProcessHeightOrRoundUponRules()
now appends block asynchronously, as a manner of fire-and-forget. [[#3808]]
Bug fixes
Dependencies
CLI tools
Libplanet 4.6.1
Released on June 11, 2024.
- Ported changes from Libplanet 4.5.2 release. [#3816]
Libplanet 4.5.2
Released on June 10, 2024.
- (Libplanet.Explorer) Added
ProtocolVersion
field toBlockType
. [#3810]
Libplanet 4.6.0
Released on May 27, 2024.
Due to changes in #3789, a network ran with a prior version may not be compatible with this version. The native implementation of IActionEvaluator
, which is ActionEvaluator
, no longer supports evaluation of PoW Block
s. That is, it is no longer possible to reconstruct states with valid state root hashes purely from past Block
s that includes PoW Block
s.
Deprecated APIs
Backward-incompatible API changes
- (Libplanet.Action) Changed
ActionEvaluate.Evaluate()
to no longer acceptIPreEvaluationBlock
with a protocol version less thanBlockMetadata.PBFTProtocolVersion
. [#3789] - (Libplanet.Action) Changed the description of
IActionEvaluate.Evaluate()
so that it may throwBlockProtocolVersionNotSupportedException
if its implementation is not able to handleIPreEvaluationBlock
with certainBlockMetadata.ProtocolVersion
s. [#3789] - (Libplanet.Types) Removed
nonce
parameter fromBlockMetadata.DerivePreEvaluationHash()
andBlockMetadata.MakeCandidateData()
methods. [#3793, #3794] - (Libplanet.Explorer.Executable) Removed unused
difficultyBoundDivisor
parameter for the executable and removedOptions.DifficultyBoundDivisor
property. [#3796] - (Libplanet.Explorer) Added
balance
,totalSupply
, andvalidatorSet
queries toWorldStateType
. [#3792, #3798] - (Libplanet.Explorer) Deprecated
balance
,balances
,totalSupply
andvalidatorSet
query fromAccountStateType
. [#3792, #3798] - (Libplanet.Explorer) Changed
totalSupply
query underStateQuery
to no longer throw anException
and return a zero amount instead. [#3799]