Grin First Hard Fork (Mid-July)

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:

  • Node API: change the v1/pool/push endpoint to v1/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
  • Upgrade Grin to v2.0.0 or greater.
  • Upgrade Grin-wallet v2.0.0 or greater (can only create transactions AFTER hard fork).
  • Update exchange infrastructure for wallet API V2.
Miners
  • If you are mining C31: No action is required.
  • If you are mining C29:
    • Upgrade to latest grin-miner.
    • OR Upgrade to latest Cuckarood29 compatible mining software.
Pools
  • Upgrade Grin to v2.0.0 or greater.
  • Upgrade Grin-wallet v2.0.0 or greater (can only do create payouts AFTER hard fork).
  • Update pool infrastructure for wallet API V2.

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:

12 Likes