Blockchain in C#/.NET for on-chain, decentralized gaming
LGPL-2.1 License
Bot releases are visible (Hide)
Published by github-actions[bot] over 2 years ago
Released on May 13th, 2022.
DataModel
added. When inherited, this class assists in automatic encoding and decoding to and from Bencodex.Types.Dictionary
. [#1932, #1935]
TxPolicyViolationException
and InvalidTxException
now have a new constructor that takes an Exception
as their Exception.InnerException
. [#1830, #1912, #1916]
planet key sign
to sign a message. [#1920]
Published by github-actions[bot] over 2 years ago
Released on April 28th, 2022.
Transaction<T>
's relatively heavy policy validation is deferred until after its nonce validation in order to speed up gathering Transaction<T>
s when mining. [#1924]
Published by github-actions[bot] over 2 years ago
Released on April 19th, 2022.
IMessageCodec
and its implementations NetMQMessageCodec
and TcpMessageCodec
overhauled. [#1906]
AppProtocolVersion
type parameter added to IMessageCodec.Encode()
.NetMQMessageCodec()
and TcpMessageCodec()
constructors are made parameterless.IMessageCodec.Decode()
no longer throws InvalidMessageTimestampException
or DifferentAppProtocolVersionException
.InvalidMessageTimestampException
and DifferentAppProtocolVersionException
. [#1906]
InvalidMessageTimestampException.Peer
property removed.DifferentAppProtocolVersionException.Peer
property removed.DifferentAppProtocolVersionException.Identity
property removed.MessageValidator.ValidateTimestamp()
and MessageValidator.ValidateAppProtocolVersion()
now only accepts single Message
type parameter. [#1906]
SendMessageFailedException
changed to SendMessageFailException
. [#1911]
ITransport
exception handling overhauled. [#1911]
ITransport.SendMessageAsync()
now only throws CommunicationFailException
for a normal failure of sending and receiving Message
s; old exceptions such as TimeoutException
, InvalidMessageSignatureException
, etc. are attached to InnerException
property to a thrown CommunicationFailException
.InvalidCredentialException
, InvalidMagicCookieException
, InvalidMessageSignatureException
, SendMessageFailException
no longer have public constructors.InvalidCredentialException
class added. [#1904, #1905]
CommunicationFailException
class added. [#1911]
ByteUtil.CalculateHashCode(byte[] bytes)
has modified. [#1866, #1891]
IMessageCodec.Encode()
now requires a matching PrivateKey
to be provided for Peer
. [#1904, #1905]
Published by github-actions[bot] over 2 years ago
Released on April 8th, 2022.
ITransport
's behavior rolled back to send replies with DifferentVersion
type Message
to a Peer
with a different AppProtocolVersion
regardless of whether the APV
from Peer
is signed by a trusted source or not. [#1900]
Published by github-actions[bot] over 2 years ago
Released on April 8th, 2022.
IStore.PruneOutdatedChains(bool noopWithoutCanon)
method. [#1874, #1878]
IMessageCodec
interface and its implementations overhauled. [#1890]
AppProtocolVersion version
parameter from IMessageCodec.Encode()
.Action appProtocolVersionValidator
parameter from IMessageCodec.Decode()
.TcpMessageCodec()
and NetMQMessageCodec()
now takes additional parameters for setting up its MessageValidator
instance for running context.DifferentAppProtocolVersionEncountered
delegate now returns void
. [#1885, #1890]
DifferentAppProtocolVersionException
is made public
. [#1889]
InvalidMessageSignatureException
and InvalidMessageTimestampException
gained additional properties. [#1889]
MessageValidator
helper class introduced. [#1890]
KBucket
is now capped. [#1879]
IMessageCodec
now never decodes a Message
with a different AppProtocolVersion
from the local version. [#1885, #1890]
ITransport
no longer replies with DifferentVersion
type Message
to a Peer
with a different AppProtocolVersion
that is not signed by a trusted source. [#1890]
Published by github-actions[bot] over 2 years ago
Released on March 31, 2022.
Kademlia.CalculateDistance()
changed to Kademlia.CalculateDifference()
to better indicate its behavior. [#1877]
Kademlia.CalculateDistance()
method reimplemented with return type int
. [#1877]
Published by github-actions[bot] over 2 years ago
Released on March 24, 2022.
RocksDBStore
became not to use column families to manage chain ids. Instead, chain id is concatenated into key prefix. [#1862]
planet store migrate-index
for index database migration (from column families based to key-prefix). [#1862]
Published by github-actions[bot] over 2 years ago
Released on March 17, 2022.
SwarmOptions.MessageLifespan
property changed to SwarmOptions.MessageTimestampBuffer
. [#1828, #1831]
dealerSocketLifetime
removed from NetMQTransport()
. [#1832]
ITransport.SendMessageAsync()
method is deprecated. ITransport.SendMessageWithReplyAsync()
methods are renamed as ITransport.SendMessageAsync()
. [#1849]
SwarmOptions.MessageTimestampBuffer
is set to 60 seconds instead of null
. [#1828, #1831]
Message
s, when non-null SwarmOptions.MessageTimestampBuffer
is provided, has changed to allow Message
s with future timestamps. [#1828, #1831]
Swarm<T>
now replies Pong
s to received TxIds
and BlockHeaderMessage
messages. [#1845]
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Released on February 23, 2022.
MerkleTrieExtensions.DifferentNodes()
became IEnumerable<Tuple<KeyBytes, IValue, IValue>>
from IEnumerable<IGrouping<string, (HashDigest<SHA256> Root, IValue Value)>>
. [#1729]
string? passphrase = null
parameter of methods belonging KeyCommand
and ApvCommand
with PassphraseParameters passphrase
. [#1593, #1823]
KeyCommand.UnprotectKey(Guid keyId, string? passphrase = null)
method with UnprotectedKey(Guid, PassphraseParameters, bool)
method. [#1593, #1823]
IMessageCodec<T>.Decode()
now throws InvalidMessageSignatureException
and InvalidMessageTimestampException
instead of InvalidMessageException
and InvalidTimestampException
respectively. [#1771]
long tipDeltaThreshold = 25L
option to Swarm<T>.PreloadAsync()
method. [#1775, #1777, #1779]
PassphraseParameters
class. [#1593, #1823]
KeyCommand.UnprotectKey(Guid keyId, PassphraseParameters passphrase, bool ignoreStdin = false)
method. [#1593, #1823]
MessageSendFailedException
class. [#1781, #1786]
Block<T>.Transactions
is ordered using a different scheme for evaluation due to protocol version bump. [#1322, #1323, #1518]
NetMQTransport.SendMessageWithReplyAsync()
should now complete its process within given timeframe timeout
argument instead of possibly taking longer on some edge cases when waiting for multiple replies. [#1734, #1789]
ActionEvaluator<T>.Evaluate()
method became to log message directly instead of other methods that use it. [#1773]
NetMQTransport.DoBroadcast
now uses NetMQTransport.SendMessageAsync()
internally instead of using NetMQ
directly. [#1722, #1824]
DealerSocket
s inside NetMQTransport.DoBroadcast()
method. [#1819, #1825]
planet
subcommands taking passphrase now have --passphrase-file
option besides -p
/--passphrase
option to read it from the specified file or standard input (-
) instead. [#1593, #1823]
planet
subcommands taking passphrase had unexpectedly terminated with an uncaught InvalidOperationException
when it's not associated to any terminal device (tty), i.e., piped. [#1593, #1823]
planet mpt diff
command became to output the key and its values in one line as JSON whenever a different key is found, than it outputs all of the different nodes at once. [#1729]
Published by github-actions[bot] over 2 years ago
Released on February 18, 2022.
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had thrown IndexOutOfRangeException
for the input longer or shorter than HashDigest<T>.Size
on .NET Standard 2.0. [#1706, #1815]
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had returned the wrong digest on .NET Standard 2.0. [#1706, #1815]
Published by github-actions[bot] over 2 years ago
Released on February 18, 2022.
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had thrown IndexOutOfRangeException
for the input longer or shorter than HashDigest<T>.Size
on .NET Standard 2.0. [#1706, #1815]
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had returned the wrong digest on .NET Standard 2.0. [#1706, #1815]
Published by github-actions[bot] over 2 years ago
Released on February 18, 2022.
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had thrown IndexOutOfRangeException
for the input longer or shorter than HashDigest<T>.Size
on .NET Standard 2.0. [#1706, #1815]
HashDigest<T>.DeriveFrom(ReadOnlySpan<byte>)
method's bug where it had returned the wrong digest on .NET Standard 2.0. [#1706, #1815]
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Released on February 16, 2022.
Metric
to monitor ITransport
behavior. [#1802]
Published by github-actions[bot] over 2 years ago
Released on February 16, 2022.
Metric
to monitor ITransport
behavior. [#1802]
Published by github-actions[bot] over 2 years ago
Released on February 16, 2022.
Swarm<T>
's dual systems for block synchronization (polling and event-driven in parallel) on updating chain by serializing the post-download process which is common for both synchronization mechanisms. [#1731, #1798]
Published by github-actions[bot] over 2 years ago