Blockstack Hard Fork 2019

UPDATE

The hard fork has been pushed to October 18, 2019.

Hey Blockstackers,

It’s that time of year again! It’s time for the annual hard fork of 2019. This is something we’ve done every year since the beginning to release backwards-incompatible protocol fixes and upgrades. For example, last year’s hard fork of 2018 introduced the Stacks v1 blockchain with native STX tokens, and the year before that added segwit-p2sh support and let users combine some operations into a single transaction. These, in turn built off of work from the 2016 and 2015 hard forks.

As discussed back in 2018, we plan to feature at least two hard forks in 2019. The first one (this one) will introduce the tokens from the recent Regulation A and Regulation S sales, as well as the August and September app mining STX payouts. If you participated in the Regulation A or Regulation S offerings or received STX tokens in app mining, this hard fork instantiates your tokens and begins the unlock process for them.

This hardfork should not be confused with the upgrade to Stacks blockchain v2. The hardfork to Stacks blockchain v2 with native mining is expected in Q1 2020 or later. We plan to introduce Tunable Proofs mining, Clarity smart contracts amongst other things. The testnet for Stacks blockchain v2 is expected to go live in Q4 of this year.

The Oct’19 hard fork is expected to go live on or about October 18, 2019, at Bitcoin block 599866. If you participated in the Regulation A or Regulation S offerings or participated in App Mining, you can verify your token allocation and unlock schedule at https://explorer.blockstack.org/verifier

How To Upgrade a Blockstack Core Node

If you run a Blockstack Core node, you must upgrade your core node to the new fork. To upgrade, you would do the following once the new version is released:

  1. Move your old ~/.blockstack-server directory to a ~/.old-blockstack-server directory. Do not delete it, you will need the ~/.blockstack-server/blockstack-server.ini file.
  2. Make a new ~/.blockstack-server directory.
  3. Copy over your old ~/.old-blockstack-server/blockstack-server.ini file to your new directory.
  4. Grab the latest Blockstack Core from source or PyPI. To do so, run pip install blockstack in your terminal.
  5. If you aren’t booting up from genesis, skip this step and go to the next. Otherwise, run blockstack-core --debug fast_sync in your terminal.
  6. If you are booting from genesis, run blockstack-core --debug start. You can watch the node spin up in ~/.blockstack-server/blockstack-server.log with tail -f.

We will post a link on this forum post when the code is in PyPI and ready to download. The only remaining changes are to add some new entries to the genesis block file that grant ownership to the unallocated tokens that were sold.

A previous version of this post had listed the hard fork date as October 9, 2019. Prior to that date, we had released a draft genesis block and self-service audit page, linked above, and we were in a position to execute the hard fork by this original date. However, we’ve received many support requests and questions leading up to that date, and we wanted to ensure we left ample time to address all the concerns and questions of our users. Per the offering circular filed with the SEC, we may take up to an extra 30 days (for a total of up to 60 days from the end of the sale) to prepare for the technical delivery of the token, and so we are taking approximately 10 of those 30 extra days to address the support requests and questions.

6 Likes

Thanks for the update, Jude!

Folks can track the progress of the Stacks blockchain v2 upgrade here – that one is going to be the “big upgrade/fork”.

2 Likes

Just posted an update. Everyone, please re-read the original text with edits.

2 Likes

Thanks @jude! delivering on promises! The Blockstack Way!

1 Like

The software is now available on pip: https://pypi.org/project/blockstack/21.0.0.2/

To install, simply run:

$ pip install blockstack==21.0.0.2

You can also install from source as follows:

$ glt clone https://github.com/blockstack/blockstack-core
$ cd blockstack-core/
$ ./setup.py build
$ ./setup.py install

(Note that you may need to run pip install or ./setup.py install as root).