Libplanet changelog
Version 5.4.1
Released on November 22, 2024.
- Ported changes from Libplanet 5.3.2 release. [#3973]
Version 5.4.0
Released on November 13, 2024.
Backward-incompatible API changes
- (Libplanet.Action) Added
MaxGasPriceproperty toIActionContextinterface and its implementations. [#3912] - (Libplanet.Explorer) Added
selffield toNoteStateType. [#3912] - (Libplanet.Action) Removed
IFeeCollectorinterface and its implementations. [#3912] - (Libplanet.Action) Removed following methods from the
IActionContextinterface. [#3912]- Removed
IActionContext.UseGas(long). - Removed
IActionContext.GasUsed(). - Removed
IActionContext.GasLimit().
- Removed
- (Libplanet.Action) Added
GasTracerstatic class. [#3912] - (Libplanet.Action) Added
LastCommitproperty toIActionContextinterface and its implementations. [#3912] - (Libplanet.Action) Added
CancelTracemethod toGasTracer. [#3974]
Version 5.3.1
Released on October 14, 2024.
Dependencies
- (Libplanet.Extensions.Cocona) Changed System.Text.Json from [6.0.7] to [6.0.*]. [#3967]
- Changed BouncyCastle.Cryptography from [2.0.0] to [2.4.0]. [#3968]
- (Libplanet.Crypto) Changed BouncyCastle.Cryptography from [2.0.0] to [2.4.0]. [#3968]
Version 5.3.0
Released on October 10, 2024.
Backward-incompatible API changes
- 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] - Removed
BlockLocator.Create(). [#3942] - Changed
BlockLocator()to take a singleBlockHash. [#3942] - Changed
BlockLocator()to no longer implemnetIEnumerable<BlockHash>. [#3942] - (Libplanet.Net) Changed
BlockHashDownloadStateandBlockDownloadStateto beObsolete. [#3943] - Removed
Fork()method fromBlockChain. [#3948] - Changed the return type for
BlockChain.FindNextHashes()toIReadOnlyList<BlockHash>. [#3949] - (Libplanet.Net) Changed
ActionExecutionStateandBlockVerificationStateto beObsolete. [#3943] - (Libplanet.Action) Export
IPolicyActionsRegistryinterface fromPolicyActionsRegistry. [#3960]
Backward-incompatible network protocol changes
- (Libplanet.Net) Changed the encoding for
GetBlockHashesMsgandBlockHashesMsg. [#3949]
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 to no longer report
BlockHashDownloadStateandBlockDownloadStateduring preloading. It is strongly advised not to rely on these to track the progress of preloading. [#3943] - (Libplanet.Store) Optimized LRU Cache for
HashNodeandBlockSet. [#3962]
Version 5.2.2
Released on August 8, 2024.
- (Libplanet.Explorer) Fix an issue with high CPU usage when querying blocks [#3897]
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]