Blockchain in C#/.NET for on-chain, decentralized gaming
LGPL-2.1 License
Bot releases are visible (Hide)
Published by github-actions[bot] over 1 year ago
Released on March 17, 2023.
DealerSocket
cannot connect to peers because of IPv4 return of ResolveNetMQAddressAsync()
. [#2956]
Published by github-actions[bot] over 1 year ago
Released on March 16, 2023.
Validator.Encoded
to use a proper type Bencodex.Types.Integer
for Validator.Power
instead of Bencodex.Types.Binary
. [#2949]
Published by github-actions[bot] over 1 year ago
Released on March 15, 2023.
Published by github-actions[bot] over 1 year ago
Released on March 15, 2023.
BlockCommit.Encoded
to be more compact. [#2938]
Vote.Encoded
and Proposal.Encoded
to be more compact. [#2943]
Published by github-actions[bot] over 1 year ago
Released on March 14, 2023.
Published by github-actions[bot] over 1 year ago
Released on March 14, 2023.
Published by github-actions[bot] over 1 year ago
Released on March 14, 2023.
Published by github-actions[bot] over 1 year ago
Released on March 14, 2023.
Published by github-actions[bot] over 1 year ago
Released on March 14, 2023.
Validator.Encoded
to be more compact. [#2927]
Published by github-actions[bot] over 1 year ago
Released on March 3, 2022.
Due to changes in [#2894], under certain circumstances, a network ran with Libplanet 0.51.0 may have difficulty getting up and running after an update to this version. Thus, it is recommended to skip Libplanet 0.51.0 for deployment if possible.
BlockChain<T>()
no longer accepts an IStore
where IStore.GetCanonicalChainId()
is null
. For on-the-fly BlockChain<T>
creation from scratch, use BlockChain<T>.Create()
factory method instead. [#2863]
BlockChain<T>.Append()
no longer accepts a genesis Block<T>
(i.e. any Block<T>
with an index of 0
). [#2863]
BlockChain<T>()
now throws an ArgumentException
if provided IStore
does not have its canonical chain id set or provided chain id is not found. [#1486, #2585, #2889]
IStore.GetChainBlockCommit()
and IStore.PutChainBlockCommit()
interface methods. [#2878, #2894]
BlockChain<T>.Create()
factory method for creating a BlockChain<T>
with an empty IStore
. [#2863]
Published by github-actions[bot] over 1 year ago
Released on March 13, 2023.
ActionExecutionState
hadn't generated correctly because of wrong TotalBlockCount
. [#2917]
Published by github-actions[bot] over 1 year ago
Released on March 9, 2023.
PolymorphicAction<T>.ActionTypeLoader
static property to provide a way to configure action type loader to be used in PolymorphicAction<T>
. [#2875]
Published by github-actions[bot] over 1 year ago
Released on March 7, 2023.
Since 0.51.0, we officially provide @planetarium/account, an npm package for providing measures to represent accounts for apps developed with Libplanet in JavaScript/TypeScript. Note that the feature set is being actively developed, and the specification might change in the near future.
TotalDifficultyComparer
class. [#2872]
IBlockPolicy<T>.GetNextBlockDifficulty()
interface method and all its implementations. [#2872]
IBlockPolicy.TotalDifficulty
interface property and its implementations. [#2872]
IBlockPolicy.Difficulty
interface property and its implementations. [#2872]
IPreEvaluationBlockHeader.Nonce
interface property and its implementations. [#2872]
InvalidBlockTotalDifficultyException
class. [#2872]
InvalidBlockDifficultyException
class. [#2872]
BlockChain<T>.MakeGenesisBlock()
and BlockChain<T>.MineBlock()
methods. [#2872]
HashAlgorithmType
class. [#2872]
PreEvaluationBlock<T>(IBlockContent<T>)
constructor. [#2872]
IBlockPolicy.GetMinBlockProtocolVersion()
interface method. [#2872]
LastCommit
property to IBlockMetadata
. [#2872]
BlockMetadata.CurrentProtocolVersion
to 4. [#2872]
IPreEvaluationBlockHeader.PreEvaluationHash
type from ImmutableArray<byte>
to HashDigest<SHA256>
. [#2872]
IStore.GetBlockCommit(BlockHash)
method. [#2872]
IStore.PutBlockCommit(BlockCommit)
method. [#2872]
IStore.DeleteBlockCommit(BlockHash)
method. [#2872]
IStore.GetBlockCommitHashes()
method. [#2872]
BlockMetadata.MakeCandidateData()
now uses a SHA256 hash of LastCommit
for creating a candidate data for PreEvaluationBlockHeader<T>
. Due to this change, PreEvaluationHash
results different with previous block hash computation if the BlockMetadata.LastCommit
is not null. [#2872]
SwarmOptions.StaticPeers
. [#2872]
BlockPolicy<T>()
constructor not to take Func<long, int>
type parameter named getMinBlockProtocolVersion
. [#2872]
Message.MessageType
are updated to use entirely different values. [#2872]
VoteFlag
enum. [#2872]
IVoteMetadata
interface. [#2872]
VoteMetadata
class. [#2872]
Vote
class. [#2872]
BlockContent.Propose()
method. [#2872]
BlockCommit
class. [#2872]
BlockChain.ProposeGenesisBlock()
static method. [#2872]
BlockChain.ProposeBlock()
method. [#2872]
BlockCommitExtensions
class. [#2872]
ContextTimeoutOption
class. [#2872]
BlockMarshaler.UnmarshalBlockHash()
method. [#2872]
BlockChain<T>.GetBlockCommit()
method. [#2872]
InvalidBlockCommitException
class. [#2872]
BlockChain<T>.ValidateBlockCommit()
method. [#2872]
IReactor
interface. [#2872]
ConsensusReactor
class which inherits IReactor
interface. [#2872]
ConsensusContext
class. [#2872]
Context
class. [#2872]
Step
enum. [#2872]
ConsensusMessage
abstract class which inherits Message
abstract class. And added classes which implements ConsensusMessage
abstract class. [#2872]
ConsensusProposal
class.ConsensusVote
class.ConsensusCommit
class.MessageType
enum. [#2872]
ConsensusProposal
of value 0x40
.ConsensusVote
of value 0x41
.ConsensusCommit
of value 0x42
.ConsensusReactorOption
struct. [#2872]
InvalidConsensusMessageException
class. [#2872]
InvalidHeightIncreasingException
class. [#2872]
Message.Id
property. [#2872]
Gossip
class. [#2872]
Proposal
class. [#2872]
ProposalMetadata
class. [#2872]
NetMQMessageCodec.ParseMessageType()
. [#2872]
BoundPeerType
class. [#2872]
BlockCommitType
class. [#2872]
VoteFlagType
class. [#2872]
VoteType
class. [#2872]
BlockCommitType
as a return of BlockQuery
. [#2872]
PolymorphicAction<T>.ActionTypeLoader
static property to provide a way to configure action type loader to be used in PolymorphicAction<T>
. [#2873]
PreEvaluationBlockHeader()
constructor became to throw InvalidBlockLastCommitException
when its metadata's LastCommit
is invalid. [#2872]
BlockChain<T>.Append()
has new parameter BlockCommit blockCommit
, which is a set of commits for given block. BlockCommit
is used for checks whether a block is committed in consensus. [#2872]
BlockChain<T>.Append()
method became to throw InvalidBlockCommitException
when the given BlockCommit
is invalid with given block. [#2872]
stateQuery
hadn't work correctly in some situations. [#2872]
Published by dahlia over 1 year ago
Released on March 6, 2023.
Published by dahlia over 1 year ago
Released on February 27, 2023.
Message.Content
property. [#2772, #2831]
Message
class are removed and moved to MessageContent
class. [#2772, #2831]
Message.Type
property.Message.DateField
property.Message.MessageType
enum.ITransport
interface and its implementations overhauled. [#2772, #2831]
ITransport.SendMessageAsync(BoundPeer, Message, TimeSpan?, CancellationToken)
method has changed to ITransport.SendMessageAsync(BoundPeer, MessageContent, TimeSpan?, int, bool, CancellationToken)
.ITransport.SendMessageAsync(BoundPeer, Message, TimeSpan?, CancellationToken)
method has changed to ITransport.SendMessageAsync(BoundPeer, MessageContent, TimeSpan?, int, bool, CancellationToken)
.ITransport.BroadcastMessage(IEnumerable<BoundPeer>, Message)
method has changed to ITransport.BroadcastMessage(IEnumerable<BoundPeer>, MessageContent)
.ITransport.ReplyMessageAsync(Message, CancellationToken)
method has changed to ITransport.ReplyMessageAsync(MessageContent, byte[], CancellationToken)
.InvalidMessageException
class. Instead, added InvalidMessageContentException
class. [#2772, #2831]
MessageContent
class. [#2772, #2831]
PingMsg
) became to inherit MessageContent
(were Message
).IBlockPolicy
is no longer enforced for genesis Block<T>
s. [#2845]
Published by github-actions[bot] over 1 year ago
Released on March 3, 2023.
Published by github-actions[bot] over 1 year ago
Released on February 24, 2023.
Published by github-actions[bot] over 1 year ago
Released on February 20, 2023.
BlockCandidateTable<T>.Add(BlockHeader, IEnumerable<Block<T>>)
to BlockCandidateTable<T>.Add(BlockHeader, Branch<T>)
. [#2822]
BlockCandidateTable<T>.GetCurrentRoundCandidate()
from List<Block<T>>?
to Branch<T>?
. [#2822]
Branch<T>
class to represent a sequence of consecutive Block<T>
s. [#2822]
Swarm<T>
became not to spawn multiple task for process BlockDemand
for the same BoundPeer
. [#2808, #2814]
NetMQTransport
's overall throughput had been dropped when hostname resolving for some peers was delayed. [#2817]
Published by github-actions[bot] over 1 year ago
Released on February 16th, 2023.
Published by github-actions[bot] over 1 year ago
Released on Februrary 14, 2023.
BlockCandidateTable<T>.Any()
method. [#2794]
SortedList<long, Block<T>>?
to List<Block<T>>?
for BlockCandidateTable<T>.GetCurrentRoundCandidate()
method. [#2794]
BlockCandidateTable<T>.Add()
method. [#2794]
TxId
to implement IBencodable
interface. [#2795]
Serializable
attribute back to Address
. [#2798]
Serializable
attribute back to BoundPeer
. [#2798]
encodeUnsignedTxWithCustomActions()
function. [#2805]
CustomAction
type. [#2805]
UnsignedTxWithCustomActions
type. [#2805]
Swarm<T>
to respond to a GetBlocksMsg
request with an empty BlocksMsg
if no requested Block<T>
s are found. [#2800, #2803]
globalThis.crypto
API is available since Node.js version 19.0.0, it now explicitly requires 19.0.0 or later. [#2805]