Skip to content

Releases: planetarium/libplanet

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

Libplanet 4.6.1

11 Jun 10:49
a96e60b
Compare
Choose a tag to compare

Released on June 11, 2024.

Libplanet 4.5.2

11 Jun 01:05
d08ba66
Compare
Choose a tag to compare

Released on June 10, 2024.

  • (Libplanet.Explorer) Added ProtocolVersion field to BlockType. [#3810]

Libplanet 4.6.0

27 May 05:08
acefa76
Compare
Choose a tag to compare

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 Blocks. That is, it is no longer possible to reconstruct states with valid state root hashes purely from past Blocks that includes PoW Blocks.

Deprecated APIs

  • (Libplanet.Common) Removed Nonce struct. [#3793, #3794]
  • Removed AtomicActionRenderer class. [#3795]

Backward-incompatible API changes

  • (Libplanet.Action) Changed ActionEvaluate.Evaluate() to no longer accept IPreEvaluationBlock with a protocol version less than BlockMetadata.PBFTProtocolVersion. [#3789]
  • (Libplanet.Action) Changed the description of IActionEvaluate.Evaluate() so that it may throw BlockProtocolVersionNotSupportedException if its implementation is not able to handle IPreEvaluationBlock with certain BlockMetadata.ProtocolVersions. [#3789]
  • (Libplanet.Types) Removed nonce parameter from BlockMetadata.DerivePreEvaluationHash() and BlockMetadata.MakeCandidateData() methods. [#3793, #3794]
  • (Libplanet.Explorer.Executable) Removed unused difficultyBoundDivisor parameter for the executable and removed Options.DifficultyBoundDivisor property. [#3796]
  • (Libplanet.Explorer) Added balance, totalSupply, and validatorSet queries to WorldStateType. [#3792, #3798]
  • (Libplanet.Explorer) Deprecated balance, balances, totalSupply and validatorSet query from AccountStateType. [#3792, #3798]
  • (Libplanet.Explorer) Changed totalSupply query under StateQuery to no longer throw an Exception and return a zero amount instead. [#3799]

Added APIs

  • (Libplanet.Action) Added BlockProtocolVersionNotSupportedException class. [#3789]
  • (Libplanet.Mocks) Added MockBlockChainStates class. [#3799]

Libplanet 4.5.1

27 May 01:54
56ecf05
Compare
Choose a tag to compare

Released on May 27, 2024.

Libplanet 4.5.0

14 May 08:17
51b31e7
Compare
Choose a tag to compare

Released on May 14, 2024.

Due to changes in #3780 and #3783, a network ran with a prior version may not be compatible with this version. Regarding #3780, a network that ran with an IAction that has used GetTotalSupply() with its execution result dependent on its value may not be compatible. Regarding #3783, a network that ran with an IAction that has either used MintAsset() and BurnAsset() with its execution result dependent on handling of a possible Exception thrown by these methods may not be compatible.

Backward-incompatible API changes

  • (Libplanet.Types) Updated BlockMetadata.CurrentProtocolVersion from 6 to 7. [#3769]
  • (Libplanet.Store) Added IterateSubTrieValues(KeyBytes) and IterateSubTrieNodes(KeyBytes) methods to MerkleTrie. [#3774]
  • (Libplanet.Types) Added BlockMetadata.CurrencyAccountProtocolVersion. [#3775]
  • (Libplanet.Mocks) Removed MockWorldState.ToModern() and MockWorldState.SetTotalSupply() methods. [#3778]
  • (Libplanet.Action) Removed TotalSupplyNotTrackableException class. [#3780]
  • (Libplanet.Action) IWorldState.GetTotalSupply() no longer throws a TotalSupplyNotTrackableException but returns a zero amount of corresponding FungibleAssetValue. [#3780]
  • (Libplanet.Action) Changed the precednce for the types of Exceptions that may be thrown by IWorld.MintAsset() and IWorld.BurnAsset().

Added APIs

  • (Libplanet.Action) Added CurrencyAccount class. [#3779]

Behavioral changes

  • (Libplanet.Mocks) MockWorldState.SetBalance() now automatically updates the total supply of the provided Currency. [#3778]

Libplanet 4.4.2

29 Apr 12:38
001085a
Compare
Choose a tag to compare

Released on April 29, 2024.

  • (Libplanet.Explorer) Added KeyBytesType and TrieType. [#3763]
  • (Libplanet.Explorer) Added RawStateQuery. [#3763]

Libplanet 4.4.1

18 Apr 07:18
01ff047
Compare
Choose a tag to compare

Released on April 18, 2024.

Libplanet 4.3.1

18 Apr 06:24
9b2a26e
Compare
Choose a tag to compare

Released on April 18, 2024.

Libplanet 4.4.0

17 Apr 09:44
5ddfb2f
Compare
Choose a tag to compare

Released on April 17, 2024.

Backward-incompatible API changes

  • (Libplanet.Action) Removed IWorld.SetValidator() extension method. Use IWorld.SetValidatorSet() extension method instead. [#3735]
  • (Libplanet.Types) Renamed BlockMetadata.PoWProtocolVersion to BlockMetadata.PBFTProtocolVersion and BlockMetadata.LegacyStateVersion to BlockMetadata.WorldStateProtocolVersion while increasing each value by 1. [#3736]
  • (Libplanet.Store) Changed the type of TrieMetadata.Version from BigInteger to int. [#3738]
  • (Libplanet.Store) Changed TrieMetadata to throw an ArgumentException when trying to create an instance with an invalid version. [#3738]
  • (Libplanet.Action) Added IWorldState.Version interface property. [#3739]
  • (Libplanet.Types) Updated BlockMetadata.CurrentProtocolVersion from 5 to 6. [#3741]
  • (Libplanet.Types) Added BlockMetadata.TransferFixProtocolVersion, BlockMetadata.SignatureProtocolVersion, and BlockMetadata.TransactionOrderingFixProtocolVersion constants. [#3742]
  • (Libplanet.Action) Removed ReservedAddresses.FungibleAssetAccount. [#3745]
  • (Libplanet.Action) Changed ReservedAddresses.ValidatorSetAccount's value from 0x1000000000000000000000000000000000000002 to 0x100000000000000000000000000000000000001. [#3745]

Added APIs

  • (Libplanet.Action) Added ValidatorSetAccount class. [#3745]
  • (Libplanet.Explorer) Added WorldState.version field. [#3746]