Version 1.3.0 of the sBTC signer contains a critical update adding support for the Stacks Core 3.4.0.0.0 release, as well as a number of robustness and performance enhancements.
⚠️ Please ensure that you've upgraded your sBTC signer prior to upgrading your Stacks node to 3.4.0.0.0.
Highlights • Images • Upgrade Instructions
✨ Highlights
- Compatibility with Stacks node
3.4.0.0.0 - Bump Rust to
1.94 - Reduced dependence on
stacks-coreinternal types - Improved handling of Stacks block backfill (reduced memory pressure)
- Performance improvements
- Reduced the expected amount users pay on Bitcoin miner fees for deposits and withdrawals
🐳 Images:
⚠️ Always use immutable image tags - the image digests are provided below. Verify the attestation of these images using this guide.
We publish our images on GitHub Container Registry.
sBTC Signer
- 🏷️
stacks-sbtc/sbtc:signer-v1.3.0 - 🔒
sha256:588f822f9f7fc66e3ec37d912c98075dda8a501d44636ca732624ecacb2de361
Blocklist Client
- 🏷️
stacks-sbtc/sbtc:blocklist-client-v1.3.0 - 🔒
sha256:53ff6c387804109886518d9cec85ad235e793aa71e4dcbe5cc9013f118b360f7
📙 Database migrations
Important
If you run your signer using the --migrate-db flag, the database will be applied automatically. If you do not use this flag, you must manually apply the migrations.
--migrate-db is enabled by default in our official Docker images.
Database migrations may be found at signer/migrations.
🛠️ Upgrade Instructions:
- Stop your sBTC signer
- Backup your database
- Database migrations:
- (recommended) If you run your signer with --migrate-db, database migrations will be automatically applied upon startup,
- (advanced) Otherwise, apply database migrations manually
- Update your sBTC images as specified above
- Restart your sBTC signer and blocklist client
📝 What's Changed
Click to expand
- fix: handle any max fee that can fit in a
u64by @djordon in #1927 - feat: note the canonical bitcoin blocks in the database by @djordon in #1891
- feat: use more local types for deserializing stacks core webhook events by @djordon in #1872
- chore: small fixes by @matteojug in #1877
- feat: add dynamic context to Emily by @matteojug in #1867
- feat: add testcontainers bitcoin scaffolding by @matteojug in #1878
- feat: use explicit bitcoin clients in test setup by @matteojug in #1881
- feat: parallel tests - nextest config and update bitcoin_client and bitcoin_poller tests by @matteojug in #1879
- feat: parallel tests - mark serial tests by @matteojug in #1882
- Update SECURITY.md by @adriano-stacks in #1890
- feat: add arm builds v2 by @MCJOHN974 in #1874
- chore: remove retries from integration tests by @matteojug in #1886
- feat: remove threshold parameters from event loops by @djordon in #1892
- Update Composite Actions Commit Hash to Latest by @albu-stacks in #1895
- feat: use the signer state when getting the stacks chain tip by @djordon in #1885
- feat: parallel tests - emily by @matteojug in #1880
- chore: remove redundant bitcoin config by @matteojug in #1905
- feat: parallel tests - bitcoin validation by @matteojug in #1897
- feat: parallel tests - withdrawal reject by @matteojug in #1899
- feat: parallel tests - postgres by @matteojug in #1900
- feat: parallel tests - transaction signer by @matteojug in #1901
- feat: parallel tests - transaction coordinator by @matteojug in #1902
- feat: parallel tests - block observer by @matteojug in #1898
- chore: fix flaky block_observer_stores_donation_and_sbtc_utxos by @matteojug in #1907
- feat: use checked arithmetic when validating contract calls by @djordon in #1909
- feat: expose withdrawal information on Emily by @MCJOHN974 in #1870
- feat: add emily timeout by @MCJOHN974 in #1903
- feat: Enable quick Emily sBTC slowdown. by @MCJOHN974 in #1918
- Do Not Require Interactive Approval When Deploying Emily by @albu-stacks in #1922
- chore: slightly prettier Emily logs by @djordon in #1894
- feat: properly return empty responses from Emily by @MCJOHN974 in #1923
- fix: ignore max-fees greater than
i64::MAXby @djordon in #1926 - Comment Out ECR Build Workflows for Sidecar and Cron by @albu-stacks in #1929
- feat: use the signer set in the registry for picking the coordinator by @djordon in #1912
- feat: add bitcoin timeout by @MCJOHN974 in #1896
- fix: make expected fulfillment info optional by @djordon in #1940
- feat: vendor wsts by @djordon in #1938
- feat: add lambda invocation id to logs by @MCJOHN974 in #1904
- tests: fix flaky test runs by @djordon in #1942
- feat: add stacks testcontainer and deposit e2e test by @matteojug in #1906
- feat: set the servers property in Emily's OpenAPI spec by @djordon in #1947
- docs: mainly miscellaneous doc fixes by @djordon in #1945
- feat: remove the v1 wsts code by @djordon in #1956
- chore: remove unnecessary dependencies from wsts by @djordon in #1958
- chore: update stacks version in containers by @matteojug in #1959
- feat: remove the signer trait by @djordon in #1965
- feat: skip database lookup when transaction-signer receives a message by @djordon in #1970
- feat: dockerignore git stuff by @djordon in #1971
- chore: remove unused CI jobs by @matteojug in #1980
- feat: remove unused code in
get_transaction_feeby @djordon in #1975 - feat: remove unused WSTS implementations by @djordon in #1977
- feat: fetch only headers for backfilling by @MCJOHN974 in #1876
- feat: allow for more Stacks rejection reasons by @djordon in #1983
- chore: update rust to 1.94.1 by @djordon in #1984
- chore: update dependencies dependabot alerts by @djordon in #1985
- chore: update openapi generator by @djordon in #1986
- chore: remove duplicated code by @matteojug in #1993
- feat: signers should initialize nonces to something nonzero by @djordon in #1981
- feat: remove signatures from WSTS packets by @djordon in #1999
- feat: retry constructing tx packages with lower fees by @matteojug in #1988
- fix:
BitcoinPreSignRequestcan be too large to broadcast by @djordon in #1994
Full Changelog: v1.2.0...v1.3.0