Skip to content

Releases: planetarium/libplanet

Libplanet 3.2.0

11 Aug 03:26
97b3d2e
Compare
Choose a tag to compare

Released on August 10, 2023.

Backward-incompatible API changes

  • (Libplanet.Action) Renamed IAccountStateDelta as IAccount. [#3337]
  • (Libplanet.Store) Optimized MerkleTrie.Get(). [#3347]
  • (Libplanet.Types) Removed TxSuccess.FungibleAssetsDelta [#3357]
  • (Libplanet.Explorer) Removed TxResult.ExceptionMetadata and TxResult.FungibleAssetsDelta. [#3357]
  • (Libplanet.Store) Added ITrie.Get(KeyBytes) interface method. [#3359]
  • (Libplanet.Store) Optimized MerkleTrie.Get() by allowing parallel processing when more than 4 KeyBytes keys are given. [#3359]

Libplanet 3.1.2

10 Aug 07:22
419d7a5
Compare
Choose a tag to compare

Released on August 10, 2023.

Libplanet 3.1.1

09 Aug 11:40
3.1.1
69bac89
Compare
Choose a tag to compare

Released on August 9, 2023.

  • Fixed a bug where Swarm checks block existent when preloading. [#3253, #3353, #3360]

Libplanet 3.1.0

27 Jul 09:34
a987187
Compare
Choose a tag to compare

Released on July 27, 2023.

Backward-incompatible API changes

  • Changed StateStoreExtensions.Commit() to accept IImmutableDictionary<KeyBytes, IValue> instead of IImmutableDictionary<string, IValue>. [#3321]
  • Changed AccountDeltaExtensions.ToRawDelta() to return IImmutableDictionary<KeyBytes, IValue> instead of IImmutableDictionary<string, IValue>. [#3321]
  • Changed ActionEvaluatorExtensions.GetRawTotalDelta() to return IImmutableDictionary<KeyBytes, IValue> instead of IImmutableDictionary<string, IValue>. [#3321]
  • Removed EnumerableMeasurement class. [#3325]
  • Removed KeyValueExtensions class. [#3325]
  • Removed StateStoreExtensions.EncodeKey() and StateStoreExtensions.DecodeKey() methods. [#3328]
  • Removed StateStoreExtensions.GetStates(IStateStore, HashDigest<SHA256>?, IReadOnlyList<string>) method. [#3328]
  • Removed TrieExtensions.Set(ITrie, IEnumerable<KeyValuePair<string, IValue?>) method. [#3328]
  • Removed KeyBytes(string, Encoding) constructor. [#3328]

Added APIs

  • Added StateStoreExtensions.GetStates(IStateStore, HashDigest<SHA256>, IReadOnlyList<KeyBytes>) method. [#3321]
  • Added KeyBytes.Encoding static property. [#3328]
  • Added KeyBytes(string) constructor. [#3328]

Behavioral changes

  • Optimized read and write access to IStateStore both for memory and speed. [#3321]

Dependencies

Libplanet 3.0.1

21 Jul 06:12
6a4005d
Compare
Choose a tag to compare

Released on July 21, 2023.

  • Fixed builds and tests. [#3326]

Libplanet 3.0.0

19 Jul 08:12
3.0.0
2944cbd
Compare
Choose a tag to compare

Released on July 19, 2023.

Backward-incompatible API changes

  • (Libplanet.Common) Moved packages from Libplanet. [#3300]
    • Libplanet.Serialization
    • Libplanet.JsonConverters
  • (Libplanet.Common) Moved packages from Libplanet. [#3314]
    • Libplanet.Misc
  • (Libplanet.Crypto) Moved packages from Libplanet. [#3314]
    • Libplanet.Crypto
  • (Libplanet.Types) Moved packages from Libplanet. [#3314]
    • Libplanet.Assets
    • Libplanet.Blocks
    • Libplanet.Consensus
    • Libplanet.Tx
  • (Libplanet.Store) Moved packages from Libplanet. [#3303]
    • Libplanet.Store
  • (Libplanet.Action) Moved packages from Libplanet. [#3310]
    • Libplanet.Action
  • Removed IExtractableException and ExtractableException. [#3304]

Added APIs

  • (Libplanet.Net) Added Gossip.DeniedPeers property. [#3313]

Behavioral changes

  • TxFailure no longer tracks ExceptionMetadata and is always set to null even for already stored TxFailure. [#3304]

Libplanet 2.4.1

14 Jul 08:49
1d74e37
Compare
Choose a tag to compare

Released on July 14, 2023.

  • Slight speed and memory optimization for ByteUtil.Hex(). [#3297]
  • (Libplanet.RocksDBStore) Slight improvement for speed and memory usage. [#3298]
  • Upgrade Bencodex from 0.10.0 to 0.11.0. [#3302]

Libplanet 2.5.0

12 Jul 07:36
2.5.0
6f008d9
Compare
Choose a tag to compare

Released on July 12, 2023.

Due to changes in [#3272], a network ran with a prior version may not be compatible with this version.

Backward-incompatible API changes

  • (Libplanet.Net) Added Gossip.PublishMessage(MessageContent, IEnumerable<BoundPeer>) method. [#3206]
  • (Libplanet.Net) Added Context.AddMaj23() method. [#3206]
  • (Libplanet.Net) Added Context.GetVoteSetBits() method. [#3206]
  • (Libplanet.Net) Added Context.GetVoteSetBitsResponse() method. [#3206]
  • (Libplanet.Net) Added ConsensusContext.HandleMaj23() method. [#3206]
  • (Libplanet.Net) Added ConsensusContext.HandleVoteSetBits() method. [#3206]
  • (Libplanet.Net) Added ConsensusContext.HandleProposalClaim() method. [#3206]
  • Removed ActionTypeAttribute.ValueOf() method. [#3267]
  • Added Action<Message> validateMessageToReceive parameter to Gossip's constructor. [#3273]
  • Added Action<MessageContent> validateMessageToSend parameter to Gossip's constructor. [#3273]
  • Removed Action<Message> validateMessage parameter from Gossip's constructor. [#3273]
  • Removed AccountStateGetter, AccountBalanceGetter, TotalSupplyGetter, and ValidatorSetGetter delegates. [#3282]
  • Removed IFeeCalculator interface. [#3283]
  • Removed IBlockPolicy.FeeCalculator interface property. [#3283]
  • Removed TxExecution.ActionsLogsList, TxFailure.ActionsLogsList, and TxSuccess.ActionsLogsList properties. [#3291]
  • (Libplanet.Explorer) Removed TxResult.ActionsLogsList property. [#3291]
  • Removed IActionContext.Logs property and IActionContext.PutLog() method. [#3292]
  • Removed IActionEvaluation.Logs property. [#3292]

Added APIs

  • Added VoteSetBits and its related classes. [#3206]
    • Added VoteSetBits class.
    • Added VoteSetBitsMetadata class.
    • (Libplanet.Net) Added ConsensusVoteSetBitsMsg class.
  • Added ProposalClaim and its related class. [#3206]
    • Added ProposalClaim class.
    • Added ProposalClaimMetadata class.
    • (Libplanet.Net) Added ConsensusProposalClaimMsg class.
  • (Libplanet.Net) Added ConsensusMaj23Msg class. [#3206]
  • (Libplanet.Net) Added enumeration items to MessageType enum. [#3206]
    • Added ConsensusMaj23Msg of value 0x53.
    • Added ConsensusVoteSetBitsMsg of value 0x54.
    • Added ConsensusProposalClaimMsg of value 0x55.
  • Added IActionContext.Logs interface property. [#3274]
  • Changed the type for IActionEvaluation.Logs to IReadOnlyList<string> from List<string>. [#3274]
  • Changed the type for TxExecution.ActionsLogList to List<IReadOnlyList<string>>? from List<List<string>>?. [#3274]
  • (Libplanet.Explorer) Changed the type for TxResult.ActionsLogList to List<IReadOnlyList<string>>? from List<List<string>>?. [#3274]
  • (Libplanet.Explorer) Added BlockType.PreEvaluationHash field. [#3280, #3281]
  • (Libplanet.Net) Added VoteSet.GetAllVotes() method. [#3288]

Behavioral changes

  • (Libplanet.Net) Context became to remove its proposal when +2/3 valid votes were collected. [#3206]
  • Changed ActionEvaluator to evaluate all IActions in a Transaction without early termination even if an IAction throws an Exception. [#3272]
  • Gossip.HandleMessageAsync() now executes _validateMessageToReceive on given message received. [#3273]
  • Gossip.SendWantAsync() now executes _validateMessageToReceive on replies of WantMessage. [#3273]
  • Gossip.HandleWantAsync() now executes _validateMessageToSend on given message to send as a reply of WantMessage. [#3273]
  • GossipConsensusMessageCommunicator now prevents sending a message with a round other than its own as a reply to a WantMessage. [#3273]
  • GossipConsensusMessageCommunicator now executes anti-spam logic when messages are received. [#3273]

Bug fixes

  • Fixed a broken backwards compatibility of Currency [#3268, #3284]

Libplanet 2.4.0

03 Jul 12:32
2.4.0
720e036
Compare
Choose a tag to compare

Released on July 3, 2023.

Deprecated APIs

  • (Libplanet.Net) Removed ConsensusContext.BroadcastMessage property. [#3260]

Backward-incompatible API changes

  • Vote.BlockHash property became BlockHash type. (was BlockHash?) [#3249]
  • VoteMetadata(long, int, BlockHash?, DateTimeOffset, PublicKey, VoteFlag) constructor became VoteMetadata(long, int, BlockHash, DateTimeOffset, PublicKey, VoteFlag) [#3249]
  • (Libplanet.Net) Renamed Step enum to ConsensusStep to remove ambiguity. [#3249]
  • (Libplanet.Net) ConsensusProposalMsg, ConsensusPreVoteMsg and ConsensusPreCommitMsg became to inherit ConsensusVoteMsg. [#3249]
  • (Libplanet.Net) Removed ConsensusMsg.BlockHash property. [#3249]
  • (Libplanet.Net) Added Flag property to ConsensusVoteMsg abstract class. [#3260]
  • (Libplanet.Net) ConsensusProposalMsg no longer inherits ConsensusVoteMsg. Instead, inherits ConsensusMsg. [#3260]
  • (Libplanet.Net) Added parameter IConsensusMessageCommunicator consensusMessageCommunicator to ConsensusContext. [#3260]
  • (Libplanet.Net) Removed parameter DelegateBroadcastMessage broadcastMessage from ConsensusContext. [#3260]
  • (Libplanet.Net) Added parameter IConsensusMessageCommunicator consensusMessageCommunicator to Context. [#3260]
  • (Libplanet.Net) Renamed Context.BroadcastMessage(ConsensusMsg) as Context.PublishMessage(ConsensusMsg). [#3260]
  • (Libplanet.Net) Removed constructor of MessageCache class. [#3260]
  • (Libplanet.Explorer) Changed TxResult.UpdatedStates's type to IImmutableDictionary<Address, IValue> from IImmutableDictionary<Address, IValue?>. [#3262]

Added APIs

  • Added Maj23 and its related classes. [#3249]
    • Added Maj23 class.
    • Added Maj23Metadata class.
    • (Libplanet.Net) Added ConsensusMaj23Msg class.
  • Added VoteSetBits and its related classes. [#3249]
    • Added VoteSetBits class.
    • Added VoteSetBitsMetadata class.
    • (Libplanet.Net) Added ConsensusVoteSetBitsMsg class.
  • (Libplanet.Net) Added VoteSet class. [#3249]
  • (Libplanet.Net) Added HeightVoteSet class. [#3249]
  • (Libplanet.Net) Added ConsensusVoteMsg abstract class. [#3249]
  • (Libplanet.Net) Added InvalidProposalException class. [#3249]
  • (Libplanet.Net) Added InvalidVoteException class. [#3249]
  • (Libplanet.Net) Added InvalidMaj23Exception class. [#3249]
  • (Libplanet.Net) Added Gossip.PublishMessage(MessageContent, IEnumerable<BoundPeer>) method. [#3249]
  • Added IAccountDelta.OrderedSum() extension method. [#3256]
  • Added IAccountDelta.ToRawDelta() extension method. [#3256]
  • Removed several properties from IAccountStateDelta pertaining to the delta part of IAccountStateDelta. Access the equivalent data through IAccountStateDelta.Delta instead. [#3257]
    • Removed IAccountStateDelta.UpdatedAddresses property.
    • Removed IAccountStateDelta.StateUpdatedAddresses property.
    • Removed IAccountStateDelta.UpdatedFungibleAssets property.
    • Removed IAccountStateDelta.UpdatedTotalSupplyCurrencies property.
  • Changed IBlockStates to IBlockState. [#3259]
  • Changed IBlockChainStates.GetBlockStates() to IBlockChainStates.GetBlockState(). [#3259]
  • Changes IActionContext.PreviousStates to IActionContext.PreviousState.
  • Changed IActionEvaluation.OutputStates to IActionEvaluation.OutputState. [#3259]
  • (Libplanet.Net) Added IConsensusMessageCommunicator interface and its related classes. [#3260]
    • (Libplanet.Net) Added GossipConsensusMessageCommunicator class. [#3260]
  • (Libplanet.Net) Added Gossip.DenyPeer(BoundPeer) method. [#3260]
  • (Libplanet.Net) Added Gossip.AllowPeer(BoundPeer) method. [#3260]
  • (Libplanet.Net) Added Gossip.ClearCache() method. [#3260]
  • (Libplanet.Net) Added Gossip.ClearDenySet(BoundPeer) method. [#3260]

Behavioral changes

  • (Libplanet.Net) Gossip now maintains single message cache, and contents of this cache does not decayed by time or new messages. This cache is cleared only by Gossip.ClearCache() method. [#3260]
  • (Libplanet.Net) There are no mechanism for bootstrapping conensus any more. Instead, logic change on Gossip solves bootstrapping problem. [#3260]
  • (Libplanet.Net) Context.Start() now triggers IConsensusMessageCommunicator.OnStartHeight(). [#3260]
  • (Libplanet.Net) Context.StartRound() now triggers IConsensusMessageCommunicator.OnStartRound(). [#3260]

Libplanet 2.3.0

29 Jun 06:01
4fefb5c
Compare
Choose a tag to compare

Released on June 28, 2023.

Backward-incompatible API changes

  • (@planetarium/tx) Removed some types and functions related to actions because the concept of SystemAction and CustomAction was removed since 1.1.0 and some system actions were removed since 1.2.0. [#3230]
    • Removed encodeUnsignedTxWithCustomActions() function.
    • Removed encodeUnsignedTxWithSystemAction() function.
    • Removed UnsignedTxWithCustomActions type.
    • Removed UnsignedTxWithSystemAction type.
    • Removed encodeMint() function.
    • Removed encodeTransfer() function.
    • Removed encodeSystemAction() function.
    • Removed CustomAction type.
    • Removed SystemAction type.
    • Removed Mint type.
    • Removed Transfer type.
    • Added encodeUnsignedTx() function.
    • Added UnsignedTx type.
    • signTx(UnsignedTxWithCustomActions | UnsignedTxWithSystemAction) function's signature became signTx(UnsignedTx).
    • SignedTx<T extends UnsignedTxWithCustomActions | UnsignedTxWithSystemAction>'s signature became SignedTx<T extends UnsignedTx>.
  • Changed the type for IAccountStateDelta.UpdatedFungibleAssets to IImmutableSet<(Address, Currency)> from IImmutableDictionary<Address, IImmutableSet<Currency>>. [#3244]
  • Changed the type for IAccountStateDelta.TotalUpdatedFungibleAssets to IImmutableSet<(Address, Currency)> from IImmutableDictionary<Address, IImmutableSet<Currency>>. [#3244]
  • Added IAccountStateDelta.Delta propery. [#3245]
  • Removed IValidatorSupportStateDelta interface. [#3247]
  • Added IAccountStateDeltaView.GetValidatorSet() interface method. [#3247]
  • Added IAccountStateDelta.SetValidator() interface method. [#3247]
  • Changed the name IAccountStateDelta.TotalSupplyUpdatedCurrencies to IAccountStateDelta.UpdatedTotalSupplyCurrencies. [#3248]
  • Changed TxSuccess.UpdatedStates's type to IImmutableDictionary<Address, IValue> from IImmutableDictionary<Address, IValue?>. [#3248]
  • Added IBlockChainStates.GetState() interface method. [#3250]
  • Added IBlockStates.GetState() interface method. [#3250]
  • Changed IBlockStates to inherit IAccountState interface. [#3251]

Added APIs

  • Added IAccountDelta interface and its default implementation AccountDelta class. [#3245]