2nd update of 2021 on our Hive software work

in HiveDevs4 years ago

This is the 2nd update of 2021 on the Hive programming work being done by the BlockTrades development team.

We’ve recently been having meetings to decide how best to approach some of the larger upcoming tasks (modular hivemind framework, smart contract platform, etc) and what things we need to prototype first.

While we’re waiting for those prototypes to be be built, we have a number of programmers free to work on smaller tasks, so we’re prioritizing a lot of “low-hanging fruit” tasks that are relatively easy to do and still provide useful benefits. This means we’re reviewing a lot of the existing open issues in Hive’s gitlab repository, closing completed issues that didn’t get properly marked as done, deciding which open issues we can complete quickly, and discussing possible implementations of these issues with other Hive programmers.

Below are some of the tasks we completed during this period on various Hive projects:

Hived work (blockchain node software)

To avoid potential performance problems, the ability to vote on expired DHF proposals was disabled:
https://gitlab.syncad.com/hive/hive/-/merge_requests/161

New tests were created to check a hived node’s behavior when replaying the node and stopping and restarting the node (this work was done a while ago, but only recently merged into the development branch): https://gitlab.syncad.com/hive/hive/-/merge_requests/89

One of the prototyping projects going on right now is the plugin for directly writing data from hived to hivemind. The work for that is going on here: https://gitlab.syncad.com/hive/hive/-/commits/km_live_postgres_dump/

As part of the above task, there’s been some debate about how we might want to introduce new data computed in hived into hivemind. Generally speaking, I hope that we don’t need to introduce a lot of new types of data that aren’t already there, but we know of at least some accounting information, for example, that isn’t currently shared with hivemind.

I think the simplest method for this is just to have hived generate some new virtual operations when it processes a block, since all virtual operations are already being passed to hivemind. Virtual operations are essentially “side-effects” of user-generated operations that report about how those operations changed the internal state of the blockchain.

However, some of the other Hive programmers are concerned about the potential performance impact of generating these additional operations (especially if we found the need to generate many more, which could also lead to problems keeping the code simple), so we’re going to do some performance testing with a prototype that BlockTrades has already written that generates these additional operations, measuring it against a version that doesn’t.

It’s also worth noting that we could conceivably make generation of many virtual operations optional and configure a hived to only generate the virtual operations that a given hivemind configuration needed. The issue for this task is: https://gitlab.syncad.com/hive/hive/-/issues/111

Hivemind (2nd layer microservice for social media)

Here’s a list of some of the code changes that were merged into hivemind this work period:

Improvements to the code for upgrading a hivemind database to a new version of the database schema: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/457

A fix to user notifications: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/457

Improvements to interrupting both the fast sync and live sync indexing process (interrupting with CTRL-C and restarting operation): https://gitlab.syncad.com/hive/hivemind/-/merge_requests/435

Improved testing of mute and follow_mute operations: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/433

Speedup of get_follow_list API call: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/440

Increase the amount of version information available via API about an API node’s hivemind version (see issue https://gitlab.syncad.com/hive/hivemind/-/issues/124 for more details):
https://gitlab.syncad.com/hive/hivemind/-/merge_requests/462

Add some code to measure time consumed after initial sync (time to “vacuum analyze” tables to build table statistics to improve SQL query planning, generate indexes needed by API calls, etc): https://gitlab.syncad.com/hive/hivemind/-/merge_requests/464

We also continued to work on extending the coverage of hivemind tests over Hivemind's extensive API.

Condenser and web wallet (software that powers hive.blog and similar sites)

We made some fixes to the hive web wallet, to handle issues related to the display of transfers on old accounts that didn’t have much recent activity:
https://gitlab.syncad.com/hive/wallet/-/merge_requests/85
https://gitlab.syncad.com/hive/wallet/-/merge_requests/87
https://gitlab.syncad.com/hive/wallet/-/merge_requests/90

Near-term work plans and work in progress

On the hived side, we continue to work on the governance changes discussed in our six-month roadmap post.

On the hivemind side, since we’re now working on directly injecting the blockchain data into hivemind, we also need to change the hivemind indexer (which takes the raw blockchain data and builds the auxiliary tables used to answer hivemind API queries). Previously the indexer made API calls to hived to get the raw blockchain data, so now that code has to be changed to get the data from the block and operations tables created by the hived plugin.

We’re also going to experiment with using the block and operations data stored in hivemind by the hived plugin to serve up the get_account_history API data. I believe we can tremendously speedup the performance of these API calls in this way and allow for full querying of the history of a user’s operations with extensive filtering capabilities. This issue for this task is: https://gitlab.syncad.com/hive/hivemind/-/issues/132

Both of the above tasks are tightly related to the design of the modular hivemind framework and serve as prototypes for its functionality. Modular hivemind, in turn, will likely serve as the basis for our smart contract platform.

Sort:  

Is there a high level explanation for what the different things you all are working on will enable? Like what does it mean for the end user, for developers? What additional utility/functionality does it mean?

Yes, check the link in the 2nd paragraph, it's a roadmap post.

thanks!

Hive-engine is beginning to decentralize, will there be any significant differences with the new smart contract platform?

Yes, there will be significant differences in implementation. There's no reason they can't coexist, though. There'll just be more options.

will be a side chain for smart contracts have the same security level as the mainchain? Will exchanges to be able to list them without a monster workout?

ETH is so expensive for transactions, I would love to see the tech on hive. Potential is soooooooooooooooooooooooooooooooooo huge.

nice work,

cant wait for the major updates :)

Thank You!

Are Smart Media Tokens or something similar going to be implemented in the next hard fork?

We're planning to have some form of framework for user-created tokens. Right now I'm leaning towards one based on smart contracts, for maximal flexibility.

+1 for smart contracts tokens

What about the code that was from the former steemit team? Is the onchain code that useless? I remember there was a testnet with some stability problems.

Is at some point planned to get more on the first layer or should it be all second?

The governance changes are just expiration of inactive governance votes & the change to the curation window correct? What is the current decision that was made on that curation timeframe following the discussion?

No decision was really made yet on the curation window time yet, as it's just a parameter that can easily be tweaked once the code is written (in other words, it doesn't have to be decided before the code can be written and tested).

All these sounds nice - but what happened to the promotion of all the cool stuff we are building ? Sometimes back we discussed about other people working on professional marketing of hive - it would be nice to get some updates on that.

None of the BlockTrades team is working on marketing activities; that's one area I'd prefer other people take up. However, we're happy to support the efforts of other groups by providing technical information and support, and by casting votes via the DHF to help fund marketing efforts and to see how they go.

It seems like there's many things that could be tried as far as marketing HIve: 1) professional marketing from a marketing agency, 2) dedicated marketing people that just focus on Hive and nothing else, and 3) grass-roots marketing (potentially incentivized in some way). There's also a lot of channels that need to identified and tested to determine which ones effectively reach people that might be interested in Hive: 1) advertising on crypto sites, 2) guerilla marketing, 3) press releases, 4) publishing of technical papers, etc.

that's one area I'd prefer other people take up

Even @theycallmedan agreed that marketing is one of his focus areas. Do we know, if anyone is actually working on it ? If not, then we seriously need to find out some one who could start on this and get funded by DHF.

My main focus has been cultivating grass roots marketing on Hive and experimenting with ways to incentivize Hivers to be active. OCD has been helping a lot on this front with Posh, now HivePosh. Myself, I'm not professional marketing; I've always built communities from the ground up with zero spent on legacy marketing. However, I see that as a thing we could use, esp in the press releases to crypto sites, contacting those sites that do "Top 5, etc., etc.," which Hive can be related with. When I search duckgo, for example, I type in decentralized social media, I see many of those "Top 10 Decentralized Social Media Sites," and I don't see Hive there. These are little wins we can do for pretty cheap; we just need to be consistent.

I'm going to hire a marketer from Upwork, someone with lots of experience and good ratings, a professional. I'll do it for one month, and if it proves fruitful, a DAO prop can be made to hire them full time.

I will emphasize this is a get in where you fit in environment. The worse mistake you can make is relying on someone else to do something. If we all just did whatever we could, big or small, the difference will be night and day if we keep being consistent.

I'm going to hire a marketer from Upwork, someone with lots of experience and good ratings, a professional. I'll do it for one month, and if it proves fruitful, a DAO prop can be made to hire them full time.

That guarantees that we will at least start with something. And we should showcase more about the capability of the blockchain, monetary incentive should be emphasized at the last. @blocktrades can provide all the technical advantages of this great platform along with the vision of what all are coming.

If Wallet creation tokens would be more flexible + reward share like Hive onboard, I think affiliate marketer would give it attention.

IMO Influencer marketing would work the best + guest posts. Agency works most of the time on to high rates and to fewer returns. It will be always compared to eCommerce. That would make the user price expensive.

Funding Esport tournaments can also work. 10k HDB or USD price pool would bring a lot of attention to Hive and it's cheaper as an Agency.

in commercial breaks, there can be " how hive work" videos to show what hive is and how to use it.

Great work!

Taking account history to hivemind will be super... 🚀 It would mean even more lighter full nodes, I think at least hived side would really lighten up and with modular hivemind, it will be next level of social network on Blockchain.

+1 for smart contract based user created tokens.

It sounds very nice. Keep it up