tip:222
title: Improve transaction execution speed
author: Kiven <kiven.liang@tron.network>
discussions to: https://github.com/tronprotocol/TIPs/issues/222
status: Final
type: Standards Track
category: TRC
created: 2021-01-06
This TIP provides Improve transaction execution speed for java-tron.
In the current Tron ecosystem, the destroyed TRX is transferred to the black hole account. When performing transfers, the black hole account needs to be serialized and deserialized. Since the black hole account contains less TRC10 tokens, serialization and deserialization will hardly affect the performance. However, with the development of time, there are currently a large number of TRC10 tokens in the black hole account, which has a great impact on performance during serialization and deserialization. From our current test, the performance is reduced by 50% to 100%.
Improve the performance of the TRON network and increase the QPS of transactions.
void burnTrx(long number): The method of destroying TRX, the value is accumulated and recorded in the DynamicPropertiesStore database
long getBurnTrxAmount(): Get the method of destroying the total TRX amount from the DynamicPropertiesStore
boolean supportOptimizeBlackHole(): Whether to open the proposal to remove the blackhole account
It can improve the QPS of the whole network transaction, and the performance can be improved by more than 50%.
Since the performance degradation is caused by the serialization and deserialization of black hole accounts, to improve performance, we can remove the black hole accounts and use DynamicPropertiesStore to record the number of destroyed TRX. To make the database of the whole network consistent, we need to create a proposal to remove black hole accounts.
The data structure of the amount of TRX destroyed: key: BURN_TRX; value: the number of TRX destroyed
All content herein is licensed under Apache 2.0.