Repository navigation
3.8.0
MPC 3.8.0
This release adds CKD public verifiability, OS measurement voting for TEE attestation, chain gateway foundations, and the new Rust TEE launcher, along with several security hardening improvements and bug fixes.
What's Changed
🚀 Features
-
#2464(@kevindeforth): Chain gateway transaction sender (#2464)
-
#2483(@gilcu3): Added ckd public verification support in the contract (#2483)
-
#2500(@DSharifi): (node) Allow configuration of logging through configuration file (#2500)
-
#2495(@gilcu3): Integrate CKD public verifiability in the node (#2495)
-
#2447(@barakeinav1): Add voting mechanism for expected OS measurements (#2447)
-
#2448(@barakeinav1): Check OS measurements during attestation re-verification (#2448)
-
#2527(@anodar): Add e2e-tests crate skeleton with port allocator (#2527)
-
#2621(@barakeinav1): Add Rust tee-launcher crate (#2621)
-
#2667(@DSharifi): Implement BorshSchema for NonEmptyBTreeMap (#2667)
-
#2625(@kevindeforth): Chain-gateway block event subscriber (#2625)
🐛 Bug Fixes
-
#2431(@anodar): Downgrade "peer closed connection without TLS close_notify" errors to debug (#2431)
-
#2348(@SimonRastikian): Threshold signatures sensitive types print custom debug message (#2348)
-
#2574(@gilcu3): Remove rename scheme from DomainConfig (#2574)
-
#2549(@barakeinav1): Set 0o600 permissions on secret files (#2549)
-
#2579(@gilcu3): Use CKDOutput type both for sender and receiver (#2579)
-
#2585(@gilcu3): Add more informative error messages for participant sets (#2585)
-
#2417(@SimonRastikian): Improving security by adding zeroization to the secret cryptography material (#2417)
-
#2646(@gilcu3): Ensure asset id origins are validated before use (#2646)
-
#2636(@Copilot): Update stale localnet config template (#2636)
-
#2678(@netrome): Log index lookup finds logs with matching .log_index fields (#2678)
💼 Other
-
#2640(@barakeinav1): Add CI and build support for Rust launcher (#2640)
-
#2665(@gilcu3): Make rust launcher docker build reproducible (#2665)
-
#2668(@gilcu3): Use debian trixie for rust launcher image (#2668)
🚜 Refactor
-
#2494(@anodar): Deduplicate dependencies in check-all target (#2494)
-
#2535(@pbeza): (tee-context) Address post-merge review feedback from #2505 (#2535)
-
#2540(@pbeza): Rename
MpcDockerImageHashtoNodeImageHash(#2540) -
#2396(@SimonRastikian): Changing SignatureScheme into Curve (#2396)
-
#2553(@kevindeforth): Simplify
TeeContextby removingSubmitTransactionindirection (#2553) -
#2564(@pbeza): Generalize
Hash32<T>toHash<T, N>and replaceSha384Digest(#2564) -
#2584(@pbeza): Replace
assert!(matches!(...))withassert_matches!and enforce in CI (#2584) -
#2489(@kevindeforth): Start chain-gateway in dedicated multi-threaded tokio runtime + transaction sender integration test (#2489)
-
#2619(@pbeza): Unify duplicate hash newtype macros into a single generic
HashDigest<S, N>type inprimitives(#2619) -
#2664(@anodar): Extract StartConfig from mpc-node into a lightweight config crate (#2664)
-
#2409(@SimonRastikian): Renaming Ed25519 to Edwards25519 (#2409)
-
#2634(@SimonRastikian): Improve crypto code without banners (#2634)
-
#2681(@barakeinav1): Remove unused HostEntry struct from tee-launcher (#2681)
📚 Documentation
-
#2472(@DSharifi): Update releases.md to reflect current release process (#2472)
-
#2484(@barakeinav1): Add vote_add_launcher_hash to deployment scripts and guides (#2484)
-
#2269(@barakeinav1): AES transport key provisioning design (#2269)
-
#2488(@barakeinav1): Add OS measurement voting to TEE setup flows (#2488)
-
#2427(@barakeinav1): Update migration guide after testnet migration. (#2427)
-
#2446(@anodar): Add design doc for Rust E2E test infrastructure (pytest deprecation) (#2446)
-
#2577(@gilcu3): Update after public verifiability CKD (#2577)
-
#2522(@SimonRastikian): Designing domain separation (#2522)
-
#2642(@barakeinav1): Warn that docker inspect must run on Linux for hash verification (#2642)
⚡ Performance
-
#2644(@kevindeforth): (mpc-node) Do not send duplicate values between threads (#2644)
-
#2623(@SimonRastikian): DKG benchmarks implementations (#2623)
🧪 Testing
-
#2503(@gilcu3): Add pytest for ckd public verifiability (#2503)
-
#2545(@barakeinav1): Extract launcher image hash from test assets and improve attestation docs (#2545)
-
#2589(@anodar): Implement MPC cluster orchestration for Rust E2E tests (#2589)
-
#2590(@anodar): Implement NearSandbox, NearBlockchain and request lifecycle test (#2590)
⚙️ Miscellaneous Tasks
-
#2473(@DSharifi): Use
.cliffignorefile for ignoring commits withgit-cliff(#2473) -
#2475(@gilcu3): Move vscode extension recommendations to doc (#2475)
-
#2457(@DSharifi): Create interface crate for types shared between rust launcher and node (#2457)
-
#2477(@gilcu3): Move CKDRequestArgs to the contract interface (#2477)
-
#2481(@gilcu3): Cleanup migration after 3.7.0 release (#2481)
-
#2499(@DSharifi): Move TEE config into launcher-interface and enforce image hash file (#2499)
-
#2504(@DSharifi): Parallelize pytests in separate runners to speed up CI (#2504)
-
#2509(@gilcu3): Prevent unbounded growth of rust cache (#2509)
-
#2518(@DSharifi): Move reproducible build of contract as separate task (#2518)
-
#2531(@gilcu3): Rust tests should not use same cache key (#2531)
-
#2537(@anodar): Add comment on Code Style regarding checked operations in tests and allow local claude md (#2537)
-
#2550(@barakeinav1): Bump rustls-webpki to fix RUSTSEC-2026-0049 (#2550)
-
#2556(@barakeinav1): Bump tar to fix RUSTSEC-2026-0067/0068 (#2556)
-
#2552(@barakeinav1): Update dstack OS image 0.5.4 to 0.5.7 (#2552)
-
#2566(@gilcu3): Cache cleanup should not delete cargo binary (#2566)
-
#2559(@dependabot[bot]): Bump quinn-proto from 0.11.13 to 0.11.14 (#2559)
-
#2568(@dependabot[bot]): Bump the rust-minor-and-patch group with 4 updates (#2568)
-
#2569(@dependabot[bot]): Bump gcloud-sdk from 0.28.5 to 0.29.0 (#2569)
-
#2578(@anodar): Bump MAX_GAS_FOR_THRESHOLD_VOTE from 178 to 180 (#2578)
-
#2573(@barakeinav1): Update dstack OS image to 0.5.8 and gramine key provider (#2573)
-
#2437(@gilcu3): Force usage of constructor for PermanentKeyshareData (#2437)
-
#2593(@gilcu3): Make sure docs explain why we have deposits, handle deposits in a single function (#2593)
-
#2586(@barakeinav1): Usability improvements for testing scripts (#2586)
-
#2620(@dependabot[bot]): Bump requests from 2.32.4 to 2.33.0 in /tee_launcher in the pip group across 1 directory (#2620)
-
#2653(@dependabot[bot]): Bump the rust-minor-and-patch group with 2 updates (#2653)
-
#2563(@barakeinav1): Add localnet TEE scripts for Rust launcher (#2563)
-
#2658(@barakeinav1): Add Rust launcher configs, docs, and templates (#2658)
-
#2669(@gilcu3): Use BTreeMap for permanent keyshare data (#2669)
-
#2689(@gilcu3): Fix e2e tests, cache being overwritten (#2689)
-
#2674(@gilcu3): Automatic draft release creation on tag push (#2674)
Docker images
-
nearone/mpc-node:3.8.0
Manifest digest:sha256:1e6e732048c228559173f181d19274511970b790a05ab26ef172bed1d2d1ac6b
Image ID:sha256:3f36b6d94f5c04782148e3654b3cba4284cd5d905eeaff40511f2454c93e99c8 -
nearone/mpc-node-gcp:3.8.0
Manifest digest:sha256:eecb23558946a732a5752de7069027fa91a4a076f3c608f5ef35dae515b1459e
Image ID:sha256:0e3f184bced0d516e1178ef09902b4f07a0ad55687f38b00e2da4c728fe59754 -
nearone/mpc-launcher:3.8.0
Manifest digest:sha256:84c7537a2f84d3477eac2e5ef3ba0765b5d688f86096947eea4744ce25b27054
Image ID:sha256:26fb9ae21dac7657b1c47ac44038b69399f0ec296176a65ce30f64e66442e86b
MPC contract
- digest:
sha256:bc8a5c8342be46b1352de8c83b3c1317c95ba782945950a1ee684990f2cfbcf5