Releases: tronprotocol/java-tron
GreatVoyage-v4.8.0(Kant)
Notice
Mandatory upgrade
New Features
Adapt to Ethereum Cancun Upgrade
-
TIP-650: Implement EIP-1153 Transient Storage Opcodes (#6185, #6195, #6214)
-
TIP-651: Implement EIP-5656 MCOPY - Memory Copying Instruction (#6185, #6194)
-
TIP-745: Introduce EIP-4844 and EIP-7516 instructions (#6232, #6247,#6270, #6283)
Core
-
TIP-694: Enhance Verification of Transaction Limitation at Consensus Layer (#6172, #6221)
-
Improve consensus layer verification to prevent malicious blocks from being produced in maintenance periods. (#6187)
-
Improve consensus layer verification to prevent malicious blocks with header times not integer multiples of 3s from being produced. (#6186)
-
Refine SR ranking algorithm to ensure consistency in rare cases. (#6173)
TVM
- TIP-652: Deprecate
SELFDESTRUCT
Note: TIP-652 does not change the behavior ofSELFDESTRUCT
but formally announces core developers' intention of changing it in future upgrades. It is recommended that theSELFDESTRUCT
opcode be exposed to users to warn them about an upcoming change in semantics.
Net
-
Optimize P2P protocol and dispose solidified block list to avoid network bandwidth wasting. (#6184)
-
Increase scheduling frequency of block synchronization tasks to improve efficiency of block synchronization. (#6183)
-
Enhance transaction validity verification and dispose transactions with 0
contract
in advance. (#6181)
Change
-
Provide a new version of the event service framework (V2.0), decouple event services and block processing from threads, and support synchronizing events from specific historical blocks. The original version of the event service framework has been retained and will gradually be migrated to the new version. (#6192, #6206, #6223, #6227, #6234, #6274)
-
Replace java.math with the cross-platform consistent java.strictMath to prepare for future ARM architecture support. (#6182, #6210, #6262)
-
Standardize the process exit logic while maintaining existing functionality. (#6170, #6177, #6205)
-
Enhance service integrity checks during node startup to ensure all critical services start. (#5857, #6228, #6233)
-
Upgrade dependencies to patch vulnerabilities in previous versions. (#6180, #6207, #6257, #6260)
-
Upgrade Gradle to 7.6.4 and enable dependency integrity verification. (#5869, #5903, #6229)
-
Fix a potential
NullPointerException
issue during startup. (#6216) -
For the nodes with internal transaction logging enabled, the execution of internal transactions containing the opcode
CANCELALLUNFREEZEV2
can be configured to be logged. (#6191)
API
-
JSON-RPC APIs support
finalized
as a block parameter when querying solidified data. (#6007, #6238, #6239) -
Limiting block range and sub-topic count when filtering logs by JSON-RPC APIs to be consistent with ETH. (#6271, #6275)
-
Fix the issue where API
eth_getLogs
fails to retrieve data in the rare case of hash collision. (#6176) -
Add a validation check that ensures the payment address cannot be empty in the API of creating a shielded transaction. (#6174)
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Science is organized knowledge. Wisdom is organized life.
---Immanuel Kant
GreatVoyage-v4.7.7(Epicurus)
Notice
Mandatory upgrade
New Features
Core
- TIP-697: Migrate
pow
operation from java.lang.Math to java.lang.StrictMath for cross-platform computational consistency. (#6098)
Change
-
Solve temporary block synchronization failure in event subscription nodes due to event handling exceptions. (#6096)
-
Support graceful shutdown with signal -15 (SIGTERM) for nodes enabling backup. (#6095)
-
Improve duration metrics accuracy of gRPC interfaces. (#6097)
-
Optimize precompiled contracts. (#6101)
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Not what we have but what we enjoy, constitutes our abundance.
---Epicurus
GreatVoyage-v4.7.6(Anaximander)
Notice
Non-mandatory upgrade
New Features
Core
Change
-
Improve P2P network stability, avoid potential isolation of internal network nodes (#5924,#5944,#5956,#5984)
-
Optimize transaction expiration checks, and stop broadcasting transactions to be expired in advance (#5999)
-
Set blockBothHave when processing broadcasted blocks to understand peer status better (#5925)
-
Add isSyncIdle method to determine status of syncing peers to avoid transaction/block broadcasts affecting block synchronization (#5921)
-
Optimize sortPeers by catching and ignoring avgLatency concurrent access issue (#5923)
-
Enhance checks for fetch inventory messages, requested block number cannot exceed maximum block number carried in chain inventory message (#5922)
-
Add TCP-out traffic to Prometheus statistics and UDP-in traffic to /monitor/getstatsinfo statistics (#5942)
-
Resolve the statistical inaccuracy issue caused by concurrency errors in HTTP metrics(#5920)
-
Bump com.google.protobuf:protobuf-java from 3.21.12 to 3.25.5(#6025)
-
Improve stability of Gradle test task
- Introduce test-retry plugin to help mitigate issues caused by flaky tests (#5916)
- Reduces noise by ignoring non-essential unstable tests for MerkleTreeTest (#5927)
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar files as well as sig signature files. To verify the authenticity of any jar file, grab the jar and sig files with the same prefix name and then execute the verification process: GPG signature verification
Nature is eternal and does not age.
---Anaximander
GreatVoyage-v4.7.5(Cleobulus)
Notice
Mandatory upgrade
New Features
Core
- TIP-653: Adjust energy cost of
SUICIDE
andVOTEWITNESS
opcodes in TVM. (#5837) - Improve the check logic of block messages with more strict checks. (#5830)
- Limit the size of account creation transactions to less than 1000 bytes. (#5835)
- Tune check logic of transaction size to less than 500kb including
Result
. (#5838) - Guarantee size consistency of
Result
andContract
in transactions. (#5839)
Change
- Fix race condition for
fetchBlockInfo
. ( #5831) - Fix race condition for
syncBlockToFetch
. ( #5832) - Optimize block production logic by checking the miner state after obtaining block locks. (#5833)
- Remove redundant code. (#5834)
- Replace
cleanUp()
withinvalidateAll()
in a cache to remove all entries. (#5731)
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Seek virtue and eschew vice.
---Cleobulus
GreatVoyage-v4.7.4(Bias)
Notice
Mandatory upgrade
New Features
Core
- TIP-635: Optimize algorithm performance of voting reward calculation in Phase1 (since TIP-53, to TIP-465) to speed up the process. (#5406, #5654, #5683, #5742, #5748)
- Suspend tx broadcasting if blocks cannot get solidified and reach the threshold in the longest chain, this is an optional function. (#5643, #5751)
Change
- TIP-621: Add field
codeVersion
toHelloMessage
to declare code version. (#5584, #5667) - Bump
libp2p
to version 2.2.1 to fix some bugs. (#5694)- Bump
snappy-java
to 1.1.10.5, fix CVE-2023-34453 - Remove dependency
xercesImpl
- Set log level of UDP exception
InvalidProtocolBufferException
to WARN - Add LAN IP acquisition logic, add field
lanIp
inP2pConfig
- Optimize handshake logic: no duplicate handshake message is sent if the connection is active
- Bump
- Bump jetty to 9.4.53.v20231009, fix CVE-2023-40167. (#5571)
- Refactor Gradle dependencies for version management. (#5625)
- Provide gRPC reflection service by calling with the grpcurl command. (#5583)
- Replace
LiteFullNodeTool
in theframework
module withToolkit.jar
db lite in theplugin
module. (#5650) - Remove configuration item
node.discovery.bind.ip
and modify defaultconfig.conf
. (#5597, #5750) - Remove redundant CI scripts:
checkStyle.sh
,codecov.sh
,querySonar.sh
,sonar.sh
. (#5580) - Start API service first to avoid node startup error due to ports being occupied by P2P service. (#5711)
- Optimize log (#5660, #5687, #5697, #5624, #5601)
- simplify expected exceptions, elaborate unexpected exceptions
- log level of block version checking adjusted from ERROR to WARN
- remove log print when calling API
/wallet/getnodeinfo
- Resolve ZeroMQ concurrency issue to avoid event data disturbance when the node enabling build-in message queue is in high load. (#5536)
- Optimize unexpected exception capture process of
scalingFactor
in API/wallet/createshieldedcontractparameters
. (#5746)
API
- Supply
BLOCK_UNSOLIDIFIED
incode
for API/wallet/broadcasttransaction
, to indicate when blocks cannot get solidified pile up. (#5643)
For a full rundown of the changes please consult the GreatVoyage-v4.7.4(Bias) release milestone.
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Be slow in considering, but resolute in action.
---Bias
GreatVoyage-v4.7.3.1(Solon)
Notice
Non-mandatory upgrade
New Features
Change
- Fix a small probability error when calling API
/wallet/getnodeinfo
(#5657). - Fix a small probability issue of Lite Fullnode's data-pruning tool when the node is killed by
kill -9
(#5658).
Integrity Check
All available JAR files in this release are signed via this GPG key.
For more information about the GPG public key, please refer to: Integrity Check.
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Do not counsel what is most pleasant, but what is best.
---Solon
GreatVoyage-v4.7.3(Chilon)
Notice
Non-mandatory upgrade
New Features
Core
- TIP-586 Add gRPC interfaces for resource price query (#5412).
GetBandwidthPrices
GetEnergyPrices
GetMemoFee
- TIP-592 Supplement disconnect reasons (#5392).
- Discard transactions from bad peers instead of disconnected peers (#5440).
- Optimize Stake2.0 codes and error messages (#5424, #5426).
- Accelerate bloomFilter initialization for transactions cache. Note that this optimization is disabled by default, please set
storage.txCache.initOptimization = true
to enable it (#5394, #5491, #5505, #5523, #5543). - Fix concurrency issues when generating chain inventory (#5393, #5532).
- Correct resource disorder closure behavior on
kill -15
(#5410, #5425, #5420, #5429, #5447).- Optimize database closure.
- Refine the sequence of resource closure.
Changes
- Fix expired transaction check issue when fetching transactions (#5460).
- Fix the concurrency issue of
getHeadBlockId
method (#5403). - Delete unused network configurations (#5441).
node.discovery.public.home.node
node.discovery.ping.timeout
node.p2p.pingInterval
- Acquire external IP from libp2p (#5407).
- Support stake-related transactions in the log event (#5419).
- Adjust the default value of
node.validateSignThreadNum
for signature validation threads from half of CPU cores to all cores (#5396). - Mark LiteFullNodeTool as deprecated which has been migrated to Toolkit and will be removed in the next major release (#5482).
- Enhance the query performance of
DynamicPropertiesStore
(#5378).
API
- Fix the memory inflation issue in the HTTP monitor module (#5332).
- Provide uniform rate limitation configuration
rate.limiter.global.api.qps
for all HTTP and gRPC APIs (#5502). - Fix input parameter parsing exceptions in the HTTP interfaces (#5367, #5483).
/wallet/getReward
/wallet/getBrokerage
- Add resource unit price query API for Solidity (#5451).
/walletsolidity/getbandwidthprices
- Optimize the request and response process for some interfaces (#5408).
/wallet/getavailableunfreezecount
: supportowner_address
for GET request./wallet/getcanwithdrawunfreezeamount
: processtimestamp
as 0 if not provided in GET request./wallet/getcandelegatedmaxsize
: processtype
as 0 if not provided in GET request./wallet/getblockbynum
: processnum
as 0 if not provided in GET request.
For a full rundown of the changes please consult the GreatVoyage-v4.7.3(Chilon) release milestone.
Integrity Check
All jar
files available in this release are signed via this GPG key:
- PUB: 1254 F859 D2B1 BD9F 66E7 107D F859 BCB4 4A28 290B
- UID: build@tron.network
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Do not desire impossible.
---Chilon
GreatVoyage-v4.7.2(Periander)
Notice
This is a mandatory upgrade.
New Features
Core
- Network module updated to Libp2p
v1.2.0
#5017 #5304- Libp2p Support for IPv6
- Node Discovery via DNS
- P2P message snappy compression
- Connection precheck before P2P communication
- Optimize effective peer-acquiring strategy #5088
- TIP-555 Network upgrade logic optimization #5247
- TIP-541 Support canceling unstaking in Stake 2.0 #5230 #5260 #5279
- TIP-542 Resource delegating supports customizable lock period #5255 #5260 #5264
TVM
Changes
- Optimize event plugin storage logic of MongoDB #5031
- Support dynamic loading according to
node.active
andnode.passive
#5090 - Optimize block synchronization logic #5094 #5097 #5102
- Normalize HTTP URLs #5085
- Optimize block fetching under weak network #5106
- Add a new node startup mode #5011
- Add monitoring metrics for JSON-RPC #5222
- Remove auto-repair function for corrupted LevelDB data #5223
- Upgrade JUnit from
4.12
to4.13.2
#5244 - Optimize checkpoint v2 recovery process #5224
API
- Add global rate limiter #5093
- API
triggerconstantcontract
andestimateenergy
support estimation of energy consumed by creating contracts. #5079 - TIP-544 Add
data
to the HTTP interfaces interacting with smart contract. #5079 - Optimize
getStorageAt
return when querying contract created bycreate2
#5061
Integrity Check
All jar
files available in this release are signed via this GPG key:
- PUB: 1254 F859 D2B1 BD9F 66E7 107D F859 BCB4 4A28 290B
- UID: build@tron.network
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Forethought in all things.
---Periander
GreatVoyage-v4.7.1.1(Pittacus)
Notice
Non-mandatory upgrade
New Features
TVM
- Optimize the update logic of
origin_energy_usage
in transaction receipts #5120
API
- TIP-534 Remove insecure APIs #5096
- HTTP(8)
createaddress
,generateaddress
easytransfer
,easytransferbyprivate
,easytransferasset
,easytransferassetbyprivate
gettransactionsign
,addtransactionsign
- gRPC(9)
CreateAddress
,GenerateAddress
EasyTransfer
,EasyTransferByPrivate
,EasyTransferAsset
,EasyTransferAssetByPrivate
GetTransactionSign
,GetTransactionSign2
,AddSign
- HTTP(8)
- Optimize the return of
GetTransactionInfoById
andGetDelegatedResourceV2
interfaces #5120 #5123
Integrity Check
All jar
files available in this release are signed via this GPG key:
- PUB: 1254 F859 D2B1 BD9F 66E7 107D F859 BCB4 4A28 290B
- UID: build@tron.network
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
Whatever you do, do it well.
---Pittacus
GreatVoyage-v4.7.1(Sartre)
Notice
Non-mandatory upgrade
New Features
Core
- Change the default IP of the node to solve the address verification error in the UDP message #4990
- Optimize block synchronization logic #4995 #4996 #5009
- Optimize activeNodes node adding logic #4994
Changes
- Optimize light node detection #4986
- Optimize
LevelDB
&RocksDB
log output todb.log
#4985 #5001 #5010 - Optimize the logic of event service when handling genesis block #4974
- Optimize of network processing blocks and message timeout logs #4977
API
- Remove inefficient APIs for solidity added by
Stake2.0
#4997 - Optimize APIs for resource delegation index query #8
Integrity Check
All jar
files available in this release are signed via this GPG key:
- pub: 1254 F859 D2B1 BD9F 66E7 107D F859 BCB4 4A28 290B
- uid: build@tron.network
From the download listings below you should see links to the downloadable jar
files as well as sig
signature files. To verify the authenticity of any jar
file, grab the jar
and sig
files with the same prefix name and then execute the verification process: GPG signature verification
The more sand that has escaped from the hourglass of our life, the clearer we should see through it
---Sartre