libplanet
libplanet copied to clipboard
Blockchain in C#/.NET for on-chain, decentralized gaming
Looking at [`BlockType.PreviousBlock`](https://github.com/planetarium/libplanet/blob/147ffd998f7977a81c6c20726fe50f5e05307172/Libplanet.Explorer/GraphTypes/BlockType.cs#L40), it asks to set `IStore` or `BlockChain` via `UserContext` on Libplanet.Explorer. However, this is something .NET DI can accomplish well enough. thus I suggest replacing it with...
Business logic concerning the state predicate of a `KBucket` instance should be inside the `KBucket` class.
When the number of opened sockets exceeds `NetMQConfig.MaxSockets` creating a new `DealerSocket` fails and it leads to failure of the total sending process. The message should be enqueued so the...
Currently(0.31.0), we have `Peer` class and `BoundPeer` as its classs. basically, `Peer` has `PublicKey`, `Address` and `PublicIPAddress`. but it doesn't have `Port` to connect so it can't be used in...
Based on Kademlia protocol, it searches network recursively with given depth (which is 3) and it leads to large amount of traffic at the moment. Should make it more graceful...
We've supported both .NET Standard 2.0 & 2.1, since [Unity](https://unity.com/) hadn't implemented .NET Standard 2.1, but only 2.0. [However, Unity recently announced their fork of Mono now became to have...
Currently, the method can throw too many different types of `Exception`s, and `Exception` type is used as elaborate flow control, which is considered an [anti-pattern](https://docs.microsoft.com/en-us/visualstudio/profiling/da0007-avoid-using-exceptions-for-control-flow?view=vs-2017) in general. Unless there is...
States have been intended to be nullable, as they can be empty. I believe the nullability on that parameter was missing when I added `#nullable enable` to the source file....
`MerkleTrie`, the only implementation of `ITrie` as of now, is less freedom of improvement due to the already running mainnet of *Nine Chronicles*. In order to improve Libplanet's own MPT...
https://github.com/planetarium/NineChronicles/blob/b9960475d1168adb0a31af3732a4e5d671c457b1/nekoyume/Assets/_Scripts/BlockChain/Agent.cs#L667-L689 Just my two cents, but I think wrapping inner exceptions at `Swarm` layer thrown from another layer such as `IProtocol` is better than inheritance for two reasons: - When...