How to Survive Eclipse - Cheat Sheet (Updated)

in Blockchain Wizardry12 days ago (edited)

Here it is, a long awaited code upgrade for Hive. Codename: Eclipse.

Yet another, very short, promotional HD video clip rendered for a brand new Hive fork 24.

Eclipse

v1.24.2
It’s a major technology upgrade, the first after Hive was born.

github_changes.png
978 changed files with 107,124 additions and 101,082 deletions.

This simple Cheat Sheet is meant for the Hive node operators that are upgrading from v0.23.0 to Eclipse.

Basic sysop skills and previous Steem / Hive experience is required.

"version" : { "hive_blockchain_hard_fork" : "1.24.2", "hive_git_revision" : "00b5ff5573dcaa1c54ed8ed9cfbde06dee269c7e" }

HardFork Time

HardFork Time is the earliest point in time when the HardFork rules can be applied.
From that time onward whenever a supermajority of Hive witnesses taking part in a block production round votes for the Eclipse (i.e. runs the code), its rules will be in place.

When?

https://github.com/openhive-network/hive/blob/v1.24.2/libraries/chain/database.cpp#L64
1601992800; // Tuesday, 06-Oct-2020 14:00:00 UTC

Right away

If at the HardFork time a supermajority of consensus witnesses is running v1.24.2, Eclipse will start right away.

Some time later

If witnesses decide that we are not ready and continue to run the old version of the code, the HardFork will be postponed until a supermajority is reached. That's very unlikely now.

Moving the date forward

Most likely in the above scenario, a new version will be released with a new date for a coordinated switch at a predetermined time.
That's very unlikely to happen (only in case of some breaking issues that we will be unable to fix on time).

What are we waiting for?

Hivemind.
While it’s not required for Hive as such (it’s non-consensus, 2nd layer), its API is needed by many dapps, including condenser. We have to be sure that it works on an acceptable level. Once it’s up and running, we are good to go.

Changelog Cheat Sheet

Here’s a simple list of changes that might help you move quickly from v0.23.0 to v1.24.2.

  • Release notes: https://gitlab.syncad.com/hive/hive/-/releases
  • The supported and recommended system is Ubuntu 18.04 LTS.
  • General purpose docker images are not ready (yet).
  • The name of the binary changed from steemd to hived.
  • Default data-dir changed from $HOME/.steemd to $HOME/.hived
  • The old account_history plugin is deprecated. Use the RocksDB version of account_history plugin and adjust the corresponding variable names:
    i.e. instead of plugin = account_history account_history_api
    use plugin = account_history_rocksdb account_history_api
    And instead of track-account-range = and/or account-history-track-account-range = use account-history-rocksdb-track-account-range =
    Such as:
    account-history-rocksdb-track-account-range = ["binance-hot","binance-hot"]
    Please note that if you want to track more than one account you need to specify them in the following way:
account-history-rocksdb-track-account-range = ["binance-hot","binance-hot"]
account-history-rocksdb-track-account-range = ["bittrex","bittrex"]
account-history-rocksdb-track-account-range = ["blocktrades","blocktrades"]
account-history-rocksdb-track-account-range = ["deepcrypto8","deepcrypto8"]
  • Default shared-file-size = 54G can be safely scaled down to shared-file-size = 24G or even shared-file-size = 20G. Keep an eye on it, use scaling or just set it big enough. Up to you. 20-ish should be good for many months.
  • Replay is required while upgrading from v0.23.0. Make sure that you adjust your configuration and locations first.
  • To do a replay, you can use your old block_log file.
  • If you don’t have one, you can use one from a public source such as: https://gtg.openhive.network/get/blockchain/block_log
  • To replay from scratch using an existing block_log file use --replay --force-replay.
  • Some cmake variable names changed, so instead of STEEM_STATIC_BUILD there’s HIVE_STATIC_BUILD, etc.
  • Check my Witness Update: Release Candidate for Eclipse is out for more info about building and configuration.

Test API Endpoint

https://beta.openhive.network
Runs jussi, hived v1.24.0 and the develop branch of hivemind.
Known issues (being worked on): reputation and notifications.

Any questions?

Ask them here in the comments or on the OpenHive.Chat but please be patient.
I may respond...

...with delay.

(I really need vacation and quality time with family. Don't worry, I'll be around.)[EDIT: CANCELED]

Sort:  

I confirm that it can't be build on Ubuntu 20.04 LTS (cmake error).

Is it required to switch to a specific tag after cloning? I saw a v1.24.0 tag and in your last post it was required to switch to v1.0.11.

What is the use case for tracking a range of account with account-history-rocksdb-track-account-range?


Witness FR - Gen X - Geek 🤓 Gamer 🎮 traveler ⛩️
Don't miss the Hive Power UP Day! more info here

You can try my patch to add Ubuntu 20.04 support:
https://gitlab.syncad.com/hive/hive/-/commit/f0c1b6671dfeae9afd6a145e7637793ca639fe2e
e.g. git cherry-pick f0c1b6671dfeae9afd6a145e7637793ca639fe2e
No promises though.

Thanks @anyx for the patch, I'll give it a try on my test server 🙂


Witness FR - Gen X - Geek 🤓 Gamer 🎮 traveler ⛩️
Don't miss the Hive Power UP Day! more info here

Yes, you need to git checkout v1.24.0 after cloning.
Previous post is about release candidate, that's why there's v1.0.11 there.
Tracking accounts is for exchanges; they need keep track of account history for their account.
Without explicitly specifying account range, all accounts are tracked by account_history_rocksdb plugin.

Ok, thanks @gtg for the information, for the plugin too. It's not easy to understand the real use case of all plugins, even using https://developers.hive.io/apidefinitions as a help.


Witness FR - Gen X - Geek 🤓 Gamer 🎮 traveler ⛩️
Don't miss the Hive Power UP Day! more info here

Why did we settle on v1.24.0 instead of v0.24.0? On that note, shouldn’t it be v1.0.0 instead?

It's a major upgrade so it deserves leading 1, but it's still HardFork 24.
It's like that:

 +--- major
 v
v1.24.0
   ^  ^--- patch (updates within given hardfork version, security patches, improvements)
   |
   +--- minor (equals to hardfork number)

Oh, okay. Thanks. I was under the impression all other numbers reset to 0 after a major version upgrade.

Yes, in normal versioning it's usually like that.
We are not normal ;-)
(All because that "minor" being equal to HF number, we wanted to keep that)

Assuming the time is in UTC. Should we refrain ourselves from exchanging tokens that day?

No, there's no need for that. Some of the exchanges might - as a precautionary measure - temporarily disable deposits and withdrawals, but trading should not be affected in any way (exchanges use their internal ledgers).
Of course it's always safer not to keep your funds on exchanges if you don't have to.

I hope you get that quality time with family and some time to relax. May friendly dragons watch over you like guardian angels. ;)

Thanks for your work Gandalf!

It is very good when there are changes and updates. This means the site will work stably and without bugs. If I understand correctly. Thank you for your great work.

Can't wait for

Tuesday, 22 September 2020 14:00:00

Hope it all goes smoothly. Looks like we have all the good developers with the experience to make it happe.

Cheers and a !BEER

Congratulations @gtg! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You published more than 80 posts. Your next target is to reach 90 posts.

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


Hey @gtg, here is a little bit of BEER from @steevc for you. Enjoy it!

Learn how to earn FREE BEER each day by staking your BEER.

Great, thanks for tips as usual!

@gtg, This is Impactful video and i want to appreciate this kind of Creative Force.

With Hard Fork comes different perceptions. Hope that perceptions can find the Point Of Equilibrium.

I am Blank when it comes to the Technical Side of any aspect. Hope that this potential change is good for Community.

Thank you for sharing this Information with the Community.

Have a abundant time ahead and stay blessed.