Releases: tronprotocol/java-tron
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: [email protected]
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: [email protected]
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: [email protected]
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: [email protected]
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
GreatVoyage-v4.7.0.1(Aristotle)
Notice
Forced upgrade
New Features
Core
- TIP-467 Stake 2.0 - the new stake mechanism #4838
- Optimize performance,lower non-heap memory usage, enhance data query performance #4740 #4756 #4792
- Add
libp2p
module as java-tron p2p network protocol implementation #4791
TVM
- TIP-491 Support dynamic energy model #4873
- TIP-474 Optimize the return value of
chainid
opcode #4863 - Add new instructions to support Stake 2.0 #4872
- Add new precompile contracts to support Stake 2.0 #4872
Changes
- Optimize Gradle built by setting JVM from 512M to 1G to improve stability of compiling #4837
- Optimize node conditional stop function, multi-condition configuring are disabled #4853 #4858
- Remove abandoned version of revokingDB #4836
- Make snapshot flush speed configurable #4834
- Integrate
LiteFullNodeTool.jar
andDBConvert.jar
intoToolkit.jar
, add database copy function toToolkit.jar
#4813 #4849 - Optimize LevelDB,RocksDB log output to tron.log #4833
- Fix the incompatibility issue between grpc-java and netty #4928
API
- Add energy estimation API:
/wallet/estimateenergy
#4873 - TIP-467 Add Stake 2.0 related APIs
/wallet/freezebalancev2
: stake TRX to obtain TRON Power (voting rights) and bandwidth or energy/wallet/unfreezebalancev2
: unstake TRX to release bandwidth and energy and at the same time TRON Power will be reduced and all corresponding votes will be canceled/wallet/delegateresource
: delegate resource/wallet/undelegateresource
: undelegate API/wallet/withdrawexpireunfreeze
: withdraw unfrozen balance API/wallet/getavailableunfreezecount
: remaining times of available unstaking API/wallet/getcanwithdrawunfreezeamount
: query the withdrawable balance at the specifiedtimestamp
/wallet/getcandelegatedmaxsize
: query the amount of delegatable resources of the specified resource Type for target addres/wallet/getdelegatedresourcev2
: query the amount of resources detail delegated by fromAddress to toAddress/wallet/getdelegatedresourceaccountindexv2
: query the resource delegation index by an account
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: [email protected]
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
Courage is the first of human qualities because it is the quality which guarantees the others.
---Aristotle