In the versions before GreatVoyage-v4.2.2 (Lucretius), to obtain the witness list during block processing, multiple database queries and deserialization operations were performed, which took up nearly 1/3 of the block processing time.
The GreatVoyage-v4.2.2 (Lucretius) version simplifies the query of witnesses. In the block processing process, the witness list can be obtained by only one query. After testing, this optimization has dramatically improved the block processing performance.
In the versions before GreatVoyage-v4.2.2 (Lucretius), multiple HTTP or RPC queries for data on the chain are mutually exclusive. If a query request is being processed, a new query request will keep waiting until the previous request is completed.
However, data query methods never use shared data, and no lock operation is required. This optimization removes unnecessary synchronization locks in the query process and improves the performance of internal queries, HTTP and RPC query requests of nodes.
In the version before GreatVoyage-v4.2.2 (Lucretius), the ABI other data of the smart contract are stored together in the contract database, and some high-frequency instructions (SLOAD, SSTORE, Etc.) will read all the data of a smart contract from the contract database. However, the execution of the contract does not use these ABI data, and these frequent readings will impact the execution efficiency of these instructions.
In the version of GreatVoyage-v4.2.2 (Lucretius), smart contract ABIs are transferred to a particular ABI database. The ABI data will no longer be read during the execution of the contract, thus significantly improving the performance of TVM.
- Source code: #3836
The version of GreatVoyage-v4.2.2 (Lucretius) introduces three important optimizations. The optimization of block processing effectively improves the execution speed of the block, thereby significantly improving the performance of the TRON network. Efficient HTTP/RPC query and excellent TVM performance will bring a better experience to TRON DAPP users and further prosper the TRON ecosystem.
--- Truths kindle light for truths.
If users meet the above conditions, users need to execute the DBReqair.jar tool to repair the database before users can start FullNode.jar normally.
- Download the “DBRepair.jar” and “repair.sh” from the tool homepage and place them in the same directory as “FullNode.jar”.
- Go to the “FullNode.jar” directory and execute the “repair.sh” file:
- Open the log file “logs/tron.log” and wait for the execution to complete, you will see "Repairment completed!" in log output once execution is complete. (DBRepair will automatically exit after the execution is completed).
- Now the repair of the database has been completed. users can start the node normally with the latest version GreatVoyage-v22.214.171.124(Epictetus)
This tool only needs to be executed once.
Updated about 2 years ago