Releases: planetarium/libplanet
Libplanet 5.2.1
Released on July 31, 2024.
- Ported changes from Libplanet 5.1.3 release. [#3902]
Libplanet 5.1.3
Released on July 30, 2024.
- (Libplanet.Explorer) Removed code that was used in development. [#3898]
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]