v3.1.0¶
New¶
Account freezing, unfreezing and abolishing functions
Gateway distributed current limiting function
Network compression function
Consensus Timing Function
Contract Binary and ABI Storage Optimization
Adapt to EVM interfaces such as delegatecall, extCodeHash, blockHash, etc
BFS adds query paging function
Change¶
DBHash calculation logic updates to improve verification stability
The chain configuration item is removed from config.ini and modified to be configured in the config.genesis creation block
BFS catalog table structure performance optimization
Repair¶
Compatibility¶
Historical chain data
If the existing data in the current chain is in the following version, can the node binary be replaced to complete the upgrade?
3.0.x: supports gray-scale upgrade by replacing the binary, if you need to use the new features of the current version, you need to use the console to upgrade the chain version to the current version after all node binaries are replaced (see below: Upgrade method)
3.0-rc x: Data is not compatible and cannot be upgraded. Consider gradually migrating your business to the 3.x official version
2.x: data is not compatible, 2.x version is still maintained, you can consider upgrading to the latest version of 2.x
Component compatibility
| Recommended Version | Minimum Version | Description | |
|---|---|---|---|
| Console | 3.1.0 | 3.0.0 | |
| Java SDK | 3.1.0 | 3.0.0 | |
| CPP SDK | 3.0.0 | 3.0.0 | |
| Solidity | 0.8.11 | Minimum 0.4.25, maximum 0.8.11 | The compiler (console) needs to be downloaded according to the contract version |
| WBC-Liquid | 1.0.0-rc3 | 1.0.0-rc3 |
Upgrade Method¶
This operation only supports upgrading version 3.x to this version, and does not support upgrading version 3.0-rc or 2.x。
Query data compatibility version number (compatibility _ version)¶
Use consoleQuery, such as the current version returned is 3.0.0
[group0]: /apps> getSystemConfigByKey compatibility_version
3.0.0
Replace Node Binary¶
Need to beAll NodesGradually replace the binary with the current version。In order not to affect the business, the replacement process can be done in grayscale, replacing and restarting nodes one by one。During the replacement process, the current chain continues to execute with the logic of the old data-compatible version number。After the binary replacement of all nodes is completed and restarted, you need to use the console to modify the data compatibility version number to the current version。
Set the data compatibility version number (compatibility _ version)¶
Use consoleSet the data compatibility version number, for example, the current version is 3.1.0
[group0]: /apps> setSystemConfigByKey compatibility_version 3.1.0
{
"code":0,
"msg":"success"
}
Note: If the permission governance function is enabled, you need to use the setSysConfigProposal command
Set successfully, query again, the current version has been upgraded to 3.1.0
[group0]: /apps> getSystemConfigByKey compatibility_version
3.1.0
The current chain has been upgraded, so far,The chain continues to run with new logicand supports new features。