Skip to content

BitShares Core 3.2.0

Compare
Choose a tag to compare
@oxarbitrage oxarbitrage released this 16 Jul 19:49
· 2340 commits to master since this release
e8567d0

UPDATE: this release has a stability issue, please use 3.2.1.

The BitShares Core software has been updated to the 3.2.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

Note: some API changes may break existing clients, described in the API section.

Users of the command line interface wallet (CLI) will benefit from stability improvements (1690, 1772), improved security while unlocking and improved logging.

Upgrade Process

Precautions

A replay will automatically be executed after the upgrade.

If the config file (config.ini) includes the setting required-participation = false, the corresponding line should be removed or commented out, or change false to an appropriate number between 0 and 100, otherwise witness_node won't start.

Please check the 3.1.0 Release Notes for more information if you are upgrading from a version prior to 3.1.0.

How to Upgrade from Source Code

Note: the minimum build requirements have changed since this release:

  • The code base now requires a compiler that supports the C 14 standard (previously C 11).
  • The minimum supported boost version is now 1.58 (previously 1.57).
  • The minimum supported CMake version is now 3.1 (previously 2.x).

Obtain the Source Code

The source code may be obtained by checking out the 3.2.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

UPDATE: links to binaries were removed due to stability issue in the code.

Binaries of the command line interface (CLI) wallet, node software, and delayed node are pre-built and available for download.

Platform SHA256 Checksum
Microsoft Windows 2d5bfee4de04431280e9717ae5b8f73cb81ffe5e1176a8b2bdbfb3f765b798b5
Mac c83ed7f9fd3851b4f3cf87450535d947fb5821cfc18f70a9606fe2b4fb3c0f6d
Linux 76cccb29d2d2d8ce455f3700ab34bf7092327b53717eaa8e7e6607b32879c2f9

Changes

The changes for 3.2.0 Feature Release are summarized below.

Core Functionality

Description Issue Pull Request
Fix Market Fee Sharing percentage check 1775
Disallow temp-account to withdraw vested balance 1800 1813

API

Description Issue Pull Request
Dedupe results of get_key_references API 1209 1795
Add support for optional parameters FC-126
Fix get_accounts error handling 1734 1765
Add missing data to get_full_accounts, add new APIs get_assets_by_issuer, get_call_orders_by_account and get_settle_orders_by_account 1654 1749
Add set_auto_subscription API, fix subscription issues found in get_assets, get_accounts and lookup_accounts 726 777 1731

The get_full_accounts API

  • will return different fields: two fields (withdraws and htlcs) have been removed and are replaced by four fields (withdraws_from, withdraws_to, htlcs_from, htlcs_to);
  • lists returned by the API are limited to certain sizes (configurable by node operator), a more_data_available field is added to indicate what lists are incomplete due to the limit. Clients need to call other APIs to query for next pages of data.

Calls to get_full_accounts, get_accounts, and get_assets will no longer produce error messages when querying for non-existent accounts or assets. Instead,

  • get_full_accounts will return an empty result,
  • get_accounts will return null, and
  • get_assets will return null.

Node Functionality

Description Issue Pull Request
Reduce Logging 1798 1799
Fix required-participation parameter 1786 1787
Configurable API call limits 783 1673 1817
Fix JSONRPC error handling 1688 FC-135

Command Line Interface Wallet (CLI)

Description Issue Pull Request
Safer unlock and set_password commands in cli_wallet 1171 FC-97 1382
Fix crash on exit, improved TAB completion and command history navigation (non-Windows) 1690 FC-119 FC-129 FC-136 1695 1788
Replace broken HTTP parser, -H option now serves websocket connection as well, -r option will be deprecated 1772 1782
Logging improvements 1149 1567 1528 1814

Software Design

Description Issue Pull Request
Performance improvement in Market fee sharing 1801
Extend static_variant with is_type helper 1769 FC-138 1792
Use explicit template instantiation to speed up builds FC-133 1768 1818
Upgrade C standard 847 FC-114 FC-131 1668 1747
Fix endianness issues 1196 FC-122 1714
Refactor protocol definition into separate library 1506 FC-123 1737
Simplify FC FC-120
Revert "wallet compatibility issue" - 1815
Minor fixes FC-118 FC-130 1746 1748 1752 1793

Build Process

Description Issue Pull Request
OpenSSL 1.1.1 linking issue 1791 FC-139
Wrong chain ID on windows 1754 1756
Fix cross-compiling for windows 1724 FC-125
Fix windows build FC-111 FC-113 FC-132
Fix docker build and config 1823 1824 1825

Unit Tests

Description Issue Pull Request
Travis / sonar fixes 1750

Release Contributors

@abitmore
@cogutvalera
@crypto-ape
@cwyyprog
@dyakovitsky
@emfrias
@jmjatlanta
@manikey123
@nathanhourt
@oxarbitrage
@pmconrad
@tperalta82