Skip to content

BitShares Core 3.3.0

Compare
Choose a tag to compare
@jmjatlanta jmjatlanta released this 02 Sep 14:51
· 2181 commits to master since this release
ba19d55

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

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

  • performance improvements (1875) and
  • improved behavior when restarting a node (1832).

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