Skip to content

Releases: planetarium/libplanet

Libplanet 5.2.2

08 Aug 12:45
5.2.2
94fd763
Compare
Choose a tag to compare

Released on August 8, 2024.

  • (Libplanet.Explorer) Fix an issue with high CPU usage when querying blocks [#3897]

Libplanet 5.2.1

31 Jul 02:18
ab547a0
Compare
Choose a tag to compare

Released on July 31, 2024.

Libplanet 5.1.3

30 Jul 06:57
4aadf2c
Compare
Choose a tag to compare

Released on July 30, 2024.

  • (Libplanet.Explorer) Removed code that was used in development. [#3898]

Libplanet 5.2.0

23 Jul 08:38
29be97f
Compare
Choose a tag to compare

Released on July 23, 2024.

Backward-incompatible API changes

  • Removed IBlockPolicy.BlockAction property. [#3701]
  • Added IBlockPolicy.PolicyActionsRegistry property. [#3701]
  • BlockPolicy constructor now requires policyActionsRegistry parameter instead of the blockAction parameter. [#3701, #3748]
  • (Libplanet.Action) Removed PolicyBlockActionGetter delegate. [#3701, #3748]
  • (Libplanet.Action) ActionEvaluator constructor requires PolicyActionsRegistry parameter instead of the policyBlockActionGetter parameter. [#3701, #3748]
  • (Libplanet.Action) Renamed IActionContext.BlockAction property to IActionContext.IsPolicyAction. [#3764]

Added APIs

  • (Libplanet.Store) Added MerkleTrie.GenerateProof() method. [#3870]
  • (Libplanet.Store) Added MerkleTrie.ValidateProof() method. [#3870]
  • (Libplanet.Action) Added PolicyActionsRegistry class. [#3748]

Libplanet 5.1.2

17 Jul 09:16
5ecafb7
Compare
Choose a tag to compare

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]

Libplanet 5.1.1

15 Jul 01:25
0b596b2
Compare
Choose a tag to compare

Released on July 15, 2024.

  • Fixed an issue with the evidence hash changing depending on the version. [#3874]

Libplanet 5.1.0

11 Jul 03:59
6440b86
Compare
Choose a tag to compare

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 to VoteType. [#3737, #3813]
  • (Libplanet.Types) Added ValidatorPower property to IVoteMetadata 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 are Block, 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 are Block, 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 using netstandard2.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

02 Jul 01:38
0d400bc
Compare
Choose a tag to compare

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() accepts Block instead of IPreEvaluationBlock. [#3811]
  • (Libplanet) BlockChain.ProposeGenesisBlock() receives parameter HashDigest<SHA256>? stateRootHash. [#3811]
  • (Libplanet) BlockChain.ProposeGenesisBlock() does not receive parameter IActionEvaluator actionEvaluator any more. [#3811]
  • (Libplanet) BlockChain.ProposeBlock() receives parameter HashDigest<SHA256> stateRootHash. [#3811]
  • (Libplanet) Added BlockChain.GetNextWorldState() and BlockChain.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 by BlockChain.DetermineNextBlockStateRootHash(previousBlockHash). [[#Sloth]]
  • IBlockChainStates.GetWorldState(BlockHash) now means the IWorldState before state transition from the Block. [#3811]
  • Context.ProcessHeightOrRoundUponRules() now appends block asynchronously, as a manner of fire-and-forget. [[#3808]]

Bug fixes

Dependencies

CLI tools

Libplanet 5.0.0

02 Jul 10:17
c1df40d
Compare
Choose a tag to compare

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() accepts Block instead of IPreEvaluationBlock. [#3811]
  • BlockChain.ProposeGenesisBlock() receives parameter HashDigest<SHA256>? stateRootHash. [#3811]
  • BlockChain.ProposeGenesisBlock() does not receive parameter IActionEvaluator actionEvaluator any more. [#3811]
  • BlockChain.ProposeBlock() receives parameter HashDigest<SHA256> stateRootHash. [#3811]
  • (Libplanet.Net) Changed Context() to accept additional BlockCommit? typed argument. Removed lastCommit parameter from Context.Start(). [#3833, #3845]
  • (Libplanet.Net) Changed Context.Start() to throw an InvalidOperationException when Context is not in a valid state. [#3846]
  • (Libplanet.Net) Removed IConsensusMessageCommunicator parameter from Context(). [#3848, #3849]
  • (Libplanet.Net) Added Running property to ConsensusContext. [#3851]
  • (Libplanet.Net) Added Start() method to ConsensusContext. [#3851]
  • (Libplanet.Net) Changed NewHeight() to throw a NullReferenceException if it is called while its internal BlockChain is in an invalid state. [#3851]
  • (Libplanet.Net) Removed Null value from ConsensusStep enum. [#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.StateRootHash now means state root hash calculated by BlockChain.DetermineNextBlockStateRootHash(previousBlockHash). [#3811]

Libplanet 5.0.0-alpha.3

13 Jun 07:56
aa6c4a2
Compare
Choose a tag to compare

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() accepts Block instead of IPreEvaluationBlock. [#3811]
  • (Libplanet) BlockChain.ProposeGenesisBlock() receives parameter HashDigest<SHA256>? stateRootHash. [#3811]
  • (Libplanet) BlockChain.ProposeGenesisBlock() does not receive parameter IActionEvaluator actionEvaluator any more. [#3811]
  • (Libplanet) BlockChain.ProposeBlock() receives parameter HashDigest<SHA256> stateRootHash. [#3811]
  • (Libplanet) Added BlockChain.GetNextWorldState() and BlockChain.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 by BlockChain.DetermineNextBlockStateRootHash(previousBlockHash). [[#Sloth]]
  • IBlockChainStates.GetWorldState(BlockHash) now means the IWorldState before state transition from the Block. [#3811]
  • Context.ProcessHeightOrRoundUponRules() now appends block asynchronously, as a manner of fire-and-forget. [[#3808]]

Bug fixes

Dependencies

CLI tools