Releases: planetarium/libplanet
Releases · planetarium/libplanet
Libplanet 0.15.1
Released on August 28, 2021.
NetMQTransport
became to process message in non blocking way. [#1451]
Libplanet 0.16.0
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
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
Libplanet 0.14.1
Released on Aug 18, 2021.
- Added additional tags to logging. [#1433]
Libplanet 0.14.0
Libplanet 0.13.2
Libplanet 0.13.1
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
Released on July 28, 2021.
Backward-incompatible API changes
- Added
bool render = false
option toSwarm<T>.PreloadAsync()
. Blocks and actions in preloaded blocks will be rendered if the switch is set totrue
. [#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 throwInvalidTxSignatureException
if the transaction was not signed. [#1378]
Bug fixes
- Fixed a bug where
Swarm<T>
had stopped whenObjectDisposedException
is thrown duringNetMQTransport.DoBroadcast()
. [#1362, #1365]
CLI tools
Libplanet 0.12.1
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
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 asHashDigest<SHA256>
. [#1192, #1197]- The type of
Block<T>.Hash
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
Block<T>.PreviousHash
property becameBlockHash?
(wasHashDigest<SHA256>?
). - The types of
Block<T>()
constructors'hash
parameter becameBlockHash
(wereHashDigest<SHA256>
). - The types of
Block<T>()
constructors'previousHash
parameter becameBlockHash?
(wereHashDigest<SHA256>?
). - The type of
Block<T>.Mine()
method'spreviousHash
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The return type of
HashCash.Hash()
method becameBlockHash
(wasHashDigest<SHA256>
). - The type of
Transaction<T>()
constructor'sgenesisHash
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
Transaction<T>.Create()
method'sgenesisHash
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
Transaction<T>.GenesisHash
property becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
Transaction<T>.EvaluateActionsGradually()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
Transaction<T>.EvaluateActions()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
BlockChain[]
indexer's parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
BlockChain.BlockHashes
property becameIEnumerable<BlockHash>
(wasIEnumerable<HashDigest<SHA256>>
). - The type of
BlockChain.ContainsBlock()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
BlockChain.GetState()
method'soffset
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
BlockChain.GetBalance()
method'soffset
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
StateCompleter<T>
delegate'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
FungibleAssetStateCompleter<T>
delegate'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). BlockSet<T>
no more implementsIDictionary<HashDigest<SHA256>, Block<T>>
, but now implementsIDictionary<BlockHash, Block<T>>
.- The type of
ActionExecutionState.ExecutedBlockHash
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
BlockDownloadState.ReceivedBlockHash
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
BlockVerificationState.VerifiedBlockHash
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IncompleteBlockStatesException()
constructor'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IncompleteBlockStatesException.BlockHash
property becameBlockHash
(wasHashDigest<SHA256>
). - The types of
InvalidGenesisBlockException()
constructor'snetworkExpected
andstored
parameters becameBlockHash
(wereHashDigest<SHA256>
). - The type of
InvalidGenesisBlockException.NetworkExpected
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
InvalidGenesisBlockException.Stored
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
InvalidTxGenesisHashException()
constructor'sexpectedGenesisHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
InvalidTxGenesisHashException()
constructor'simproperGenesisHash
parameter becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
InvalidTxGenesisHashException.ExpectedGenesisHash
property becameBlockHash
(wasHashDigest<SHA256>
). - The type of
InvalidTxGenesisHashException.ImproperGenesisHash
property becameBlockHash?
(wasHashDigest<SHA256>?
). - The return type of
IStore.IndexBlockHash()
method becameBlockHash?
(wasHashDigest<SHA256>?
). - The type of
IStore.AppendIndex()
method'shash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - Replaced
IStore.ForkBlockIndexes()
method'sHashDigest<SHA256> branchPoint
parameter withBlockHash branchpoint
. - The return type of
IStore.IterateIndexes()
method becameIEnumerable<BlockHash>
(wasIEnumerable<HashDigest<SHA256>>
). - The return type of
IStore.IterateBlockHashes()
method becameIEnumerable<BlockHash>
(wasIEnumerable<HashDigest<SHA256>>
). - The type of
IStore.GetBlock<T>()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStore.GetBlockIndex()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStore.GetBlockDigest()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStore.DeleteBlock()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStore.ContainsBlock()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStateStore.GetState()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
IStateStore.ContainsBlockStates()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
TrieStateStore.GetRootHash()
method'sblockHash
parameter becameBlockHash
(wasHashDigest<SHA256>
). - The type of
TrieStateStore.PruneStates()
method'sexcludeBlockHashes
parameter becameIImmutableSet<BlockHash>
(wasImmutableHashSet<HashDigest<SHA256>>
).
- The type of
- Hash algorithm for PoW (Hashcash) became configurable. #1314, #1352
- Added
IBlockPolicy<T>.GetHashAlgorithm()
method. - Added an optional
HashAlgorithmType? hashAlgorithm
parameter toBlock<T>(long, long, BigInteger, Nonce, Address?, BlockHash?, DateTimeOffset, IReadOnlyList<Transaction<T>>, ImmutableArray<byte>?, HashDigest<SHA256>?, int protocolVersion)
constructor. - Added
HashAlgorithmType hashAlgorithm
parameter toBlock<T>.MineBlock()
method. - The type of
Block<T>.PreEvaluationHash
property becameImmutableArray<byte>?
(wasHashDigest<SHA256>?
). [#1192, #1197] - The types of
Block<T>()
constructors'preEvaluationHash
parameter becameImmutableArray<byte>?
(wereHashDigest<SHA256>?
). [#1192, #1197] - The type of
InvalidBlockPreEvaluationHashException.ActualPreEvaluationHash
andExpectedPreEvaluationHash
properties becameImmutableArray<byte>
(wereHashDigest<SHA256>
). [#1192, #1197] - The type of
InvalidBlockPreEvaluationHashException()
constructor'sactualPreEvaluationHash
and andexpectedPreEvaluationHash
parameters becameImmutableArray<byte>
(wereHashDigest<SHA256>
). [#1192, #1197] - Replaced
UnexpectedlyTerminatedActionException()
constructor'sHashDigest<SHA256>? blockHash
parameter withImmutableArray<byte>? preEvaluationHash
. [#1192, #1197] - Replaced
UnexpectedlyTerminatedActionException.BlockHash
property withPreEvaluationHash.
[#1192, #1197] - Replaced
Hashcash.Answer(Stamp, long, CancellationToken)
method withHashcash.Answer<T>(Stamp, HashAlgorithm, long, CancellationToken)
method. - Removed
Hashcash.Hash()
method. - Removed
HashDigest<T>.Satisfies()
method. This was replaced byByteUtil.Satisfies()
method instead. [#1192, #1197] - Added
hashAlgorithmGetter
parameter toBlockSet<T>()
constructor. - Added
hashAlgorithm
parameter toBlockChain<T>.MakeGenesisBlock()
method. - Added an optional
hashAlgorithmGetter
parameter toBlockPolicy<T>()
constructor.
- Added
- 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
fromIStateStore.GetState()
method. [#1289] - Removed
compress
parameter fromDefaultStore()
constructor. [#1289] - Removed
statesCacheSize
parameter fromDefaultStore()
cons...