Important Block Heights and Dates
Event | Date or Block |
---|---|
Testnet Hard Fork Block Height | 185,040 |
Testnet Hard Fork Date (expected) | 2019-06-23 |
Hard Fork 1 Block Height | 262,080 |
Hard Fork Date (expected) | 2019-07-17 08:27:21 UTC |
Summary
As previously announced, Grin will fork four times in its first two years of existence, every 60*24*7*26 = 262,080 blocks (roughly 6 month intervals), set in the code to block heights 262,080, 524,160, 786,240, and 1,048,320. The first network upgrade is expected to happen in mid-July. Compatible versions of grin node, grin-wallet, and grin-miner will be versioned 2.0.0 or greater. The first releases of these are scheduled for June.
This document describes the breaking changes, timeline and communications that will take place, with the intention that this upgrade goes as smoothly as possible and that ecosystem participants can make the necessary preparations.
Important Information:
Grin v2.0.0 is a network wide upgrade. Apart from updating their binaries in order to transact after the upgrade, users are not required to do anything. Stored grins will not be affected. Beware of scams telling you to move your coins anywhere.
Breaking Changes
The following changes are breaking changes.
Node:
- New secondary proof-of-work. As announced, Grin will be tweaked every 6 months to discourage ASICs manufacturers from building specialized hardware for it. As such Cuckaroo29 will be deprecated for Cuckarood29. Mining software must upgrade their solver.
- Cuckarood29 is defined here: mid-July PoW hardfork: Cuckaroo29 -> Cuckarood29
- Cuckarood repository: https://github.com/tromp/cuckoo
- Corresponding Grin HF PoW PR: https://github.com/mimblewimble/grin/pull/2866.
- Grin-miner pull request: https://github.com/mimblewimble/grin-miner/pull/214.
- Node API: change the
v1/pool/push
endpoint tov1/pool/push_tx
endpoint, to create a minor incompatibility (that should only really affect wallets,) which will prevent pre-2.0.0 wallets from posting to a pre 2.0.0 node: https://github.com/mimblewimble/grin/pull/2897
Wallet:
- Change in the bulletproof rewind scheme: https://github.com/mimblewimble/grin-wallet/issues/105. The new scheme will increase wallet flexibility and add the possibility to hide information into the bulletproof. In order to transact on the post hard fork chain wallets must upgrade to v2.0.0 or greater.
- API change to V2: V1 REST API is deprecated for V2 JSON-RPC API. Documentation is available here:
- Slate V0 (created with Grin version < 1.0.2) will be deprecated and not compatible with newer versions of Grin.
As such, minings pools, miners, exchanges, and every participant interacting with the Grin protocol must upgrade to v2.0.0 or greater. Unupgraded nodes will not accept new blocks past the hard fork point and unupgraded wallets will not be able to build and publish transactions past the hard fork point.
Compatibility
Until the time of the hard fork, 2.0.0 wallets are fully compatible with 1.1.0 wallets to send and receive grin, as long as v2 slate version are used to send. These are used by default in v2.0.0. To send a v2 slate using wallet version v1.1.0, include the -v 2
flag in the send command.
Actions Required
Actor | Actions Required |
---|---|
Exchanges |
|
Miners |
|
Pools |
|
Timeline
In order to guarantee a smooth upgrade for everyone, Grin developers have set the following timeline:
Date | Milestone | Description |
---|---|---|
2019-05-28 | PoW Release | New secondary proof of work is released along with a basic solver. |
2019-05-31 | Features Freeze | Adding new features is suspended. Focus on bug fixing. |
Beginning of June | Private Testnet | Launch of private testnet to fix bugs. |
2019-06-18 | Beta Binaries Release | Release of grin, grin-wallet, grin-miner beta binaries. |
2019-06-23 | Floonet Hard Fork | Launch of Floonet hard fork and public testing. |
2019-06-30 | Code Freeze | No changes are permitted on the branch to be released except critical bugs. |
2019-07-01 | Binaries Release | Release of grin, grin-wallet, grin-miner binaries. |
2019-07-17 05:47:17 UTC | Mainnet Hard Fork | Mainnet Grin is forking. |
NB: Actual dates (but not the hard fork block height) may vary slightly based on the current circumstances.
Communication
Prior to the hard fork, the Grin team and community will communicate with the following medium:
Date | Milestone | Description |
---|---|---|
2019-06-10 | First banner on grin.mw | First banner on grin.mw with a link to a summary of what will happen. |
2019-06-10 | Communication with exchanges and mining pools | Communicate with exchanges and mining pools and make sure everyone is ready for the upgrade and offer assistance as required. |
2019-07-01 | Banner update on grin.mw with binaries | Two weeks prior update the banner to urge mining pool and exchange to upgrade. |
2019-07-10 | Final banner on grin.mw | One week prior update the banner to urge mining pool and exchange to upgrade. |
Directly After Hard Fork | Post hard fork banner on grin.mw | Just after the hard fork add a banner on the website talking about the hard fork, the changes introduced, and links to the latest binaries. |
Contact
For any feedback, questions, concerns, or problems, please contact Daniel Lehnberg:
- Email: daniel.lehnberg@protonmail.com
- Keybase: @lehnberg
- Gitter: @lehnberg