Releases: tronprotocol/java-tron
GreatVoyage-v4.0.1
Release Note:
Notices
Forced upgrade.
Changes
- Improves the java-Tron upgrade mechanism and achieves more efficient decentralized governance (#3314).
GreatVoyage-v4.0.0
Release 4.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 added in TVM, which make it convenient to provide privacy for arbitrary TRC-20 contract.
Notices
Forced upgrade
New features
-
Add 4 new instructions (
verifyMintProof
,verifyTransferProof
,verifyBurnProof
andpedersenHash
) in TVM to support TRC20 shielded transactions based on zk-SNARKs (#3172).verifyMintProof
: used to validate the zero-knowledge proof formint
function.verifyTransferProof
: used to validate the zero-knowledge proof fortransfer
function.verifyBurnProof
: used to validate the zero-knowledge proof forburn
function.pedersenHash
: used to compute the Pedersen hash.
-
Update the initial parameters of zk-SNARKs scheme generated by the MPC Torch (#3210).
-
Add the APIs to support shielded TRC-20 contract transaction (#3172).
1. Create shielded contract parameters
rpc CreateShieldedContractParameters (PrivateShieldedTRC20Parameters) returns (ShieldedTRC20Parameters) {}
2. Create shielded contract parameters without ask
rpc CreateShieldedContractParametersWithoutAsk (PrivateShieldedTRC20ParametersWithoutAsk) returns (ShieldedTRC20Parameters) {}
3. Scan shielded TRC20 notes by ivk
rpc ScanShieldedTRC20NotesByIvk (IvkDecryptTRC20Parameters) returns (DecryptNotesTRC20) {}
4. Scan shielded TRC20 notes by ovk
rpc ScanShieldedTRC20NotesByOvk (OvkDecryptTRC20Parameters) returns (DecryptNotesTRC20) {}
5. Check if the shielded TRC20 note is spent
rpc IsShieldedTRC20ContractNoteSpent (NfTRC20Parameters) returns (NullifierResult) {}
6. Get the trigger input for the shielded TRC20 contract
rpc GetTriggerInputForShieldedTRC20Contract (ShieldedTRC20TriggerContractParameters) returns (BytesMessage) {}
-
Support the
ovk
to scan the transparent output ofburn
transaction (#3203). -
Support the
burn
transaction with zero or one shielded output (#3224). -
Add data field in transaction log trigger class for future memo note (#3200).
The following TIPs are implemented in this release:
- TIP-135: Shielded TRC-20 contract standards, guarantee the privacy of the shielded transfer of TRC-20 tokens.
- TIP-137: Implements three zero-knowledge proof instructions in TVM to support the shielded TRC-20 contract (#3172).
- TIP-138: Implements the Pedersen hash computation instruction in TVM to support the shielded TRC-20 contract (#3172).
Changes
- Check if null before getInstance when get transaction info from DB to fix exception of
getTransactioninfoByBlkNum
(#3165).
Odyssey-v3.7
Notices
Non-mandatory upgrade
Changes
-
(#2533) Several independent modules are separated, including consensus module, crypto module, chainbase module, framework module, protocol module and actuator module, which makes decoupled code easier to be extended and enable developers to implement custom logic freely.
-
(#2947) Extend solidity event subscription trigger, user can get the event which is solidified.
-
(#2958) Add
gettransactioninfobyblocknum
API including HTTP and GRPC, user can get the list of transaction information by block number. -
(#2352) Add
broadcasthex
API for HTTP, the user can broadcast the hex of the transaction.
Instructions
-
How to get the list of transaction information in a specific block: TRON Documentation
-
How to broadcast the hex of the transaction: TRON Documentation
Odyssey-v3.6.6
Notices
Forced upgrade.
Changes
- (#2766) Fix HTTP API updateBrokerage to support base58 encoding.
- (#2813) Extend the allowed instruction sets for off-chain smart contract call, including LOGn, SSTORE,
CREATE, CREATE2, STATICCALL, SUICIDE instructions. - (#2824) Remove the functionality “Forbid transfer asset to a smart contract using TransferContract and TransferAssetContract” from proposal 32 and implement it with a new proposal 35.
Odyssey-v3.6.5 Release Notes
Notices
Forced upgrade
New Features
tronprotocol/tips#37 #2445 Prohibit using TransferContract & TransferAssetContract to transfer TRX and assets to smart contract account.
tronprotocol/tips#43 #2422 Add a new TVM instruction that supports parallel signature verification, speeding up the verification process and cutting Energy consumption.
tronprotocol/tips#44 #2323 Add a new TVM instruction to identify whether the account is a smart contract account or not.
tronprotocol/tips#53 #2464 Optimize the current TRX staking mechanism and move the dividend distribution to the On-Chain. The default value of the commission rate is set 20%.
tronprotocol/tips#54 #2439 Automatic activation of accounts when transferring TRX/TRC10 tokens in smart contracts.
tronprotocol/tips#60 #2471 Add a new TVM instruction that supports multi-signature verification.
Changes
#2407 Fix the issue of misreporting NullPointer exception on the occasion of triggerConstantContract transaction timeout.
#2457 Fix the bug that it can not load the localWitnessAccountAddress configured by the "keystore" config item if the SR modified the witness permission.
#2458 Fix the bug that resources for delegate can not be unfrozen after the contract account suicided and became a normal account.
#2462 Add triggerConstantContract feature for Solidity Node and FullNode Solidity interface.
#2463 Add proposals for modifying parameters of energy dynamic adjustment. The way to add up energy consumption is changed from adding up the freeze energy consumption to adding up all the energy consumption.
#2485 Fix the bug about there is no data for return of some solidity APIs.
Odyssey-v3.6.2
Odyssey-v3.6.1
Notices
- Non-mandatory upgrade
Abstract
- This version upgrade can reduce database occupancy and block loss rate.
Changes
Odyssey-v3.6.0
Notice
All the node must upgrade to this version.
Release note
New Features
- #2070 Add
create2
instruction for TVM, which returns a predictable contract address before deploy. TIP #26 - #2069 Add bitwise shifting instructions for TVM to reduce energy consumption of shift. TIP #29
- #2075 Add
extcodehash
instruction for TVM which returns the keccak256 hash of a contract's code. TIP#30 - #2125 Add
triggerConstantContract
API to support contracts which have no ABI. TIP #31 - #2125 Add
clearABI
API including http and grpc, contract's deployer can use this to clear his contract's existed ABI. TIP #32 - #2093 Add built-in message queue for event subscribe. TIP #28
- #2047 Add protocol data check
- #2154 Add the
Permission_id
field when returning the created transaction, compatible with multi-signature transactions
Changes
- #2142 Support event subscription without abi
- #2173 Optimize erengy deduction strategy in TVM when
transfer
、send
ortransferToken
failed - #2141 Optimize the HTTP interface by adding the visible parameter to support the convenience type of addresses and strings, and add the AccountID related interface
- #2182 Optimize http/grpc broadcast transaction interface
- #2155 Optimize the process of block broadcasting
- #2219 Fix the problem that the http interface parses the long type value for a long time.
Notices
-
Add built-in message queue config. See here
- use
event.subscribe.native.useNativeQueue
to control whether using built-in message queue . If true, use native message queue, else use event plugin. - use
event.subscribe.native.bindport
to control bind port. - use
event.subscribe.native.sendqueuelength
to control max length of send queue.
- use
-
For smart contact without ABI (after clear ABI or deploy without ABI)
- If you want to call the constant method, you must use the
triggerConstantContract
interface instead oftriggerContract
. More details: TIP #31 - If you need event subscription, you need to subscribe to and upload ABI using version 3.6+. More details: tron-eventquery.md
- After clearABI, it is not possible to re-add ABI to the same contract address.
- If you want to call the constant method, you must use the
-
For create2 instruction
- If you want to use
create2
to genertate a new address . More details: TIP #31 - After suicide, the storage of
create2
addresses will be reset. - If deployed on a normal address (created by transfer trx), the address will be modified to the contract address. The resources (bandwidth and energy) previously delegated to this address are cleared, and do not affect the unfreeze operation of the client.
- If you want to use
Odyssey-v3.5.1
Changes
-
(#2045)Refactor of sync & adv module, increase code readability and system scalability.
-
(#2028)RocksDB will be an option for the storage engine in the java-tron. The detail of the Rocksdb is described in this document. (https://github.com/tronprotocol/documentation/blob/master/TRX_CN/Tron-doc.md#471-rocksdb)
-
You can use RocksDB as storage engine when you want to back up the database without the node application stopped, you can check the usage of Rocksdb engine in the document. It has more tuning parameters for faster-synchronizing block and takes up less disk space when compared with the LevelDB.
-
The database needs to be reset if the DB engine has been changed, but a tool can be used for converting Leveldb data to Rocksdb data, the instructions about this tool can be found here: https://github.com/tronprotocol/documentation/blob/master/TRX_CN/Tron-doc.md#4714-leveldb-database-convert-to-rocksdb-database-english-verison
-
Add fast-forward feature and the miss rate of the block can be decreased by setting the forward node.
Notices
- Non-mandatory upgrade
Odyssey-v3.5.0.1
Changes
- (#2023) Fixed an issue: in a specific case, the CPU single core usage rate reached 90%, but had no effect on the overall performance.