BitShares Core 3.3.0
Release Notes
The BitShares Core software has been updated to the 3.3.0 Feature Release. The Core software is used to build the validation nodes that perform consensus of all transactions on the BitShares blockchain. This release includes additions and improvements but does not include any changes to the consensus protocol.
Documentation for users may be be found at How BitShares Works.
Documentation for BitShares developers may be now be found at the new BitShares Developer Portal.
Who Should Upgrade?
No upgrade is required by any operator of a validation node. Yet many operators will benefit by upgrading.
Operators of API nodes should upgrade to support client software that attempt to
- track the total amount in collateral,
- query for active HTLC objects, and
- optionally subscribe to database objects.
Instructions for configuring a node to track the total amount in collateral can be found in the API section.
Operators of ElasticSearch nodes should upgrade to support Get operation by ID and serving get_account_history
API.
Block producing nodes will benefit due to enable to load block signing keys from files.
All node operators will benefit from
Users of the command line interface wallet (CLI) will benefit from the ability to sign messages on behalf of their account (1878).
Upgrade Process
Precautions
This release requires a replay of the blockchain, which will be automatically executed after the upgrade.
Operators of public API nodes should add an entry into their configuration file per the instructions in the API section.
Please check the 3.2.0 Release Notes for more information if you are upgrading from a version prior to 3.2.0.
How to Upgrade from Source Code
Note: the minimum build requirements have changed starting from this 3.3.0 Feature Release:
- The code base requires a compiler that supports the C++ 14 standard (previously C++ 11).
- The minimum supported boost version is 1.58 (previously 1.57).
- The minimum supported CMake version is 3.2 (previously 3.1).
Obtain the Source Code
The source code may be obtained by checking out the 3.3.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.
How to Upgrade with Docker
The latest Docker image may be found at BitShares Core Docker page and updated with
docker pull bitshares/bitshares-core
Binaries
Binaries of the command line interface (CLI) wallet, node software, and delayed node are pre-built and available for download.
Note: starting with core release 3.3.0, binary builds are reproducible and were signed using gitian. Please check the README if you want to verify and/or contribute.
Platform | SHA256 Checksum |
---|---|
Microsoft Windows | 27a983c76ab2f733904925a4bfe2c9368a7f0476152da42282fcc026b01b8737 |
Mac | b19f60589faaca3f6b4f5691a58588f801e0f75c20f319f81bf8033e5e17f4df |
Linux | 08df312085fc536798ef398186f5c08999f78df724bb94c34f952aebf33f312e |
Changes
The changes for 3.3.0 Feature Release are summarized below.
API
Description | Issue | Pull Request |
---|---|---|
Track total amount in collateral | 1089, 1781, 1893 | 1836, 1889, 1894 |
Added get_htlcs API |
1713 | 1849 |
Add optional auto-subscription parameters to APIs: get_objects , get_accounts , get_full_accounts , lookup_accounts , get_assets and get_htlc |
1819 | 1868 |
ES Plugin: Get operation by ID; support get_account_history API |
1682 | 1725 |
Public API Node operators should enable the new api_helper_indexes plugin to track collateral by adding the entry api_helper_indexes
to the plugins
entry of the node's configuration file (config.ini
), typically, if the line looks like this:
# Space-separated list of plugins to activate
plugins = witness account_history market_history grouped_orders
should change it to:
# Space-separated list of plugins to activate
plugins = witness account_history market_history grouped_orders api_helper_indexes
Node Functionality
Description | Issue | Pull Request |
---|---|---|
Suppress p2p logs | 978 | 1875 |
Witness node switch to correct fork on restart if was shut down on another long fork | 1703 | 1832 |
Remove seed node with missing DNS record | - | 1879 |
Node Plug-ins
Description | Issue | Pull Request |
---|---|---|
Fix market ticker volume underflow issue | 1883 | 1885, 1933 |
Witness node accepts block signing keys from file | - | 1812 |
Command Line Interface Wallet (CLI)
Description | Issue | Pull Request |
---|---|---|
Add sign_message command to cli_wallet |
- | 1878 |
Software Design
Description | Issue | Pull Request |
---|---|---|
Put seed nodes into separate file | - | 1809 |
Add htlc parameters to developer genesis | - | 1833 |
Refactor CLI register_account and create_account_with_private_key commands, remove duplicate code | - | 1811 |
Database_api code refactory | - | 1891, 1920 |
Clean up FC, support native 128-bit integers | 998, 1584, 1660,1816 | FC-137, FC-140, 1789, 1917, 1927, 1941 |
Fix optional API argument bug | 1898 | FC-145, FC-146, 1912 |
Build Process
Description | Issue | Pull Request |
---|---|---|
Modified CMakeLists.txt for static linking of libcurl | - | 1872 |
Harden binaries through defensive compilation and linking | - | 1810 |
Make Travis use multi-stage build | - | 1890 |
CMake cleanup & MinGW support | 1948 | FC-121, FC-151, 1949 |
Upgrade to newer versions of MSVC compiler | 1646 | 1840 |
Support building with Windows 10 / VS 2019 / Boost 1.70 | 1735 | Websocketpp-3, FC-144, FC-147, 1912 |
Support Apple Xcode 10.1 / clang 4.0.1 | 1952 | FC-152 |
Fix build with different genesis file | 1965 | 1966 |
Create reproducible binary downloads with gitian | 897 | bitshares-gitian |
Documentation
Description | Issue | Pull Request |
---|---|---|
Add protocol to libraries doc | 1873 | 1877 |
Update api and cli docs | - | 1862, 1863, 1866 |
Update private testnet doc | 1861 | Dev 154, Wiki |
Improve help message of get_dev_key | - | 1888 |
Default checkpoint in testnet |
1722 | Dev 161 |
Generate doxygen docs for FC and other libraries | 741 | 1851, FC-141 |
Unit Tests
Description | Issue | Pull Request |
---|---|---|
Fix chain_test: Committee and witnesses initialization in genesis | - | 1835, 1928 |
Release Contributors
@abitmore
@cedar-book
@crypto-ape
@jmjatlanta
@nathanhourt
@oxarbitrage
@OpenLedgerApp
@pmconrad
@xeroc