The 2nd hard-fork and introducing Slashing v2.0
The release includes big improvements in chain stability and performance as follow:
- We introduce Slashing v2.0 with the below upgraded policies:
- Masternode who doesn’t create any block within an epoch and therefore delays the network by 10 seconds at each of their turns will be penalized (no rewards) for the next five epochs.
Note: a slashed Masternode can still sign transactions if he’s online but receive no rewards for doing so.
- After being slashed for 5 epochs, the Masternode is analysed for re-entry.
If the slashed Masternode have signed any transaction during the last epoch (meaning that he’s up and working again) it will come back to its Masternode status and receive rewards normally. Otherwise it will be slashed for a new round of 5 epochs. This can happen as long as the node isn’t back up or kicked out of the top 150.
2. We remove EVM execution when counting the number of signatures that a masternode has made. This “abi: unmarshalling empty output” should not happen anymore during that step. There are still some other built-in EVM executions in TomoChain system that might sometimes cause that issue due to the EVM handling poorly concurrent requests.
A second hard-fork is required for this release. All masternode runners have two weeks, approximated to 500,000 blocks, to update their node’s version. The hard-fork block number will be #3,000,000 which is predicted to occur on Tuesday, March 19, 2019.
Future work: TomoChain v1.4 and further
After the v1.3 release, the development of new features for the TomoChain client will be slowing down as the network has been running quite smooth for recent months. We will turn our development effort to TomoX, core protocol of the TomoChain decentralized exchange, which is set to be released with the TomoChain client v2.0 (estimated to Q3 this year). The TomoX protocol will be embedded directly into the TomoChain client so that masternode runners don’t have to do anything except upgrading the client and enabling TomoX protocol by setting the command line flag ` — tomoX`. Detailed guideline will be included.
However, on the short term we’re keeping our focus on reducing the chaindata size. We are implementing a utility named `tomoclean` which will be release alongside the TomoChain client v1.4. This utility tool aims to remove the old EVM state related to signing operation which is no longer needed after the v1.3 hard-fork. We conducted some internal tests on the current chaindata and the outcome is very positive. The chaindata size is reduced from ~300GB down to ~80GB. Our plan is giving masternode runners the reduced chaindata in form of a snapshot that they can restore their nodes from. Considering we could have been tampering with the chaindata, people are also free to run `tomoclean` directly on their chaindata. However, the execution took one week to finish on a single powerful virtual machine (96GB RAM and 32 vCPU) in our test environment. Detailed explanation on how we do that will come later in a separate post.