UPDATE: The launch of the Stacks 2.0 network has been triggered! The threshold trigger was reached at block 665250, export will be at block 665750, and Stacks 2.0 genesis should be at 666050.
Hi Everyone!
The sequence of events to launch of the Stacks 2.0 mainnet is here! In the next 24 hours, miners will be able to upgrade to the latest Stacks 1.0 release, and take part in triggering the transition to Stacks 2.0 mainnet. @diwaker has previously outlined the upgrade process from Stacks 1.0 to Stacks 2.0 in this forum post, and this other forum post.
We wanted to put together a checklist for miners to better guide them through the process of participating in the upgrade. If you want to be a miner on the Stacks 2.0 mainnet, follow the below checklist. We recommend completing this checklist before January 12th if you want to participate in the Stacks 2.0 launch as a miner:*
Set up access to a Bitcoin node. You can self-host, get together with other miners to share a node, or try to use a publicly-accessible bitcoin node. While running a Stacks miner has no specialized hardware requirements, if you plan to self-host bitcoin, please be aware of the requirements to run bitcoind
Join the Stacks Discord. The #mining channel will be the place for live support.
Register a name in the .miner namespace starting on January 8th. Documentation for registering a name can be found below in the FAQ section.
Note: As soon as 20 miners have registered, a countdown will begin:
300 blocks after this threshold is reached, a final snapshot of Stacks 1.0 state will be generated and any further Stacks 1.0 transactions will be rejected
300 blocks after that(so,600 blocks after the threshold trigger), Stacks 2.0 code will start processing burnchain blocks and be ready to mine the genesis block.
*Stacks 2.0 software will import the exported snapshot from the above step to instantiate the Stacks 2.0 genesis block. The Stacks 2.0 chain will go live 600 blocks (~4 days) after the threshold trigger(so300 blocks after the export step). Note that this means there’s going to be a“deadtime” of ~2 days during which no new Stacks 1.0 transactions would be admitted and Stacks 2.0 would not have launched yet.
Monitor the Stacks Forum for PBC to publish the Stacks 2.0 release build. As soon as the build is published, start running a node on it. If you are already running a Stacks 1.0 node, you will need to upgrade and restart your node/miner.
Have enough BTC to commit for 1 week or more.
Be prepared to restart your official stacks node and/or update software, potentially multiple time, during the first weeks of the mainnet.
To further help miners through this process, Daemon has set up a number of office hour sessions this week and next. The full schedule is as follows:
Lastly, please use this forum thread to ask additional questions. We will continue to add to the FAQ below as questions come in.
FAQ
How do I get a name in .miner?
> * Using the Stacks CLI register command https://docs.blockstack.org/references/stacks-cli#register
>
> 1. Install the Blockstack CLI for the 1.0 network
>
> npm install -g https://github.com/blockstack/cli-blockstack
>
> 2. Use the register command to register the name. You need BTC in the address that shows up when you use the get_address command with your private key.
>
> blockstack-cli register <NAME>.miner <OWNER_PRIVATE_KEY> <PAYMENT_KEY> https://hub.blockstack.org
>
> Substitute <NAME> with the desired name
>
> Substitute <OWNER_PRIVATE_KEY> and <PAYMENT_KEY> with the corresponding private keys. The payment key can be the same as the owner key. The owner key must be the private key corresponding to the STX address of the miner.
>
> This command will queue and broadcast 2 Bitcoin transactions. 7 confirmations for each transaction are required for the name registration to complete. This takes about 2 hours.
>
> Cost to register a 5 character name is ~0.001 BTC or $40 USD.
Having a hard time getting the 1.0 up and running:
root@blockstack:/home/derek/stacks-blockchain# blockstack-cli --help
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module ‘…/lib/index’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/usr/local/lib/node_modules/blockstack-cli/cmd/index.js:3:1)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
problems here as well, node v14.15.4, npm v.6.14.10, ubuntu 18.04
after fixing the EACCES errors i’m getting a similar error:
blockstack-cli --help
internal/modules/cjs/loader.js:883
throw err;
^
/usr/local/lib/node_modules/blockstack-cli/cmd/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object. (/usr/local/lib/node_modules/blockstack-cli/cmd/index.js:3:1)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
code: ‘MODULE_NOT_FOUND’,
requireStack: [ ‘/usr/local/lib/node_modules/blockstack-cli/cmd/index.js’ ]
}
Do I send ~$50 to the BTC address that I have a private key to for this registration? And can I use the address provided by make_keychain in 2.x stack cli?
FWIW, I used the stacks2 cli to generate my address pairs and phrase. worked good, got it working in the stacks wallet, got registered once I got nvm installed with node 12 installed. I intend to use the same STX/BTC pair to mine and stack
I understand that after 1 week I might not have won one block
I understand that there is a roadmap for more features for 2.1 and I am happy with the features of 2.0
I understand that I have to restart the official stacks node to change the commit amount (or use a fork) and that the average of min and mean of the last 6 blocks is used for sortition