github stacks-network/sbtc v1.0.0

9 days ago

This is a milestone release which introduces support for withdrawals/peg-outs together with a number of other fixes and improvements.

Highlights • Images • Upgrade Instructions • What's Changed

✨ Highlights

  • Full support for withdrawals (peg-outs) 🎉
  • A number of security and reliability improvements

🐳 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 Dockerhub.

sBTC Signer

blockstack/sbtc:signer-v1.0.0@sha256:71ec6b812bab0d5ba637ab88d00986e8751967ec5bf8be178eb7ed28e09224f9

  • 🏷️ blockstack/sbtc:signer-v1.0.0
  • 🔒 sha256:71ec6b812bab0d5ba637ab88d00986e8751967ec5bf8be178eb7ed28e09224f9

Blocklist Client

blockstack/sbtc:blocklist-client-v1.0.0@sha256:f5967f0e1e8b847dbbbe4d4275dbf04a5c830382b5eadb3ee88a2ce91114a5dc

  • 🏷️ blockstack/sbtc:blocklist-client-v1.0.0
  • 🔒 sha256:f5967f0e1e8b847dbbbe4d4275dbf04a5c830382b5eadb3ee88a2ce91114a5dc

📙 Database migrations

Migrations can be found at signer/migrations.

🛠️ Upgrade Instructions:

  1. Stop your sBTC signer
  2. Backup your database
  3. Database migrations:
    • (recommended) If you run your signer with --migrate-db, database migrations will automatically be applied upon startup,
    • (advanced) Otherwise, apply database migrations manually
  4. Update your sBTC images to those specified above
  5. Restart your sBTC signer and blocklist client

What's Changed

Protocol Breaking Changes 🚨

  • feat: implement validation using the WithdrawalRequestReport by @djordon in #1352
  • Update to wsts 13 by @xoloki in #1265
  • feat: remove signer vote bitmaps from transactions by @djordon in #1508

Other Changes

Click to expand
  • Revert "[feature] Ignore withdrawals in transaction coordinator (#1011)" by @Jiloc in #1332
  • [chore] consolidate withdrawals tables by @Jiloc in #1341
  • Chore/withdrawals pass validation by @Jiloc in #1343
  • fix: add pagination to deposit fetching by @Jiloc in #1252
  • feat: some dkg verification integration tests by @cylewitruk in #1346
  • feat: implement query returning WithdrawalRequestReport by @djordon in #1344
  • feat: add withdraw to demo-cli by @matteojug in #1347
  • chore: update devenv with less building by @djordon in #1307
  • fix: enable TLS in the blocklist client (#1349) by @djordon in #1351
  • fix: emily validate deposits by @Jiloc in #1197
  • chore: small signers.sh fixes by @djordon in #1358
  • feat: create accept withdrawal transactions by @Jiloc in #1357
  • chore: remove get_accepted_deposit_requests by @matteojug in #1361
  • fix: correctly generate stacks chain in TestData by @matteojug in #1360
  • Updates flake.lock so that rust-overlay includes Rust 1.84 by @aldur in #1320
  • feat: query for pending rejected withdrawals by @matteojug in #1362
  • ci: add integration tests to WithdrawalRequestReport::validate by @djordon in #1359
  • feat: Disable nightly Docker builds on CI by @aldur in #1378
  • feat: add function for using smart contract for deposit status by @djordon in #1306
  • feat: implement validatation of reject-withdrawal-request contract calls by @xoloki in #1336
  • feat: add function to construct reject withdrawals tx by @matteojug in #1382
  • feat: add function for getting withdrawal status from smart contract by @djordon in #1377
  • fix: Remove Bitcoin RPC by @fabergat in #1381
  • feat: add Emily private mainnet stage by @fabergat in #1380
  • chore: fix bitcoin-miner image in devenv by @matteojug in #1387
  • feat: additional test helpers, conversion primitives and minor refactors by @cylewitruk in #1390
  • [feat] Update Withdrawal Request Validation by @setzeus in #1389
  • feat: emily version endpoint by @Jiloc in #1379
  • [feat] query for swept withdrawals by @MCJOHN974 in #1339
  • fix: update code from #1339 according to changes in main by @MCJOHN974 in #1402
  • feat: emily get transactions by reclaim pubkey by @Jiloc in #1294
  • fix: swept withdrawal in case of forked accepts by @matteojug in #1404
  • feat: add withdrawal rejection to the coordinator loop by @matteojug in #1398
  • feat: update validation logic of accepted withdrawal requests by @djordon in #1394
  • feat: check the withdrawal status during validation by @djordon in #1396
  • feat: query withdrawals by recipient by @Jiloc in #1383
  • feat: check mempool for withdrawal outputs before rejection by @djordon in #1406
  • feat: concretize pending accepted withdrawals query and implement tests by @cylewitruk in #1397
  • [fix] remove api key requirement from health endpoint by @Jiloc in #1414
  • feat: sign and broadcast accept-withdrawal contract call by @MCJOHN974 in #1403
  • feat: feature wait before rejecting a withdrawal request by @djordon in #1411
  • [fix]: fix rc in coordinator by @MCJOHN974 in #1429
  • chore: remove discord badge by @matteojug in #1435
  • [chore] Remove no longer used code by @matteojug in #1437
  • feat: setup devenv observability by @djordon in #1105
  • [chore] remove emily calls from signer's new_block handler by @Jiloc in #1421
  • chore: enhance comments by @threewebcode in #1325
  • feat: improve_release_notes by @fabergat in #1401
  • feat: more efficient validation complete deposit contract calls by @djordon in #1436
  • [chore] duplicate check on create_deposit by @Jiloc in #1425
  • chore: don't continue on rejected peer connection by @cylewitruk in #1451
  • feat: Push nighties docker images to AWS ECR by @fabergat in #1447
  • 1444 chorebug restrict wipe databases to testing api by @Jiloc in #1445
  • chore: update devenv for the bridge by @matteojug in #1450
  • ci: use ubuntu 24.04 for cargo vet by @djordon in #1469
  • build: do not compile signer crate with testing feature by @djordon in #1446
  • [feat] emily new block handler by @Jiloc in #1416
  • [chore] sidecar send new block updates by @Jiloc in #1409
  • [fix] sidecar merge by @Jiloc in #1471
  • feat: Add example deployer address by @fabergat in #1477
  • feat: get withdrawals for sender by @Jiloc in #1467
  • chore: add comments for get_swept_* queries near context boundary by @matteojug in #1482
  • chore: remove signer's emily-client implementations to call private endpoints by @Jiloc in #1473
  • chore: emily remove private endpoints by @Jiloc in #1474
  • chore: emily filter updates from signers by @Jiloc in #1472
  • [fix] add missing sender field after merge by @Jiloc in #1487
  • feat: get_deposits returns accepted and pending by @Jiloc in #1479
  • feature: coordinator checks deposit status before mint signing round by @matteojug in #1488
  • [feat] add output index to SweptWithdrawalRequest by @MCJOHN974 in #1475
  • fix: check recipient against blocklist client in withdrawals by @MCJOHN974 in #1428
  • fix: random update_withdrawals_is_forbidden fails by @Jiloc in #1496
  • chore: sidecar use uv for dependency management by @Jiloc in #1494
  • [feat] rebroadcast withdrawals by @MCJOHN974 in #1485
  • [chore]: import audits to cargo vet by @MCJOHN974 in #1272
  • fix: stop logging the trusted api key on deployment by @Jiloc in #1514
  • feat: new behavior for network bootstrapping by @cylewitruk in #1257
  • feat: emily rolling withdrawal limits by @Jiloc in #1511
  • feat: signer get rolling withdrawals limits from Emily by @Jiloc in #1513
  • feat: emily validate rolling limits by @Jiloc in #1522
  • feat: validate stacks fees by @AshtonStephens in #1430
  • feat: add query that computes aggregate withdrawn amounts by @djordon in #1503
  • fix: stop coordinator activities when tenure finishes by @djordon in #1518
  • [feat]: Update Emily about accepted withdrawal requests by @MCJOHN974 in #1492
  • feat: add leb128 variable length integer implementation to sbtc crate by @cylewitruk in #1523
  • feat: validation checks withdrawal amounts against rolling cap by @djordon in #1515
  • feat: coordinator checks withdrawal amounts against caps by @djordon in #1526
  • feat: Improve deployment changes visibility adding CDK Diff by @fabergat in #1521
  • feat: Update recommended configurations to ensure signer endpoints are locked down by @fabergat in #1510
  • feat: add encoder/decoder for withdrawal id compression (for storage in OP_RETURN) by @cylewitruk in #1525
  • feat: encode withdrawal id's on-chain in their respective transaction's OP_RETURN by @cylewitruk in #1512
  • chore: update base transaction size constants after OP_RETURN updates by @djordon in #1535
  • feat: save withdrawal ids from bitcoin tx outs by @matteojug in #1509
  • chore: bump WSTS by @djordon in #1536

New Contributors

Full Changelog: 0.0.9-rc7...v1.0.0

Don't miss a new sbtc release

NewReleases is sending notifications on new releases.