From f0333997a021b1197a276193a586340b96c63dec Mon Sep 17 00:00:00 2001 From: yingying Date: Mon, 30 Sep 2024 11:50:57 +0800 Subject: [PATCH 1/3] Update history.md --- docs/releases/history.md | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/docs/releases/history.md b/docs/releases/history.md index bcad7a99..183c4742 100644 --- a/docs/releases/history.md +++ b/docs/releases/history.md @@ -2,6 +2,7 @@ | Code Name |Version | Released | Incl TIPs | Release Note | Specs | | -------- | -------- | -------- | -------- | -------- | -------- | +| Anaximander | GreatVoyage-v4.7.6 | 2024-9-30 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.6) | [Specs](#greatvoyage-v476anaximander) | | Cleobulus | GreatVoyage-v4.7.5 | 2024-5-30 | [TIP-653](https://github.com/tronprotocol/tips/blob/master/tip-653.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.5) | [Specs](#greatvoyage-v475cleobulus) | | Bias | GreatVoyage-v4.7.4 | 2024-3-15 | [TIP-635](https://github.com/tronprotocol/tips/blob/master/tip-635.md)
[TIP-621](https://github.com/tronprotocol/tips/blob/master/tip-621.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.4) | [Specs](#greatvoyage-v474bias) | | Solon | GreatVoyage-v4.7.3.1 | 2024-1-12 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.3.1) | [Specs](#greatvoyage-v4731solon) | @@ -75,6 +76,76 @@ | N/A | Odyssey-v1.0.3 | 2018-4-5 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Odyssey-v1.0.3) | N/A | | N/A | Exodus-v1.0 | 2017-12-28 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Exodus-v1.0) | N/A | + +## GreatVoyage-v4.7.6(Anaximander) + +The GreatVoyage-4.7.6(Anaximander) introduces several important optimizations and updates, including optimized unit test tasks to improve the stability of test cases execution; newly added TCP and UDP traffic statistics further enriches node monitoring data; optimized peer node idle judgment logic improves the stability of block synchronization; optimized node connection random disconnection logic improves the robustness of node network. Please find the details below. + + +### Other Changes +#### 1. Optimize the statistical logic of node HTTP request monitoring metric + +Java-tron supports node monitoring and provides various metrics data. Anaximander optimizes the statistical logic of node HTTP request monitoring metric to ensure data consistency during concurrent access by multiple threads when counting request data from each mapping address. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5920](https://github.com/tronprotocol/java-tron/pull/5920) + +#### 2. Improve stability of Gradle test task +Anaximander optimizes the unit test task. The Gradle [test-retry]([https://plugins.gradle.org/plugin/org.gradle.test-retry) plugin is introduced to allow the failed unit test tasks to be re-executed. The `@Ignore` annotation is used to skip temporarily unused and unstable test cases. This optimization improves the stability of test task execution. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5916](https://github.com/tronprotocol/java-tron/pull/5916) [https://github.com/tronprotocol/java-tron/pull/5927](https://github.com/tronprotocol/java-tron/pull/5927) + +#### 3. Add TCP outflow monitoring metric for Prometheus and add UDP inflow traffic statistic to `/monitor/getstatsinfo` API + +Anaximander adds a new node TCP outflow monitoring metric and adds a UDP inflow statistic to the `/monitor/getstatsinfo` interface, further enriching the node monitoring data. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5942](https://github.com/tronprotocol/java-tron/pull/5942) + +#### 4. Optimize peer node idle judgment logic +Anaximander optimizes the logic of judging whether the peer node is idle during the block synchronization process, so that block synchronization is not affected by the process of broadcasting blocks/transactions, which improves the efficiency of block synchronization and the stability of the connection between nodes. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5921](https://github.com/tronprotocol/java-tron/pull/5921) + + +#### 5. Optimize peer sorting logic +Anaximander optimizes the peers’ sorting logic and adds exception-catching to improve the efficiency of establishing connections between nodes. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5923](https://github.com/tronprotocol/java-tron/pull/5923) + +#### 6. Optimize check logic for fetching block inventory message + +Anaximander optimizes the check logic for fetching block inventory messages. The block number requested should be smaller than the largest block number in chain inventory message so that the node can detect illegal messages in time and disconnect from the other node. At the same time, richer node logs are conducive to the troubleshooting and location of connection issues between nodes. + + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5922](https://github.com/tronprotocol/java-tron/pull/5922) + + + + +#### 7. Optimize block processing logic +Anaximander optimizes the block processing logic. When processing a received broadcasted block, the node will promptly update the ID and number of the block which the node with its peer both have to better understand the status of the peers. + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5925](https://github.com/tronprotocol/java-tron/pull/5925) + + + +#### 8. Optimize random disconnection strategy + +When a node’s latest block height is higher than all peers’ that are connected to it, this node will neither be able to synchronize blocks from peers, nor broadcast transactions. We call it an "island node". An island node actually does not have a valid peer. In order to prevent a node from entering the island state, Anaximander optimizes the random disconnection logic of the node, disconnects nodes that have been inactive for a long time, increases the number of valid connections, and improves the robustness of the node network. + + +Source Code: [https://github.com/tronprotocol/java-tron/pull/5924](https://github.com/tronprotocol/java-tron/pull/5924) [https://github.com/tronprotocol/java-tron/pull/5944](https://github.com/tronprotocol/java-tron/pull/5944) +[https://github.com/tronprotocol/java-tron/pull/5956](https://github.com/tronprotocol/java-tron/pull/5956) +[https://github.com/tronprotocol/java-tron/pull/5984](https://github.com/tronprotocol/java-tron/pull/5984) + + +--- + +*Nature is eternal and does not age.* + +

---Anaximander

+ + + ## GreatVoyage-v4.7.5(Cleobulus) The Cleobulus version introduces multiple important optimizations and updates, including a new proposal to adjust the energy cost of some 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. From c5332acf7a30d8e7c9e541cc13b2979b867e330c Mon Sep 17 00:00:00 2001 From: yingying Date: Thu, 3 Oct 2024 21:29:01 +0800 Subject: [PATCH 2/3] Update resource.md --- docs/mechanism-algorithm/resource.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/mechanism-algorithm/resource.md b/docs/mechanism-algorithm/resource.md index 75dd0ab5..853f4c33 100644 --- a/docs/mechanism-algorithm/resource.md +++ b/docs/mechanism-algorithm/resource.md @@ -79,21 +79,21 @@ Example (Using wallet-cli): freezeBalanceV2 frozen_balance [ResourceCode:0 BANDWIDTH,1 ENERGY] ``` -stake TRX to get energy, energy obtained = user's TRX staked amount / total amount of staked TRX in TRON * 150_000_000_000. +stake TRX to get energy, energy obtained = user's TRX staked amount / total amount of staked TRX in TRON * 180_000_000_000. Example: ```text If there are only two users, A stakes 2 TRX, B stakes 2 TRX the energy they can get is: -A: 75_000_000_000 and energy_limit is 75_000_000_000 -B: 75_000_000_000 and energy_limit is 75_000_000_000 +A: 75_000_000_000 and energy_limit is 90_000_000_000 +B: 75_000_000_000 and energy_limit is 90_000_000_000 when C stakes 1 TRX: the energy they can get is: -A: 60_000_000_000 and energy_limit is 60_000_000_000 -B: 60_000_000_000 and energy_limit is 60_000_000_000 -C: 30_000_000_000 and energy_limit is 30_000_000_000 +A: 60_000_000_000 and energy_limit is 72_000_000_000 +B: 60_000_000_000 and energy_limit is 72_000_000_000 +C: 30_000_000_000 and energy_limit is 36_000_000_000 ``` #### Energy Consumption From 0445dbf81ace1028dfb2422121bb9305d7a06116 Mon Sep 17 00:00:00 2001 From: yingying Date: Thu, 3 Oct 2024 21:32:07 +0800 Subject: [PATCH 3/3] Revert "Update history.md" This reverts commit f0333997a021b1197a276193a586340b96c63dec. --- docs/releases/history.md | 71 ---------------------------------------- 1 file changed, 71 deletions(-) diff --git a/docs/releases/history.md b/docs/releases/history.md index 183c4742..bcad7a99 100644 --- a/docs/releases/history.md +++ b/docs/releases/history.md @@ -2,7 +2,6 @@ | Code Name |Version | Released | Incl TIPs | Release Note | Specs | | -------- | -------- | -------- | -------- | -------- | -------- | -| Anaximander | GreatVoyage-v4.7.6 | 2024-9-30 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.6) | [Specs](#greatvoyage-v476anaximander) | | Cleobulus | GreatVoyage-v4.7.5 | 2024-5-30 | [TIP-653](https://github.com/tronprotocol/tips/blob/master/tip-653.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.5) | [Specs](#greatvoyage-v475cleobulus) | | Bias | GreatVoyage-v4.7.4 | 2024-3-15 | [TIP-635](https://github.com/tronprotocol/tips/blob/master/tip-635.md)
[TIP-621](https://github.com/tronprotocol/tips/blob/master/tip-621.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.4) | [Specs](#greatvoyage-v474bias) | | Solon | GreatVoyage-v4.7.3.1 | 2024-1-12 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.3.1) | [Specs](#greatvoyage-v4731solon) | @@ -76,76 +75,6 @@ | N/A | Odyssey-v1.0.3 | 2018-4-5 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Odyssey-v1.0.3) | N/A | | N/A | Exodus-v1.0 | 2017-12-28 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Exodus-v1.0) | N/A | - -## GreatVoyage-v4.7.6(Anaximander) - -The GreatVoyage-4.7.6(Anaximander) introduces several important optimizations and updates, including optimized unit test tasks to improve the stability of test cases execution; newly added TCP and UDP traffic statistics further enriches node monitoring data; optimized peer node idle judgment logic improves the stability of block synchronization; optimized node connection random disconnection logic improves the robustness of node network. Please find the details below. - - -### Other Changes -#### 1. Optimize the statistical logic of node HTTP request monitoring metric - -Java-tron supports node monitoring and provides various metrics data. Anaximander optimizes the statistical logic of node HTTP request monitoring metric to ensure data consistency during concurrent access by multiple threads when counting request data from each mapping address. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5920](https://github.com/tronprotocol/java-tron/pull/5920) - -#### 2. Improve stability of Gradle test task -Anaximander optimizes the unit test task. The Gradle [test-retry]([https://plugins.gradle.org/plugin/org.gradle.test-retry) plugin is introduced to allow the failed unit test tasks to be re-executed. The `@Ignore` annotation is used to skip temporarily unused and unstable test cases. This optimization improves the stability of test task execution. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5916](https://github.com/tronprotocol/java-tron/pull/5916) [https://github.com/tronprotocol/java-tron/pull/5927](https://github.com/tronprotocol/java-tron/pull/5927) - -#### 3. Add TCP outflow monitoring metric for Prometheus and add UDP inflow traffic statistic to `/monitor/getstatsinfo` API - -Anaximander adds a new node TCP outflow monitoring metric and adds a UDP inflow statistic to the `/monitor/getstatsinfo` interface, further enriching the node monitoring data. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5942](https://github.com/tronprotocol/java-tron/pull/5942) - -#### 4. Optimize peer node idle judgment logic -Anaximander optimizes the logic of judging whether the peer node is idle during the block synchronization process, so that block synchronization is not affected by the process of broadcasting blocks/transactions, which improves the efficiency of block synchronization and the stability of the connection between nodes. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5921](https://github.com/tronprotocol/java-tron/pull/5921) - - -#### 5. Optimize peer sorting logic -Anaximander optimizes the peers’ sorting logic and adds exception-catching to improve the efficiency of establishing connections between nodes. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5923](https://github.com/tronprotocol/java-tron/pull/5923) - -#### 6. Optimize check logic for fetching block inventory message - -Anaximander optimizes the check logic for fetching block inventory messages. The block number requested should be smaller than the largest block number in chain inventory message so that the node can detect illegal messages in time and disconnect from the other node. At the same time, richer node logs are conducive to the troubleshooting and location of connection issues between nodes. - - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5922](https://github.com/tronprotocol/java-tron/pull/5922) - - - - -#### 7. Optimize block processing logic -Anaximander optimizes the block processing logic. When processing a received broadcasted block, the node will promptly update the ID and number of the block which the node with its peer both have to better understand the status of the peers. - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5925](https://github.com/tronprotocol/java-tron/pull/5925) - - - -#### 8. Optimize random disconnection strategy - -When a node’s latest block height is higher than all peers’ that are connected to it, this node will neither be able to synchronize blocks from peers, nor broadcast transactions. We call it an "island node". An island node actually does not have a valid peer. In order to prevent a node from entering the island state, Anaximander optimizes the random disconnection logic of the node, disconnects nodes that have been inactive for a long time, increases the number of valid connections, and improves the robustness of the node network. - - -Source Code: [https://github.com/tronprotocol/java-tron/pull/5924](https://github.com/tronprotocol/java-tron/pull/5924) [https://github.com/tronprotocol/java-tron/pull/5944](https://github.com/tronprotocol/java-tron/pull/5944) -[https://github.com/tronprotocol/java-tron/pull/5956](https://github.com/tronprotocol/java-tron/pull/5956) -[https://github.com/tronprotocol/java-tron/pull/5984](https://github.com/tronprotocol/java-tron/pull/5984) - - ---- - -*Nature is eternal and does not age.* - -

---Anaximander

- - - ## GreatVoyage-v4.7.5(Cleobulus) The Cleobulus version introduces multiple important optimizations and updates, including a new proposal to adjust the energy cost of some 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.