libplanet

Blockchain in C#/.NET for on-chain, decentralized gaming

LGPL-2.1 License

Downloads
10.1K
Stars
489
Committers
79

Bot releases are visible (Hide)

libplanet - Libplanet 0.47.0

Published by github-actions[bot] over 1 year ago

Released on February 6, 2023.

Backward-incompatible API changes

  • The signature of Address(ImmutableArray<byte>) constructor became Address(in ImmutableArray<byte>). [#2756]
  • The signature of BlockHash(ImmutableArray<byte>) constructor became BlockHash(in ImmutableArray<byte>). [#2756]
  • The signature of Nonce(ImmutableArray<byte>) constructor became Nonce(in ImmutableArray<byte>). [#2756]
  • Removed IAccountStateView.GetValidatorSet() method. [#2733]
  • Removed IAccountStateDelta.SetValidator(Validator) method. [#2733]
  • (Libplanet.Extensions.Cocona) Dropped .NET Standard 2.0 and .NET Core 3.1 target assemblies. [#2732]
  • (Libplanet.Extensions.Cocona) Added .NET 6 target assembly. [#2732]
  • (Libplanet.Net) Added ITransport.AppProtocolVersion, ITransport.TrustedAppProtocolVersionSigners, and ITransport.DifferentAppProtocolVersionEncountered properties. [#2743]
  • (Libplanet.Net) Changed Swarm<T>(BlockChain<T>, PrivateKey, AppProtocolVersionOptions, HostOptions, SwarmOptions) to Swarm<T>(BlockChain<T>, PrivateKey, ITransport, SwarmOptions). [#2743]
  • (Libplanet.Net) Changed the type for AppProtocolVersionOptions.TrustedAppProtocolVersionSigners from IImmutableHashSet<PublicKey>? to IImmutableHashSet<PublicKey>. [#2759]
  • (Libplanet.Net) Changed BoundPeer to implement IBencodable interface and removed [Serializable] attribute from BoundPeer. [#2778]
  • (Libplanet.Net) Changed BoundPeer(Dictionary) constructor's signature to BoundPeer(IValue). [#2778]
  • Changed Address to implement IBencodable interface and removed [Serializable] attribute from Address. [#2778]
  • Changed Address(Binary) constructor's signature to Address(IValue). [#2778]

Added APIs

  • Introduced Libplanet.Crypto.Secp256k1 package. [#2780]
  • Many more types became serialized and deserialized better with System.Text.Json.JsonSerializer as they now have their own custom converters. Note that these serializations are unavailable on Unity due to its incomplete reflection support. [#2756]
    • A Nonce became represented as a single hexadecimal string in JSON.
    • A PublicKey became represented as a single hexadecimal string in JSON.
    • A Block<T> became represented as an object with values in JSON.
  • Added TxId(in ImmutableArray<byte>) constructor. [#2756]
  • Added ByteUtil.ParseHexToImmutable() static method. [#2756]

Bug fixes

  • Fixed a JSON serializer bug where a Transaction<T> serialized into JSON had lacked the content of its PublicKey. [#2756]
  • (Libplanet.Explorer) Fixed a bug where the query stateQuery hadn't work correctly. [#2757]
  • Fixed a bug of DefaultStore.PutTxExecution() where sometimes TxExecution data is in undefined state due to data corruption. [#2761]
  • (Libplanet.Node) Fixed a bug of NodeUtils<T>.CreateGenesisBlock() where sometimes block data is in undefined state due to data corruption. [#2761]
  • Fixed where Address(string) could accept 42 chars with a wrong prefix. [#2781]
  • Fixed where VolatileStagePolicy<T>(TimeSpan) created with TimeSpan.MaxValue as its argument would not behave properly and throw an ArgumentOutOfRangeException. [#2783, #2784]

Dependencies

CLI tools

  • Added planet block subcommand group. [#2758]
    • Added planet block analyze subcommand.
    • Added planet block generate-genesis subcommand.
  • Fixed a bug of planet tx analyze subcommand where a serialized transaction had lacked the content of its "publicKey". [#2756]
libplanet - Libplanet 0.46.1

Published by github-actions[bot] over 1 year ago

Released on February 3th, 2023.

  • Ported changes from [Libplaent 0.45.5] release.
  • General changes to log output for readability. [#2769]
libplanet - Libplanet 0.45.5

Published by github-actions[bot] almost 2 years ago

Released on January 19, 2023.

  • Fixed a bug when Web3KeyStore.Get() hadn't worked properly on IL2CPP environment. [#2727]
  • Back-ported below changes from Libplanet 0.46.0 release.
    • (Libplanet.Net) Fixed a bug NetMQTransport log shows socket count wrongly. [#2708]
    • (Libplanet.Net) Fixed a bug where NetMQTransport.SendMessageAsync() method hadn't disposed of internal sockets properly when connecting failed. [#2719]
    • (Libplanet.Net) BoundPeer() constructor became to validate a hostname of endPoint parameter. [#2721]
libplanet - Libplanet 0.46.0

Published by github-actions[bot] almost 2 years ago

Released on Janurary 18th, 2023.

Backward-incompatible API changes

  • Changed BlockLocator to throw an ArgumentException if an empty set of BlockHashes are given during construction. [#2584]
  • BlockChain<T>() now explicitly requires both store and stateStore arguments to be not null. [#2609]
  • BlockChain<T>.Swap() now throws an InvalidOperationException if called on a non-canonical chain. [#2619]
  • Added actionsLogsList parameter to TxSuccess constructor. [#2474, #2505]
  • Added actionsLogsList parameter to TxFailure constructor. [#2474, #2505]
  • Removed BlockLocator(Func<long, BlockHash?>, Func<BlockHash, long>, int) constructor. Use BlockLocator.Create() static method instead. [#2580, #2584]
  • Replaced IAction?-typed policyBlockAction parameter with PolicyBlockActionGetter-typed policyBlockActionGetter parameter in ActionEvaluator constructor. [#2646]
  • Removed IStore.GetCanonicalGenesisBlock<T>() interface method and all its implementations. [#2664]
  • Replaced IPreEvaluationBlockHeader-typed blockHeader parameter with IActionTypeLoaderContext-typed context parameter in the below methods. [#2653]
    • IActionTypeLoader.Load().
    • IActionTypeLoader.LoadAllActionTypes().
  • Added IAccountStateDelta.SetValidator(Validator) method. [#2716]
  • Added IAccountStateView.GetValidatorSet() method. [#2716]
  • Added IBlockChainStates.GetValidatorSet(BlockHash, ValidatorSetStateCompleter<T>) method. [#2716]
    • Added BlockChain.GetValidatorSet(BlockHash, ValidatorSetStateCompleter<T>) method.
    • Added BlockChainStates.GetValidatorSet(BlockHash, ValidatorSetStateCompleter<T>) method.
  • Added StateCompleterSet.ValidatorSetStateCompleter property. [#2716]
  • (Libplanet.Net) Removed workers parameter from NetMQTransport.Create() method and Swarm<T>() constructor. [#2690]
  • (Libplanet.Net) Changed Swarm<T>() and NetMQTransport.Create() to take AppProtocolVersionOptions as a combined parameter instead of taking AppProtocolVersion, IImmutableSet<PublicKey>?, and DifferentAppProtocolVersionEncountered separately. [#2693]
  • (Libplanet.Net) Changed Swarm<T>() and NetMQTransport.Create() to take HostOptions as a combined parameter instead of taking string?, IEnumerable<IceServer>?, and int? separately. [#2701]

Added APIs

  • Added TxExecution.ActionsLogsList property. [#2474, #2505]
  • Added ActionEvaluation.Logs property. [#2474, #2505]
  • (Libplanet.Explorer) Added TxResult.ActionsLogsList property. [#2474, #2505]
  • (Libplanet.Explorer) Added actionsLogsList field to TxResultType. [#2474, #2505]
  • Added BlockLocator.Create() static method. [#2584]
  • Added PolicyBlockActionGetter delegator type. [#2646]
  • Added IActionTypeLoader.LoadAllActionTypes() method. [#2646]
    • Added StaticActionTypeLoader.LoadAllActionTypes() method.
  • Added IActionTypeLoaderContext interface. [#2653]
  • Added AppProtocolVersionOptions class. [#2693]
  • Added HostOptions class. [#2701]
  • Added Validator class. [#2716]
  • Added ValidatorSet class. [#2716]
  • Added SetValidator class. [#2716]
  • Added ValidatorSetGetter delegate. [#2716]
  • Added ValidatorSetStateCompleter<T> delegate. [#2716]
  • Added ValidatorSetStateCompleters<T> class. [#2716]
  • (Libplanet.Explorer) Added ValidatorType class. [#2716]
  • (Libplanet.Explorer) Added validators query in StateQuery. [#2716]

Behavioral changes

  • Changed BlockChain<T>.FindNextHashes() to return at most count number of BlockHashes regardless of the result. BlockChain<T>. [#2581, #2584]
  • Changed BlockChain<T>.FindNextHashes() to return zero BlockHashes if no branch point BlockHash is found instead of returning BlockHashes starting with the genesis BlockHash. [#2582, #2584]
  • Chnaged the behavior of BlockLocator index selection and sampling when creating an instance. [#2583, #2584]
  • Changed the default VolatileStagePolicy<T>.Lifetime from 3 hours to 10 minutes. [#2718]

Bug fixes

  • (Libplanet.Net) Fixed a bug NetMQTransport log shows socket count wrongly. [#2708]
  • (Libplanet.Net) Fixed a bug where NetMQTransport.SendMessageAsync() method hadn't disposed of internal sockets properly when connecting failed. [#2719]

CLI tools

  • Fixed a bug planet store had not recognized RocksDB store (rocksdb+file:). [#2699]
  • Added planet store chain-ids subcommand. [#2699, #2704]
  • Added -P/--public-key option to planet key derive subcommand. [#2705]
libplanet - Libplanet 0.45.4

Published by github-actions[bot] almost 2 years ago

Released on January 4, 2023.

libplanet - Libplanet 0.44.7

Published by github-actions[bot] almost 2 years ago

Released on January 4, 2023.

  • (Libplanet.Net) Fixed bugs where NetMQTransport hadn't worked expected when not many threads were available. [#2684]
  • (Libplanet.Net) Fixed a bug where NetMQTransport.ReplyMessageAsync() hadn't worked properly. [#2684]
libplanet - Libplanet 0.45.3

Published by github-actions[bot] almost 2 years ago

Released on December 26, 2022.

libplanet - Libplanet 0.44.6

Published by github-actions[bot] almost 2 years ago

Released on December 26, 2022.

  • (Libplanet.Net) Fixed a bug where NetMQTransport hadn't worked properly on Windows. [#2667]
  • Fixed a scope of readlock on BlockChain<T>.GetBlockLocator() method for sake of parallelism. [#2667]
libplanet - Libplanet 0.45.2

Published by github-actions[bot] almost 2 years ago

Released on December 21, 2022.

libplanet - Libplanet 0.44.5

Published by github-actions[bot] almost 2 years ago

Released on December 21, 2022.

  • Improved overall performance of NetMQTransport and Swarm<T> classes. [#2654]
libplanet - Libplanet 0.45.1

Published by github-actions[bot] almost 2 years ago

Released on December 15, 2022.

  • (Libplanet.Net) Fixed a bug where NetMQTransport.SendMessageAsync() hadn't been canceled properly. [#2641]
libplanet - Libplanet 0.44.4

Published by github-actions[bot] almost 2 years ago

Released on December 15, 2022.

  • Improved overall performance of NetMQTransport and TxCompletion<T> classes. [#2631]
libplanet - Libplanet 0.45.0

Published by github-actions[bot] almost 2 years ago

Released on December 3, 2022.

Deprecated APIs

  • Removed BlockChain<T>.MineBlock(PrivateKey, DateTimeOffset, bool, long, int, int, IComparer<Transaction<T>>, CancellationToken?) by making it internal. [#2529]
  • Removed IStore.SetBlockPerceivedTime() and IStore.GetBlockPerceivedTime() methods. [#2575]
  • Removed BlockPerception struct. [#2575]
  • Removed BlockChain<T>.PerceiveBlock() method. [#2575]

Backward-incompatible API changes

  • Changed BlockChain<T>.MineBlock(PrivateKey, DateTimeOffset?, bool?, long?, int?, int?, IComparer<Transaction<T>>, CancellationToken?) to BlockChain<T>.MineBlock(PrivateKey, DateTimeOffset?, bool?, IComparer<Transaction<T>>, CancellationToken?) by removing policy controlled parameters. [#2529]
  • Changed BlockPolicy<T>() constructor to take additional Func<long, int> type parameter named getMinBlockProtocolVersion. [#2593]

Added APIs

  • Added BlockChainStates<T> class. [#2507]
  • Added new constructors of BlockChain<T> takes IBlockChainStates<T> and ActionEvaluator<T> directly. [#2507]
  • Added non-generic interfaces. [#2539]
    • Added IPreEvaluationBlock interface.
    • Added IBlockContent interface.
    • Added ITransaction interface.
  • Added IActionTypeLoader interface. [#2539]
  • Added StaticActionTypeLoader class. [#2539]
  • (Libplanet.Explorer) Added a new GraphQL endpoint on /graphql/explorer. [#2562]
  • Added IBlockPolicy.GetMinBlockProtocolVersion() interface method. [#2593]

Bug fixes

  • (Libplanet.Net) Fixed a bug where AppProtocolVersion.GetHashCode() did not work as intended. [#2518, #2520]

Dependencies

CLI tools

  • Now planet can be installed using Homebrew on macOS: brew install planetarium/brew/planet. [#2555]
  • Now planet supports command-line completion for bash and zsh. See also Cocona's manual on configuring command-line completion. [#2586]
  • (Libplanet.Explorer) Added serve subcommand. [#2563]
    • (Libplanet.Explorer) Deprecated primary command. It will be obsoleted in 0.47.0 release. You should use serve command instead. [#2563]
  • (Libplanet.Explorer) Added schema subcommand. [#2563]
libplanet - Libplanet 0.44.3

Published by github-actions[bot] almost 2 years ago

Released on December 1, 2022.

  • Fixed a bug of TxMetadata.ToBencodex() method where the encoded timestamp had differed from TxMetadata.Timestamp when it has non-zero time zone offset. [#2598]
libplanet - Libplanet 0.44.2

Published by github-actions[bot] almost 2 years ago

Released on November 29, 2022.

  • Improved performance of .Iterate() and .GetNextTxNonce() of VolatileStagePolicy. [#2589]
libplanet - Libplanet 0.44.1

Published by github-actions[bot] almost 2 years ago

Released on November 7, 2022.

  • (Libplanet.Net) Fixed a bug where NetMQTransport.SendMessageAsnyc() had hung forever when given peer information isn't valid. [#2424, #2521]
libplanet - Libplanet 0.43.3

Published by github-actions[bot] almost 2 years ago

Released on November 7, 2022.

  • (Libplanet.Net) Fixed a bug where NetMQTransport.SendMessageAsnyc() had hung forever when given peer information isn't valid. [#2424, #2521]
libplanet - Libplanet 0.44.0

Published by github-actions[bot] almost 2 years ago

Released on November 2, 2022.

Backward-incompatible API changes

  • Removed all TxMetadata.ToBencodex() overload methods with parameters. Use newly introduced parameterless TxMetadata.ToBencodex() instead. [#2457]
  • (Libplanet.Node) Changed UntypedTransaction(ITxMetadata, IEnumerable<IValue>, ImmutableArray<byte>) to UntypedTransaction( ITxMetadata, IValue?, IValue?, ImmutableArray<byte>) to support Transaction<T>.SystemAction. [#2456, #2457]
  • (Libplanet.Node) Renamed UntypedTransaction.ActionValues to UntypedTransaction.CustomActionsValue and changed its type from IReadOnlyList<IValue> to IValue?. [#2456, #2457]

Added APIs

  • (Libplanet.Explorer) Added json field to ActionType GraphQL type. [#2418]
  • (Libplanet.Node) Added IValue? SystemActionValue property to UntypedTransaction. [#2456, #2457]

Behavioral changes

  • Optimized ByteUtil.CalculateHash() method. [#2437, #2459]

Bug fixes

  • (Libplanet.Explorer) Libplanet.Explorer.Executable became to work again. [#2420]

CLI tools

  • Added builds for Apple Silicon to releases. [#2365]
libplanet - Libplanet 0.43.2

Published by github-actions[bot] almost 2 years ago

Released on November 1, 2022.

  • (Libplanet.RocksDBStore) RocksDBStore no more crashes with stack overflow during iterating block indices even if a chain is deeply nested (due to forks). [#2338, #2379]
libplanet - Libplanet 0.43.1

Published by github-actions[bot] about 2 years ago

Released on October 17, 2022.

Added APIs

  • (Libplanet.Explorer) Added TxResultType.UpdatedStateType and TxResultType.FungibleAssetBalancesType GraphQL types. [#2405]