Bitshares-core: Release Notes: BitShares Core 3.3.0

Created on 9 Aug 2019  Â·  9Comments  Â·  Source: bitshares/bitshares-core

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

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|TBD|
|Mac|TBD|
|Linux|TBD|

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

All 9 comments

Updated a few things.

@abitmore Please note a minor point that the "the minimum build requirements have changed" since Core 3.1.0

@MichelSantos I didn't understand your comment. I didn't see any change about build requirements in release notes of 3.1, but did see some in 3.2. What do we need to do?

@abitmore You are correct that the build requirements changed in 3.2.0. My minor concern was that the usage of the word "since" could be interpreted to include or exclude the mentioned release; I was thinking exclude. My suggestion is to rephrase to "starting since" or "starting in" to convey that it includes the mentioned release.

@MichelSantos please feel free to edit.

Starting from this release we require CMake 3.2.

In file included from /root/bitshares-core/libraries/fc/src/network/tcp_socket.cpp:4:0:
/root/bitshares-core/libraries/fc/include/fc/fwd_impl.hpp: In instantiation of ‘void fc::check_size() [with long unsigned int RequiredSize = 96ul; long unsigned int ProvidedSize = 84ul]’:
/root/bitshares-core/libraries/fc/include/fc/fwd_impl.hpp:85:43: required from ‘fc::fwd::fwd() [with T = fc::tcp_socket::impl; unsigned int S = 84u; Align = double]’
/root/bitshares-core/libraries/fc/src/network/tcp_socket.cpp:91:26: required from here
/root/bitshares-core/libraries/fc/include/fc/fwd_impl.hpp:60:25: error: static assertion failed: Failed to reserve enough space in fc::fwd
void check_size() { static_assert( (ProvidedSize >= RequiredSize), "Failed to reserve enough space in fc::fwd" ); }
^
libraries/fc/CMakeFiles/fc.dir/build.make:816: recipe for target 'libraries/fc/CMakeFiles/fc.dir/src/network/tcp_socket.cpp.o' failed
make[2]: * [libraries/fc/CMakeFiles/fc.dir/src/network/tcp_socket.cpp.o] Error 1
CMakeFiles/Makefile2:183: recipe for target 'libraries/fc/CMakeFiles/fc.dir/all' failed
make[1]: *
[libraries/fc/CMakeFiles/fc.dir/all] Error 2
Makefile:129: recipe for target 'all' failed

help, build error above

help, build error above

Report of this error is duplicate of #1935

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ihashfury picture ihashfury  Â·  12Comments

spartucus picture spartucus  Â·  8Comments

abitmore picture abitmore  Â·  4Comments

carlo-fontanos picture carlo-fontanos  Â·  8Comments

abitmore picture abitmore  Â·  4Comments