The BitShares Core software has been updated to the 6.1.0 Feature Release. The codename of the 6.x releases is "Mekong". The Core software is used to build the validation nodes that perform consensus of all transactions on the BitShares blockchain, and a command-line wallet tool to interact with nodes. This release includes 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 found at the BitShares Developer Portal.
Who Should Upgrade
It is recommended that all nodes and all command-line wallets be upgraded, although it is not required.
All nodes will benefit from the P2P network security improvements.
API nodes will benefit from the new APIs.
Docker image users will benefit from security updates and reduced Docker image size.
Command-line wallet users will benefit from command-line wallet improvements.
ElasticSearch nodes will benefit from new data, new program options and bug fixes.
Account history plugin users will benefit from new program options.
How To Upgrade
Precautions
- A blockchain replay will automatically be performed after the validation node software is restarted. This typically takes a few hours on a modern CPU.
- This release contains breaking changes about the
elasticsearchplugin and thees_objectsplugin. For nodes with one of those 2 plugins enabled, please check the Node Plugins section before upgrade. - Due to the changes in PR 2648 and PR 2642, nodes with the
account_historyplugin enabled will have increased memory usage and higher spikes by default. It is a trade-off for better serving certain APIs. Node operators can set themin-blocks-to-keepand themax-ops-per-acc-by-min-blocksstartup options to different values to achieve different behaviors. - Docker users please refer to the following section for breaking changes regarding Docker.
How to Upgrade with Docker
The pre-built Docker image can be found on the BitShares Core Docker page and can be downloaded with the following command.
docker pull bitshares/bitshares-core:6.1
or
docker pull bitshares/bitshares-core:6.1.0
Note:
* Starting from this release, when we add a new image to Docker Hub with a major.minor.patch version tag, we also add or update the corresponding major.minor version tag. Therefore, users using the major.minor version tag will always get the latest patch for that version.
* Starting from this release, the bitsharesentry.sh file is set to the default ENTRYPOINT but no longer to the default CMD, which may affect your deployment.
* By default, the Docker container will run with the bitshares user with UID 10000 and GID 10001 (instead of root), and all existing files in the data directory will be updated to be owned by bitshares:bitshares (from root) on startup.
How to Upgrade from Source Code
Note:
- The code base requires a compiler that supports the C++ 14 standard
- The minimum supported boost version is 1.58, the maximum is 1.74
- The minimum supported CMake version is 3.2
- For Ubuntu users, it is recommended to build in Ubuntu 20.04 LTS (Focal Fossa). Ubuntu 16.04 LTS (Xenial Xerus) may still work, but it is no longer tested.
Obtain the Source Code
The source code may be obtained by checking out the 6.1.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 and the command-line wallet software may be used. No additional requirements or precautions will be required to deploy the new release.
Binaries for download
Binaries of the node software and the command-line wallet software are pre-built and available for download.
Note:
* These binary builds are reproducible and were built using Gitian. Please check the README of Gitian if you want to verify and/or contribute.
* Starting from version 6.0.0, pre-built Linux binaries will not run on Ubuntu 16.04 LTS (Xenial).
36e24b86b5493981b6774cc7f58194a3f0f31eea6b1b40aeda4f989b5bd324e1
macOS
7796e05314c78e155e67081f8157cfb476901af7cf038bf96465792c1cc6a83f
Windows
4e9d7387dc29846bdcb5715adfd43f67817ef317439b2029a5e42c1305a59893
Changes
The changes for 6.1.0 Feature Release are summarized below.
Node Functionality
Description Issue Pull Request Improve P2P security, add new node startup options 659 FC-244, 1764 (main), 2640 Add creation block number and timestamp for accounts and assets 2586 2639 Show more detailed error messages aboutstatic_variant static_cast(tag) < count()
2578
FC-243, 2579
Update seed nodes
-
2590, 2592, 2684, 2685
Node Performance and Stability
Description Issue Pull Request Suppress p2p logging about liquidity pool "Unable to exchange at expected price" 2543 2625 Update p2p call statistics collector log level to debug - 2694Node Plugins
Description Plugins Issue Pull Request Fix "Specifying types in bulk requests is deprecated" (with breaking changes) ElasticSearch Operations, ElasticSearch Objects 2240 1997 Fix data deletion ines_objects plugin, update program options (with breaking changes)
ElasticSearch Objects
2464
2570 (main), 2623
Store some data in ES as objects instead of just as strings
ElasticSearch Operations, ElasticSearch Objects
1400, 2380, 2680
2565 (main), 2681
Store budget records in ES
ElasticSearch Objects
2298
2573
Add fee payer to account history in ElasticSearch database
ElasticSearch Operations
2583
2624
Add block_time and is_virtual fields to operation_history_object
Account History, ElasticSearch Operations
487
2642
Add option to account history plugin to keep operations that happened in last X blocks in memory
Account History
2268
2648
Update api_helper_indexes plugin to support database_api::get_next_object_id API
API Helper Indexes
2649
2653
Limit recursion depth when adapting objects for ES
ElasticSearch Operations
2577
2609
Update default es-objects-max-mapping-depth to 10
ElasticSearch Objects
2612
2616
Add logging about sending bulk data in replay mode
ElasticSearch Objects
-
2636
Fix "413 request too large" error
ElasticSearch Operations, ElasticSearch Objects
2682
2683, 2688
API
Please check the linked pull requests for more info and documentation.
Description Issue Pull Request Addhistory_api::get_block_operation_history API
243
1899
Add api-limit-get-market-history and api-limit-get-full-accounts-subscribe node startup options
-
2613
Update database_api::get_margin_positions API to only return the first page (use database_api::get_call_orders_by_account API to get more data)
-
2613
Add login_api::get_info API to return data defined by a new api-node-info node startup option
626
2617
Add login_api::get_config API to return configured API limits
626
2617
Add login_api::get_available_api_sets API
1689
2617
Add login_api::logout API
-
2617
Fix some issues related to login_api
2614
2617 (main), 2679
Add creation block number and timestamp for accounts and assets
2586
2639
Add block_time and is_virtual fields to operation_history_object
487
2642
Add history_api::get_account_history_by_time API
2647
2650
Add history_api::get_block_operations_by_time API
2498
2651
Add database_api::get_next_object_id API
2649
2653
Extend custom_operations_api::get_storage_info API with pagination and optional parameter support, add api-limit-get-storage-info node startup option
2139
2620
Extend get_order_book API to return limit order owners and other info
2637
2638
Extend get_block_header and get_block_header_batch APIs to optionally return witness signatures
2588
2641, 2652 (main)
Use configured limit as API page size if omitted
2619
2622
Command-Line (CLI) Wallet
Description Issue Pull Request Display operation history IDs for CLI wallet commands related to account history - 2645 Simplify help info in cli_wallet - 2661 Extendtransaction_handle_type to 32 bits and handle overflow
-
2661
Software Design
Description Issue Pull Request Fix compiler warnings 2340, 2501, 2567 2566, 2660 ElasticSearch related code refactory - 2576 Updateconnection_rejected_message member order
112
2605
Refactor API code
-
2613
Change address constructors to explicit
-
1151
Refactor code about object_id and object_id_type
-
2658
Fix code smells
-
FC-246, FC-247, 2661, 2663, 2675
Build Process and Continuous Integration (CI)
Description Issue Pull Request Update Dockerfile andbuild-docker workflow
2011
2666
Support building with curl v7.77 or higher in mac
-
2665
Fix SonarScanner version detection
-
2598
Remove .travis and related files
-
2664
Use GITHUB_REF_NAME variable provided by Github
-
2664
Run sonar-scan workflow with Ubuntu 20.04 instead of ubuntu-latest
-
2664
Update dependency versions used in Github Actions, Dockerfile and Gitian
Gitian-63
Gitian-58, Gitian-59, Gitian-64, Gitian-65, Gitian-66, Gitian-68, 2594, 2611, 2664, 2676
Documentation
Description Issue Pull Request Update README - 2615, 2646, 2672 Update license year to 2022 2572 2626 Fix Doxygen documentation warnings and errors 2545, 2552 2659, 2675 Update docs - 2695Release Contributors
@abitmore (https://github.com/abitmore)
@ioBanker (https://github.com/ioBanker)
@jmjatlanta (https://github.com/jmjatlanta)
@oxarbitrage (https://github.com/oxarbitrage)