Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 31 million developers.Sign up
- (#2023) Fixed an issue: in a specific case, the CPU single core usage rate reached 90%, but had no effect on the overall performance.
(#1903) Multiple signatures support and different permissions support in accout
- An account can set different permissions.
- Each permission has a threshold and can be managed by different accounts. Each account in a permission has a weight.
- Each transaction created by an account should be authorized by a permisson in the account.
- Transaction should be signed by the accounts in the permisson. The signatures are valid if the sum of weight of all signed accouts is equal or greater than the threshold of the permission.
- The transaction will not be saved into block chain until the signatures become valid.
(#1876 )The upper limit of energy can be adjusted automatically by the current state of the network
(#1905) Develop a new mechanism to listen event message from a queue
(#1873) Solved the Compatibility Problem between Backup and DUP_WITNESS
(#1907) Optimize duplicate check of transaction, Increase processing speed
(#1893) Transfertoken function security improvement
(#1893) ADDRESS and ORIGIN instruction security improvements
(#1929) Improve the partial UNKNOWN execution results of the smart contract to a more detailed error type
- (#1865) log is printed in modules
- (#1872) log configuration file (logbak. xml) can be specified by parameters --log-config
Add two convenient transfer interfaces, including
This version is only for nodes which need use the new interfaces. Fullnode does not need to be upgraded.
(#1918) Optimize Cache to improve node performance.
If block synchronization is slow, you can use this version.
All the node must upgrade to this version
- These two services are available only when storage.db.version=2 (See here)
- The HTTP service port is node.http.solidityPort, the default value is 8091. The RPC service port is node.rpc.solidityPort; the default value is 50061. You can modify the port in the configuration file. Http port see here, RPC port see here
- (#1811) Add a switch to save the internal transaction. The switch status can be configured via the configuration item vm.saveInternalTx, the default is false.See here
- (#1818) Add more unit test about the proposal AllowSameTokenName
- (#1803) Perfecting transaction broadcasting interface
- If there is no connection, return code: NO_CONNECTION
- If the effective connection is not enough, return code: NOT_ENOUGH_EFFECTIVE_CONNECTION
- If NO_CONNECTION or NOT_ENOUGH_EFFECTIVE_CONNECTION returns, you can rebroadcast the transaction after a while
- (#1803) Solving the problem of solidity node not synchronizing blocks
(#1807) Add a switch to control database write strategy; the default setting is false. See here
- Synchronous writing is "true", else Asynchronous writing is "false".
- Asynchronous writing significantly improves the performance of the FullNode and SolidityNode sync block.
- If asynchronous, the write is flushed from the operating system buffer cache. If the machine crashes, some recent writes may be lost. Note that if it is just the process that crashes (i.e., the machine does not reboot), no writes are lost;
- If synchronous, writes are flushed into levelDB directly. No writes are lost when the machine crashes, but it is slow.
- (#1807) Vastly improved processing block speed, especially when machine performance is poor.
- (#1807) Compress transaction space, reducing database space by 25%.
- (#1807) Add a switch to put the transaction result into the transactionHistory database; the default setting is on. See here
- Turning off the switch saves a lot of hard disk space;
- You can turn off the switch if you don't need the interface getransactioninfobyid.
- Fixed an issue where Soliditinode could not be synced(issue: #1828)
This version is only for Soliditynode which cannot synchronize blocks. Fullnode does not need to be upgraded
(#1793) SolidityNode can use the fullnode database:
- Stop Fullnode and Soliditynode
- delete output-directory on the Soliditynode
- Copy the Fullnode database(output-directory) to the SolidityNode directory
- Start Fullnode and SolidityNode
(#1796) Add the minimum effective connections configuration for broadcasting transactions，you need to upgrade if you want to broadcast without connections. Transactions can only be broadcast if the number of effective connections is reached in the config file (node.rpc.minEffectiveConnection = 1).
This is the only difference from Odyssey-v3.2, you don't need to upgrade this version if you don't use this feature.
New In-Memory Database
A new version of the in-memory database is provided. The in-memory database is safer and more stable. The database is guaranteed to be available regardless of whether the program terminates abnormally (kill -9 or other) or the machine is down. The cost is a little performance loss and higher requirements on the machine. It can be enabled in the configuration by modifying db.version=2 (the default configuration is 1, the old database), If the configuration item does not exist in your configuration file, the program will also run with dbversion=2.
TRC10 Token Support For TVM
Smart contract can be triggered with TRC10 value. TRC10 asserts can be transferred in smart contract inside. It will be more flexibility than ever.
Support Of Resource Delegation
User can freeze trx to obtain Energy for other user. so the developer who has not enough trx can ask other users to freeze trx for him to deploy and run his smart contract.
- Allow to issue token with a duplicate name,so that tokenID of the token, a long integer type data, can be as the identification of token.
- Allow to issue token with setting the decimal point, which is used to improve the accuracy.
- Add a resource capacity adjustment proposal.
- Adding transaction execution results to the transactionInfo.
- Add and fix some interfaces of GRPC and HTTP:
- Add origin_energy_limit for smart contract.
- Internal transaction support.
- Add transaction processing priority.
- Add an interface to get monitoring information of a node
- Solving the problem of simultaneous production block at the same witness.
- Resolving peer synchronization problem.