libplanet
libplanet copied to clipboard
Blockchain in C#/.NET for on-chain, decentralized gaming
I haven't checked thoroughly, but `BaseEqualityComparer.GetHashCode(byte[])`, `AppProtocolVersion.GetHashCode()`, and `KeyBytes.GetHashCode()` seem to be poorly implemented. The gist of it is that all of these use something akin to the following: ```csharp...
Currently, tests dependent on RocksDB are skippable because too many tests fail if *rocksdb.dll*/*librocksdb.so*/*librocksdb.dylib* is unavailable. However, as Libplanet in itself virtually depends on RocksDb, skipping these tests is not...
If I'm not mistaken there is no check for `Transaction.GenesisHash` for `Transaction`s in a genesis `Block`. Logically, since `GenesisHash` can't be assigned before a genesis `Block` is produced, it'd make...
- [ ] `decodeUnsignedTxWithSystemAction(encoded: Value): UnsignedTxWithCustomActions` - [ ] `decodeUnsignedTxWithCustomActions(encoded: Value): UnsignedTxWithCustomActions` - [ ] `decodeSignedTx(encoded: Value): SignedTx`
With reorg related renderer code removed, new validation logic should be introduce. 🙄
There are still unnecessary `null` coalescing happening in many places where `BlockChain.Tip` could've been `null` (especially before `BlockChain.Create()` was introduced). These should be cleaned up. 😗
On windows + unity editor, development mode runs own local chain and miner inside game without communication. When I play the game several times at the editor, the LOCK file...
Since `FungibleAssetValue` and `Currency` are `readonly struct`, some existing APIs receiving them can be defined with the [`in` modifier](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/in-parameter-modifier), to avoid value copying.
Implementation of Evidence is needed under untrusted validator condition.
`System.Threading.ThreadAbortException` occurs on various tests of `linux-unity-test`. Below are some of them. ``` FAIL Libplanet.Tests.Blockchain.DefaultStoreBlockChainTest.MineBlock: 3.182188s System.Threading.ThreadAbortException: at (wrapper managed-to-native) System.Object.MemberwiseClone(object) at System.Array.Clone () [0x00000] in :0 at Org.BouncyCastle.Math.BigInteger.AddToMagnitude (System.Int32[]...