Bitshares-core: Release Notes for BitShares Core 201810

Created on 15 Oct 2018  路  8Comments  路  Source: bitshares/bitshares-core

Release Notes

The BitShares Core software has been updated to the 201810 Feature Release. The Core software is used by validation nodes which perform consensus of all transactions on the BitShares blockchain. This release includes new features, optimizations, and bug fixes but _does not include any changes to the consensus protocol_.

No action is required if you do not operate a validation node or the command line interface (CLI) wallet.

Numerous performance improvements have been made to the software that will benefit all operators of validation nodes including block producers, seed nodes, and API nodes, especially those using the Elasticsearch plugin.

Documentation for BitShares developers may be now be found at the new BitShares Developer Portal (https://dev.bitshares.works).

Who Should Upgrade?

_No upgrade is required_ by any operator of a validation node. Yet many operators will benefit by upgrading.

All operators will benefit from performance improvements (915, 1327, 1359) and fixes (1024, 1203, 1286, 1325).

Operators of block producing nodes will benefit from performance improvements (1251), safety measures (1252), and fixes (1266, 1332, 1364).

Operators of API nodes including Elasticsearch APIs will benefit from improvements to data availability (1351, 1352) and performance (1049, 1271, 1356).

Users of the command line interface (CLI) wallet will also benefit from improvements (1195, 1248).

Upgrade Process

Precautions

Precaution 1

Operators of API nodes that service client software that expect to receive updates about all data on the blockchain by default (such as BitShares Reference Wallet before 180401), as opposed to narrowly subscribed data, should ensure that their API nodes are configured with the enable-subscribe-to-all set to true due to Pull Request 1049.

How to Upgrade from Source Code

Obtain the Source Code

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

CLI Binaries for Windows and Mac

A binary of the command line interface (CLI) wallet for Windows is pre-built and available for download here BitShares-Core-2.0.181105-Windows-x64-cli-tools.zip.

For Mac please download BitShares-Core-2.0.181105-macOS-cli-tools.tar.gz.

Changes

The changes for BitShares Core for the 201810 Feature Release are summarized below.

Core Functionality

|Description|Issue|Pull Request|
|-|-|-|
|Change call_order_update_operation to return order_id|1269|1352|

Node Functionality

|Description|Issue|Pull Request|
|-|-|-|
|Segmentation fault when running several witness nodes on the same machine|377|1286|
|Performance opt pt 1|1079|1359|
|Log console output during replay to file|985|1355, FC-76|
|Change replay percentage to total block size processed|1289|1335|
|Improve block generation performance|-|1251|
|Review and backport EOS patch about unsigned_int unpacking|993|1267|
|Check and port Steem PR 2692: missing FC typenames|1217|1248|
|witness_node uses two incompatible parsers for config.ini|149|1024,1325|
|db_block.cpp: removed unreachable code|-|1312|
|Cleanup budget_record_object?|1139|1213|
|Change object_id to more than 32 bit|1088|1267|
|More 32 bit to 64 bit changes|1206|1347, 1374|
|Remove definition of unused symbol_type|-|1235|
|Update application.cpp|-|1345|
|application.cpp: minor optimization|-|1327|
|Call order and bitAsset related code refactory|-|1306|
|Re-add enable-subscribe-notify-all option after GUI issue fixed|752|1049|
|When signing a block that updates the signing witness's signing key, use correct signing key|125|1203|
|remove unused variable _consecutive_production_enabled|-|1294|
|Check Steem issue 2658: Not producing block because node didn't wake up within 500ms of the slot time|1157|1266|
|remove verify_account_history_plugin_index()|-|915|
|inconsistent error message for update_asset_issuer|944|1255|
|Possible to generate a block that is too large|1136|1252|
|remove duplicated line in network code node.cpp|-|1231|
|Error while converting value to string|1392|1394,FC-83|
|Update Sahkan's seed nodes|-|1404|

Node Plugins

|Description|Issue|Pull Request|
|-|-|-|
|Terminate block production loop when shutting down witness plugin|1314|1332, 1364|
|add dascoin adaptor|-|1356,1396|
|[ES plugin] Wrong value of additional_data.fill_data.fill_order|1295|1351|
|refine es_objects plugin||1271|

Command Line Interface (CLI)

|Description|Issue|Pull Request|
|-|-|-|
|CLI wallet: avoid directly overwriting wallet file on exit|1109|1195|
|cli_wallet crashes when doing import_key on Mac|1244|1248|
|get to_id from to_account instead of get_account_id()|-|1242|
|wallet compatibility issue|1307|1323|

Build Process

|Description|Issue|Pull Request|
|-|-|-|
|Integrating cURL into cmake|-|1329, 1336|
|cli_test doesn't compile on Windows due to using 'sys/socket.h'|1292|1305|
|clean old style codes|-|1250|

Unit Tests

|Description|Issue|Pull Request|
|-|-|-|
|Not able to perform testing [100,000 transactions per second]|1298|1337|
|Refactor cli_test|1192|1243|
|Test case failed on chain_test|1326|1346|

Documentation

|Description|Issue|Pull Request|
|-|-|-|
|API documentation|780|1174|
|Launch BitShares Developer Portal|1031|How-19, Dev-41|
|add new doc portals to readme|953|1358,1363|
|add readme to plugins|-|1319|
|LaTeX project for documentation like C++ ISO/IEC|1288|-|
|Probably wrong comment|1301|1349|
|Create plugin script|-|1302|
|add new doc portals to readme||1363|
|Add disk space requirements to readme|-|1376,1379|
|Update get_trade_history API docs and coding style|-|1397|

Release Contributors

@abitmore
@botanegg
@cogutvalera
@cwyyprog
Damir from Dascoin
@HarukaMa
@jmjatlanta
@ihla
@liondani
@OpenLedgerDev
@oxarbitrage
@pmconrad
@RichardWeiYang
@ryanRfox
@tsugimoto
@zhuliting

All 8 comments

Well done ! Nice ! Thanks !

Thanks.
I think the 4 "Development Process" PR's need not be listed, they don't actually change anything content-related.

Here is my own opinion about how to write a good release note. There are many articles over the Internet about same topic as well.

Release notes should be audience oriented. (Same thing applies to other documents)

Question:

  • Who are the targeted audience of the release notes (who will read the release notes)?

Answer:

  • node operators including exchanges, gateways, other businesses integrated BitShares, API node providers, witnesses, seed node providers, bot runners and etc.
  • News transmitters / public relation dept.

Question:

  • What do they care the most when reading the document?

Answer 1 (for node operators, ordered by priority):

  • Do I have to upgrade to the new release?

    • does the release contain security fixes, am I affected?

    • does the release contain features or fixes that I badly needed (which may improve my business a lot)?

      Note: actually this is hard, because it means you need to know your product, know the businesses around, know what do they need / want.

  • If I want to upgrade to the new release, what do I need to pay special attention?

    • will this release break anything (e.g. API changes)?

    • will this release requires more resource to run, if yes, what are the new requirements?

    • will this release reduce performance e.g. slower startup time, which may impact my business?

  • If I want to upgrade to the new release, what do I need to do?

    • where are the binaries for download? where are the checksums?

    • what are the steps to upgrade?

    • how much time would I need to complete the upgrade? what additional resources would I need for upgrading?

Answer 2 (for news transmitters / public relation dept.)

  • What are the big news / most attractive things in this release?
  • Do I understand what's the release note is talking about? If I can't understand, what should I guess?

Question:

  • What are the minor things that few people will have interest to read?

Answer (examples):

  • code style changes
  • removal of unused files / code or duplicate code
  • fixes of comments in code
  • fixes of typos
  • fixes for test cases
  • code refactory

So here comes some principles:

  • The wording should make sense, and should be easily understood by targeted audiences.
  • Need a good summary, emphases the "big things" in this release.
  • Security fixes should be explicitly listed.
  • API changes should be explicitly listed.
  • Important things should be explicitly described.
  • Important new features and fixes should be listed above minor changes.
  • List contributors, generally, order by contribution.

And some tips:

  • group related things together / combine them if it's better
  • list similar things together

something like this BitShares Core Release 2.0.180823

Wow, a lot of effort went into that. Thanks @TheTaconator for the work and @abitmore for the insightful opinion. If I were to combine those two things, I guess a brief paragraph to start would satisfy the public relations people, and the details would help the integrator/admin.

Need to add related PRs in FC to the list which including following 2 pulls but not only them:

Need to add #1392 add #1394 to the list.

1049 may break some client applications and should be explicitly mentioned.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vikramrajkumar picture vikramrajkumar  路  5Comments

MichelSantos picture MichelSantos  路  9Comments

abitmore picture abitmore  路  9Comments

bitcoiners picture bitcoiners  路  7Comments

carlo-fontanos picture carlo-fontanos  路  8Comments