Peter
Peter
This PR was created to fix the new detected 'state hash mismatch' error that caused the chain stuck. But after that, new issues were detected during the loadtests, hence all...
The [zcnsc.Mint](https://github.com/0chain/0chain/blob/20ca71132a964d54c0773d2d76a882746fb7dc56/code/go/0chain.net/smartcontract/zcnsc/mint.go#L16) only checks if the signatures are correct, we should also check if the signatures number is >= threshold.
https://github.com/0chain/0chain/blob/315118ed18660e32a7b2b79e34b040a5da79784f/code/go/0chain.net/smartcontract/zcnsc/nodes.go#L41-L45 Which will cause performance issue when the map is huge as we will need to encode/decode each time we have mint/burn tokens
We need to check if transactions have tokens burned unexpectedly due to any reason, need to check code to confirm how this constraint checking could be implemented and applied. Related...
Instead of returning error and be included in a block as chargeable error transaction, we can just return nil as it's just no blobber are ready to be rewarded yet....
As shown below, we are updating blobbers with validator id, which is the reason why we see lots of 'event could not be processed' error on sharders. https://github.com/0chain/0chain/blob/7d808385b8c0311f759baf89a05e5d798527d08a/code/go/0chain.net/smartcontract/storagesc/challenge.go#L252 error ```...
Issue tracked on slack > We will lost the transaction fee payment if the block generator has ‘node not found’ error when processing the payFee transaction, see [code](https://github.com/0chain/0chain/blob/3232a891de7b09c311cc1a22e7fc86d38ecfd475/code/go/0chain.net/miner/protocol_block.go#L990-L995) below ```go...
We don't have the size limitation for single object on MPT, which can be used by malicious nodes to attack the MPT. For example, the blobber `StorageNode` struct looks like...
## Fixes Calculate the build-in txn costs ahead and occupies the txn slot in block before collecting txns from pool ## Changes ## Need to be mentioned in CHANGELOG.md? ##...
The `testBalances.tree` is not thread safe so concurrent reading caused the panic. ```sh fatal error: concurrent map read and map write goroutine 130 [running]: runtime.throw({0xe6046b?, 0xc0000d7e00?}) /usr/local/go/src/runtime/panic.go:992 +0x71 fp=0xc0003675d8 sp=0xc0003675a8...