Releases: near/mpc
Release list
3.13.1
MPC 3.13.1
This is a small patch release to improve the node's migration to TDX processes, and fix a couple of small bugs identified during past migrations.
🚀 Features
-
#3711(@anodar): Support flag for wiping nearcore data (#3711)
-
#3712(@gilcu3): Add nearcore node config endpoint (#3706) (#3712)
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
Docker images
-
nearone/mpc-node:3.13.1
Manifest digest:sha256:0f6721729fb4b9eb222bf8fb3c1019b124f956d99d3c222a19c760ae7120305d -
nearone/mpc-node-gcp:3.13.1
Manifest digest:sha256:4b58d962f7b19f01c35782ad88e108941c01b111f6349b2778ea7b65e7c308b0 -
nearone/mpc-launcher:3.13.1
Manifest digest:sha256:ce91088e26bf843f68a156b5bc4d33eb7731e0ccb6c96a54a9321710e0d2818c
MPC contract
- digest:
sha256:006234f835db1956e879614c0a550372c7d85c06007c5d9b6c4c4eeb34639c61
3.13.0
This release's main features are updating Nearcore to 2.13.0-rc.1 and attestation verification contract voting in the MPC contract.
🚀 Features
-
#3554(@anodar): Validate aptos transactions with hardcoded tx_id in localnet.sh script (#3554)
-
#3518(@gilcu3): Add yield point in CPU bound crypto code (#3518)
-
#3511(@anodar): Available foreign chains contract API (#3511)
-
#3624(@gilcu3): (devnet) Add localnet support in devnet (#3624)
-
#3578(@SimonRastikian): Correlate governancethreshold with reconstructionthreshold (#3578)
-
#3626(@pbeza): (contract) TEE verifier contract-account voting (#3626)
-
#3616(@kevindeforth): Wire recent blocks tracker into event subscriber (#3616)
🐛 Bug Fixes
-
#3562(@anodar): Pattern in changes.yml for detecting code changes (#3562)
-
#3573(@pbeza): (release) Pin git-cliff to semver tags; restore dropped 3.12.0 changelog entries (#3573)
-
#3580(@gilcu3): Repro issues related to docker caching and skopeo versions (#3580)
-
#3502(@barakeinav1): (deployment) Exec mpc-node in start.sh so SIGTERM reaches the process (#3502)
-
#3617(@anodar): Nits from available foreign chains work (contract changes) (#3617)
-
#3635(@gilcu3): (bench) Make sure benches do not fail by fixing determinism (#3635)
-
#3632(@gilcu3): (ci) Make rust cache key depend on nix cache key (#3632)
-
#3647(@gilcu3): Indexer getting stuck when syncing from genesis (#3647)
🚜 Refactor
-
#3461(@SimonRastikian): Reduce code redundancy in checks between presign and sign (#3461)
-
#3567(@SimonRastikian): Renaming ReconstructionLowerBound to ReconstructionThreshold (#3567)
-
#3349(@SimonRastikian): Cleanup and reorganizing ECDSA files and interfaces (#3349)
-
#3590(@pbeza): (attestation) Drop
dcap-qvldependency from theattestationcrate (#3590) -
#3634(@gilcu3): (fix) Relocate bench_utils ckd functions (#3634)
-
#3654(@pbeza): (contract) Factor out shared
gen_authenticated_participantshelper (#3654)
📚 Documentation
-
#3589(@kevindeforth): Update engineering standards with section about code comments (#3589)
-
#3607(@barakeinav1): (localnet) Note neard 0.0.0.0 bind + version/genesis alignment for docker localnet (#3607)
-
#3613(@barakeinav1): Document back-migration known limitations (#3613)
⚡ Performance
🧪 Testing
- #3606(@barakeinav1): Disable flaky back-migration e2e test (#3606)
⚙️ Miscellaneous Tasks
-
#3557(@gilcu3): Remove 3.11 CaitSith restriction in the contract (#3557)
-
#3572(@barakeinav1): Restore external_storage_fallback_threshold for pre-3.12.0 nodes (#3572)
-
#3575(@dependabot[bot]): Bump http from 1.4.1 to 1.4.2 in the rust-minor-and-patch group (#3575)
-
#3559(@gilcu3): Remove compat conversions in the contract (#3559)
-
#3588(@anodar): Allow new foreign chain config before node upgrade (#3588)
-
#3577(@SimonRastikian): Make the two threshold DTO conversions fallible & validating (#3577)
-
#3591(@anodar): Add 'every' predicate in changes workflow filter (#3591)
-
#3584(@anodar): Bump up state transition to be from 3_12_0 (#3584)
-
#3629(@gilcu3): Reuse nix dev cache in mpc-node nix build (#3629)
-
#3645(@dependabot[bot]): Bump the rust-minor-and-patch group with 5 updates (#3645)
Docker images
-
nearone/mpc-node:3.13.0
Manifest digest:sha256:564a5aebc33495d5610626d23cb9e3da8e9d531d0edff9e38aa1ccaf059c15d3 -
nearone/mpc-node-gcp:3.13.0
Manifest digest:sha256:20b73afdb3b9fa2c37795878bd3049108051968a0ef66017f92b855b645557b0 -
nearone/mpc-launcher:3.13.0
Manifest digest:sha256:2b1b56f42e78232d918696d14305a0ff9b8e202920d4b7680d9192e11f4fce9c
MPC contract
- digest:
sha256:e993bcff94cca4159c91e054f214ab2c25e6ffab96a34421f50086a649d384cc
3.12.0
Corrected 2026-06-16 (see #3576)
This release was dispatched from main after commit 4b114d4 had merged on top of the release commit 74ba360, so the originally published images and the contract artifact were built from the wrong commit.
What was corrected:
- DockerHub
:3.12.0image tags — retagged to the 74ba360 builds. - Image & contract digests below — updated to the 74ba360 artifacts.
mpc-launcher— unaffected (identical digest).
** The attached mpc-contract-v3.12.0.tar.gz could NOT be replaced** (this is an immutable release) and still contains the wrong-commit contract — do not use it:
| Contract digest | |
|---|---|
Attached .tar.gz (wrong) |
sha256:f85dc0389dcf06aba18cc7054add72f3784033a7534f800cc0e72f6cdeb6a46c |
✅ Correct (74ba360) |
sha256:4f72fa9d73497fd1789c4d70860ebfbb6d6251ab77cc0ff8a59fd779a3a3c152 |
Use the correct digest (also listed under MPC contract below); rebuild it reproducibly from tag 3.12.0.
This release adds Aptos foreign-chain transaction support (#3507, #3508), carries per-domain thresholds over resharings (#3326), and introduces a foreign-chain whitelist verifier (#3327).
🚀 Features
-
#3327(@anodar): Add foreign-chain whitelist verifier (#3327)
-
#3389(@pbeza): (foreign-chain-inspector) Canonical-chain check for Starknet (#3389)
-
#3225(@DSharifi): Fan out requests to all configured RPC providers (#3225)
-
#3390(@pbeza): (foreign-chain-inspector) Canonical-chain check for Bitcoin (#3390)
-
#3244(@DSharifi): TON support for foreign tx validation requests in mpc contract (#3244)
-
#3235(@pbeza): (tee-verifier-interface) Borsh DTOs for the verifier contract boundary (#3235)
-
#3507(@frolvanya): Aptos support for foreign tx validation requests in mpc contract (#3507)
-
#3237(@pbeza): (tee-verifier) Stateless
dcap_qvl::verifywrapper contract (#3237) -
#3525(@anodar): Add debug info about the number of configured foreign chain RPC providers (#3525)
-
#3504(@gilcu3): Add a separate runtime for asset generation (#3504)
-
#3508(@frolvanya): Aptos foreign-chain inspector and node wiring (#3508)
-
#3326(@SimonRastikian): Adding resharing per-domain (#3326)
-
#3435(@pbeza): (indexer) Add
/debug/recent_transactionspage (#3435)
🐛 Bug Fixes
-
#3397(@gilcu3): Bump prometheus, fix missing nearcore metrics (#3397)
-
#3414(@barakeinav1): (attestation) Reject non-empty app-compose init_script (#3414)
-
#3439(@netrome): Enforce signer=predecessor across all governance methods (#3439)
-
#3420(@barakeinav1): (attestation) Fail closed on unknown app-compose fields; reject tproxy_enabled (#3420)
-
#3469(@gilcu3): (ci) Avoid cancelling concurrent docker push jobs (#3469)
-
#3410(@barakeinav1): (node) Handle SIGTERM for graceful shutdown on operator stop (#3410)
-
#3515(@gilcu3): Add asset id checks for follower paths (#3515)
-
#3519(@gilcu3): Outgoing connection hanging on unstable network (#3519)
-
#3486(@barakeinav1): (node) Drain embedded near-indexer thread on graceful shutdown (#3486)
-
#3491(@DSharifi): (contract) Add auth check to
remove_non_participant_update_votes(#3491) -
#3532(@gilcu3): Make sure localnet launcher script kills processes successfully (#3532)
-
#3533(@barakeinav1): (tdx) Default state sync to Peers (DSS); require tier3_public_addr (#3533)
-
#3560(@gilcu3): (test) Remove time bomb from e2e tests (#3560)
💼 Other
-
#3441(@gilcu3): Make mpc-node repro binary independent of local tags (#3441)
-
#3490(@gilcu3): Bring back support for NEP-330 contract repro builds (#3490)
🚜 Refactor
-
#3359(@SimonRastikian): Presign args private share (#3359)
-
#3455(@kevindeforth): Drop
ResultfromRecentBlocksTracker::add_block(#3455) -
#3343(@SimonRastikian): Cleanup frost interface (#3343)
-
#3330(@kevindeforth): Share blocks tracker instance between queues (#3330)
-
#3481(@kevindeforth): Wrap
BlockStatusin handle (#3481) -
#3497(@kevindeforth): RecentBlocksTracker uses types from chain gateway crate (#3497)
-
#3498(@kevindeforth): Move recent blocks tracker to chain-gateway crate (#3498)
-
#3344(@SimonRastikian): Cleaning up the test_utils.rs in threshold signatures crate (#3344)
📚 Documentation
-
#3339(@SimonRastikian): Documenting eddsa with presign (#3339)
-
#3423(@gilcu3): Add SAFETY notice in bls scalar zeroize block (#3423)
-
#3431(@anodar): Update documentation to allow all methods for added keys (#3431)
-
#3376(@pbeza): (design) Clarify verifier-rotation eviction in
attestation-verifier-contract.md(#3376) -
#3443(@barakeinav1): Build dstack-mr from a pinned DSTACK_REV (not master) (#3443)
-
#3436(@anodar): Propose different way of calculating supported foreign chain set (#3436)
-
#3408(@barakeinav1): Use dstack v0.5.11 build-args for reproducible key-provider mr_enclave (#3408)
-
#3458(@barakeinav1): Require every CVM port (incl. migration
:8079) bound to a dedicated IP (#3458) -
#3488(@barakeinav1): Design doc for auto-removal of unused launcher image hashes (#3488)
-
#3558(@SimonRastikian): Adding unsaid bits in the contract interface (#3558)
🧪 Testing
-
#3384(@gilcu3): Add unit test for incoming connections task drop bug (#3384)
-
#3399(@SimonRastikian): Flaky test for DamgardEtAl (#3399)
-
#3478(@gilcu3): Verify participants below threshold are not kicked out when attestation fails (#3478)
-
#3374(@gilcu3): Showcase contention during asset generation, analyse problem and solutions (#3374)
⚙️ Miscellaneous Tasks
-
#3394(@gilcu3): Bump cargo-near/cargo-near-build to 0.20.3, remove workaround (#3394)
-
#3402(@dependabot[bot]): Bump tar from 0.4.45 to 0.4.46 in the cargo group across 1 directory (#3402)
-
#3418(@gilcu3): Prevent dependabot updating nearcore pinned versions (#3418)
-
#3419(@gilcu3): Eliminate the need for python in the codebase (#3419)
-
#3424(@dependabot[bot]): Bump the rust-minor-and-patch group across 1 directory with 3 updates (#3424)
-
#3427(@gilcu3): Use upstream version of cache-nix-action (#3427)
-
#3134(@anodar): Deduplicate code with wait_for_debug_migration, elaborate comment on resitual race window (#3134)
-
#3325(@kevindeforth): Remove new final blocks from add block result and use snapshots for test (#3325)
-
#3446(@dependabot[bot]): Bump http from 1.4.0 to 1.4.1 in the rust-minor-and-patch group (#3446)
-
#3447(@dependabot[bot]): Bump near-kit from 0.7.2 to 0.9.1 (#3447)
-
#3459(@gilcu3): Delete triple migration steps from 3.11, clean legacy triples column (#3459)
-
#3449(@barakeinav1): (deployment) Clarify TDX HW requirements are per-CVM, bump disk to 1TB (#3449)
-
#3470(@gilcu3): Remove EpochData legacy cleanup behavior (#3470)
3.11.2
MPC 3.11.2
This is a small patch release to include nearcore 2.12.0
⚙️ Miscellaneous Tasks
Docker images
-
nearone/mpc-node:3.11.2
Manifest digest:sha256:fa10afeea9701e89d07c6a2268e9a67502fe6539eaaf594265920de0041db8e1 -
nearone/mpc-node-gcp:3.11.2
Manifest digest:sha256:243c5198354520b34f1ad7c5f00cfd24e5761be73ffd2aea114ad61349f30db8 -
nearone/mpc-launcher:3.11.2
Manifest digest:sha256:b7f6c246e0bf0aaa64f6c53b29288a7fefdc8c3a81e34cf81b905ab40db0aec9
MPC contract
- digest:
sha256:2f332bd9bbfbd2e892719bdcf3c670a8f436ae0cbd72d8bbc1bad6439a38998f
3.11.1
MPC 3.11.1
This is a small patch release to fix the missing metrics in the nearcore part of the node.
⚙️ Miscellaneous Tasks
Docker images
-
nearone/mpc-node:3.11.1
Manifest digest:sha256:2c548b6385d4bc64e71803defd0bd44dcdba4b7c9f40dbcf7dd264a8facf3734 -
nearone/mpc-node-gcp:3.11.1
Manifest digest:sha256:763cac3ff578c4e0f55925b20d44fc1774bf4af0b9dd3559e1a4c72190063096 -
nearone/mpc-launcher:3.11.1
Manifest digest:sha256:09a9ba9b16c0360a0d4688d8210506fb5fa1013752455ca1e47860ad29145cfb
MPC contract
- digest:
sha256:f23dee48d8b1a08c3a599e0b3e678b42315c5c63100bc84ff5bb6b072886a655
3.11.0
MPC 3.11.0
This release introduces RPC provider voting (#3249) along with per-threshold ECDSA triple pools (#3299), uniformly-locked CaitSith thresholds across domains (#3317), and reproducible Nix-built contract artifacts (#3323, #3356).
🚀 Features
-
#3299(@gilcu3): Split ecdsa triple pool per threshold (#3299)
-
#3317(@gilcu3): Lock all CaitSith domains to the same threshold (#3317)
🐛 Bug Fixes
-
#3291(@andrei-near): Release workflow env and secrets (#3291)
-
#3296(@pbeza): Decouple advisory-ID enforcement from tcbStatus check (#3296)
-
#3337(@netrome): Prevent overwriting other participant's attestations (#3337)
💼 Other
🚜 Refactor
-
#3286(@kevindeforth): Split
get_requests_to_attemptin queue.rs (#3286) -
#3319(@kevindeforth):
RecentBlocksTrackerdoes no longer track block contents (#3319)
📚 Documentation
-
#3192(@barakeinav1): Running multiple MPC nodes on one host (#3192)
-
#3256(@barakeinav1): Fill gaps in MPC image-hash voting section (#3256)
-
#3254(@barakeinav1): Add documentation for resharing log entries (#3254)
-
#3253(@barakeinav1): Submit_participant_info verification + errors (#3253)
-
#3302(@barakeinav1): (operator-guide) Standardize on bare
nearCLI invocation (#3302) -
#3297(@barakeinav1): (node-migration-guide) Revoke OLD node's signer key after migration (#3297)
-
#3308(@barakeinav1): (operator-guide) Typography, heading, and copy sweep (#3308)
-
#3310(@barakeinav1): (operator-guide) Refresh dstack UI screenshots for 0.5.8 (#3310)
-
#3311(@pbeza): (design) Attestation verifier contract breakout (#3311)
🧪 Testing
-
#3346(@barakeinav1): (e2e) Back-migration regression test (#3346)
-
#3365(@barakeinav1): (e2e) Wait for indexer progress in back-migration restart (fix flaky test) (#3365)
⚙️ Miscellaneous Tasks
-
#3263(@barakeinav1): (cvm-deployment) Align user-config.toml example with prod values (#3263)
-
#3276(@dependabot[bot]): Bump gcloud-sdk from 0.29.0 to 0.30.0 (#3276)
-
#3275(@anodar): Don't run CI tests on doc only change prs (#3275)
-
#3287(@andrei-near): Production environment for workflows (#3287)
-
#3294(@dependabot[bot]): Bump openssl from 0.10.79 to 0.10.80 in the cargo group across 1 directory (#3294)
-
#3280(@gilcu3): Remove migrations after 3.10 release (#3280)
-
#3315(@gilcu3): Remove legacy pending requests after 3.10 (#3315)
-
#3314(@gilcu3): Remove legacy-JSON compat for DomainConfig after 3.10 (#3314)
-
#3328(@gilcu3): Remove mpc-contract dep from backup-cli (#3328)
-
#3354(@gilcu3): Unify sanbox version across workspace (#3354)
-
#3358(@gilcu3): Update contract-history after 3.10.1 contract update (#3358)
-
#3332(@gilcu3): Bump nix-installer-action to avoid node.js 20 warning (#3332)
-
#3356(@gilcu3): Use nix for contract reproducible builds (#3356)
-
#3338(@barakeinav1): (tee/localnet) Unify port_override with cvm-deployment + add migration smoke test (#3238) (#3338)
-
#3321(@gilcu3): Bump nearcore to 2.12 rc 1, bumps rust to 1.93 (#3321)
-
#3367(@dependabot[bot]): Bump the rust-minor-and-patch group with 2 updates (#3367)
-
#3371(@gilcu3): Update edition to 2024 in most crates (#3371)
Docker images
-
nearone/mpc-node:3.11.0
Manifest digest:sha256:1177bee246df8eb66485f335d80423519f2ff9aa33ab324f003d8c55b09ed04b -
nearone/mpc-node-gcp:3.11.0
Manifest digest:sha256:d98fb94aa0c895bf56324758bb8184ae00434cafefcb7b140070dd6627de1916 -
nearone/mpc-launcher:3.11.0
Manifest digest:sha256:cc3ea617e2c932ad5ee74f2dbda206adef9c1bab97ef7c88832648d9c151db66
MPC contract
- digest:
sha256:742fed4e60f651bd06237a3345f9cfb0814300ebf33cb77c5203aa9ed2618885
3.10.1
MPC 3.10.1
Tiny contract patch on 3.10.0 containing a single fix:
Note
Due to limitations in our current CI setup and since this only is a contract patch, this release only contains the contract binary.
MPC Contract
- digest: sha256:c7fd9ba3a1f5e956d4fb8f39c8d0349365fa22126c6badb46035340424b813ac
3.10.0
MPC 3.10.0
This release expands foreign chain transaction support to Base, Arbitrum, Polygon, and Hyper EVM, and enables decentralised state sync (DSS) on the node. Note: contains two breaking changes (#3001, #3026) — see the changelog. Also note this features a launcher change, which means upgrading TDX deployments from 3.9.1 requires a full node migration.
🚀 Features
-
#2915(@DSharifi): Foreign chain inspector supports base (#2915)
-
#2918(@DSharifi): (sdk) Support
basefor foreign tx validation (#2918) -
#2943(@DSharifi): Node performs foreign chain validation for Base (#2943)
-
#2934(@kevindeforth): (contract) Vote generics structs (#2934)
-
#3001(@DSharifi): [breaking] Nodes don't require unanimous conensus on RPC providers (#3001)
-
#3010(@pbeza): (tee-authority) Support multiple PCCS endpoints with fallback (#3010)
-
#3043(@barakeinav1): (launcher) Add restart policy for MPC node container when started by the launcher (#3043)
-
#3059(@DSharifi): Add jemalloc pprof endpoint on the node (#3059)
-
#3026(@barakeinav1): (tee) [breaking] Allow PCCS with self-signed TLS certs via operator config (#3026)
-
#3107(@DSharifi): (foreign-chain-inspector) Support arbitrum validation requests (#3107)
-
#3106(@DSharifi): Accept foreign tx validation requests on contract (#3106)
-
#3110(@DSharifi): Node performs foreign chain signature requests for arbitrum (#3110)
-
#3086(@DSharifi): (contract) Add API to submit foreign support instead of configuration (#3086)
-
#3049(@barakeinav1): (tee-authority) Reject PCCS collateral older than 7 days (#3049)
-
#3144(@DSharifi): (sdk) Add support for aribtrum in sdk (#3144)
-
#3148(@DSharifi): Contract supports polygon and hyper_evm foreign tx request (#3148)
-
#3149(@DSharifi): (inspector) Support polygon + hyper_evm validation requests (#3149)
-
#3154(@DSharifi): (sdk) Support hyper_evm and polygon (#3154)
-
#3158(@DSharifi): Node supports sign requests for polygon + hyper (#3158)
-
#3161(@gilcu3): Add ReconstructionThreshold to DomainConfig (#3161)
-
#3177(@anodar): (config) Support query-param auth and optional header scheme (#3177)
-
#3188(@barakeinav1): (node) Enable decentralised state sync (DSS) (#3188)
-
#3211(@kevindeforth): Metric for counting failed requests (#3211)
-
#3187(@netrome): Fan-out responses to all duplicate requests (#3187)
-
#3216(@anodar): Implement foreign chain RPC providers in contract (#3216)
-
#3228(@barakeinav1): (node-config) Validate NearInitConfig address fields as SocketAddr (#3228)
🐛 Bug Fixes
-
#3056(@anodar): Retry conclude_node_migration until contract reflects completion, not until tx is applied (#3056)
-
#3108(@kevindeforth): Recent blocks tracker memory leak (#3108)
-
#3091(@netrome): EVM inspector checks that transaction is on the canonical chain (#3091)
-
#3185(@anodar): Don't serve rpc providers information over public debug endpoint (#3185)
-
#3159(@kevindeforth):
RecentBlocksTrackerremoves dead blocks instead of classifying them asOptimisticAndCanonical(#3159) -
#3227(@netrome): Use randomly generated delimiters in heredocs in LLM workflows (#3227)
-
#3272(@DSharifi): Correctly label succeeded and failed transactions (#3272)
-
#3273(@pbeza): (scripts) Make
prepare-release.shwork on BSD/macOS (#3273)
💼 Other
-
#2919(@anodar): Add make targets that run tests on fresh checkout (#2919)
-
#3021(@DSharifi): (nix) Add reproducible build flake for mpc-node (#3021)
-
#3222(@barakeinav1): (launcher) Render TEE compose from contract template at deploy time (#3222)
🚜 Refactor
-
#2931(@gilcu3): Remove node dependency on the contract for the crypto types (#2931)
-
#2929(@DSharifi): Pre-build http clients to avoid duplication (#2929)
-
#2944(@pbeza): Replace Phala collateral endpoint with direct PCCS calls (#2944)
-
#2951(@barakeinav1): Remove Python launcher (#2951)
-
#2964(@gilcu3): Unify participant types from the contract/node and interface (#2964)
-
#2976(@gilcu3): Remove node contract dependency for TEE and migration types in the node (#2976)
-
#2984(@DSharifi): Create generic config type for all foreign chains (#2984)
-
#2989(@gilcu3): Rename sign_pk to tls_public_key in ParticipantInfo (#2989)
-
#3048(@pbeza): (tee-authority) Add typed PCCS endpoint errors and fallback logging (#3048)
-
#3034(@kevindeforth):
mpc_client.rsandPendingRequestsunit tests (#3034) -
#3050(@gilcu3): Separate keyshare related contract-internal types/logic from node-facing interface types (#3050)
-
#3057(@kevindeforth): Move block height check out of
RecentBlocksTracker, intoPendingRequests(#3057) -
#3069(@kevindeforth): Recent blocks tracker relies on internal block height (#3069)
-
#3132(@kevindeforth): RecentBlocksTracker use weak pointers for parent (#3132)
-
#3155(@barakeinav1): (tee) Testnet TEE scripts Python→Rust + unify with localnet (#3155)
-
#3180(@kevindeforth): Remove
OlderThanRecentWindowvariant fromCheckBlockResult(#3180) -
#3189(@barakeinav1): Extract apply_near_config_patches helper (#3189)
-
#3209(@kevindeforth): Replace classify-blocks with atomic u8 in
RecentBlocksTracker(#3209) -
#3236(@kevindeforth): Improve
RecentBlocksTrackerinvariants (#3236)
📚 Documentation
-
#2912(@DSharifi): Design solution for allowing per node foreign tx rpc provider configurations (#2912)
-
#2960(@barakeinav1): Clarify launcher vote uses manifest digest (#2960)
-
#2947(@mitinarseny): Use relative links in ckd-example-cli (#2947)
-
#3013(@pbeza): Tell agents to verify docs stay aligned with code changes (#3013)
-
#3029(@barakeinav1): Recommend unlimited function-call allowance for the MPC operator account (#3029)
-
#3095(@barakeinav1): Add PCCS configuration guidance to operator deployment guide (#3095)
-
#3097(@barakeinav1): Add PCCS Collateral Handling section to TEE design doc (#3097)
-
#3163(@barakeinav1): Tighten PCCS TLS-mode wording across operator guide + template (#3163)
-
#3152(@barakeinav1): (tdx-guide) Pin apt sources for reproducible key-provider build (#3152)
-
#3259(@gilcu3): Clarify the DKG in README, add link to internal crypto docs (#3259)
-
#3271(@netrome): Fix doc drift in
pending_signature_queue_len(#3271) -
#3234(@barakeinav1): Fix operator deployment guide (#3234)
⚡ Performance
3.9.1
MPC 3.9.1
Small patch containing the nearcore 2.11.1 bump and a tiny fix:
Docker images
-
nearone/mpc-node:3.9.1
Manifest digest:sha256:51ed33bb2d62c7aa8ba1a56d37550e415cf29d6a2c656ef35fa89c1ab9c0604d
Image ID:sha256:195c05380eb97925b2a6ad9ddd2736442df0c2bbcf3115ce4a7604e3b83b879b -
nearone/mpc-node-gcp:3.9.1
Manifest digest:sha256:0463a22fd8dd0f7b055cb0a11c413080667bef8b691b1cfc0fb38a42a32dceca
Image ID:sha256:d1bc6562111ed05c611e6b9e94f796394661df14f710d9de18b02354d40be0d9 -
nearone/mpc-launcher:3.9.1
Manifest digest:sha256:d07c86cb8c3804a78a961884295f006d465929f0449a3bc10fb9bcbd246e7193
Image ID:sha256:e74640c83ddd19346714de29f36e624450646f4302e952770f1d182789c7bbb8
MPC contract
- digest:
sha256:e82888a96e91bd665d60c98e8dd2f00af94448df8733597b997bb430faec89c4
3.9.0
MPC 3.9.0
This release adds support for new chains in the Foreign Chain Transactions service. The Rust Launcher received hardening improvements and the image was published in dockerhub. The release also includes the usual load of improvements and bug fixes.
🚀 Features
-
#2727(@barakeinav1): Add metrics for TEE attestation generation attempts (#2727)
-
#2784(@DSharifi): (contract) API to submit foreign chain config without RPC url consensus (#2784)
-
#2822(@DSharifi): Bnb support in foreign chain inspector (#2822)
-
#2824(@DSharifi): Support BNB foreign transactions in the near-mpc-sdk crate (#2824)
-
#2823(@DSharifi): Node handles BNB foreign chain transactions (#2823)
-
#2917(@DSharifi): Mpc contract accepts base foreign chain requests (#2917)
🐛 Bug Fixes
-
#2729(@DSharifi): Set default crypto provider in tee-launcher to avoid rustls panic (#2729)
-
#2706(@barakeinav1): Add missing docker-cli package and merge Rust launcher CI jobs to use latest launcher code for CI testing (#2706)
-
#2762(@netrome): Replace API key placeholder into RPC URL when path auth is used (#2762)
-
#2711(@barakeinav1): Don't crash when TEE attestation fails on startup (#2711)
-
#2746(@SimonRastikian): Assert in crypto layer replaced by proper error handling (#2746)
-
#2748(@SimonRastikian): Witness should not inherit serde traits (#2748)
-
#2827(@barakeinav1): Block GCP keyshare storage config in TEE mode (#2827)
-
#2851(@gilcu3): Remove stale foreign chain votes from non-participants (#2851)
-
#2861(@netrome): Remove race condition in
take_unowned(#2861) -
#2896(@gilcu3): (test) Localnet script deleting non-existing validator config file (#2896)
-
#2892(@netrome): Use
curveinstead ofschemeinvote_add_domainparameters for localnet (#2892) -
#2903(@gilcu3): (test) Localnet fixes for nearcore 2.11 (#2903)
💼 Other
-
#2780(@barakeinav1): Switch MPC node image push to skopeo with --preserve-digests (#2780)
-
#2863(@barakeinav1): Compute manifest digest locally without requiring --push (#2863)
-
#2916(@DSharifi): (nix) Bump near-cli-rs version to meet localnet requirements (#2916)
🚜 Refactor
-
#2702(@pbeza): Replace per-field
#[serde_as(as = "Hex")]with newtype wrappers (#2702) -
#2777(@kevindeforth): Simplify contract error handling (#2777)
-
#2735(@SimonRastikian): Getting rid of clippy slicing (#2735)
-
#2832(@gilcu3): Make preconditions uniform for requests in the contract (#2832)
-
#2785(@barakeinav1): Simplify launcher image validation by accepting manifest digest directly (#2785)
-
#2858(@pbeza): Use canonical types from contract interface in
test-parallel-contract(#2858) -
#2870(@gilcu3): Participants should depend on contract interface not contract (#2870)
-
#2907(@anodar): Merge parallel tests, refactor code, reword comments (#2907)
📚 Documentation
-
#2672(@barakeinav1): Pin QEMU 8.2.2 and add --qemu-version to dstack-mr command (#2672)
-
#2909(@barakeinav1): Fix scheme to curve in contract README vote_add_domains example (#2909)
-
#2864(@netrome): Refer to the bug bounty program instead of our security email (#2864)
⚡ Performance
🧪 Testing
-
#2744(@gilcu3): Remove async account creation workaround (#2744)
-
#2759(@anodar): Improve e2e framework, implement tests for web_endpoints, submit_participant_info, robust_ecdsa (#2759)
-
#2760(@anodar): Implement request_during_resharing test (#2760)
-
#2820(@DSharifi): Add integration tests for foreign chain requests (#2820)
-
#2761(@anodar): Implement key_resharing, cancellation_of_resharing tests (#2761)
-
#2859(@anodar): Migrate cdk_verification, cdk_pv_verification, lost_assets, parallel_sign_calls tests from pytests (#2859)
⚙️ Miscellaneous Tasks
-
#2709(@barakeinav1): Add startup logging to start-with-config-file path (#2709)
-
#2742(@DSharifi): Increase resources for contract sandbox tests (#2742)
-
#2731(@gilcu3): Unify test-utils in the node and ts crates (#2731)
-
#2755(@DSharifi): Fix localnet template by removing duplicate attribute (#2755)
-
#2736(@pbeza): Clean up stale TODO comments and update issue references (#2736)
-
#2749(@pbeza): Check for TODOs referencing closed issues (#2749)
-
#2763(@gilcu3): Update contract migration after 3.8.1 release (#2763)
-
#2767(@gilcu3): Remove legacy support of CKDAppPublicKey in the node (#2767)
-
#2787(@dependabot[bot]): Bump the cargo group across 1 directory with 2 updates (#2787)
-
#2768(@gilcu3): Add public verifiability support in ckd-example-cli (#2768)
-
#2835(@gilcu3): Bump actions versions to avoid node 20 warning (#2835)
-
#2773(@barakeinav1): Use restricted access keys instead of full access keys for MPC nodes (#2773)
-
#2845(@dependabot[bot]): Bump the rust-minor-and-patch group with 4 updates (#2845)
-
#2855(@gilcu3): Add ExpectedMeasurements to MockAttestation (#2855)
-
#2771(@kevindeforth): (contract) Remove DomainConfigCompat and CurveCompat (#2771)
-
#2165(@DSharifi): Use contract interface sign request args instead of internal type in contract (#2165)
-
#2869(@pbeza): Reduce contract WASM size and add CI size check (#2869)
-
#2911(@netrome): Make llm agents better at following our testing conventions (#2911)
Docker images
-
nearone/mpc-node:3.9.0
Manifest digest:sha256:27ec3a3b47053255d5831ac2beac14c93b54d3676727266008d4cc252f3c07cf
Image ID:sha256:242ec16e8a73dd19bfcd7a03f560cef88fd90870211061b9a1d98b1aca49e3cf -
nearone/mpc-node-gcp:3.9.0
Manifest digest:sha256:b3c57a370bf4bca9e92b916a7165f141d988d4169d58492760ac2f1d46b8074d
Image ID:sha256:886cd3561e0e4c37618389f65338b9ebf427fefac3f464361d28c5f870554a8d -
nearone/mpc-launcher:3.9.0
Manifest digest:sha256:95640fbc138f54bd19f4351c8eab7cafda0b323823f818c3938ea91201130400
Image ID:sha256:a5b9e5b0a9c52503adba7e6ba24e0ecd0f7bf66ae34dd1ecdea9f3a6d2929e3b
MPC contract
- digest:
sha256:40e66cfccd009ca1a3f97412e5cb2a039a772c70fefe0577e37095b31ecf1460