Release 3.0.0.0.0: Stacks 3.0 Hard Fork

16 views
Skip to first unread message

Jesse Wiley

unread,
Oct 23, 2024, 4:10:28 PMOct 23
to announce
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello,

We have released Stacks Core version 3.0.0.0.0, available here: https://github.com/stacks-network/stacks-core/releases/tag/3.0.0.0.0.
This release implements the 3.0 Stacks consensus rules which activates at Bitcoin block `867,867`. For more details, please refer to SIP-021 (https://github.com/stacksgov/sips/blob/main/sips/sip-021/sip-021-nakamoto.md).
This is the second consensus-critical release for Nakamoto. Nodes which do not update before the 3.0 activation height (`867,867`) will be forked away from the rest of the network.
This release is compatible with 2.5.x.x.x chainstate directories and does not require re-syncing from genesis.
The first time a node boots with this version it will perform some database migrations which could lengthen the normal node startup time.


**Important notes**:
Any unrecognized and uncommented config value *will* cause the binary to panic.
The output will specify which configuration key caused the panic (there may be more than one, but the message will only show the first unrecognized key) in the format:
```
$ stacks-node check-config --config ./Config.toml
INFO [1729707354.217841] [testnet/stacks-node/src/main.rs:285] [main] stacks-node 3.0.0.0.0 (release/3.0.0.0.0:dd1ebe6, release build, linux [x86_64])
INFO [1729707265.671604] [testnet/stacks-node/src/main.rs:318] [main] Loading config at path ./Config.toml
WARN [1729707265.671992] [testnet/stacks-node/src/main.rs:325] [main] Invalid config file: Invalid toml: unknown field `foo`, expected one of `name`, `seed`, `deny_nodes`, `working_dir`, `rpc_bind`, `p2p_bind`, `p2p_address`, `data_url`, `bootstrap_node`, `local_peer_seed`, `miner`, `stacker`, `mock_mining`, `mock_mining_output_dir`, `mine_microblocks`, `microblock_frequency`, `max_microblocks`, `wait_time_for_microblocks`, `wait_time_for_blocks`, `next_initiative_delay`, `prometheus_bind`, `marf_cache_strategy`, `marf_defer_hashing`, `pox_sync_sample_secs`, `use_test_genesis_chainstate`, `always_use_affirmation_maps`, `require_affirmed_anchor_blocks`, `chain_liveness_poll_time_secs`, `stacker_dbs`, `fault_injection_block_push_fail_probability` for key `node` at line 20 column 1
```

For miners:
If you are currently using the config value `[miner].activated_vrf_key_path`, the saved json file will need to be removed prior to restart (it will be recreated).
You will also need to add a new key to the miner section:
```
[miner]
mining_key = "a valid private key" ## may be the same as [node].seed
```

The version of stacks-signer compatible with this release is 3.0.0.0.0.0, available at: https://github.com/stacks-network/stacks-core/releases/tag/signer-3.0.0.0.0.0.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Stacks Core:

## [3.0.0.0.0]

### Added

- **Nakamoto consensus rules, activating in epoch 3.0 at block 867,867** (see [SIP-021](https://github.com/stacksgov/sips/blob/main/sips/sip-021/sip-021-nakamoto.md) for details)
- Clarity 3, activating with epoch 3.0
  - Keywords / variable
    - `tenure-height` added
    - `stacks-block-height` added
    - `block-height` removed
  - Functions
    - `get-stacks-block-info?` added
    - `get-tenure-info?` added
    - `get-block-info?` removed
- New RPC endpoints
  - `/v3/blocks/:block_id`
  - `/v3/blocks/upload/`
  - `/v3/signer/:signer_pubkey/:cycle_num`
  - `/v3/sortitions`
  - `/v3/stacker_set/:cycle_num`
  - `/v3/tenures/:block_id`
  - `/v3/tenures/fork_info/:start/:stop`
  - `/v3/tenures/info`
  - `/v3/tenures/tip/:consensus_hash`
- Re-send events to event observers across restarts
- Support custom chain-ids for testing
- Add `replay-block` command to CLI

### Changed

- Strict config file validation (unknown fields will cause the node to fail to start)
- Add optional `timeout_ms` to `events_observer` configuration
- Modified RPC endpoints
  - Include `tenure_height` in `/v2/info` endpoint
  - Include `block_time` and `tenure_height` in `/new/block` event payload
- Various improvements to logging, reducing log spam and improving log messages
- Various improvements and bugfixes

Git commit hash: dd1ebe64603f54dae48558a5d82d9bd885e97a01

SHA512SUMS:
adf1fad55666b8c4871b0dfdb5206bed1523eb2c9f2fb2d8cdf75c07e481519e80aa7313af6e3aac363912a55c4e46b25eb45b268d10d3e20d382599233f7553  linux-glibc-arm64.zip
fef3b71f9bd67bb7d1245a2cba6530a798851242fe4a3c3ca137cebe7e2437d93b55037d462746ced951f6ae18e23a79e382e22a86e2d3054681dc1cca400560  linux-glibc-armv7.zip
e310f4ed0804fbfe27d0df43ced89fc2ee0e48eba12a5f7083f362b964ffa977509a7000c1803dd4f583353efa3293df350eeb9aa804aa6d62976823f721d9c6  linux-glibc-x64.zip
ff3f9bc971b081d144a80659a55090021cb8f60b117923c8a0da45423a04d417b2857022254b06e1bb2f0b995fd5a018de099bed8db557e18cbbc2091572797b  linux-musl-arm64.zip
7ec2c529489f53b246b3c9bb3855070022da61c34958a312641b9d9dfe6166b26347d90695785146456319df407d814313ba590cca9111ffe9a655c14d899ad7  linux-musl-armv7.zip
d64718e1d875615f7eb4e7d7d8e3fa25f93c4ac6ce92a15ee32314f01471ff0f9bc6d6bdb6c03fc05295f529565a7133b9fe812a2a806afb9457a2efe93cf5d4  linux-musl-x64.zip
c0735a311b208acb699943687f0c5755c8d7ad4a892e1f14d88b0c47d3710eda994414d2def4e393c697f5ed4b77b365e1c2025ad0c9e1800f8fa46dfb8323cc  macos-arm64.zip
9304a150806226827032a10d34b3639b6042a67545443cfbf3d0c590266561ad335bc09b5961ffd57d9c35ab1e4cdcfa6b04cfec78ccd23b6be924d8f88fd21e  macos-x64.zip
d22b5074e53d27da3d86d97b27417e4ad73a83a99ac5e70c56f2b30c8988b7edeae5b419cdc8737147bddf13738b8dcd4466ae1c05b80846d1f32543bf577458  windows-x64.zip

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Stacks Signer:

## [3.0.0.0.0]

### Added

- Improved StackerDB message structures
- Improved mock signing during epoch 2.5
- Include the `stacks-signer` binary version in startup logging and StackerDB messages
- Added a `monitor-signers` CLI command for better visibility into other signers on the network
- Support custom Chain ID in signer configuration
- Refresh the signer's sortition view when it sees a block proposal for a new tenure
- Fixed a race condition where a signer would try to update before StackerDB configuration was set

### Changed

- Migrate to new Stacks Node RPC endpoint `/v3/tenures/fork_info/:start/:stop`
- Improved chainstate storage for handling of forks and other state
- Updated prometheus metric labels to reduce high cardinality



Git commit hash: dd1ebe64603f54dae48558a5d82d9bd885e97a01

SHA512SUMS:
475fa205a36d509230d0a9fd340e008bd4b8625f1c9558b54527b7768e6de992a3a25dfd7841c5fa23081409e76aa99b90f92bcbecb7b9f31ccd0a8bfe115bda  linux-glibc-arm64.zip
cf68502df3e207117427fb4b3c3fc342f5e944fcae79a96ea34418a54f78d69c76e2cae9cbc1ef71505b86823fb1c907939bdcdb6e99e4f6f9ff870d358f3c26  linux-glibc-armv7.zip
f3fa9a85f839d49a26e84d68455c48d9b4cc1cd95967e0f7dab08b7d3affcd1c96e49820f75c4f27e1b1a2fdefe8aae32d58e17c3d9f6e517fd5266735cfe510  linux-glibc-x64.zip
73c0416353edd312f2d3e335d7e7d764e44e81eb42fa078f0143aeccceafe6ef5b66469d3cd4dfc7fd4bffa064711015678657736095090202ce09691025e79e  linux-musl-arm64.zip
451471a6f2c5e43be7a625955782014a63f958e432aafb9fdfb566aa6e35aef61739f55f313235c4896377c1d7ae82cd8ccc2b2dd567871f5175682fbb527f7e  linux-musl-armv7.zip
0faf0223fc08f792fc4cf22ad9e950cef5d8a5438e33c0c88248e652369c30a465bc7e7046d117314c5e006630a2933cae9c10334216536d99c773169279fffc  linux-musl-x64.zip
21f9e590284ce1e92b952652d9fdf323b0391f102cc84521648e0071ac7a07e6e83a480c68d80af2a04274c266f8412774eac8714fe9347fb2ddb8dab478d384  macos-arm64.zip
1fd1f784c42d92441319fe3b8c30ba2cde020e527d09f3d1fa0e904c4f1502c27683659f66627ea5075064cc64c53f35342ffdc8d77171255d86794a7f5ea54e  macos-x64.zip
911527ef1b67b942511f2d47a5c05d120737da91e4500ba0feb4e7cfa0832e34a4cd869647dc168ce42706a9dca174a188e6015d038b58b7aef8253db1db5695  windows-x64.zip


Best,
Jesse Wiley
Engineering Partner, Stacks Foundation
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEuA5a9CyThwv6776aKDYgwf4oCDwFAmcZQbYRHGplc3NlQHN0
YWNrcy5vcmcACgkQKDYgwf4oCDx24Q//ZOJOFi7cdlJp6LOfIRoSgQmugqPnIfGf
Ud73e6nhYSK2O+X7YgZT4uKGsV+Hrpr8jSMvsAjpxSkMnF5IkfBlcWy91ea09XiC
YPXc2VaPMkjk/tNJvJdxAFMKD8X4g1vu98SiHCwy4JIaQXoMvdC9KgPoTGY+H1fh
a0OuSodqOIPJS/BaOD2/7aa0NSFV8IYCT/6k3tX64ShchyeDo9sCVj6uRWJnhEy5
ZAofJ6fmwP+mbRJyp14VMvt7fJU1TILtEyXfQECKkenxx8TQuW2FG+eOAbvgOXZf
FBRqnjOhUqsL4lePkiNWuz8dvQXxd5NEAa0gSEtkHhiFzGyZeqC423OddOeaGE+f
XM2m8UiXackMsyEfaFZUx6/OsHcRyb00aHjW2BWxyB1oVT9lCbdBeOVq9Iwt4pqq
QwyhrTInoY6JVrR/itMMBo95Fi/BPbDs/+AbX10+iVxSCgSchauV2sDsEnkvHHt/
L8anubmzlVNs1thgqJF1q2ld94nZFl759Sw1NmVmXKriRMgyCBeejtqy4VAaX+lL
/P8FRNZLRINr7rSRt/bQd0A/DuZ+R0Y0m5ST41r6XKG4RyoiSC8SMNdSAgDMMQcR
jV0tU8HgwMzF9TB4feCzV5yhGA5jQOTGejmWcDHUT4JB11z/LPTsTXHjSFnGMtTh
3WMP0kl48HU=
=qT2O
-----END PGP SIGNATURE-----
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages