Blockchain in C#/.NET for on-chain, decentralized gaming
LGPL-2.1 License
Bot releases are visible (Hide)
Published by github-actions[bot] about 1 year ago
Released on October 6, 2023.
IActionEvaluator.Evaluate()
's return type to IReadOnlyList<ICommittedActionEvaluation>
from IReadOnlyList<IActionEvaluation>
. [#3445]
BlockChain.DetermineStateRootHash(IActionEvaluator, IPreEvaluationBlock, out IReadOnlyList<IActionEvaluation>)
to BlockChain.DetermineStateRootHash(IActionEvaluator, IPreEvaluationBlock, out IReadOnlyList<ICommittedActionEvaluation>)
. [#3445]
BlockChain.EvaluateGenesis()
's return type to IReadOnlyList<ICommittedActionEvaluation>
from IReadOnlyList<IActionEvaluation>
. [#3445]
BlockChain.EvaluateBlock()
's return type to IReadOnlyList<ICommittedActionEvaluation>
from IReadOnlyList<IActionEvaluation>
. [#3445]
StateStoreExtensions
class. [#3323, #3450]
TxResult.InputState
of type HashDigest<SHA256>?
. [#3446, #3447]
TxResult.OutputState
of type HashDigest<SHA256>?
. [#3446, #3447]
offsetStateRootHash
of type HashDigest<SHA256>?
argument for StateQuery.states
field. [#3448, #3449]
offsetStateRootHash
of type HashDigest<SHA256>?
argument for StateQuery.balance
field. [#3448, #3449]
offsetStateRootHash
of type HashDigest<SHA256>?
argument for StateQuery.totalSupply
field. [#3448, #3449]
offsetStateRootHash
of type HashDigest<SHA256>?
argument for StateQuery.validators
field. [#3448, #3449]
IActionEvaluator.Evaluate()
, BlockChain.EvaluateGenesis()
, and BlockChain.EvaluateBlock()
have a side-effect of storing data to IStateStore
when called. [#3445]
Published by github-actions[bot] about 1 year ago
Released on October 4, 2023.
IActionContext.Random
property. Use IActionContext.GetRandom()
instead. [#3437]
IActionContext.RandomSeed
property. [#3437]
IActionContext.GetRandom()
method. [#3437]
IActionEvaluator.Evaluate(IPreEvaluationBlock)
to IActionEvaluator.Evaluate(IPreEvaluationBlock, HashDigest<SHA256>)
. [#3438]
ActionEvaluator
to accept IStateStore
instead of IBlockChainStates
[#3439]
Published by github-actions[bot] about 1 year ago
Released on September 25, 2023.
IBlockChainStates.GetAccountState(HashDigest<SHA256>?)
interface method. [#3425]
TxFailure.ExceptionMetadata
property. [#3428]
ISerializable
interface from TxExecution
, TxSuccess
, and TxFailure
. [#3428]
TxSuccess
and TxFailure
class. [#3429]
TxExecution
class as sealed
from abstract.
[#3429]
TxExecution
except BlockHash
and TxId
were overhauled. [#3429]
IStore.PutTxExecution(TxSuccess)
and IStore.PutTxExecution(TxFailure)
; added IStore.PutTxExecution(TxExecution)
. [#3429]
TxResult.ExceptionName
of type string?
and added TxResult.ExceptionNames
of type List<string?>?
. [#3429]
TxResult.UpdatedStates
and TxResult.UpdatedFungibleAssets
. [#3429]
IActionRenderer.RenderAction(IValue, IActionContext, IAccount)
to IActionRenderer.RenderAction(IValue, ICommittedActionContext, HashDigest<SHA256>)
. [#3431]
IActionRenderer.RenderActionError(IValue, IActionContext, Exception)
to IActionRenderer.RenderActionError(IValue, ICommittedActionContext, Exception)
. [#3431]
Published by github-actions[bot] about 1 year ago
Released on September 8, 2023.
ITrie.Get()
could wrongly retrieve an IValue
from a non-existent path. [#3420]
Published by github-actions[bot] about 1 year ago
Released on September 7, 2023.
ITrie.Commit()
method. [#3392]
IStateStore.Commit()
method. [#3398]
IKeyValueStore.Get(IEnumerable<KeyBytes> keys)
method. [#3362, #3400]
PathCursor
struct. [#3399]
Nibbles
struct. [#3399]
KeyBytes
to no longer implement IEquatable<byte[]>
and IEquatable<ImmutableArray<byte>>
. [#3402]
ITrie.GetNode()
method. [#3401]
ITrie.IterateValues()
method. [#3405]
ITrie.IterateNodes()
method. [#3405]
Secure
option from TrieStateStore
. [#3407]
secure
parameter from TrieStateStore()
.ITrie.Secure
property.secure
parameter from MerkleTrie()
.secure
parameter from PathCursor()
.ITrie.Diff()
method. [#3410]
MerkleTrieExtensions.DifferentNodes()
static method. [#3410]
IBlockState
interface. [#3413]
IBlockChainState.GetBlockState()
interface method. [#3413]
IBlockChainState.GetAccountState()
interface method. [#3413]
IAccountState
interface. [#3416]
AccountState
class. [#3416]
RocksDBStore
and RocksDBKeyValueStore
became to receive @readonly
parameter in their constructor. If it is true, it opens rocksdb as read-only mode. [#3354, #3356, RocksDB Read Only]
ShortNode
to no longer accept empty byte
arrays. [#3390]
Equals()
for FullNode
and ShortNode
. [#3377]
byte
arrays as keys with one being a subsequence of the other would break MerkleTrie
and lose data. [#3390]
FullNode
would throw an Exception
. [#3390]
ITrie
may return an ITrie
with a different path security scheme. [#3401]
Published by github-actions[bot] about 1 year ago
Released on August 10, 2023.
IAccountStateDelta
as IAccount
. [#3337]
MerkleTrie.Get()
. [#3347]
TxSuccess.FungibleAssetsDelta
[#3357]
TxResult.ExceptionMetadata
and TxResult.FungibleAssetsDelta
. [#3357]
ITrie.Get(KeyBytes)
interface method. [#3359]
MerkleTrie.Get()
by allowing parallel processing when more than 4 KeyBytes
keys are given. [#3359]
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Released on July 27, 2023.
StateStoreExtensions.Commit()
to accept IImmutableDictionary<KeyBytes, IValue>
instead of IImmutableDictionary<string, IValue>
. [#3321]
AccountDeltaExtensions.ToRawDelta()
to return IImmutableDictionary<KeyBytes, IValue>
instead of IImmutableDictionary<string, IValue>
. [#3321]
ActionEvaluatorExtensions.GetRawTotalDelta()
to return IImmutableDictionary<KeyBytes, IValue>
instead of IImmutableDictionary<string, IValue>
. [#3321]
EnumerableMeasurement
class. [#3325]
KeyValueExtensions
class. [#3325]
StateStoreExtensions.EncodeKey()
and StateStoreExtensions.DecodeKey()
methods. [#3328]
StateStoreExtensions.GetStates(IStateStore, HashDigest<SHA256>?, IReadOnlyList<string>)
method. [#3328]
TrieExtensions.Set(ITrie, IEnumerable<KeyValuePair<string, IValue?>)
method. [#3328]
KeyBytes(string, Encoding)
constructor. [#3328]
StateStoreExtensions.GetStates(IStateStore, HashDigest<SHA256>, IReadOnlyList<KeyBytes>)
method. [#3321]
KeyBytes.Encoding
static property. [#3328]
KeyBytes(string)
constructor. [#3328]
IStateStore
both for memory and speed. [#3321]
Published by github-actions[bot] about 1 year ago
Released on July 21, 2023.
Published by github-actions[bot] over 1 year ago
Released on July 19, 2023.
Libplanet
. [#3300]
Libplanet.Serialization
Libplanet.JsonConverters
Libplanet
. [#3314]
Libplanet.Misc
Libplanet
. [#3314]
Libplanet.Crypto
Libplanet
. [#3314]
Libplanet.Assets
Libplanet.Blocks
Libplanet.Consensus
Libplanet.Tx
Libplanet
. [#3303]
Libplanet.Store
Libplanet
. [#3310]
Libplanet.Action
IExtractableException
and ExtractableException
. [#3304]
Gossip.DeniedPeers
property. [#3313]
TxFailure
no longer tracks ExceptionMetadata
and is always set to null
even for already stored TxFailure
. [#3304]
Published by github-actions[bot] over 1 year ago
Released on July 12, 2023.
Due to changes in [#3272], a network ran with a prior version may not be compatible with this version.
Gossip.PublishMessage(MessageContent, IEnumerable<BoundPeer>)
method. [#3206]
Context.AddMaj23()
method. [#3206]
Context.GetVoteSetBits()
method. [#3206]
Context.GetVoteSetBitsResponse()
method. [#3206]
ConsensusContext.HandleMaj23()
method. [#3206]
ConsensusContext.HandleVoteSetBits()
method. [#3206]
ConsensusContext.HandleProposalClaim()
method. [#3206]
ActionTypeAttribute.ValueOf()
method. [#3267]
Action<Message> validateMessageToReceive
parameter to Gossip
's constructor. [#3273]
Action<MessageContent> validateMessageToSend
parameter to Gossip
's constructor. [#3273]
Action<Message> validateMessage
parameter from Gossip
's constructor. [#3273]
AccountStateGetter
, AccountBalanceGetter
, TotalSupplyGetter
, and ValidatorSetGetter
delegates. [#3282]
IFeeCalculator
interface. [#3283]
IBlockPolicy.FeeCalculator
interface property. [#3283]
TxExecution.ActionsLogsList
, TxFailure.ActionsLogsList
, and TxSuccess.ActionsLogsList
properties. [#3291]
TxResult.ActionsLogsList
property. [#3291]
IActionContext.Logs
property and IActionContext.PutLog()
method. [#3292]
IActionEvaluation.Logs
property. [#3292]
VoteSetBits
and its related classes. [#3206]
VoteSetBits
class.VoteSetBitsMetadata
class.ConsensusVoteSetBitsMsg
class.ProposalClaim
and its related class. [#3206]
ProposalClaim
class.ProposalClaimMetadata
class.ConsensusProposalClaimMsg
class.ConsensusMaj23Msg
class. [#3206]
MessageType
enum. [#3206]
ConsensusMaj23Msg
of value 0x53
.ConsensusVoteSetBitsMsg
of value 0x54
.ConsensusProposalClaimMsg
of value 0x55
.IActionContext.Logs
interface property. [#3274]
IActionEvaluation.Logs
to IReadOnlyList<string>
from List<string>
. [#3274]
TxExecution.ActionsLogList
to List<IReadOnlyList<string>>?
from List<List<string>>?
. [#3274]
TxResult.ActionsLogList
to List<IReadOnlyList<string>>?
from List<List<string>>?
. [#3274]
BlockType.PreEvaluationHash
field. [#3280, #3281]
VoteSet.GetAllVotes()
method. [#3288]
Context
became to remove its proposal when +2/3 valid votes were collected. [#3206]
ActionEvaluator
to evaluate all IAction
s 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]
Published by github-actions[bot] over 1 year ago
Released on July 3, 2023.
ConsensusContext.BroadcastMessage
property. [#3260]
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]
Step
enum to ConsensusStep
to remove ambiguity. [#3249]
ConsensusProposalMsg
, ConsensusPreVoteMsg
and ConsensusPreCommitMsg
became to inherit ConsensusVoteMsg
. [#3249]
ConsensusMsg.BlockHash
property. [#3249]
Flag
property to ConsensusVoteMsg
abstract class. [#3260]
ConsensusProposalMsg
no longer inherits ConsensusVoteMsg
. Instead, inherits ConsensusMsg
. [#3260]
IConsensusMessageCommunicator consensusMessageCommunicator
to ConsensusContext
. [#3260]
DelegateBroadcastMessage broadcastMessage
from ConsensusContext
. [#3260]
IConsensusMessageCommunicator consensusMessageCommunicator
to Context
. [#3260]
Context.BroadcastMessage(ConsensusMsg)
as Context.PublishMessage(ConsensusMsg)
. [#3260]
MessageCache
class. [#3260]
TxResult.UpdatedStates
's type to IImmutableDictionary<Address, IValue>
from IImmutableDictionary<Address, IValue?>
. [#3262]
Maj23
and its related classes. [#3249]
Maj23
class.Maj23Metadata
class.ConsensusMaj23Msg
class.VoteSetBits
and its related classes. [#3249]
VoteSetBits
class.VoteSetBitsMetadata
class.ConsensusVoteSetBitsMsg
class.VoteSet
class. [#3249]
HeightVoteSet
class. [#3249]
ConsensusVoteMsg
abstract class. [#3249]
InvalidProposalException
class. [#3249]
InvalidVoteException
class. [#3249]
InvalidMaj23Exception
class. [#3249]
Gossip.PublishMessage(MessageContent, IEnumerable<BoundPeer>)
method. [#3249]
IAccountDelta.OrderedSum()
extension method. [#3256]
IAccountDelta.ToRawDelta()
extension method. [#3256]
IAccountStateDelta
pertaining to the delta part of IAccountStateDelta
. Access the equivalent data through IAccountStateDelta.Delta
instead. [#3257]
IAccountStateDelta.UpdatedAddresses
property.IAccountStateDelta.StateUpdatedAddresses
property.IAccountStateDelta.UpdatedFungibleAssets
property.IAccountStateDelta.UpdatedTotalSupplyCurrencies
property.IBlockStates
to IBlockState
. [#3259]
IBlockChainStates.GetBlockStates()
to IBlockChainStates.GetBlockState()
. [#3259]
IActionContext.PreviousStates
to IActionContext.PreviousState
.IActionEvaluation.OutputStates
to IActionEvaluation.OutputState
. [#3259]
IConsensusMessageCommunicator
interface and its related classes. [#3260]
GossipConsensusMessageCommunicator
class. [#3260]
Gossip.DenyPeer(BoundPeer)
method. [#3260]
Gossip.AllowPeer(BoundPeer)
method. [#3260]
Gossip.ClearCache()
method. [#3260]
Gossip.ClearDenySet(BoundPeer)
method. [#3260]
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]
Gossip
solves bootstrapping problem. [#3260]
Context.Start()
now triggers IConsensusMessageCommunicator.OnStartHeight()
. [#3260]
Context.StartRound()
now triggers IConsensusMessageCommunicator.OnStartRound()
. [#3260]
Published by github-actions[bot] over 1 year ago
Released on June 28, 2023.
SystemAction
and CustomAction
was removed since 1.1.0 and some system actions were removed since 1.2.0. [#3230]
encodeUnsignedTxWithCustomActions()
function.encodeUnsignedTxWithSystemAction()
function.UnsignedTxWithCustomActions
type.UnsignedTxWithSystemAction
type.encodeMint()
function.encodeTransfer()
function.encodeSystemAction()
function.CustomAction
type.SystemAction
type.Mint
type.Transfer
type.encodeUnsignedTx()
function.UnsignedTx
type.signTx(UnsignedTxWithCustomActions | UnsignedTxWithSystemAction)
function's signature became signTx(UnsignedTx)
.SignedTx<T extends UnsignedTxWithCustomActions | UnsignedTxWithSystemAction>
's signature became SignedTx<T extends UnsignedTx>
.IAccountStateDelta.UpdatedFungibleAssets
to IImmutableSet<(Address, Currency)>
from IImmutableDictionary<Address, IImmutableSet<Currency>>
. [#3244]
IAccountStateDelta.TotalUpdatedFungibleAssets
to IImmutableSet<(Address, Currency)>
from IImmutableDictionary<Address, IImmutableSet<Currency>>
. [#3244]
IAccountStateDelta.Delta
propery. [#3245]
IValidatorSupportStateDelta
interface. [#3247]
IAccountStateDeltaView.GetValidatorSet()
interface method. [#3247]
IAccountStateDelta.SetValidator()
interface method. [#3247]
IAccountStateDelta.TotalSupplyUpdatedCurrencies
to IAccountStateDelta.UpdatedTotalSupplyCurrencies
. [#3248]
TxSuccess.UpdatedStates
's type to IImmutableDictionary<Address, IValue>
from IImmutableDictionary<Address, IValue?>
. [#3248]
IBlockChainStates.GetState()
interface method. [#3250]
IBlockStates.GetState()
interface method. [#3250]
IBlockStates
to inherit IAccountState
interface. [#3251]
IAccountDelta
interface and its default implementation AccountDelta
class. [#3245]
Published by github-actions[bot] over 1 year ago
Released on June 23, 2023.
BlockProtocolVersion
property to IActionContext
. [#3228]
IAccountStateDelta.TransferAsset()
to require additional IActionContext
parameter. [#3229]
IAccountStateDelta.MintAsset()
and IAccountStateDelta.BurnAsset()
to each require an additional IActionContext
parameter. [#3231]
IActionContext.BlockProtocolVersion
was not being set properly in #3228.Published by github-actions[bot] over 1 year ago
Released on June 22, 2023.
Published by github-actions[bot] over 1 year ago
Released on June 22, 2023.
encodeCurrency
serialized Currency
in an incompatible way with Libplanet. [#3225]
Published by github-actions[bot] over 1 year ago
Released on June 20, 2023.
IBlockChainStates
methods now take nullable BlockHash?
instead of BlockHash
as offset
parameter. [#3214]
IncompleteBlockStatesException
class. [#3214]
BlockChain
's implementation of IBlockChainStates
to match interface description. [#3214]
IBlockChainStates.GetBlockStates()
interface method. [#3216]
IBlockStates
interface and its default implementation BlockStates
. [#3216]
IAccountStateDelta
implementation. [#3218]
BlockAction
could have unintended AccountStateDeltaImpl.Signer
during its execution. [#3215]
Published by github-actions[bot] over 1 year ago
Released on June 14, 2023.
Added IAccountStateDelta.TotalUpdatedFungibleAssets
interface property. [#3208]
Removed blockAction
parameter from ActionContext()
. [#3209]
Added ITransaction.MaxGasPrice
property. [#3201]
Added ITransaction.GasLimit
property. [#3201]
Currency.Serialize()
's behavioral is changed. the serialize field is replaced. [#3201]
FungibleAssetValue.Serialize()
method. [#3201]