v2.5.0¶
v2.4.x upgraded to v2.5.0
- Compatible upgrade :Directly replace the binary of the v2.4.x node with the v2.5.0 binary , the upgraded version fixes bugs in v2.4.x.
- Full upgrade :Refer to Installation to build a new chain and resubmit all historical transactions to the new node. The upgraded node includes new features in v2.5.0
- v2.4.0 Release Note
Change description¶
Added
- Add precompiled contract, address 0x5, implement modular exponential calculation.
- Add precompiled contract, address 0x6, implement point addition (ADD) of elliptic curve alt_bn128.
- Add precompiled contract, address 0x7, implement the scalar multiplication (MUL) of elliptic curve alt_bn128.
- Add precompiled contract, address 0x8, implement a pairing function on a specific pairing-friendly elliptic curve for zkSNARK verification.
- Add precompiled contract, address 0x9, implement blake2 hash function.
- Add flow control to achieve configurable node output bandwidth and maximum QPS
- Add ChainGovernance precompiled contract, address 0x1008, to implement role-based authority management
- Add SDK connection node supports OSCCA-approved SSL, can be configured whether to enable
- Add account management to freeze and unfreeze accounts
Changed
- In MySQL storage mode, the field type of the contract table is changed to mediumblob.
- The OSCCA-approved cryptography is modified from the compile option to the configuration item.
- Change the node to only accept the SDK connection of the same institution, can be configured whether to enable
- Paillier homomorphic encryption and group signature are enabled by default.
- The build_chain script uses the private key as the root certificate and institution certificate of secp256k1.
- The storage of PBFTBackup was changed from LevelDB to RocksDB.
- Refactor the libdevcrypto module, optimize the code structure, and use TASSL to implement OSCCA-approved SSL and non-national TLS connections.
- Optimize lock implementation of storage module openTable.
- Optimize block data encoding to parallel.
- Optimize the large object destructor to asynchronous.
- Optimize log output mechanism to reduce the impact of log output on performance.
- Optimize the number of threads of MHD and transaction pool modules to reduce memory usage.
- Optimize MySQL storage adapter implementation, optimized ZdbStorage code implementation.
Fixed
- Fix an issue where the Entry was modified in the same block, and subsequent transactions query the Entry result error.
- Fix the issue that transactions in non-leader node transaction pool cannot be packaged under Raft consensus.
- Fix a deadlock issue with CachedStorage.
- Fix the problem of recovering from Binlog when Binlog is turned on in some extreme cases.
- Fix an issue that Viewchange was rejected after a node restart under certain circumstances the view could not be restored quickly.
Compatibility
The old version can directly replace the program upgrade
Recommended version | Minimum version | Description | |
---|---|---|---|
console | 1.0.10 | 1.0.4 | |
SDK | 2.5.0 | 2.0.4 | |
generator | 1.5.0 | 1.2.0 | To use latest generator, please clone from master branch of generator repo. |
FISCO BCOS browser | 2.0.2 | 2.0.0-rc2 | |
Solidity | up to 0.5.2 | 0.4.11 |
Compatibility mode rollback to v2.4.x method
After a node is upgraded from v2.4.x to v2.5.0 in compatibility mode, the rollback can be completed directly by replacing the node binary back to v2.4.x.