Release v1.0.111 is out 🚀
What's new:
- #1470 Implemented a mechanism through which the proposer will wait for more than 2/3+1 signatures in subround signature until max subround allocated time would be reached.
- #1475 Added the possibility to remove a failed resolved hash if that hash becomes available on a next request, added timestamp on events.
- #1427 Added checks that signal if the implementations respect the interfaces.
- #1448 Added functionality to reshuffle nodes between shards. The node is restarted and the mechanism for startInEpoch kicks in requesting the missing functionality. If the validator is shuffled out of one shard it will restart and move to another shard.
- #1479 Added identity field on the heartbeat message, taken from prefs.toml. This will be used to securely identify nodes on our validator's page.
- #1417 Refactor the component which reads data from storage when bootstrapping in order to make it able to be tested.
- #1476 Moved a lot of components from the main.go area to a separate package and write unit tests for them.
Bug fixes:
- #1470 Fixed an edge case when final check point was not re-computed on rollback after forkDetector.RemoveHeader method was called.
- #1470 Fixed an edge case on sync, when received requested missing miniblocks were not added in the same order in block.Body structure which should be passed to blockProcessor.ProcessBlock method.
- #1472 Recalibrated how processed and pending miniblocks are calculated in case of start in epoch. Added requests on processing of start in epoch to request the missing mteablocks.
- #1485 Start in epoch with DB without the node shuffled to another shard started with the genesisNodesConfig and couldn't continue. Added currentNodesConfig saved in the DB also for the case the node was not shuffled.
- #1483 Fixed situation when on forced roll back (with reset probable highest nonce) not all higher header nonces already received, are removed from pool.
- #1483 Fixed situation when fork is detected on a header received too late but with higher epoch.
- #1483 Clear consensus group cacher when epoch is changed.
- #1488 The displayRatings function failed on the first block of every epoch because the nodesConfiguration for the new epoch was not found. Moved displayRatings on metablocks after the nodesConfiguration is created by the nodesCoordinator.
- #1488 The signedBlocksThreshold was verified not just for the eligible list members but for all validators and for the waiting validators the signedBlocks was always 0 and a debug message appeared: "below signedBlocksThreshold".
- #1488 computeSignedThreshold is done only on eligible Validators.
- #1486 fixed some integration tests
- #1491 When committing the main trie, collect all the dirty hashes from the data tries, and add them to the main trie new hashes (just like the oldHashes).
- #1491 Do not cancel prune when snapshot is in progress.
- #1491 Do not cancel prune on snapshotEpochStartFromMeta().
- #1491 Cancel prune on previousRootHash, not on current rootHash.
- #1493 Fixed the start in epoch 1 with existing database