Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release Notes: BitShares Core 3.3.0 #1892

Closed
MichelSantos opened this issue Aug 9, 2019 · 9 comments

Comments

@MichelSantos
Copy link

commented Aug 9, 2019

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

@abitmore

This comment has been minimized.

Copy link
Member

commented Aug 9, 2019

Updated a few things.

@MichelSantos

This comment has been minimized.

Copy link
Author

commented Aug 14, 2019

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

@abitmore

This comment has been minimized.

Copy link
Member

commented Aug 14, 2019

@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 abitmore added this to the 3.3.0 - Feature Release milestone Aug 14, 2019

@abitmore abitmore added this to To do in Feature Release (3.3.0) via automation Aug 14, 2019

@abitmore abitmore moved this from To do to In development in Feature Release (3.3.0) Aug 14, 2019

@MichelSantos

This comment has been minimized.

Copy link
Author

commented Aug 14, 2019

@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.

@abitmore

This comment has been minimized.

Copy link
Member

commented Aug 15, 2019

@MichelSantos please feel free to edit.

@abitmore

This comment has been minimized.

Copy link
Member

commented Aug 16, 2019

Starting from this release we require CMake 3.2.

@abitmore abitmore moved this from Done to In development in Feature Release (3.3.0) Aug 16, 2019

@kimziv

This comment was marked as resolved.

Copy link

commented Aug 18, 2019

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<T, S, Align>::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<T,S>
void check_size() { static_assert( (ProvidedSize >= RequiredSize), "Failed to reserve enough space in fc::fwd<T,S>" ); }
^
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

@kimziv

This comment was marked as resolved.

Copy link

commented Aug 18, 2019

help, build error above

@MichelSantos

This comment was marked as resolved.

Copy link
Author

commented Aug 19, 2019

help, build error above

Report of this error is duplicate of #1935

@abitmore abitmore closed this Sep 3, 2019

Feature Release (3.3.0) automation moved this from In development to Done Sep 3, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
3 participants
You can’t perform that action at this time.