Mainnet and Active Set Redeployment
The Active Set Redeployment is currently progressing, expected to finalize in the next few days. Challenges arose initially, largely due to the intricacies involved in coordinating all miners and sharders. However, momentum has since picked up. Notably, the Active Set has voted for a proposal that enforces timely actions from all parties involved, avoiding any notable setbacks.
Upon the successful completion of this redeployment, and following a thorough series of tests, the blockchain team has marked November 1 on their calendar for a tentative launch. We trust you share our excitement for the days ahead, so keep an eye out for more updates coming your way!
Last week, the blockchain team dedicated their efforts to monitoring the MPT state size growth issue, implementing minor fixes where necessary. Additionally, some LFB issues were identified during the process of restarting all miners and sharders. Several problems within the blobbers were also addressed, including the nested rename dir issue and list file. Concurrently, the team initiated PRs to facilitate the purchase of native ZCN with ERC tokens through the Bancor contract in zwalletcli. Detailed information is provided below.
MPT state issue
The team observed that the MPT state size could significantly expand before the disk space reclaim process was activated in RocksDB. This expansion is a result of continuous writing to RocksDB, which includes insert operations during the integration of new state changes and delete operations for removed changes on finalized blocks. The frequency of insert operations correlates with the transaction volume per block, while delete operations occur in a separate goroutine every 7 seconds. Rather than eliminating the deleted nodes during the block finalization process, these node keys are gathered into a dead node column in RocksDB. Subsequently, a state prune worker expunges all recorded nodes at 7-second intervals, optimizing the block finalization timeframe. Given the continuous addition of new LOGs to the database, the interval for obsolete file removal was reduced from 10 minutes to 1 minute to maintain the MPT state size within acceptable limits. Preliminary tests indicate promising results, but the team remains vigilant and ready to make further adjustments as necessary.
An issue pertaining to the LFB (Last Finalized Block) emerged during a recent attempt to update miner/sharder images for deploying a fix, with one sharder experiencing repeated restarts. The logs revealed a discrepancy in the LFB block hash between the locally stored version and the one acquired from a remote source. Investigation traced the root of the issue to simultaneous restarts of miners and sharders while not all sharders were at the same LFB round. A comprehensive explanation of the occurrence is available in issue 2860. It’s important to note that this issue wouldn’t surface in a production environment, as simultaneous restarts of all miners and sharders are not standard practice.
Besides the zwalletcli’s new feature supporting the purchase of native ZCN from ERC tokens, work is also underway to integrate this functionality into web applications.
The following core PRs were merged, featuring enhancements and fixes across 0chain, gosdk, and blobbers:
- PR 2843 introduces a configuration for minimum stake per delegate.
- PR 2857 adds a finalized filter for transaction and block queries.
- PR 2861 utilizes the local LFB when fetching a block from remote locations fails.
- PR 2855 sets the RocksDB obsolete file cleaning frequency to every 1 minute.
- PR 2858 addresses a challenge reward issue upon finalization.
- PR 2816 eliminates a redundant ‘createdAt’ field in the event block structure.
- PR 2862 provides a transaction fix.
- PR 2873 resolves an authorizer conductor test issue.
- PR 2863 incorporates endpoint changes for rewards testing.
- PR 2874 removes deep scans from diagnostics.
- PR 1288 rectifies the list file function.
- PR 1278 introduces a clean-up worker for challenge tables.
- PR 1289 fixes redeem wm retry functionality.
- PR 1286 addresses client stats and blacklist issues.
- PR 1295 resolves the nested rename directory issue.
- PR 1297 ensures connection object preservation.
- PR 1250 validates allocation and previous allocation root.
- PR 1253 adds a check for chunk number.
- PR 1256 initiates connection ID creation.
Exciting Progress and November Launch
In summary, the team has made significant strides, resolving technical issues and introducing the ability to buy native ZCN with ERC tokens. With the active set redeployment almost done and a tentative November 1 launch, a crucial period lies ahead. Your ongoing support is invaluable — stay tuned for more exciting updates!