BitShares Core 6.0.0 "Mekong"
The BitShares Core software has been updated to the 6.0.0 Protocol Release. The codename of the 6.x releases is "Mekong". The 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 time is Tuesday, January 11, 2022 14:00:00 UTC
(2022-01-11T14: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.
Note: some API changes may break existing client applications, as described in API changes section.
How To Upgrade
Precautions
- All validation nodes must complete their upgrade prior to Protocol Activation.
- A blockchain replay will automatically be performed after the validation node software is restarted. This typically takes a few hours on a modern CPU.
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:6.0.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 16.04 LTS (Xenial Xerus) is no longer supported.
Obtain the Source Code
The source code may be obtained by checking out the 6.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
6.0.0
, pre-built Linux binaries will not run on Ubuntu 16.04 LTS (Xenial).
Platform | SHA256 Checksum |
---|---|
Microsoft Windows | b721383133d56fd2a6469a2aac73c92f7fe518f48a2d6a2484d1dd9dcf6c5527 |
Mac | c5c2ee313233aa06c42ea08f9dd747261dec61399ff1011b9f93b3553a84b868 |
Linux | 042740d4e816b80d909d8c82acbefb3ddd20e5b833cace2cfd1816be090eaac1 |
Changes
The changes for 6.0.0 Protocol Release are summarized below.
Protocol
Description | Issue | Pull Request |
---|---|---|
Add no-collateral funding feature (SameT Funds) | 2351 | 2469, 2474, 2476, 2523 |
Add simple collateralized P2P funding feature (Credit Offers and Credit Deals) | 2362 | 2479, 2502, 2511 |
Add 3 new black swan response methods | 2467 | 2499, 2510 |
Add missing asset authorization checks for certain operations | 972, 973 | 2468 |
Add option for MPA owners to disable collateral bidding | 2281 | 2504, 2536 |
Allow bitasset options to be updated after GS | 2282 | 2506 |
Match force-settlements with margin calls at normal margin call fill price | 2481 | 2489 |
Revive GSed bitassets based on ICR rather than MCR | 2290 | 2505 |
Skip asset authorization checks for from_account for override_transfer | 2295 | 2465 |
Update liquidity pool exchange operations to comply with whitelist and blacklist market settings | 2350 | 2462, 2507 |
Fix a bug that some non-UIA asset issuer permission bits (e.g. witness_fed_asset ) can be configured on UIA via asset_update_operation |
- | 2499 |
Allow borrowers to close debt positions even when there is no sufficient price feeds | - | 2499 |
Allow updating an existing debt position or creating a new debt position if to trigger a margin call and the debt position is not fully filled but the remaining debt position's CR is higher than ICR | - | 2499 |
Debt positions with CR not greater than MCR will pay margin call fees at the time of global settlement | - | 2489 |
Node Functionality
Description | Issue | Pull Request |
---|---|---|
Delete unneeded directories when writing object database to disk | - | 2485 |
Node Performance and Stability
Description | Issue | Pull Request |
---|---|---|
Clear operation_results when generating block | 2527 | 2475, 2528 |
Remove BSIP-40 support for unused operations | - | 2482 |
Node Plugins
Description | Plugins | Issue | Pull Request |
---|---|---|---|
Fix liquidity pool deposit statistics | Market History | - | 2471 |
Notify all related accounts on account creation | Account History | 265 | 2480 |
Fix a crash when starting the ElasticSearch plugin | ElasticSearch Operations | 2490 | 2495 |
API
Please check the linked pull requests for more info and documentation.
Description | Issue | Pull Request |
---|---|---|
The get_block API will return an empty operation_results field for blocks produced by nodes with version 6.0.0 or higher. The operation results can still be retrieved via get_account_history and related APIs. |
- | 2475 |
The unused extensions field is removed from asset_settle_cancel_operation |
- | 2489 |
The return value of asset_settle_operation is now a new type extendable_operation_result |
- | 2499 |
New APIs for querying SameT Funds | - | 2469 |
New APIs for querying Credit Offers and Credit Deals | - | 2479 |
Fix liquidity pool deposit statistics | - | 2471 |
Fix liquidity pool history APIs | - | 2517 |
Software Design
Description | Issue | Pull Request |
---|---|---|
Add defensive check to mute SonarScanner warning | - | 2540 |
Build Process and Continuous Integration (CI)
Description | Issue | Pull Request |
---|---|---|
Build Docker images with Github Actions | 2472 | 2514 |
Upgrade the Docker base image to Ubuntu 20.04 LTS (Focal Fossa) | - | 2473 |
Fix Gitian Windows build string table overflow issue by using Ubuntu 20.04. LTS (Focal Fossa) | 2520 | Gitian-50 |
Phase out Ubuntu 16.04 | 2217, Gitian-49 | Gitian-51 |
Add dependabot.yml for GitHub Actions | - | 2512 |
Add OS version to cache key in sonar-scan workflow | - | 2486, 2487 |
Update Sonar Scanner configuration | - | 2437, 2458, 2518 |
Documentation
Description | Issue | Pull Request |
---|---|---|
Fix an error in README.md | - | 2529, 2533, 2534 |
Release Contributors
@abitmore (https://github.com/abitmore)
@xiao93 (https://github.com/xiao93)