Release 4.0.3: Optional, recommended for miners and signers

3 views
Skip to first unread message

Brice Dobry

unread,
Sep 4, 2026, 9:22:12 AMSep 4
to announce
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello,

Stacks core developers have released Stacks Core version 4.0.3, available here: https://github.com/stacks-network/stacks-core/releases/tag/4.0.3.

This release contains several stability and performance improvements to the stacks-node and stacks-signer and is fully compatible with existing chainstate. Miners and signers are encouraged to update, though it is not required.

### Added

* Adds opt-in logging to help observe where StackerDB chunks come from. Set `node.log_stackerdb_chunk_sources = true` to enable it.
* Added a new authenticated RPC endpoint `POST /v3/transactions/simulate` which simulates a single transaction on top of a chain tip (the canonical tip by default, or the one selected with the `tip` query parameter), discarding all state changes, and reports its result, events, and execution cost.

### Changed

* Moved Clarity transaction-error classification from `stackslib` to `clarity`, with authoritative included/rejected dispositions that can be shared with WASM consumers
* The miner now ties mempool nonce-cache validity to the specific parent block it builds on, automatically resetting the caches whenever the parent changes (e.g. across mining retries), instead of relying on a manually-maintained flag.
* `read_only_call_max_mem_bytes` now caps each read-only RPC request end to end: parsing the body's Clarity values (call arguments and map keys) counts toward the same per-request limit as execution, and requests whose parsing exceeds it are rejected with HTTP 400.
* Read-only call RPC endpoints now cap the `arguments` array at 262,144 entries, even when `read_only_call_max_mem_bytes` is `0`.
* Lower the default StackerDB timeouts to retry HTTP RPC sooner.
* Moved transaction post-condition verification out of `stackslib` into a new `stacks-transactions` crate, so that it can be used in WASM environments and is no longer coupled to the Clarity VM

### Fixed

* Fix a bug that prevented duplicate name detection in some cases during contract analysis. This change applies starting in epoch 4.1.
* Prevent one potential cause for miner stalls by moving signer state machine retrieval from HTTP requests to DB lookup.
* Fixed a block-commit timing race that made the release-only Epoch CI job fail deterministically on `tests::epoch_21::transition_fixes_bitcoin_rigidity`.
* Fixed Prometheus execution-cost write-count utilization metrics to use the write-count block limit, and fixed RPC response bytes being counted as inbound instead of outbound bandwidth.
* Fixed the miner thread exiting (and stalling for the remainder of the tenure) on transient errors. The miner now retries when it hits DB contention, a parent block that has not been processed yet, a new parent block discovered mid-mining, or a mempool cache reset failure, instead of giving up on the tenure.
* When a StackerDB chunk push fails, remove the receiver and immediately try the next receiver for the same chunk. This prevents an unavailable receiver from delaying the push.
* Broadcast HTTP-uploaded StackerDB chunks even when no event observer is attached. This allows uploaded chunks to reach peers in configurations that do not use an event observer.
* Fixed a StackerDB chunk uploaded over HTTP being stored and acknowledged but never announced to the node's event observers, which could stall consensus indefinitely when the lost chunk was a signer's block pre-commit. The chunk's pending event notification was discarded whenever the relayer fell behind and a peer echoed the same chunk back, or whenever the node's own view advanced before the relayer processed the upload.

### Removed

* Removed the special-casing of transactions with high-S signatures from mempool admittance and block validation. Now that we've transitioned into Epoch 4.0, those signatures are forbidden by consensus and no longer need to be special-cased.

### Docker images have been published to GitHub Container Registry:

#### **stacks-core**
* Debian (glibc): https://github.com/stacks-network/stacks-core/pkgs/container/stacks-core/1207102142?tag=4.0.3

docker pull ghcr.io/stacks-network/stacks-core:4.0.3@sha256:9c45dbf25dbe6a2b5051657f914b98abccfbec1a9f84d1df45233d627446227d


* Alpine (musl): https://github.com/stacks-network/stacks-core/pkgs/container/stacks-core/1207100105?tag=4.0.3-alpine

docker pull ghcr.io/stacks-network/stacks-core:4.0.3-alpine@sha256:f5ee022d224e40d93d27d2241a0bf6c5d0f550beab0723307fef5462d5f2d0b5


#### **stacks-signer**
* Debian (glibc): https://github.com/stacks-network/stacks-signer/pkgs/container/stacks-signer/1207098950?tag=4.0.3

docker pull ghcr.io/stacks-network/stacks-signer:4.0.3@sha256:6cb6f31a6fdaf6e002816ec75691d7d44b654046fc433b253591f239742e1d58


* Alpine (musl): https://github.com/stacks-network/stacks-signer/pkgs/container/stacks-signer/1207098218?tag=4.0.3-alpine

docker pull ghcr.io/stacks-network/stacks-signer:4.0.3-alpine@sha256:ca5d96697a3446a3a054e00c638a0c457267ac83b30d619c85e780696d637335


********************************************************************************
Stacks Core:

Git commit hash: 2cfc81704d0fa2e732d6575206f923552ec06cd0

SHA512SUMS:

e2eea3f88bf3690e9ad7f1b78efe65a9723784b0e472a95129f44dab9f53557c98f7d1f3ab568d1af308a3e8144c47f52de4758da58529518dbcb3b9008c0225  linux-glibc-arm64.zip
7c58d63d859b92e0515b4a5c9fca9decb15400dfd764918a5bd656b2172b1ad4bbefc5f36fff229204269185fb81279592c53bf91b00fe3ee1384a24fcab0a06  linux-glibc-x64.zip
0944ab868ea256815badd0df3867413af96dde4a7b4a1e47fac57c5e4db18b96b3f86b0132a33eb40c9a8ceccdabc4b49999e03d330fc72cab21cbd932f0603b  linux-musl-arm64.zip
5d2952ac4c81fa2d7e3f89554a676585ad59b276ee1fe422f531badab723054987fbe8d075cb1e2451bb6e3f96cd9e7d56d2e1c0e8039777db12bb2b5347c625  linux-musl-x64.zip
083be72c40499a75d72e215ec39ecfc9b2569306932b86ffd842de6599ac9d31beceed9e8112d4e4fe57f52dc91b8db2fe307814de2e8b751da7f8c6d10e71cb  macos-arm64.zip
ecd79e5cc76e369c1dcfb5100850824074cd2587a61dfbb1ca92e9618c5430ecff861f879c8b99d7495ff461d57d4cb4d3bba86537a211134f1a57bcbf12385f  windows-x64.zip

********************************************************************************

Best,

Brice Dobry
Staff Engineer, Stacks Labs
-----BEGIN PGP SIGNATURE-----

iQFlBAEBCABPFiEEVTrGj54NWyQJkqD84zO/PN0rBYYFAmqaxcgbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMCwzFRxicmljZUBzdGFja3NsYWJzLmNvbQAKCRDjM788
3SsFho4zB/sHkUTHvruPdsgpEPa76VzErouTzHx4DnEFxNCEPtVKBIEB2X0z0JvN
UrzXoEFYz4yRMNee3PPvnTjEYFcHcVHtCLeLNj+JOWhN4BvZDipEq+RptxT/G/OL
WdCqot8xXiR5pLLWAoPMEPOTMZQfksbxvmFu86n/GgrcSZlVrXiuHxiF3UH9hr7C
fIy+PqgHERyTO/rtEgMfzKriIImVnu3adawvsGQ+1v4IgBfoIgmKWt7EOE72flrp
l8R9q00GNRWTO6PsaKpFj+l193CB1dLa8VHG3xdFnLLw7sjjRBAzwUFfw8y7wLPQ
+62eCCeTFchsuuFFZ/BLs6CuzjBmXHWb
=MZp8
-----END PGP SIGNATURE-----
Reply all
Reply to author
Forward
0 new messages