Mainnet Cleobulus Announcement

TRON Core Devs
TRON
Published in
2 min readMay 31, 2024

The TRON developer community has released the GreatVoyage-v4.7.5(Cleobulus) version. This is a mandatory upgrade. Please finish your upgrade to the new version by 23:59, June 15th, 2024 (SGT).

The Cleobulus version introduces multiple important optimizations and updates, including a new proposal to adjust the energy cost of VOTEWITNESS and SUICIDE opcodes in TVM to make the energy cost more reasonable. The enhanced transaction and block verification logic improves the system’s fault tolerance. The optimized synchronization logic between threads improves data consistency. You may find the details below.

Core

1. Optimize block synchronization and production logic

The Cleobulus version optimizes the block production logic. After obtaining the block production lock, the node will check whether it meets the conditions for producing blocks to avoid inconsistent state before and after obtaining the block production lock, thereby improving the stability of the TRON network.

Additionally, Cleobulus enhances the block verification logic. All nodes add checks on block size and block time.

Source Code: https://github.com/tronprotocol/java-tron/pull/5833 https://github.com/tronprotocol/java-tron/pull/5830

2. Strengthen size check of account creation transactions

The Cleobulus version optimizes the account creation logic, strengthens the size check of account creation transactions, and adds the №82 TRON network parameter to set the maximum number of bytes allowed for account creation transactions. The parameter ranges from 500 to 10000 and the default value is 1000. The value can be modified by initiating a proposal for a vote.

Source Code: https://github.com/tronprotocol/java-tron/pull/5835

TVM

1. Adjust energy cost for some opcodes in TVM

Cleobulus adjusts the energy cost of the VOTEWITNESS and SUICIDE opcodes to make the energy consumption more reasonable based on the resources and time required for the actual execution of each opcode.

This optimization is the №81 parameter of the TRON network. After Cleobulus is deployed, it is disabled by default and can be enabled through governance voting.

TIP: https://github.com/tronprotocol/tips/blob/master/tip-653.md

Source Code: https://github.com/tronprotocol/java-tron/pull/5837

Other Changes

1. Optimize synchronization logic among threads

The Cleobulus version optimizes the block request logic and no longer reads fetchBlockInfo data when printing logs, improving the stability of concurrent access to fetchBlockInfo object by multiple threads.

Additionally, Cleobulus optimizes the synchronization block processing logic. Regardless of whether the syncBlockToFetch queue is empty, the node can process block data normally, improving the efficiency of block synchronization.

Source Code: https://github.com/tronprotocol/java-tron/pull/5831 https://github.com/tronprotocol/java-tron/pull/5832

2. Remove redundant code

The Cleobulus version removes redundant code in the block processing logic, improving the readability and maintainability of the code.

Source Code: https://github.com/tronprotocol/java-tron/pull/5834

Seek virtue and eschew vice. — —Cleobulus

--

--