BitShares Core 6.1.0 Release (codename "Mekong")

in BitShares2 years ago

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 elasticsearch plugin and the es_objects plugin. 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_history plugin 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 the min-blocks-to-keep and the max-ops-per-acc-by-min-blocks startup 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).
PlatformSHA256 Checksum
Linux36e24b86b5493981b6774cc7f58194a3f0f31eea6b1b40aeda4f989b5bd324e1
macOS7796e05314c78e155e67081f8157cfb476901af7cf038bf96465792c1cc6a83f
Windows4e9d7387dc29846bdcb5715adfd43f67817ef317439b2029a5e42c1305a59893

Changes

The changes for 6.1.0 Feature Release are summarized below.

Node Functionality

DescriptionIssuePull Request
Improve P2P security, add new node startup options659FC-244, 1764 (main), 2640
Add creation block number and timestamp for accounts and assets25862639
Show more detailed error messages about static_variant static_cast<size_t>(tag) < count()2578FC-243, 2579
Update seed nodes-2590, 2592, 2684, 2685

Node Performance and Stability

DescriptionIssuePull Request
Suppress p2p logging about liquidity pool "Unable to exchange at expected price"25432625
Update p2p call statistics collector log level to debug-2694

Node Plugins

DescriptionPluginsIssuePull Request
Fix "Specifying types in bulk requests is deprecated" (with breaking changes)ElasticSearch Operations, ElasticSearch Objects22401997
Fix data deletion in es_objects plugin, update program options (with breaking changes)ElasticSearch Objects24642570 (main), 2623
Store some data in ES as objects instead of just as stringsElasticSearch Operations, ElasticSearch Objects1400, 2380, 26802565 (main), 2681
Store budget records in ESElasticSearch Objects22982573
Add fee payer to account history in ElasticSearch databaseElasticSearch Operations25832624
Add block_time and is_virtual fields to operation_history_objectAccount History, ElasticSearch Operations4872642
Add option to account history plugin to keep operations that happened in last X blocks in memoryAccount History22682648
Update api_helper_indexes plugin to support database_api::get_next_object_id APIAPI Helper Indexes26492653
Limit recursion depth when adapting objects for ESElasticSearch Operations25772609
Update default es-objects-max-mapping-depth to 10ElasticSearch Objects26122616
Add logging about sending bulk data in replay modeElasticSearch Objects-2636
Fix "413 request too large" errorElasticSearch Operations, ElasticSearch Objects26822683, 2688

API

Please check the linked pull requests for more info and documentation.

DescriptionIssuePull Request
Add history_api::get_block_operation_history API2431899
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 option6262617
Add login_api::get_config API to return configured API limits6262617
Add login_api::get_available_api_sets API16892617
Add login_api::logout API-2617
Fix some issues related to login_api26142617 (main), 2679
Add creation block number and timestamp for accounts and assets25862639
Add block_time and is_virtual fields to operation_history_object4872642
Add history_api::get_account_history_by_time API26472650
Add history_api::get_block_operations_by_time API24982651
Add database_api::get_next_object_id API26492653
Extend custom_operations_api::get_storage_info API with pagination and optional parameter support, add api-limit-get-storage-info node startup option21392620
Extend get_order_book API to return limit order owners and other info26372638
Extend get_block_header and get_block_header_batch APIs to optionally return witness signatures25882641, 2652 (main)
Use configured limit as API page size if omitted26192622

Command-Line (CLI) Wallet

DescriptionIssuePull Request
Display operation history IDs for CLI wallet commands related to account history-2645
Simplify help info in cli_wallet-2661
Extend transaction_handle_type to 32 bits and handle overflow-2661

Software Design

DescriptionIssuePull Request
Fix compiler warnings2340, 2501, 25672566, 2660
ElasticSearch related code refactory-2576
Update connection_rejected_message member order1122605
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)

DescriptionIssuePull Request
Update Dockerfile and build-docker workflow20112666
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 GitianGitian-63Gitian-58, Gitian-59, Gitian-64, Gitian-65, Gitian-66, Gitian-68, 2594, 2611, 2664, 2676

Documentation

DescriptionIssuePull Request
Update README-2615, 2646, 2672
Update license year to 202225722626
Fix Doxygen documentation warnings and errors2545, 25522659, 2675
Update docs-2695

Release Contributors

@abitmore (https://github.com/abitmore)
@ioBanker (https://github.com/ioBanker)
@jmjatlanta (https://github.com/jmjatlanta)
@oxarbitrage (https://github.com/oxarbitrage)

Sort:  

Excellent work!

Add creation block number and timestamp for accounts and assets

Awesome! Now we can display the creation date of NFTs on the Bitshares DEX; this was a feature requested in the Bitshares NFT community, so thanks! :)

Congratulations @abit! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 332000 HP as payout for your posts, comments and curation.
Your next payout target is 334000 HP.
The unit is Hive Power equivalent because post and comment rewards can be split into HP and HBD

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

HiveBuzz World Cup Contest - Round of 16 - Recap of Day 1
Our Hive Power Delegations to the November PUM Winners
HiveBuzz World Cup Contest - Recap of the last day of the group stage.
Support the HiveBuzz project. Vote for our proposal!

🌹🌹🌹