9th update of 2021 on BlockTrades work on Hive software

Below is a list of Hive-related programming issues worked on by BlockTrades team during the last few weeks:

Hived work (blockchain node software)

We finished implementing and testing the following hardfork 25 changes:

New operation and associated API calls to convert Hive→Hive dollars (HBD) as a means of improving upside pegging of Hive dollars. For more information, see @blocktrades/proposed-hardfork-change-to-stabilize-hive-dollar-s-tracking-of-usd-value

Hive dollars must be stored in a savings account to earn interest. For more information, see: @blocktrades/proposal-to-make-hbd-interest-payable-only-to-savings-accounts

Completed testing and created examples demonstrating functioning of new curation reward rules

New unit tests: https://gitlab.syncad.com/hive/hive/-/merge_requests/195

Fixed small issue that caused vote expiration to happen one block later than it should

Allow votes on posts after they have paid out (votes once again allowed on posts older than 7 days)

We also reviewed @howo support for recurrent transfers in HF25 and expect to merge those changes in tomorrow.

Other work on hived

Simplified cmake build options for hived (eliminated various hived build configurations like LOW_MEMORY_NODE and CLEAR_VOTES that weren’t practically useful and mostly just caused confusion).

Removed support for COMMENT_CONTENT_SUPPORT

Improved reporting and debugging capabilities of unit tests

Allow running a subset of the entire suite based on a filter

Updated get_config API call with new configuration variables

--force-reply command-line option no longer also requires use of –replay option and it also automatically deletes the shared_memory file, eliminating that manual step

Proposal ids are now reported by proposal-pay virtual operation

Clear the memo key of hive.fund as requested by @smooth

Fix the version of hived reported when SMTs not enabled

Fix a problem with static builds and libreadline

Unify the version of C++ used when building hived and refactor cmake files so that it only requires a change in one place.

Currently we’re using C14 for the hardfork. We tested with C17 and found one bug, which we fixed, but decided to delay making C17 the standard version for builds since we’re getting close to hardfork time. After the hardfork, we’ll likely move to C17 or C++20 for future development.

Hivemind (2nd layer applications + social media middleware)

Fixes and improvement to community mute functionality

Fixed pagination of bridge.list_community_roles

Modular hivemind

We’re making solid progress on modular hivemind, especially with regard to fork resolution handling. It looks like we’ll be able to avoid the need for a C extension to postgres and can instead rely on a “SQL-only” solution using “shadow tables” to save and restore changes to the tables that store data that can be changed when hived switches to a different micro-fork.

Condenser

We made several fixes to condenser and also reviewed some new features by @quochuy and @jpphotography.

Upcoming work

Hived code freeze and launch of testnet

We plan to merge in the remaining hived code changes (a few minor fixes + recurrent transfers support) tomorrow, then assist in launch of testnet on Wednesday.

We’ll test for two weeks, then hopefully be ready to merge the release candidate into the master branch, at which point we’ll give exchanges at least 30 days notice to update.

So if no problems, we can expect the hardfork in about six weeks from Wednesday.

Test latest hivemind changes

We’ll be running a full sync of hivemind with the latest changes, then test real world performance in a production environment on api.hive.blog, followed by a production release to the API nodes next week if no problems are found.

SQL Account history plugin for hived

We plan to complete the changes to the SQL account history plugin that pushes data to postgres (eliminating the need for hivemind to pull the data via RPC calls) in the new couple of days.

After the plugin changes are completed, we’ll run a simultaneous replay of hived with a full sync of hivemind to measure the speedup, and see if it matches our expected improvement in hivemind full sync time (we expect 2 days versus the current 4 days required).

H2
H3
H4
3 columns
2 columns
1 column
30 Comments
Ecency