Below is a quick overview of work did last week by the BlockTrades team on hardfork 24:
Hived progress
Originally, we hoped to put out a release candidate on Monday of last week, but this was not to be: we discovered a bug in the snapshot code during last minute testing. Ultimately we traced the problem down to a long-standing bug in the fc library’s serialization code for boost interprocess vectors that the snapshot algorithm depends on.
https://gitlab.syncad.com/hive/hive/-/merge_requests/105
On Friday, after fixing the snapshot bug and verifying proper snapshot operation, we decided we were ready to tag a release candidate so that witnesses and other interested parties can begin testing Eclipse in various testnet configurations. The source code and a description of the new features added in release candiate v1.0.11 are located here: https://gitlab.syncad.com/hive/hive/-/tags/v1.0.11
Over the weekend, a couple of the witnesses began simple stand-alone testing such as replaying the blockchain with mainnet data and testing the snapshot feature, so I expect we’ll see some posts this upcoming week with real world performance data on various types of hardware/software setups.
Hivemind progress
A lot of work last week continued to be spent on hivemind. We fixed bugs and differences we found between API results between old hivemind and Eclipse hivemind. The include bugs related to post last update time, sorting orders for hive posts, and trending tags. We also re-implemented the hot/trending algorithms in hivemind (previously this was done in hived).
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/82
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/94
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/89
We also added more logging to record the times that hivemind spent processing each operation and virtual operation during the synching process. This will be helpful in the future when we want to do more optimizations to overall sync time, by allowing us to isolate the bottlenecks during syncing (both initial sync and live synching as new blocks are created).
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/73
One of the problems we’ve faced working with hivemind is that sometimes we find some functionality that seems “questionable” in terms of usefulness, so we’d like to drop it. But we’re never really sure that there’s not some app out there that uses the functionality. For example, we found an “active” flag that gets set on a post when a comment is added to its children tree. I don’t know of any frontend that uses this, and it seems needlessly expensive to update the database in this way. But for now, in such cases we’ve decided to just maintain compatibility with the old functionality, since we don’t have time to poll the apps community to make sure no one uses this or similar types of functionality. Related MR: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/94
Plans for this week
@howo and @gtg will be coordinating with witnesses to setup testnets, both for testing of hived itself, and for eventual testing of app compatibility (once eclipse hivemind is released).
For hivemind, the last major issue we need to work on is notifications. We’ll be meeting tomorrow to analyze why this code isn’t currently working, and also looking at potentially faster ways to implement it, since the current implementation doesn’t appear particularly efficient.
We now have 3 people dedicated to creating api tests for hivemind. In the coming week, we plan to review and integrate the new tests that have been created. For those who like to see the details of the tests we use, note that these commits are made to the test_api repo, not the hivemind repo.
We’re also planning to begin a final hivemind sync using Eclipse early this week, so that we can try a quick smoketest with a condenser instance by Friday (a hivemind sync takes about 3 days). This will be our first opportunity to try out a full API node based on Eclipse. If that goes well, we would like to setup an Eclipse node for apps testing by sometime next week.
At this point, we don’t expect to make any more changes to hived unless errors are exposed during testing, except for setting the final HF date. Because we lost several days due to the fc bug, we’ve upped the expected HF date to September 16, to give witnesses and apps developers more time to test. Please note this is still a tentative date, and is subject to change if errors are discovered during testing.