BitShares Core 7.0.0 "Suez"
The BitShares Core software has been updated to the 7.0.0 Protocol Release. The codename of the 7.x
releases is "Suez". The BitShares Core software is used to build the validation nodes that perform consensus of all transactions on the BitShares blockchain. This release includes additions, improvements and changes to the consensus protocol.
The scheduled protocol upgrade (hard fork) time is Thursday, November 16, 2023 14:00:00 UTC
(2023-11-16T14:00:00Z
).
Documentation for users may be be found at How BitShares Works.
Documentation for BitShares developers may be found at the BitShares Developer Portal.
Who Should Upgrade
All nodes need to be upgraded to handle the protocol upgrade (hard fork).
Command-line wallets need to be upgraded to connect to upgraded nodes.
How To Upgrade
Precautions
- All validation nodes must complete their upgrade prior to Protocol Activation (hard fork).
- A blockchain replay will be performed automatically when the validation node software starts for the first time. This typically takes few hours on a modern CPU.
- This release contains breaking changes regarding limit orders and individual settlement fund that may break existing client applications. Please check the Protocol Changes section before upgrade.
- There were some breaking changes in the
6.1.0
release (the previous version). If you are upgrading from an earlier version, please see the 6.1.0 release notes for more information.
How to Upgrade with Docker
The pre-built Docker image can be found on the BitShares Core Docker page and can be downloaded with the following command.
docker pull bitshares/bitshares-core:7.0
How to Upgrade from Source Code
Note:
- The code base requires a compiler that supports the C++ 14 standard
- The minimum supported boost version is 1.58, the maximum is 1.74
- The minimum supported CMake version is 3.2
- For Ubuntu users, it is recommended to build in Ubuntu 20.04 LTS (Focal Fossa).
- Ubuntu 18.04 LTS (Bionic Beaver) and earlier versions are no longer supported.
- Ubuntu 22.04 LTS (Jammy Jellyfish) is not yet supported.
Obtain the Source Code
The source code may be obtained by checking out the 7.0.0 tag. Download the source at:
Build the Binaries
The binaries may be built by using your pre-existing process, or by following the standard instructions that can be found in the wiki:
Deploy the Binaries
Your standard process for deploying the node software may be used. No additional requirements or precautions will be required to deploy the new release.
Binaries for download
Binaries of the command-line interface (CLI) wallet and the node software are pre-built and available for download.
Note:
- These binary builds are reproducible and were built using Gitian. Please check the README of Gitian if you want to verify and/or contribute.
- Starting from version
7.0.0
, pre-built Linux binaries will not run on Ubuntu 18.04 LTS (Bionic).
Platform | SHA256 Checksum |
---|---|
Microsoft Windows | 984401f1e46c0458e8991ec61719f4e7c1bd1d96a351c3013e01592efacbd75d |
Mac | edfc685d6c9af6008fb35b3fed3e0368dbc256ab8fbaeb32118f58f558fc954c |
Linux | 4229c0ae8b64c7edd607c705815d79c4c925c4e0486c403a13eab7eef443fad6 |
Changes
The changes for 7.0.0 Protocol Release are summarized below.
Protocol
Description | Issue | Pull Request |
---|---|---|
Add Order-Sends-Take-Profit-Order (OSO) feature for market making | 2535 | 2749, 2759, 2762 |
Add new operation to modify existing limit order (see notes about breaking changes) | 1604 | 2743, 2776 |
Add credit deal auto-repayment feature | 2595 | 2735, 2755, 2757, 2760 |
Add operation to update liquidity pools | 2604 | 2720, 2754 |
Tighter peg when collateral price rises and settlement fund is not empty or settlement order exists (see notes about breaking changes) | 2591 | 2721, 2727, 2748, 2768 |
Allow settling more than total debt amount in individual settlement fund when no sufficient price feeds | 2587 | 2716, 2764 |
Node Functionality
Description | Issue | Pull Request |
---|---|---|
Add return value (what and how much is refunded) to virtual limit_order_cancel operation |
- | 2729 |
Update default values of market history plugin options | - | 2702 |
Update seed nodes | - | 2769 |
Node Performance and Stability
Description | Issue | Pull Request |
---|---|---|
Improve node networking stability by better handling asio operation cancellation exceptions | - | FC-249, 2775 |
Node Plugins
Description | Plugins | Issue | Pull Request |
---|---|---|---|
Support ElasticSearch 8 (see notes about deployment) | ElasticSearch Operations, ElasticSearch Objects | 2706 | 2707, 2709 |
Add missing is_virtual field in account history in ES, and fix a related API |
ElasticSearch Operations | - | 2730 |
API
This release does not contain any API changes.
Command-Line Wallet (CLI)
Description | Issue | Pull Request |
---|---|---|
Improve performance of account history wallet APIs by using the block_time field in operation_history_object |
2643 | 2644 |
Fix "gethelp command in CLI wallet built with Ubuntu 20 lacks docs for command parameters" |
2770 | 2771 |
Software Design
Description | Issue | Pull Request |
---|---|---|
Improve safe<T> |
2147 | FC-248, 2739 |
Fix Network Mapper Tool | - | 2718 |
Fix code smells | - | 2703, 2705, 2745, 2747 |
Build Process and Continuous Integration (CI)
Description | Issue | Pull Request |
---|---|---|
Use gcovr to process code coverage data |
- | 2739, 2742, FC-248 |
Set a timeout for running unit tests in Github Actions | - | 2732 |
Remove SonarCloud cache and threads configuration as it is now by default | 2738 | 2736, 2737, FC-248 |
Stop supporting Ubuntu 18.04 LTS | 2670 | 2707, FC-248, Gitian-72 |
Update dependency versions used in Github Actions | - | 2724, 2752, 2775, 2779 |
Bump docker/build-push-action from 3 to 4 | - | 2722, 2726 |
Documentation
Description | Issue | Pull Request |
---|---|---|
Fix Doxygen warnings | - | 2780 |
Update project links, version and description in sonar-project.properties | - | 2714, 2715, 2740 |
Update license year | - | 2731 |
Update project brief and version in Doxyfile | - | 2767 |
Release Contributors
@abitmore (https://github.com/abitmore)
@litepresence (https://github.com/litepresence)
@mpaladin (https://github.com/mpaladin)
@nathanielhourt (https://github.com/nathanielhourt)
@technologiespro (https://github.com/technologiespro)