Skip to content

Releases: planetarium/libplanet

Libplanet 0.15.1

27 Aug 18:18
0.15.1
61fb4ac
Compare
Choose a tag to compare

Released on August 28, 2021.

  • NetMQTransport became to process message in non blocking way. [#1451]

Libplanet 0.16.0

25 Aug 06:26
71be30e
Compare
Choose a tag to compare

Released on August 25, 2021.

Backward-incompatible API changes

  • Removed Swarm<T>.BlockDemand property. [#1419, #1425]
  • BlockChain<T>.Tip property is now non-nullable. [#1430]

Added APIs

  • Added BlockDemandTable<T> class. [#1419, #1425]
  • Added Swarm<T>.BlockDemandTable property. [#1419, #1425]
  • Added SwarmOptions.PollInterval property. [#1419, #1425]
  • Added SwarmOptions.MaximumPollPeers property. [#1419, #1425]

Behavioral changes

  • Swarm<T> became to sync blocks from multiple peers. [#1419, #1425]

Bug fixes

  • Fixed a bug where Swarm<T>.PreloadAsync() failed to sync blocks from the peer that has chain with higher difficulty, but lower index. [#1419, #1425]

CLI tools

Libplanet 0.15.0

19 Aug 07:26
0.15.0
4dd1799
Compare
Choose a tag to compare

Released on August 18, 2021.

Backward-incompatible API changes

  • Added IRandom.Seed property. [#1431]

Libplanet 0.14.1

19 Aug 07:17
0.14.1
3335eb2
Compare
Choose a tag to compare

Released on Aug 18, 2021.

  • Added additional tags to logging. [#1433]

Libplanet 0.14.0

05 Aug 12:38
0.14.0
123101a
Compare
Choose a tag to compare

Released on Aug 5, 2021.

Added APIs

  • Added NonblockRenderer<T> class. [#1402, #1422]
  • Added NonblockActionRenderer<T> class. [#1402, #1422]

Libplanet 0.13.2

05 Aug 07:11
dd22711
Compare
Choose a tag to compare

Released on Aug 5, 2021.

  • When a reorg happens, Swarm<T> now broadcasts a reorged chain tip first before rendering. [#1385, #1415]
  • Fixed a bug where TurnClient hadn't been recovered when TURN connection had been disconnected. [#1424]

Libplanet 0.13.1

29 Jul 09:55
0.13.1
a82c57e
Compare
Choose a tag to compare

Released on July 29, 2021.

  • Fixed HashAlgorithmType.Digest() method's bug that it returns an incorrect digest bytes when it is called by multiple threads at a time. [#1411]

Libplanet 0.13.0

28 Jul 14:42
0.13.0
Compare
Choose a tag to compare

Released on July 28, 2021.

Backward-incompatible API changes

  • Added bool render = false option to Swarm<T>.PreloadAsync(). Blocks and actions in preloaded blocks will be rendered if the switch is set to true. [#1391]

Added APIs

  • Added Transaction<T>.CreateUnsigned() method. [#1378]
  • Added SwarmOptions.TableSize property. [#1401]
  • Added SwarmOptions.BucketSize property. [#1401]

Behavioral changes

  • Transaction<T>.Validate() became to throw InvalidTxSignatureException if the transaction was not signed. [#1378]

Bug fixes

  • Fixed a bug where Swarm<T> had stopped when ObjectDisposedException is thrown during NetMQTransport.DoBroadcast(). [#1362, #1365]

CLI tools

Libplanet 0.12.1

28 Jul 07:51
0.12.1
de6163c
Compare
Choose a tag to compare

Released on July 28, 2021.

  • Swarm<T>.PreloadAsync() now checks the existence of blocks in the storage (was in the blockchain). [#1324]

Libplanet 0.12.0

23 Jul 02:03
0.12.0
9c55a0a
Compare
Choose a tag to compare

Released on July 23th, 2021.

Backward-incompatible API changes

  • Block hashes are now represented as BlockHash, which was introduced in this release, which has been done as HashDigest<SHA256>. [#1192, #1197]
    • The type of Block<T>.Hash property became BlockHash (was HashDigest<SHA256>).
    • The type of Block<T>.PreviousHash property became BlockHash? (was HashDigest<SHA256>?).
    • The types of Block<T>() constructors' hash parameter became BlockHash (were HashDigest<SHA256>).
    • The types of Block<T>() constructors' previousHash parameter became BlockHash? (were HashDigest<SHA256>?).
    • The type of Block<T>.Mine() method's previousHash parameter became BlockHash? (was HashDigest<SHA256>?).
    • The return type of HashCash.Hash() method became BlockHash (was HashDigest<SHA256>).
    • The type of Transaction<T>() constructor's genesisHash parameter became BlockHash? (was HashDigest<SHA256>?).
    • The type of Transaction<T>.Create() method's genesisHash parameter became BlockHash? (was HashDigest<SHA256>?).
    • The type of Transaction<T>.GenesisHash property became BlockHash? (was HashDigest<SHA256>?).
    • The type of Transaction<T>.EvaluateActionsGradually() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of Transaction<T>.EvaluateActions() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of BlockChain[] indexer's parameter became BlockHash (was HashDigest<SHA256>).
    • The type of BlockChain.BlockHashes property became IEnumerable<BlockHash> (was IEnumerable<HashDigest<SHA256>>).
    • The type of BlockChain.ContainsBlock() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of BlockChain.GetState() method's offset parameter became BlockHash? (was HashDigest<SHA256>?).
    • The type of BlockChain.GetBalance() method's offset parameter became BlockHash? (was HashDigest<SHA256>?).
    • The type of StateCompleter<T> delegate's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of FungibleAssetStateCompleter<T> delegate's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • BlockSet<T> no more implements IDictionary<HashDigest<SHA256>, Block<T>>, but now implements IDictionary<BlockHash, Block<T>>.
    • The type of ActionExecutionState.ExecutedBlockHash property became BlockHash (was HashDigest<SHA256>).
    • The type of BlockDownloadState.ReceivedBlockHash property became BlockHash (was HashDigest<SHA256>).
    • The type of BlockVerificationState.VerifiedBlockHash property became BlockHash (was HashDigest<SHA256>).
    • The type of IncompleteBlockStatesException() constructor's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IncompleteBlockStatesException.BlockHash property became BlockHash (was HashDigest<SHA256>).
    • The types of InvalidGenesisBlockException() constructor's networkExpected and stored parameters became BlockHash (were HashDigest<SHA256>).
    • The type of InvalidGenesisBlockException.NetworkExpected property became BlockHash (was HashDigest<SHA256>).
    • The type of InvalidGenesisBlockException.Stored property became BlockHash (was HashDigest<SHA256>).
    • The type of InvalidTxGenesisHashException() constructor's expectedGenesisHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of InvalidTxGenesisHashException() constructor's improperGenesisHash parameter became BlockHash? (was HashDigest<SHA256>?).
    • The type of InvalidTxGenesisHashException.ExpectedGenesisHash property became BlockHash (was HashDigest<SHA256>).
    • The type of InvalidTxGenesisHashException.ImproperGenesisHash property became BlockHash? (was HashDigest<SHA256>?).
    • The return type of IStore.IndexBlockHash() method became BlockHash? (was HashDigest<SHA256>?).
    • The type of IStore.AppendIndex() method's hash parameter became BlockHash (was HashDigest<SHA256>).
    • Replaced IStore.ForkBlockIndexes() method's HashDigest<SHA256> branchPoint parameter with BlockHash branchpoint.
    • The return type of IStore.IterateIndexes() method became IEnumerable<BlockHash> (was IEnumerable<HashDigest<SHA256>>).
    • The return type of IStore.IterateBlockHashes() method became IEnumerable<BlockHash> (was IEnumerable<HashDigest<SHA256>>).
    • The type of IStore.GetBlock<T>() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStore.GetBlockIndex() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStore.GetBlockDigest() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStore.DeleteBlock() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStore.ContainsBlock() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStateStore.GetState() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of IStateStore.ContainsBlockStates() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of TrieStateStore.GetRootHash() method's blockHash parameter became BlockHash (was HashDigest<SHA256>).
    • The type of TrieStateStore.PruneStates() method's excludeBlockHashes parameter became IImmutableSet<BlockHash> (was ImmutableHashSet<HashDigest<SHA256>>).
  • Hash algorithm for PoW (Hashcash) became configurable. #1314, #1352
    • Added IBlockPolicy<T>.GetHashAlgorithm() method.
    • Added an optional HashAlgorithmType? hashAlgorithm parameter to Block<T>(long, long, BigInteger, Nonce, Address?, BlockHash?, DateTimeOffset, IReadOnlyList<Transaction<T>>, ImmutableArray<byte>?, HashDigest<SHA256>?, int protocolVersion) constructor.
    • Added HashAlgorithmType hashAlgorithm parameter to Block<T>.MineBlock() method.
    • The type of Block<T>.PreEvaluationHash property became ImmutableArray<byte>? (was HashDigest<SHA256>?). [#1192, #1197]
    • The types of Block<T>() constructors' preEvaluationHash parameter became ImmutableArray<byte>? (were HashDigest<SHA256>?). [#1192, #1197]
    • The type of InvalidBlockPreEvaluationHashException.ActualPreEvaluationHash and ExpectedPreEvaluationHash properties became ImmutableArray<byte> (were HashDigest<SHA256>). [#1192, #1197]
    • The type of InvalidBlockPreEvaluationHashException() constructor's actualPreEvaluationHash and and expectedPreEvaluationHash parameters became ImmutableArray<byte> (were HashDigest<SHA256>). [#1192, #1197]
    • Replaced UnexpectedlyTerminatedActionException() constructor's HashDigest<SHA256>? blockHash parameter with ImmutableArray<byte>? preEvaluationHash. [#1192, #1197]
    • Replaced UnexpectedlyTerminatedActionException.BlockHash property with PreEvaluationHash. [#1192, #1197]
    • Replaced Hashcash.Answer(Stamp, long, CancellationToken) method with Hashcash.Answer<T>(Stamp, HashAlgorithm, long, CancellationToken) method.
    • Removed Hashcash.Hash() method.
    • Removed HashDigest<T>.Satisfies() method. This was replaced by ByteUtil.Satisfies() method instead. [#1192, #1197]
    • Added hashAlgorithmGetter parameter to BlockSet<T>() constructor.
    • Added hashAlgorithm parameter to BlockChain<T>.MakeGenesisBlock() method.
    • Added an optional hashAlgorithmGetter parameter to BlockPolicy<T>() constructor.
  • Added IActionContext.TxId property. [#1275]
  • Added IStore.PutTxExecution(TxSuccess) method. [#1156, #1289]
  • Added IStore.PutTxExecution(TxFailure) method. [#1156, #1289]
  • Added IStore.GetTxExecution() method. [#1156, #1289]
  • Removed the optional parameter Guid? chainId = null from IStateStore.GetState() method. [#1289]
  • Removed compress parameter from DefaultStore() constructor. [#1289]
  • Removed statesCacheSize parameter from DefaultStore() cons...
Read more