Skip to content

Commit 5bb6ec7

Browse files
authored
Merge pull request tronprotocol#146 from vivian-kang/reorganize-the-doc
Release history
2 parents e9a7ae0 + f6566a8 commit 5bb6ec7

18 files changed

+860
-0
lines changed

docs/releases/GreatVoyage-v400.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# GreatVoyage-v4.0.0
2+
Release 4.0.0 has implemented the shielded TRC-20 contract, which can hide the source address, destination address, and the token amount for TRC-20 transactions and provide users with better privacy. The shielded TRC-20 contract has three core functions: `mint`, `transfer` and `burn`. `mint` is used to transform the public TRC-20 token to shielded token; `transfer` is used for shielded token transactions; `burn` is used to transform the shielded token back to the public TRC-20 token. To support the shielded TRC-20 contract, four new zero-knowledge instructions (`verifyMintProof`, `verifyTransferProof`, `verifyBurnProof` and `pedersenHash`) are add in TVM, which make it convenient to provide privacy for arbitrary TRC-20 contract.
3+
4+
## Notices
5+
Forced upgrade
6+
7+
## New features
8+
- Add 4 new instructions (`verifyMintProof`, `verifyTransferProof`, `verifyBurnProof` and `pedersenHash`) in TVM to support TRC20 shielded transactions based on zk-SNARKs (#3172).
9+
- `verifyMintProof`: used to validate the zero-knowledge proof for `mint` function.
10+
- `verifyTransferProof`: used to validate the zero-knowledge proof for `transfer` function.
11+
- `verifyBurnProof`: used to validate the zero-knowledge proof for `burn` function.
12+
- `pedersenHash`: used to compute the Pedersen hash.
13+
- Update the initial parameters of zk-SNARKs scheme generated by the MPC Torch (#3210).
14+
- Add the APIs to support shielded TRC-20 contract transaction (#3172).
15+
16+
1. Create shielded contract parameters
17+
```protobuf
18+
rpc CreateShieldedContractParameters (PrivateShieldedTRC20Parameters) returns (ShieldedTRC20Parameters) {}
19+
```
20+
2. Create shielded contract parameters without ask
21+
```protobuf
22+
rpc CreateShieldedContractParametersWithoutAsk (PrivateShieldedTRC20ParametersWithoutAsk) returns (ShieldedTRC20Parameters) {}
23+
```
24+
3. Scan shielded TRC20 notes by ivk
25+
```protobuf
26+
rpc ScanShieldedTRC20NotesByIvk (IvkDecryptTRC20Parameters) returns (DecryptNotesTRC20) {}
27+
```
28+
4. Scan shielded TRC20 notes by ovk
29+
```protobuf
30+
rpc ScanShieldedTRC20NotesByOvk (OvkDecryptTRC20Parameters) returns (DecryptNotesTRC20) {}
31+
```
32+
5. Check if the shielded TRC20 note is spent
33+
```protobuf
34+
rpc IsShieldedTRC20ContractNoteSpent (NfTRC20Parameters) returns (NullifierResult) {}
35+
```
36+
6. Get the trigger input for the shielded TRC20 contract
37+
```protobuf
38+
rpc GetTriggerInputForShieldedTRC20Contract (ShieldedTRC20TriggerContractParameters) returns (BytesMessage) {}
39+
```
40+
- Support the `ovk` to scan the transparent output of `burn` transaction (#3203).
41+
- Support the `burn` transaction with zero or one shielded output (#3224).
42+
- Add data field in transaction log trigger class for future memo note (#3200).
43+
44+
The following TIPs are implemented in this release:
45+
- [TIP-135](https://github.com/tronprotocol/tips/blob/master/tip-135.md): Shielded TRC-20 contract standards, guarantee the privacy of the shielded transfer of TRC-20 tokens.
46+
- [TIP-137](https://github.com/tronprotocol/tips/blob/master/tip-137.md): Implements three zero-knowledge proof instructions in TVM to support the shielded TRC-20 contract (#3172).
47+
- [TIP-138](https://github.com/tronprotocol/tips/blob/master/tip-138.md): Implements the Pedersen hash computation instruction in TVM to support the shielded TRC-20 contract (#3172).
48+
49+
## Changes
50+
- Check if null before getInstance when get transaction info from DB to fix exception of `getTransactioninfoByBlkNum` (#3165).

docs/releases/GreatVoyage-v411.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# GreatVoyage-v4.1.1
2+
GreatVoyage-version 4.1.1 is released with the following new features and modifications:
3+
4+
## I. Core Protocol
5+
### 1. New Consensus Protocol
6+
The new consensus mechanism combines TRON's existing DPoS consensus with the PBFT consensus mechanism. PBFT's three-phase voting mechanism is adopted to confirm whether a block should be solidified. It will take an average of 1-2 slots (a slot equals 3s) from creation to confirmation of a TRON block, much shorter than the previous 19 slots. This signifies a remarkable increase in the block confirmation speed.
7+
TIP: [TICP-Optimized-PBFT](https://github.com/tronprotocol/tips/blob/master/tp/ticp/ticp-optimized-pbft/ticp-Optimized-PBFT.md)
8+
Source code: [#3082](https://github.com/tronprotocol/java-tron/pull/3082)
9+
10+
### 2. New Node Type
11+
We added another type of node to the existing FullNode: Lite FullNode. Lite FullNode executes the same code with the FullNode. What sets it apart is that its launch is based on the status data snapshot, which contains all the status data and data history of the latest 256 blocks.
12+
The status data snapshot can be acquired by executing LiteFullNodeTool.jar (please see: [Use the LiteFullNode Tool](https://tronprotocol.github.io/documentation-en/developers/litefullnode/)).
13+
- TIP: [TIP-128](https://github.com/tronprotocol/tips/blob/master/tip-128.md)
14+
- Source code: [#3031](https://github.com/tronprotocol/java-tron/pull/3031)
15+
16+
## II. TVM
17+
### Achieved compatibility with Ethereum Istanbul upgrade
18+
a. Added new instruction `CHAINID` to fetch the genesis block ID of the current chain, which avoids possible replay attacks of one transaction being repeated on different chains.
19+
- TIP: [TIP-174](https://github.com/tronprotocol/tips/blob/master/tip-174.md)
20+
- Source code: [#3351](https://github.com/tronprotocol/java-tron/pull/3351)
21+
22+
b. Added new instruction `SELFBALANCE` to fetch the balance of the current contract address in the smart contract. For obtaining the balance of any address, please stick with instruction BALANCE.SELFBALANCE is safer to use. Energy consumption of using `BALANCE` might rise in the future.
23+
- TIP: [TIP-175](https://github.com/tronprotocol/tips/blob/master/tip-175.md)
24+
- Source code: [#3351](https://github.com/tronprotocol/java-tron/pull/3351)
25+
26+
c. Reduced Energy consumption of three precompiled contract instructions, namely BN128Addition, BN128Multiplication, and BN128Pairing.
27+
BN128Addition: from 500 Energy to 150 Energy
28+
BN128Multiplication: from 40000 Energy to 6000 Energy
29+
BN128Pairing: from (80000 \* pairs + 100000) Energy to (34000 \* pairs + 45000) Energy
30+
- TIP: [TIP-176](https://github.com/tronprotocol/tips/blob/master/tip-176.md)
31+
- Source code: [#3351](https://github.com/tronprotocol/java-tron/pull/3351)
32+
33+
## III. Mechanism
34+
1. Added two new system contracts, namely MarketSellAssetContract and MarketCancelOrderContract, for on-chain TRX/TRC10 transactions in decentralized exchanges.
35+
- TIP: [TIP-127](https://github.com/tronprotocol/tips/blob/master/tip-127.md)
36+
- Source code: [#3302](https://github.com/tronprotocol/java-tron/pull/3302)
37+
38+
## IV. Other Modifications
39+
1. Added a few node performance indicators.
40+
- Source code: [#3350](https://github.com/tronprotocol/java-tron/pull/3350)
41+
42+
2. Added market order detail in the original transactionInfo interface.
43+
- TIP: [TIP-127](https://github.com/tronprotocol/tips/blob/master/tip-127.md)
44+
- Source code: [#3302](https://github.com/tronprotocol/java-tron/pull/3302)
45+
46+
3. Improved the script for docker deployment.
47+
- Source code: [#3330](https://github.com/tronprotocol/java-tron/pull/3330)

docs/releases/GreatVoyage-v412.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Great Voyage - v4.1.2
2+
GreatVoyage-version 4.1.2 is released with the following new features and modifications:
3+
4+
## I. Core Protocol
5+
### 1、Reward SRs with the transaction fees charged for bandwidth and energy.
6+
7+
After this feature is turned on, the transaction fee from burning TRX which charged for bandwidth/energy (except OUT_OF_TIME) will be transferred to TRANSACTION_FEE_POOL. At the end of each block, the fee of all transactions in this block is rewarded to the block SR and its voters. At the same time, in "transactioninfo", the "packingFee" field is added to indicate the available fees to the current SR and SR voters.
8+
9+
- TIP: [TIP-196](https://github.com/tronprotocol/tips/issues/196)
10+
- Source Code: [#3532](https://github.com/tronprotocol/java-tron/pull/3532)
11+
12+
13+
### 2、Support account history balance query.
14+
15+
The account historical balance query function can facilitate developers to query the account balance information at a specific block height. Developers can obtain the account historical balance information through the following two APIs.
16+
17+
- /wallet/getaccountbalance :query account balance at a specific block.
18+
- /wallet/getblockbalance : Query the balance-changing operations in a specific block.
19+
20+
**Note:**
21+
1. This function is disabled by default and can be enabled through the node configuration file.
22+
2. After the function is enabled, users can only query the historical balance after the enabled time. If users need to query the complete historical balance information, they can use the data snapshot which contains the historical balance information to resynchronize the node.
23+
24+
- Source Code:[#3538](https://github.com/tronprotocol/java-tron/pull/3538)
25+
- Guide : https://github.com/tronprotocol/documentation-en/blob/master/docs/api/http.md
26+
27+
###3、Optimzed the blackhole account to improve transaction execution speed
28+
29+
After the feature is turned on, the transaction fee from burning TRX which charged f for bandwidth and energy will no longer be transferred to the black hole address but will be directly accumulated and recorded in the database.
30+
31+
- Source code: [#3617](https://github.com/tronprotocol/java-tron/pull/3617)
32+
33+
## II. TVM
34+
### 1、Adopt to solidity0.6.0.
35+
36+
After this upgrade, TRON will be fully compatible with the new features introduced by solidity 0.6.0, including the new virtual and override keywords, and supporting try/catch. For details, please refer to the TRON Solidity release note: https://github.com/tronprotocol/solidity/releases/tag/tv_0.6.0
37+
38+
- TIP: [TIP-209](https://github.com/tronprotocol/tips/issues/209)
39+
- Source Code: [#3351](https://github.com/tronprotocol/java-tron/pull/3535)
40+
41+
###2、Make MAX_FEE_LIMIT configurable as a chain property.
42+
43+
After the new version, SR and SRP can initiate a voting request to modify MAX_FEE_LIMIT. The range of MAX_FEE_LIMIT is [0,10000_000_000].
44+
45+
- TIP: [TIP-204](https://github.com/tronprotocol/tips/issues/204)
46+
- Source code: [#3534](https://github.com/tronprotocol/java-tron/pull/3534)
47+
48+
## III. Others Changes
49+
###1、Use the jitpack repository to provide dependency support and make it easy for developers to use java-tron as a dependency for their projects.
50+
51+
- Source code: [#3554](https://github.com/tronprotocol/java-tron/pull/3554)

docs/releases/GreatVoyage-v413.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# GreatVoyage-4.1.3(Thales)
2+
GreatVoyage-4.1.3(Thales) is released with the following new features and modifications:
3+
# Core Protocol
4+
## 1.Sorting the transactions in pending pool, SR will prioritize the transactions with high packing fee
5+
In GreatVoyage-4.1.2 and earlier versions, SR packaging transactions are carried out in accordance with the time sequence of the arrival of the transaction.This will easily be attacked by low transaction fees.
6+
7+
After this optimization, block producers sort the transactions to be packaged according to the cost, and then prioritize the transaction with high cost to prevent low-cost transaction attacks.
8+
9+
# API
10+
## 1.Add new API to support transaction query in pending pool.
11+
It is currently impossible to query the intermediate state information of a certain transaction from after it is issued to before it is on the chain.After a transaction is sent, if it is not on the chain, we cannot know whether it is waiting for packaging or has been discarded.
12+
13+
In this upgrade, the Fullnode node provides 3 API to obtain detailed information about the pending pool:
14+
- /wallet/gettransactionfrompending: Obtain the transaction information from pending pool through the - transaction ID
15+
- /wallet/gettransactionlistfrompending: Get all transactions from the pending pool
16+
- /wallet/getpendingsize: Get the number of transactions in pending pool
17+
18+
19+
The optimization of transaction packaging logic of GreatVoyage-4.1.3(Thales) will effectively reduce low-cost attacks and greatly improve the security of the TRON public chain.
20+
21+
22+
---

docs/releases/GreatVoyage-v420.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# GreatVoyage-4.2.0(Plato)
2+
The GreatVoyage-4.2.0 (Plato) version introduces two important updates. The optimization of the resource model will increase the utilization rate of TRON network resources and make the resource acquisition method more reasonable. The new TVM instructions make the use scenarios of smart contracts more abundant and will further enrich the TRON ecosystem.
3+
4+
# Core Protocol
5+
## 1. Optimize the resource model
6+
7+
Before the GreatVoyage-4.2.0 (Plato) version, while users obtained a large amount of TRON power by staking TRX, they also obtained a large amount of energy and bandwidth. The utilization rate of these energies and bandwidth is extremely low, and most of them are not used at all, which increases the cost of obtaining resources. In order to improve the utilization rate of these resources, the GreatVoyage-4.2.0(Plato) version proposes an optimization of the resource model, where staking TRX can only obtain one of the three resources, namely bandwidth, energy, and TRON power. After optimization, users can obtain the corresponding resources based on their own needs, thereby improving the utilization rate of resources.
8+
9+
- TIP: [TIP-207](https://github.com/tronprotocol/tips/blob/master/tip-207.md)
10+
- Source Code: [#3726](https://github.com/tronprotocol/java-tron/pull/3726)
11+
12+
**Notes:**
13+
* This feature is disabled by default and can be enabled through the proposal system.
14+
* After the feature is enabled, the user's previously obtained resources remain unchanged. The TRON power obtained before the proposal passage will be cleared when the user triggers an unstake transaction (unstake bandwidth, energy, or TRON power).
15+
16+
# TVM
17+
## 1、Add Freeze/Unfreeze instructions in TVM
18+
19+
20+
In the TRON network, one non-contract account can stake TRX to obtain resources such as bandwidth, energy, TRON power, and reasonable use of these resources can bring certain benefits to users. At the same time, although smart contract accounts do have TRX, there is no way to stake these TRX to obtain resources. In order to solve this inconsistency, the GreatVoyage-4.2.0(Plato) version introduces Freeze/Unfreeze instructions in TVM, so that smart contracts can also support staking TRX to obtain resources.
21+
22+
- TIP: [TIP-157](https://github.com/tronprotocol/tips/blob/master/tip-157.md)
23+
- Source Code: [#3728](https://github.com/tronprotocol/java-tron/pull/3728)
24+
25+
**Notes:**
26+
* This feature is disabled by default and can be enabled through the proposal system.
27+
* The TVM `freeze` instruction can obtain bandwidth and energy. For TRON POWER, it can be obtained and used after the TVM supports the voting instruction.
28+
* The `receiving` address/`target` address used in the Freeze/Unfreeze instructions must be `address payable` type, and the `receiving` address/`target` address cannot be a contract address other than itself.
29+
* The inactive account will be automatically activated if the account is the receiver of TVM `Freeze` instruction, and 25,000 energy will be deducted as the account activation cost.
30+
31+
# Other Changes
32+
## 1、Optimize the block synchronization.
33+
34+
- Source code:[#3732](https://github.com/tronprotocol/java-tron/pull/3732)
35+
36+
37+
38+
39+
---
40+
*The beginning is the most important part of the work.*
41+
<p align="right"> --- Plato</p>

docs/releases/GreatVoyage-v422.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# GreatVoyage-4.2.2(Lucretius)
2+
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.
3+
4+
# Core Protocol
5+
6+
## 1. Block Processing optimization
7+
8+
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.
9+
10+
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.
11+
12+
13+
- TIP: [TIP-269](https://github.com/tronprotocol/tips/blob/master/tip-269.md)
14+
- Source code: [#3827](https://github.com/tronprotocol/java-tron/pull/3827)
15+
16+
## 2. Data Query optimization
17+
18+
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.
19+
20+
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.
21+
22+
## 3. Smart Contract ABI Storage optimization
23+
24+
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.
25+
26+
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.
27+
28+
- TIP: [TIP-268](https://github.com/tronprotocol/tips/blob/master/tip-268.md)
29+
- Source code: [#3836](https://github.com/tronprotocol/java-tron/pull/3836)
30+
31+
# Other Changes
32+
33+
## 1. System Contract `BatchValidateSign` Initialization Process optimization
34+
35+
- Source code: [#3836](https://github.com/tronprotocol/java-tron/pull/3836)
36+
37+
38+
39+
40+
--- *Truths kindle light for truths.*
41+
<p align="right"> --- Lucretius</p>
42+

docs/releases/GreatVoyage-v4221.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# GreatVoyage-4.2.2.1(Epictetus)
2+
GreatVoyage-v4.2.2.1(Epictetus) 版本已发布, 主要新功能和修改如下:
3+
4+
# 核心协议
5+
##1、优化`pending transaction`的处理逻辑。
6+
7+
在GreatVoyage-v4.2.2.1(Epictetus) 之前的版本中,如果节点如果开启了事件订阅服务,会有小概率发生节点同步异常的问题。
8+
9+
GreatVoyage-v4.2.2.1(Epictetus) 版本对`pending transaction`的处理逻辑进行了优化,修复了该同步异常的问题,提升了事件订阅服务的稳定性。
10+
11+
- 源代码: [#3874](https://github.com/tronprotocol/java-tron/pull/3874 )
12+
13+
GreatVoyage-v4.2.2.1(Epictetus) 版本引入的更新优化了`pending transaction`的处理逻辑,将大幅提升事件订阅服务的稳定性,将为TRON用户带来更好的体验,进一步繁荣波场生态。
14+
15+
---
16+
*No great thing is created suddenly.*
17+
<p align="right"> --- Epictetus</p>

0 commit comments

Comments
 (0)