Libplanet changelog
Version 5.3.0
To be released.
Deprecated APIs
Backward-incompatible API changes
- Changed
BlockLocator.Create()to take a singleBlockHash. [#3913] - Changed
BlockLocator()to throw anArgumentExceptionwhen the number of givenBlockHashes is not 1. [#3913] - Removed
thresholdparameter fromBlockChain.GetBlockLocator(). [#3913] - (Libplanet.Net) Removed
SwarmOptions.BranchpointThresholdproperty. [#3913] - (Libplanet.Store) Removed unused
HashNode.Serialize()method. [#3922, #3924] - (Libplanet.Net) Removed
Headerproperty and addedBlockExcerptproperty toBlockDemand. [#3934]
Backward-incompatible network protocol changes
Backward-incompatible storage format changes
Added APIs
Behavioral changes
- Changed
BlockChain.FindBranchPoint()to only check for the firstBlockHashin a givenBlockLocator. [#3913] - (Libplanet.Store) Optimized
HashNode.ToBencodex()method. [#3922, #3924] - (Libplanet.Store) Optimized internal conversions to
KeyBytes. [#3926] - (Libplanet.Net) Changed the reporting behavior for
BlockHashDownloadStateandBlockDownloadStateduring preloading. These no longer report meaningful data and it is strongly advised not to rely on these to track the progress of preloading. [#3931]
Bug fixes
Dependencies
CLI tools
Version 5.2.2
Released on August 8, 2024.
- Ported changes from Libplanet 5.2.2 release. [#3915]
Version 5.2.1
Released on July 31, 2024.
- Ported changes from Libplanet 5.1.3 release. [#3902]
Version 5.2.0
Released on July 23, 2024.
Backward-incompatible API changes
- Removed
IBlockPolicy.BlockActionproperty. [#3701] - Added
IBlockPolicy.PolicyActionsRegistryproperty. [#3701] BlockPolicyconstructor now requirespolicyActionsRegistryparameter instead of theblockActionparameter. [#3701, #3748]- (Libplanet.Action) Removed
PolicyBlockActionGetterdelegate. [#3701, #3748] - (Libplanet.Action)
ActionEvaluatorconstructor requiresPolicyActionsRegistryparameter instead of thepolicyBlockActionGetterparameter. [#3701, #3748] - (Libplanet.Action) Renamed
IActionContext.BlockActionproperty toIActionContext.IsPolicyAction. [#3764]
Added APIs
- (Libplanet.Store) Added
MerkleTrie.GenerateProof()method. [#3870] - (Libplanet.Store) Added
MerkleTrie.ValidateProof()method. [#3870] - (Libplanet.Action) Added
PolicyActionsRegistryclass. [#3748]
Version 5.1.3
Released on July 30, 2024.
- (Libplanet.Explorer) Removed code that was used in development. [#3898]
Version 5.1.2
Released on July 17, 2024.
- Fix an issue where currency does not work correctly in dotnet6. [#3880]
- Fix an issue where evidence queries cause errors in the explorer. [#3883]
Version 5.1.1
Released on July 15, 2024.
- Fixed an issue with the evidence hash changing depending on the version. [#3874]
Version 5.1.0
Released on July 11, 2024.
Backward-incompatible API changes
- (Libplanet.Explorer) Added
ValidatorPowerfield toVoteType. [#3737, #3813] - (Libplanet.Types) Added
ValidatorPowerproperty toIVoteMetadatainterface and its implementations. [#3737, #3813] - (Libplanet.Types) Added
IBlockMetadata.EvidenceHashproperty 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.Evidenceproperty 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.GetMaxEvidencePendingDurationmethod. [#3696]
Added APIs
- (Libplanet.Types) Added
InvalidBlockEvidenceHashExceptionclass. [#3696] - (Libplanet.Types) Added
InvalidBlockEvidencePendingDurationExceptionclass. [#3696] - (Libplanet.Types) Added
EvidenceBaseabstract class. [#3696] - (Libplanet.Types) Added
DuplicateVoteEvidenceclass. [#3696] - (Libplanet.Types) Added
DuplicateVoteExceptionclass. [#3696] - (Libplanet.Types) Added
EvidenceContextclass. [#3696] - (Libplanet.Types) Added
EvidenceExceptionclass. [#3696] - (Libplanet.Types) Added
EvidenceIdclass. [#3696] - (Libplanet.Types) Added
IEvidenceContextclass. [#3696] - (Libplanet.Types) Added
InvalidEvidenceExceptionclass. [#3696] - (Libplanet.Net) Added
EvidenceCompletionclass. [#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.0is coming to an end soon, please note that projects usingnetstandard2.0will be deprecated.
The VersionPrefix property has been moved from the
src/Libplanet/Libplanet.csproj file to the Directory.Build.props file.
Version 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.CurrentProtocolVersionto 8. [#3811] BlockChain.EvaluateBlock()acceptsBlockinstead ofIPreEvaluationBlock. [#3811]BlockChain.ProposeGenesisBlock()receives parameterHashDigest<SHA256>? stateRootHash. [#3811]BlockChain.ProposeGenesisBlock()does not receive parameterIActionEvaluator actionEvaluatorany more. [#3811]BlockChain.ProposeBlock()receives parameterHashDigest<SHA256> stateRootHash. [#3811]- (Libplanet.Net) Changed
Context()to accept additionalBlockCommit?typed argument. RemovedlastCommitparameter fromContext.Start(). [#3833, #3845] - (Libplanet.Net) Changed
Context.Start()to throw anInvalidOperationExceptionwhenContextis not in a valid state. [#3846] - (Libplanet.Net) Removed
IConsensusMessageCommunicatorparameter fromContext(). [#3848, #3849] - (Libplanet.Net) Added
Runningproperty toConsensusContext. [#3851] - (Libplanet.Net) Added
Start()method toConsensusContext. [#3851] - (Libplanet.Net) Changed
NewHeight()to throw aNullReferenceExceptionif it is called while its internalBlockChainis in an invalid state. [#3851] - (Libplanet.Net) Removed
Nullvalue fromConsensusStepenum. [#3851]
Added APIs
- Added
BlockChain.DetermineNextBlockStateRootHash()method. [#3811]
Behavioral changes
Context.ProcessHeightOrRoundUponRules()now appends block asynchronously, as a manner of fire-and-forget. [#3808]BlockHeader.StateRootHashnow means state root hash calculated byBlockChain.DetermineNextBlockStateRootHash(previousBlockHash). [#3811]