From d3dfc8122423c2c41e526970b606062d4741c1f5 Mon Sep 17 00:00:00 2001 From: anhthii Date: Tue, 9 Dec 2025 15:06:19 +0700 Subject: [PATCH] Update readme --- CHANGELOG.md | 1262 ++++++++++++++++++++++++++++++++++---------- README.md | 3 +- images/mpcium.png | Bin 140276 -> 180390 bytes images/mpcium1.png | Bin 0 -> 140276 bytes 4 files changed, 990 insertions(+), 275 deletions(-) create mode 100644 images/mpcium1.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 79eff2d..b8c7df9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,287 +1,1001 @@ # CHANGELOG +## v0.3.4 (2025-12-09) + +* Disable healthcheck by default [View](https://github.com/fystack/mpcium/commit/fb494f2b7f86616201a8ec01e43b0c57e348d5cb) +* Update installation instruction [View](https://github.com/fystack/mpcium/commit/69250f87e0f51fa1d245acba4871475c9179f632) +* Udpate golint [View](https://github.com/fystack/mpcium/commit/ed0dfc73f0de2b88a1db736ba99ad598f0218730) +* Update go version [View](https://github.com/fystack/mpcium/commit/7abc4ad3a899f23fc20908fe0d8df7cdf6ef3376) +* Udpate chain code instruction [View](https://github.com/fystack/mpcium/commit/fc853a05f39690e29e73a0c3be02f86d15e62496) +* Update cI [View](https://github.com/fystack/mpcium/commit/86474eb12aa18bd09ac7634f3cd491067a38f4a7) +* Fix lint issue [View](https://github.com/fystack/mpcium/commit/d6684ab6d875fba395e086aa0c4d6634bcc8e3d8) +* Add hd wallet examples for both ecdsa and eddsa [View](https://github.com/fystack/mpcium/commit/5c90a5854c8bb88917bbb72e18caaef963b150ab) +* Update derivatoin logic [View](https://github.com/fystack/mpcium/commit/4d997bb0cf1da2125ba6ba2e4677566d5b451c46) +* Remove unused functions [View](https://github.com/fystack/mpcium/commit/81294778458cd2010e023307cf3da8af84a2f343) +* Update e2e test matrix to include TestCKDSigning [View](https://github.com/fystack/mpcium/commit/5d2c55a26e132d42814c81bcb20696f9e0c5529b) +* Add chain_code config and integration CKD sign into e2e [View](https://github.com/fystack/mpcium/commit/831eb00ce484746349f2b54a790f1338ed110e07) +* Fix reshare event handling: ensure successEvent.PubKey is non-empty before send result [View](https://github.com/fystack/mpcium/commit/c10ecc40991e37f4fb2c6064e8a307797ce13ac2) +* Update dependencies: replace bnb-chain/tss-lib with fystack/tss-lib and add btcec v2.3.2 [View](https://github.com/fystack/mpcium/commit/887ebe281d9811b51fa9f3cec7f245fa4661c6f0) +* Enhance setup scripts: distribute event initiator public key to node configs and add build step in setup.sh [View](https://github.com/fystack/mpcium/commit/4bc9344cf3c85d6c7ee9de279a016ea70f025e2c) +* Add chain_code setup instructions and integrate chain_code into configuration [View](https://github.com/fystack/mpcium/commit/c2468a0e142f00b3fc71388d82afe13e0058125f) +* Enable wallet-scoped derivation: add walletID to Derive and wire through HMAC-SHA512 [View](https://github.com/fystack/mpcium/commit/d6b49921235d2ec5ce792d17c27e704da717ff08) +* CKD struct refactor: rename chain code field to masterChainCode and adjust constructor/accessor [View](https://github.com/fystack/mpcium/commit/72e6bce15a343bd8ec89729135fb0a6f9f61d051) +* feat: support eddsa ckd [View](https://github.com/fystack/mpcium/commit/351618b04e687bf6be6ccb7b0596e62836a2e282) +* chore: fix lint error [View](https://github.com/fystack/mpcium/commit/0a143f640ec387e06415d83894a5a073fabaaeca) +* Update .gitignore to exclude node modules and modify CKD example [View](https://github.com/fystack/mpcium/commit/43d0a41c34f81e641bc99f92a8583cc1d3244809) +* WIP: Add CKD implementation and integrate derivation path in signing sessions [View](https://github.com/fystack/mpcium/commit/602eaec6acfeafa2cb178453185a3e260f4390a8) +* Revert "Support child key derivation (#113)" [View](https://github.com/fystack/mpcium/commit/fcfe5b751dcc66f4899417dbbe3887df0db37112) +* Support child key derivation (#113) [View](https://github.com/fystack/mpcium/commit/15ca30608819108dc351f681b9f59e1ecb4e2acb) +* Fix multiplatform build Dockerfile [View](https://github.com/fystack/mpcium/commit/f7d3be655a334ddffc5d20fd42cb7e67d1eb24fe) + + ## v0.3.3 (2025-11-02) -- Support expose health check endpoint /health for cloud deployment [View](https://github.com/fystack/mpcium/commit/dcc569affcf276945d43222f76196c018b6c5389) -- Gracefully handle context cancelled [View](https://github.com/fystack/mpcium/commit/d6f5cc651367dc16177c199cbbc09bab53557b31) -- Change position of loading app config method [View](https://github.com/fystack/mpcium/commit/e05ac61d96b5f48c4468d00e69a93ca85d5eadb4) -- Fix check required config value [View](https://github.com/fystack/mpcium/commit/59e2582da57b6cbe6e34a187504804c49eb89987) -- Increase version [View](https://github.com/fystack/mpcium/commit/81cc92f6b8f73c542f424a677a5eaf215bae811f) -- Update changelog v0.3.3 release [View](https://github.com/fystack/mpcium/commit/4b5438064615242c9e208a0d5ef09010bddccfd0) -- Add instruction to add authorization configuration [View](https://github.com/fystack/mpcium/commit/dd23e76f0fcc95f68f717f8e99778e6ebb384247) -- Add examples for generate with authorizers [View](https://github.com/fystack/mpcium/commit/55c41bc0eb2a283312477037cd88beb7b1d32357) -- Authorize signatures in event consumer [View](https://github.com/fystack/mpcium/commit/a6a2d6116ec6c4df90d67e28b41010a63e8b3552) -- Refactor initiator message authorization [View](https://github.com/fystack/mpcium/commit/17e7e516c1299debeb4a294fdf3ad3fedb155b77) -- feat: enhance authorization configuration with new signature algorithms and backward compatibility [View](https://github.com/fystack/mpcium/commit/4b7d3c32e0c4475f3c80f0d324a1f0e37832908e) -- feat: auth conf with pubkey and algs [View](https://github.com/fystack/mpcium/commit/8d927343e4549bd3773bbbe7d5d3a1baf27ad041) -- Fix s256 public key encoding (#112) [View](https://github.com/fystack/mpcium/commit/61d4ac484f404e2981c3ad496a9fa7524ff8443f) -- Fix ECDH key exchange race condition in distributed deployments (#111) [View](https://github.com/fystack/mpcium/commit/4c8529fb6d456e9e530268208e6ee6d36f1324e2) -- Enhance setup process and scripts (#110) [View](https://github.com/fystack/mpcium/commit/c7e08758fc7e1bb1ddc639138a37cd5d8b88fee2) -- Refactor setup scripts (#109) [View](https://github.com/fystack/mpcium/commit/4571719ca22d8e8f7edf0f7e1b660651d418e423) -- refactor: cross-platform sed for setup script [View](https://github.com/fystack/mpcium/commit/51ee418f38b4e6fe12aeaa7426884c58c82718fe) -- Add benchmark command [View](https://github.com/fystack/mpcium/commit/1d07ffb3a3a39d425da5e5c5a5de5eb758032a09) -- Refine benchmark [View](https://github.com/fystack/mpcium/commit/189cb6ad226dd1632046daca47c5fb5d9707c3c3) -- Add benchmark [View](https://github.com/fystack/mpcium/commit/027d22c6a5452025adff81063a839aca6c406b49) -- Don't require peers in mpcium-cli, default to ./peers.json [View](https://github.com/fystack/mpcium/commit/12312b69d49b28ec2634aa99fa706b2205b36244) -- Add log for consul initialization [View](https://github.com/fystack/mpcium/commit/1408ccb2f89e2453bfe9a901f9db32b66d000973) -- Parse config into struct [View](https://github.com/fystack/mpcium/commit/e77315d6365a833935f117a6fdaa37e9b0dfc214) -- (fix) #102: allow to specify peers.json in mpcium-cli [View](https://github.com/fystack/mpcium/commit/18beff8270fdce4cefe681e88595e65c327f8255) -- Minor cleanup [View](https://github.com/fystack/mpcium/commit/fbcb3bbd21bece09b797a7dfd6ce39fdc0769b79) -- Remove environment from .env file in setup-config.sh script [View](https://github.com/fystack/mpcium/commit/3da79de754ca9175494a2c61afdb32dd507c0d0f) -- Improve error message [View](https://github.com/fystack/mpcium/commit/1c59894dc8f33d224e4fceba3fcccf1b174f7581) -- Update consul api to latest version [View](https://github.com/fystack/mpcium/commit/e6b35bd2e5cebf9fdb3ddc8aae13feac8258f397) -- Update identity generation example [View](https://github.com/fystack/mpcium/commit/f7ece225f8100bb2f737199d3a49e45a702b8f9c) -- Improve documentation for indeitty directory structure [View](https://github.com/fystack/mpcium/commit/cf5bf7b2eab501bd073edf95882db14935f1410d) -- Add instruction to install go in systemd deployment [View](https://github.com/fystack/mpcium/commit/dd9db087e7b2b9858f5d23876f407caf54b32d0a) +* Add docker file and deployment instruction for k8s [View](https://github.com/fystack/mpcium/commit/50185f9d655b5efb00f02604e53b52893a086c4e) +* v0.3.3 changelog [View](https://github.com/fystack/mpcium/commit/590e0b43bcf7760dfed13dd06867a746050205b9) +* Support expose health check endpoint /health for cloud deployment [View](https://github.com/fystack/mpcium/commit/dcc569affcf276945d43222f76196c018b6c5389) +* Gracefully handle context cancelled [View](https://github.com/fystack/mpcium/commit/d6f5cc651367dc16177c199cbbc09bab53557b31) +* Change position of loading app config method [View](https://github.com/fystack/mpcium/commit/e05ac61d96b5f48c4468d00e69a93ca85d5eadb4) +* Fix check required config value [View](https://github.com/fystack/mpcium/commit/59e2582da57b6cbe6e34a187504804c49eb89987) +* Increase version [View](https://github.com/fystack/mpcium/commit/81cc92f6b8f73c542f424a677a5eaf215bae811f) +* Update changelog v0.3.3 release [View](https://github.com/fystack/mpcium/commit/4b5438064615242c9e208a0d5ef09010bddccfd0) +* Add instruction to add authorization configuration [View](https://github.com/fystack/mpcium/commit/dd23e76f0fcc95f68f717f8e99778e6ebb384247) +* Add examples for generate with authorizers [View](https://github.com/fystack/mpcium/commit/55c41bc0eb2a283312477037cd88beb7b1d32357) +* Authorize signatures in event consumer [View](https://github.com/fystack/mpcium/commit/a6a2d6116ec6c4df90d67e28b41010a63e8b3552) +* Refactor initiator message authorization [View](https://github.com/fystack/mpcium/commit/17e7e516c1299debeb4a294fdf3ad3fedb155b77) +* feat: enhance authorization configuration with new signature algorithms and backward compatibility [View](https://github.com/fystack/mpcium/commit/4b7d3c32e0c4475f3c80f0d324a1f0e37832908e) +* feat: auth conf with pubkey and algs [View](https://github.com/fystack/mpcium/commit/8d927343e4549bd3773bbbe7d5d3a1baf27ad041) +* Fix s256 public key encoding (#112) [View](https://github.com/fystack/mpcium/commit/61d4ac484f404e2981c3ad496a9fa7524ff8443f) +* Fix ECDH key exchange race condition in distributed deployments (#111) [View](https://github.com/fystack/mpcium/commit/4c8529fb6d456e9e530268208e6ee6d36f1324e2) +* Enhance setup process and scripts (#110) [View](https://github.com/fystack/mpcium/commit/c7e08758fc7e1bb1ddc639138a37cd5d8b88fee2) +* Refactor setup scripts (#109) [View](https://github.com/fystack/mpcium/commit/4571719ca22d8e8f7edf0f7e1b660651d418e423) +* refactor: cross-platform sed for setup script [View](https://github.com/fystack/mpcium/commit/51ee418f38b4e6fe12aeaa7426884c58c82718fe) +* Add benchmark command [View](https://github.com/fystack/mpcium/commit/1d07ffb3a3a39d425da5e5c5a5de5eb758032a09) +* Refine benchmark [View](https://github.com/fystack/mpcium/commit/189cb6ad226dd1632046daca47c5fb5d9707c3c3) +* Add benchmark [View](https://github.com/fystack/mpcium/commit/027d22c6a5452025adff81063a839aca6c406b49) +* Don't require peers in mpcium-cli, default to ./peers.json [View](https://github.com/fystack/mpcium/commit/12312b69d49b28ec2634aa99fa706b2205b36244) +* Add log for consul initialization [View](https://github.com/fystack/mpcium/commit/1408ccb2f89e2453bfe9a901f9db32b66d000973) +* Parse config into struct [View](https://github.com/fystack/mpcium/commit/e77315d6365a833935f117a6fdaa37e9b0dfc214) +* (fix) #102: allow to specify peers.json in mpcium-cli [View](https://github.com/fystack/mpcium/commit/18beff8270fdce4cefe681e88595e65c327f8255) +* Minor cleanup [View](https://github.com/fystack/mpcium/commit/fbcb3bbd21bece09b797a7dfd6ce39fdc0769b79) +* Remove environment from .env file in setup-config.sh script [View](https://github.com/fystack/mpcium/commit/3da79de754ca9175494a2c61afdb32dd507c0d0f) +* Improve error message [View](https://github.com/fystack/mpcium/commit/1c59894dc8f33d224e4fceba3fcccf1b174f7581) +* Update consul api to latest version [View](https://github.com/fystack/mpcium/commit/e6b35bd2e5cebf9fdb3ddc8aae13feac8258f397) +* Update identity generation example [View](https://github.com/fystack/mpcium/commit/f7ece225f8100bb2f737199d3a49e45a702b8f9c) +* Improve documentation for indeitty directory structure [View](https://github.com/fystack/mpcium/commit/cf5bf7b2eab501bd073edf95882db14935f1410d) +* Add instruction to install go in systemd deployment [View](https://github.com/fystack/mpcium/commit/dd9db087e7b2b9858f5d23876f407caf54b32d0a) + ## v0.3.2 (2025-09-04) -- Update config template [View](https://github.com/fystack/mpcium/commit/68b795b361511b001ea74a34bbd57afe4d0b68a1) -- Update setup config script [View](https://github.com/fystack/mpcium/commit/15bfa1db88e3b42984758991ebfd14f540336982) -- Add script to print keys [View](https://github.com/fystack/mpcium/commit/1576ec9def1d7451076d7600606b87e3fde62673) -- Add missing error handling for ecdh session [View](https://github.com/fystack/mpcium/commit/16e274ec9033c383bc2d98d3ff1750283723734c) -- Update healthcheck data message [View](https://github.com/fystack/mpcium/commit/2e0200e9a8bd507a750f3b371632f2e15b9e1bfa) -- Add mpcium systemd service file [View](https://github.com/fystack/mpcium/commit/f62beae881cb9a45b2fb947898c61bc413de4178) -- Improve readme deployment guide [View](https://github.com/fystack/mpcium/commit/743266b38d37783edba769f4a2f11dcab12f7975) -- Add instruction for deployment with systemd [View](https://github.com/fystack/mpcium/commit/d3277819f57bee7a438cb4450756e75ceea08b05) -- Change cli flag name [View](https://github.com/fystack/mpcium/commit/36bd078ff532dbee40409d8ed6420e99d29f7efc) -- Add security utilities to zero out secrets [View](https://github.com/fystack/mpcium/commit/31e45bf15bfdf61d34edb0f270370314d22e3462) -- Add more flags for mpcium-cli to handle configuration management [View](https://github.com/fystack/mpcium/commit/104b6259947c4a6eaf3dda04c6b333caefada15b) -- Udpate documentation [View](https://github.com/fystack/mpcium/commit/3ecd0164bf5a7936a32f6d5e704b2efce9168ba4) -- Add example for usage with kms signer [View](https://github.com/fystack/mpcium/commit/2c5c7312ed9c814ea8732d12c60a339f67f3c052) -- Implement signer interface with local and kms signers [View](https://github.com/fystack/mpcium/commit/cd141b10f5da930ecbd801ec4b11c96c5d041e17) -- Used enum for event initiator key types [View](https://github.com/fystack/mpcium/commit/c8aaaab5e3df1b8a13c91fccdd4339ea22798339) -- Relocate generate ed25519 key pairs [View](https://github.com/fystack/mpcium/commit/97ac5ae660f5be7fb09144238203bd612c4fdedf) -- Fixed comments and add some unit tests for ed25519 utils [View](https://github.com/fystack/mpcium/commit/fa9a4e1c4fc7b24dfdad844aa03c3af18ff7bad3) -- Fixed e2e tests [View](https://github.com/fystack/mpcium/commit/67d55175895bfa3610264ff32c6ad0452e98f6ac) -- Reverted unnecessary changes [View](https://github.com/fystack/mpcium/commit/dda69076b22d6f61e9f663d9e6f5f905bafa71d4) -- Use enum algo instead of hardcoding values [View](https://github.com/fystack/mpcium/commit/3c052771ffed632a8148333ea6d25b36ad25234e) -- Fixed comments [View](https://github.com/fystack/mpcium/commit/4206b605f09ee7431ccd3bdf53def82d9f9061c5) -- Sign worked. updated sign example. Testing reshare [View](https://github.com/fystack/mpcium/commit/6e77caf3651512bd38ed6448fa96fd0cf8a1b46f) -- Worked. Update generate examples to test with p256 [View](https://github.com/fystack/mpcium/commit/707833cecd55d37869ecf73fb55172c2658d1b4c) -- Supported p256 for event initiator [View](https://github.com/fystack/mpcium/commit/4e358c5d690c3669cb7c46dc020186b37522bd22) -- Update error message, remove unecessary dh key broadcast [View](https://github.com/fystack/mpcium/commit/d33068742bbbb26d20156b3da140dd7a9a781b6f) -- Ack message in consumers after handling error [View](https://github.com/fystack/mpcium/commit/26550fbc3f5d947a44947f9793d8278f8f8b3a6b) -- Return error when cluster is not ready when sending generate key event [View](https://github.com/fystack/mpcium/commit/0d8531c9265752c1dcdb1b4802c05c2ba9cc35ec) -- Error handling for not enough majority nodes to sign [View](https://github.com/fystack/mpcium/commit/3502b0d63983fa33bcfaed2f2169c620d44e93f7) -- Refactor ecdh service to become resilient to node disconnect and rejoin [View](https://github.com/fystack/mpcium/commit/f87446c0f9e05a478d3f34459e2fac846ad61eda) -- Return if is canceld context [View](https://github.com/fystack/mpcium/commit/46d5c1c0a2c26f4f9539fee41abdf02c2686eebb) -- fix rejoining ecdh bug and add ecdh cache key cleaning [View](https://github.com/fystack/mpcium/commit/ea1d761de356879928a70e4cff8b7700c40e38e1) -- Automatically disconnect and remove the peer from consul registry if peer suddenly dies [View](https://github.com/fystack/mpcium/commit/75062c073a626c3257dd9381b627f14f22289a5d) -- Fix lint issue [View](https://github.com/fystack/mpcium/commit/b8dac5a80f88e81a9eb6c487a4c5143145d4f501) -- New feature: P2P channel implemented to encrypt Tss message using ECDH (#71) [View](https://github.com/fystack/mpcium/commit/be082d0e59367a157ddce5f4b5f4bd826835e162) +* Update config template [View](https://github.com/fystack/mpcium/commit/68b795b361511b001ea74a34bbd57afe4d0b68a1) +* Update setup config script [View](https://github.com/fystack/mpcium/commit/15bfa1db88e3b42984758991ebfd14f540336982) +* Add script to print keys [View](https://github.com/fystack/mpcium/commit/1576ec9def1d7451076d7600606b87e3fde62673) +* Add missing error handling for ecdh session [View](https://github.com/fystack/mpcium/commit/16e274ec9033c383bc2d98d3ff1750283723734c) +* Update healthcheck data message [View](https://github.com/fystack/mpcium/commit/2e0200e9a8bd507a750f3b371632f2e15b9e1bfa) +* Add mpcium systemd service file [View](https://github.com/fystack/mpcium/commit/f62beae881cb9a45b2fb947898c61bc413de4178) +* Improve readme deployment guide [View](https://github.com/fystack/mpcium/commit/743266b38d37783edba769f4a2f11dcab12f7975) +* Add instruction for deployment with systemd [View](https://github.com/fystack/mpcium/commit/d3277819f57bee7a438cb4450756e75ceea08b05) +* Change cli flag name [View](https://github.com/fystack/mpcium/commit/36bd078ff532dbee40409d8ed6420e99d29f7efc) +* Add security utilities to zero out secrets [View](https://github.com/fystack/mpcium/commit/31e45bf15bfdf61d34edb0f270370314d22e3462) +* Add more flags for mpcium-cli to handle configuration management [View](https://github.com/fystack/mpcium/commit/104b6259947c4a6eaf3dda04c6b333caefada15b) +* Udpate documentation [View](https://github.com/fystack/mpcium/commit/3ecd0164bf5a7936a32f6d5e704b2efce9168ba4) +* Add example for usage with kms signer [View](https://github.com/fystack/mpcium/commit/2c5c7312ed9c814ea8732d12c60a339f67f3c052) +* Implement signer interface with local and kms signers [View](https://github.com/fystack/mpcium/commit/cd141b10f5da930ecbd801ec4b11c96c5d041e17) +* Used enum for event initiator key types [View](https://github.com/fystack/mpcium/commit/c8aaaab5e3df1b8a13c91fccdd4339ea22798339) +* Relocate generate ed25519 key pairs [View](https://github.com/fystack/mpcium/commit/97ac5ae660f5be7fb09144238203bd612c4fdedf) +* Fixed comments and add some unit tests for ed25519 utils [View](https://github.com/fystack/mpcium/commit/fa9a4e1c4fc7b24dfdad844aa03c3af18ff7bad3) +* Fixed e2e tests [View](https://github.com/fystack/mpcium/commit/67d55175895bfa3610264ff32c6ad0452e98f6ac) +* Reverted unnecessary changes [View](https://github.com/fystack/mpcium/commit/dda69076b22d6f61e9f663d9e6f5f905bafa71d4) +* Use enum algo instead of hardcoding values [View](https://github.com/fystack/mpcium/commit/3c052771ffed632a8148333ea6d25b36ad25234e) +* Fixed comments [View](https://github.com/fystack/mpcium/commit/4206b605f09ee7431ccd3bdf53def82d9f9061c5) +* Sign worked. updated sign example. Testing reshare [View](https://github.com/fystack/mpcium/commit/6e77caf3651512bd38ed6448fa96fd0cf8a1b46f) +* Worked. Update generate examples to test with p256 [View](https://github.com/fystack/mpcium/commit/707833cecd55d37869ecf73fb55172c2658d1b4c) +* Supported p256 for event initiator [View](https://github.com/fystack/mpcium/commit/4e358c5d690c3669cb7c46dc020186b37522bd22) +* Update error message, remove unecessary dh key broadcast [View](https://github.com/fystack/mpcium/commit/d33068742bbbb26d20156b3da140dd7a9a781b6f) +* Ack message in consumers after handling error [View](https://github.com/fystack/mpcium/commit/26550fbc3f5d947a44947f9793d8278f8f8b3a6b) +* Return error when cluster is not ready when sending generate key event [View](https://github.com/fystack/mpcium/commit/0d8531c9265752c1dcdb1b4802c05c2ba9cc35ec) +* Error handling for not enough majority nodes to sign [View](https://github.com/fystack/mpcium/commit/3502b0d63983fa33bcfaed2f2169c620d44e93f7) +* Refactor ecdh service to become resilient to node disconnect and rejoin [View](https://github.com/fystack/mpcium/commit/f87446c0f9e05a478d3f34459e2fac846ad61eda) +* Return if is canceld context [View](https://github.com/fystack/mpcium/commit/46d5c1c0a2c26f4f9539fee41abdf02c2686eebb) +* fix rejoining ecdh bug and add ecdh cache key cleaning [View](https://github.com/fystack/mpcium/commit/ea1d761de356879928a70e4cff8b7700c40e38e1) +* Automatically disconnect and remove the peer from consul registry if peer suddenly dies [View](https://github.com/fystack/mpcium/commit/75062c073a626c3257dd9381b627f14f22289a5d) +* Fix lint issue [View](https://github.com/fystack/mpcium/commit/b8dac5a80f88e81a9eb6c487a4c5143145d4f501) +* New feature: P2P channel implemented to encrypt Tss message using ECDH (#71) [View](https://github.com/fystack/mpcium/commit/be082d0e59367a157ddce5f4b5f4bd826835e162) + ## v0.3.1 (2025-08-12) -- ci(e2e-tests): refactor E2E tests workflow for improved structure and… (#82) [View](https://github.com/fystack/mpcium/commit/832e72481ea2a37567f8cae35d77015e27a109de) -- Attempt to fix CI [View](https://github.com/fystack/mpcium/commit/e3db6785def07e2b59d639220be722029bd61929) -- Add error handling for resharing session init [View](https://github.com/fystack/mpcium/commit/4361b3001a4b5f2073f2acccdae8ea14f5bdc6d3) -- Load threshold from keyinfo for old reshare session [View](https://github.com/fystack/mpcium/commit/be16f2cfa42d2941483b89cb58782e50ad6f01f7) -- Fix resharing adjust cache size (#81) [View](https://github.com/fystack/mpcium/commit/066d2cabf7918b82de84d193d920c34b3eecc3fc) -- Remove redundant config field (#80) [View](https://github.com/fystack/mpcium/commit/4f18391158f1b4d38ff47174d5f22c76b8a724c3) -- Only ensure node is in participant list if not new peer for resharing logic (#79) [View](https://github.com/fystack/mpcium/commit/d83d4a29bf273846e4ee1b249a60ee2dec64339a) -- Make concurrent signing session configurable (#70) [View](https://github.com/fystack/mpcium/commit/e156d0b45a2142776eb96099d1bca76747bf6c33) -- Enhance error handle when signing with duplicate tx_id (Issue #60) (#68) [View](https://github.com/fystack/mpcium/commit/05418f524e15c974f612ade7f0e1c6c06f9fd8f2) -- fix typo (#64) [View](https://github.com/fystack/mpcium/commit/d7cc31158a464cfa087d3ef93c1c41ca60713070) -- Fix error message when signing with duplicate tx_id (Issue #60) (#63) [View](https://github.com/fystack/mpcium/commit/a5dd337768e1ccde3adc80047e58d4922c23ef67) -- Enable backup mode by default [View](https://github.com/fystack/mpcium/commit/92144da0b9f070c8ef76e652e8669ebff69c414c) -- Bump version [View](https://github.com/fystack/mpcium/commit/51a3f48f079a4943382066f4382749cc52e99cf8) -- Add backup dir configuration [View](https://github.com/fystack/mpcium/commit/fed5f35644c50b0a27fddfa57ce1b9f7b6bc39fb) -- Fix code scanning alerts [View](https://github.com/fystack/mpcium/commit/21a2a2e028a61455bb7eda20750f80e9f5c35c43) -- Validate metadata length [View](https://github.com/fystack/mpcium/commit/befa047eeef01dbc8ab59356beb9f5d617272469) -- Fix migration script [View](https://github.com/fystack/mpcium/commit/41f60a9135bb1664d09180a67b4fcaaa1ca3ad3b) -- Customized logger for badger [View](https://github.com/fystack/mpcium/commit/9cf8bc10568ee46d80b8d94e9998c1d1a80fdfbf) -- Implement recovery command for mpcium-cli [View](https://github.com/fystack/mpcium/commit/bbcf3f13512302306a6eac8fd66d6a0192e4b520) -- Implement backup feature [View](https://github.com/fystack/mpcium/commit/030476157c1a99fb1bb75b2c189edf09e1d7c908) -- Skip logging error on duplicate key gen [View](https://github.com/fystack/mpcium/commit/30a13bbe1e68fe5c6f547b3a9e744a2f8821e4a3) -- Fix keygen topic [View](https://github.com/fystack/mpcium/commit/57314fb6a89254205c0e408937f857dc395a5aa1) -- Fix keygen topic [View](https://github.com/fystack/mpcium/commit/d6d522904b5af2882ef221785ba5a36dbc907a4c) +* ci(e2e-tests): refactor E2E tests workflow for improved structure and… (#82) [View](https://github.com/fystack/mpcium/commit/832e72481ea2a37567f8cae35d77015e27a109de) +* Attempt to fix CI [View](https://github.com/fystack/mpcium/commit/e3db6785def07e2b59d639220be722029bd61929) +* Add error handling for resharing session init [View](https://github.com/fystack/mpcium/commit/4361b3001a4b5f2073f2acccdae8ea14f5bdc6d3) +* Load threshold from keyinfo for old reshare session [View](https://github.com/fystack/mpcium/commit/be16f2cfa42d2941483b89cb58782e50ad6f01f7) +* Fix resharing adjust cache size (#81) [View](https://github.com/fystack/mpcium/commit/066d2cabf7918b82de84d193d920c34b3eecc3fc) +* Remove redundant config field (#80) [View](https://github.com/fystack/mpcium/commit/4f18391158f1b4d38ff47174d5f22c76b8a724c3) +* Only ensure node is in participant list if not new peer for resharing logic (#79) [View](https://github.com/fystack/mpcium/commit/d83d4a29bf273846e4ee1b249a60ee2dec64339a) +* Make concurrent signing session configurable (#70) [View](https://github.com/fystack/mpcium/commit/e156d0b45a2142776eb96099d1bca76747bf6c33) +* Enhance error handle when signing with duplicate tx_id (Issue #60) (#68) [View](https://github.com/fystack/mpcium/commit/05418f524e15c974f612ade7f0e1c6c06f9fd8f2) +* fix typo (#64) [View](https://github.com/fystack/mpcium/commit/d7cc31158a464cfa087d3ef93c1c41ca60713070) +* Fix error message when signing with duplicate tx_id (Issue #60) (#63) [View](https://github.com/fystack/mpcium/commit/a5dd337768e1ccde3adc80047e58d4922c23ef67) +* Enable backup mode by default [View](https://github.com/fystack/mpcium/commit/92144da0b9f070c8ef76e652e8669ebff69c414c) +* Bump version [View](https://github.com/fystack/mpcium/commit/51a3f48f079a4943382066f4382749cc52e99cf8) +* Add backup dir configuration [View](https://github.com/fystack/mpcium/commit/fed5f35644c50b0a27fddfa57ce1b9f7b6bc39fb) +* Fix code scanning alerts [View](https://github.com/fystack/mpcium/commit/21a2a2e028a61455bb7eda20750f80e9f5c35c43) +* Validate metadata length [View](https://github.com/fystack/mpcium/commit/befa047eeef01dbc8ab59356beb9f5d617272469) +* Fix migration script [View](https://github.com/fystack/mpcium/commit/41f60a9135bb1664d09180a67b4fcaaa1ca3ad3b) +* Customized logger for badger [View](https://github.com/fystack/mpcium/commit/9cf8bc10568ee46d80b8d94e9998c1d1a80fdfbf) +* Implement recovery command for mpcium-cli [View](https://github.com/fystack/mpcium/commit/bbcf3f13512302306a6eac8fd66d6a0192e4b520) +* Implement backup feature [View](https://github.com/fystack/mpcium/commit/030476157c1a99fb1bb75b2c189edf09e1d7c908) +* Skip logging error on duplicate key gen [View](https://github.com/fystack/mpcium/commit/30a13bbe1e68fe5c6f547b3a9e744a2f8821e4a3) +* Fix keygen topic [View](https://github.com/fystack/mpcium/commit/57314fb6a89254205c0e408937f857dc395a5aa1) +* Fix keygen topic [View](https://github.com/fystack/mpcium/commit/d6d522904b5af2882ef221785ba5a36dbc907a4c) + ## v0.3.0 (2025-07-13) -- Add go mod tidy to e2e [View](https://github.com/fystack/mpcium/commit/28dee5b1f1ba14c36659ab4462f5ce04adf82360) -- Update badger version, add settings for improving durability [View](https://github.com/fystack/mpcium/commit/2727f215737913c25a69c87f33bcdb1cce8152bf) -- Gracefully close consumers [View](https://github.com/fystack/mpcium/commit/6737830d99c300453613c3cca3757a9581ff35ce) -- Add missing error handling [View](https://github.com/fystack/mpcium/commit/f3af531b28d9a0237f154fe7509bc1c23691f09d) -- Change permissions of setup scripts [View](https://github.com/fystack/mpcium/commit/1f7401942f4cc4765d475adde10b9819c32b4900) -- Remove jetstream pubsub change to message broker [View](https://github.com/fystack/mpcium/commit/cf150676391e392969828c6e0fe812ae0009c107) -- Add setup_identities, initiator [View](https://github.com/fystack/mpcium/commit/a54f5fa037bc3e2443de650348e8fe5fd97fed67) -- Revert "Only trigger pipeline on pull request" [View](https://github.com/fystack/mpcium/commit/2b94b6f09e48dc538574afe426a3416d358f4c13) -- Security fixes + CI security check improvement (#49) [View](https://github.com/fystack/mpcium/commit/dc9a964bb942eac5fe005c3cd544f22b0e8d6396) -- Add integration, unit testing CI pipelines (#48) [View](https://github.com/fystack/mpcium/commit/6213d74a3b3ad335327503430b90606effafca8c) -- Only trigger pipeline on pull request [View](https://github.com/fystack/mpcium/commit/7665aad8f3c4f7d3e447a41918c6bd4cf5e8c780) -- Add pathutil for path validation [View](https://github.com/fystack/mpcium/commit/3c664c208d4a18e3c4495f9c58e6b6247a1a64f1) -- Improve security check CI pipeline [View](https://github.com/fystack/mpcium/commit/c46f2ff6cf14fc754c86a43843816707efeab2a0) -- Secure file permission [View](https://github.com/fystack/mpcium/commit/a44fb9b9d713027f087cb80f90c49e50b9a9fd27) -- Change order of CodeQL pipeline [View](https://github.com/fystack/mpcium/commit/b69cc5ff20ee10a38c2de6d80aa9b2145dab7d0e) -- Consistent reshare result topic and fix Inconsistent Success Event [View](https://github.com/fystack/mpcium/commit/75a123807fcd8c80d64a0a56ce35ca4c02550c0b) -- Refactor handle resharing error [View](https://github.com/fystack/mpcium/commit/a1e987ab1a11a891acae84a277128d7d54dd752a) -- Fix resharing, only require t+1 participants, add session_id to remove idempotempt issue [View](https://github.com/fystack/mpcium/commit/ba0d0ee9fff5d9c324849c233f11435a25d915b1) -- Rename success event -> result event [View](https://github.com/fystack/mpcium/commit/511e5f109ef8da6de4e30257fe9e9d45a0ca8035) -- Include error in keygen and reshare event [View](https://github.com/fystack/mpcium/commit/e3e6c6c5e540d458288c6a160e24292720e05871) -- Rename to improve consistent naming [View](https://github.com/fystack/mpcium/commit/624ac0bfb26d7ebe501ef94954941b995cc3e1bd) -- Implement coordination, waiting for enough peers before consuming sign message [View](https://github.com/fystack/mpcium/commit/f11745a0823fbcb5bf57454c9c98ca7b0c71112e) -- Fix signing eddsa crash on key v1 [View](https://github.com/fystack/mpcium/commit/52fe9dc0b543bb960072f8b4d9c7e64764e23789) -- Improve nats configuration [View](https://github.com/fystack/mpcium/commit/3574b7b3411340b0815cd3314d426cf8ac4591a6) -- Enrich signing session message [View](https://github.com/fystack/mpcium/commit/164c5ad6e773413325226ae1d15d95719446d0a6) -- Better error handling [View](https://github.com/fystack/mpcium/commit/d670070b1294cd2fa3ffb60693aa47bffafc1471) -- Adjust signing logic, only require t+1 nodes to participate [View](https://github.com/fystack/mpcium/commit/111f864753ffe1ff34ae08088cfe4a4895f0fb33) -- Populate version in signing session [View](https://github.com/fystack/mpcium/commit/6b313836f35eae9937c271c57972b6cdd5631899) -- Fix issue key not found after resharing [View](https://github.com/fystack/mpcium/commit/fb89fc6af4cecf8e8aa7d6a8659e2cea3f81ca1e) -- refactor: improve session type handling and key storage logic [View](https://github.com/fystack/mpcium/commit/a6fbeb0fa03e2f213e42812aa64a6340531ffbb4) -- chore: resolve PR review comments [View](https://github.com/fystack/mpcium/commit/92104714203af091312dbc98321497a46b352f4b) -- remove debug log [View](https://github.com/fystack/mpcium/commit/a8070eaa02ce0f557bce3f55d007bb7f678ace91) -- support eddsa reshare [View](https://github.com/fystack/mpcium/commit/1312c5f04f51a906375aa4e0904f0cd27a7e300f) -- complete reshare ecdsa supports input threshold and peer ids [View](https://github.com/fystack/mpcium/commit/14a3030b6db25652a313c216c91976c6aad33ea2) -- Enhance reshare session management by introducing versioning and updating party ID generation logic [View](https://github.com/fystack/mpcium/commit/2b5aa6d62b10b047e961e8295c001b9b4a066ab2) -- Update reshare event handling logic and clean up ECDSA reshare session initialization [View](https://github.com/fystack/mpcium/commit/fa8bdbb3447dfcd7d0f6edd4d14cfc5fbe05aa59) -- Remove go.uber.org/mock v0.3.0 dependency from go.mod and go.sum [View](https://github.com/fystack/mpcium/commit/e7a6ab65ae0c3223b35af78fdd2d754f3294f092) -- Fix KeyTypeEd25519 declaration for consistency in eventconsumer and mpc packages [View](https://github.com/fystack/mpcium/commit/e2709d99c5145729a77872a813aef4e51499124c) -- preload preparams [View](https://github.com/fystack/mpcium/commit/641250b88774493a3b178d25ed1cc2e3a36a250d) -- Add resharing functionality with event handling and session management [View](https://github.com/fystack/mpcium/commit/939462e34dd727ea692e240e7e9072b31f3d6853) -- Add keygen event [View](https://github.com/fystack/mpcium/commit/b2121e2525a41047d1605c284bf186428e9362a2) -- Add config max concurrent keygen [View](https://github.com/fystack/mpcium/commit/9a7cf978f3b745bfed8d4d00c23fa0cd67f238b7) -- Refactor session [View](https://github.com/fystack/mpcium/commit/085654e8b8e0ce8d2af577ce7aa86e8acf828fcd) -- Require all peers to participate in key generation [View](https://github.com/fystack/mpcium/commit/3650c1b0c97a0eff01caa7d75ae955ffa68ad54a) -- More granular logs on key type [View](https://github.com/fystack/mpcium/commit/be4f88556e00dba96447ded68ff94a4ece82cc1c) -- Make done usage consistent [View](https://github.com/fystack/mpcium/commit/571245c55f5a8be9d14648a3b6b93062208df7fc) -- Process key gen event concurrently [View](https://github.com/fystack/mpcium/commit/ca54b63b52b02aad458d7251883bb4145b2929b4) -- Initial readme [View](https://github.com/fystack/mpcium/commit/5075816cf4e322bc36ead69376d3f2b73411e261) -- Fix parse config [View](https://github.com/fystack/mpcium/commit/1f02a9e8254f6868a24484b87e20643ce74e9dff) -- Refactoring main file, separate into event consumer [View](https://github.com/fystack/mpcium/commit/d41011766e5ed69658cff811c2968247458a06a5) -- Improve mpc node readiness implementation, need refactor later [View](https://github.com/fystack/mpcium/commit/dc439f3c456826f668d776cecf6761b6658e44f6) -- Init config from viper [View](https://github.com/fystack/mpcium/commit/12a1d63cc38e391dbdc74b5880b7a931fca4b4dc) -- Implement service discovery [View](https://github.com/fystack/mpcium/commit/9e386811eb73b5425e4481e0a8f0e89645e824dd) -- Add deploy script with pm2 [View](https://github.com/fystack/mpcium/commit/feb6e0369c76bc52a2842785c21694357db82ca0) -- Update generate preparams timeout [View](https://github.com/fystack/mpcium/commit/2dca2b9539bc1ce0c4e40d2e1069cb162c975a49) -- Fix gnerate id script [View](https://github.com/fystack/mpcium/commit/8806ac90f9bc2e3ad5c3f7a4af021344541c5d02) -- Add internal network code to signing session [View](https://github.com/fystack/mpcium/commit/89a66dc588c695d9f02d1919acd409f864789020) -- Implement signing session [View](https://github.com/fystack/mpcium/commit/763cab18d540bbcc58bea03130e17c9cfce7af32) -- Code refactoring [View](https://github.com/fystack/mpcium/commit/21e5b8cae3278b905c0036d312dee335928bc4e6) -- mpc session file cleanup [View](https://github.com/fystack/mpcium/commit/cb5059b805faa3bdea3751fad189c59023521505) -- Decode pubkey bytes, implement unit tests [View](https://github.com/fystack/mpcium/commit/2fefa4cd5fe91d73d667ed8d91df3fcd2f738a9e) -- If don't close BadgerDB connection, it will take up 2 G.B of disk space [View](https://github.com/fystack/mpcium/commit/c22ed2e72a780340f6e3f724f9e45e8a69d66b45) -- Implement badger kvstore to persist tss key share [View](https://github.com/fystack/mpcium/commit/3132ac5a002b59e7c4242e136eae13df9e9da66e) -- Generate different bitcoin address formats [View](https://github.com/fystack/mpcium/commit/88cf8acc3da0bbd71a496ecac509c6abe9c7c69c) -- Implement wait peer ready [View](https://github.com/fystack/mpcium/commit/2fb62dd0109db1fcdeb1b4b1f77ff7c6aa5f6a4b) -- Reuse preparams to gen key [View](https://github.com/fystack/mpcium/commit/1be1edc1f6e6219d8bfb430f6f82e8a9448dd10e) -- Implement logging package [View](https://github.com/fystack/mpcium/commit/0547703bb98bf55f5b66e8caaece409e8f34c479) -- Fix bugs, add color logs [View](https://github.com/fystack/mpcium/commit/9f4d8846c4a63210e02287478810928fac676d64) -- Use only topic to broadcast party status [View](https://github.com/fystack/mpcium/commit/ddf540f1bdb18202f78ef69a68b51f910fbefaaa) -- make waiting all parties work [View](https://github.com/fystack/mpcium/commit/4c5cb70bdc4de5b2907fc49142b834e5c59c46c0) -- implement create keygen session [View](https://github.com/fystack/mpcium/commit/2c2292719facd103e62f50e3aa838c4ee3eb1e41) -- Implement direct messaging [View](https://github.com/fystack/mpcium/commit/c711103902a571e9c4976bb9403c167f06382c13) -- Write script to generate node ids [View](https://github.com/fystack/mpcium/commit/7167a0a5aa66186a1651b9987b960204ed9e790a) -- Reorder items [View](https://github.com/fystack/mpcium/commit/695b07498f4fc5815e6c600ef90598f8af4df3f0) -- Add resources [View](https://github.com/fystack/mpcium/commit/edcc4479c702a286b9ac0f78359193d2ee0f1f26) -- Update readme [View](https://github.com/fystack/mpcium/commit/a3318f84f8819d0d4a45572c57b8c68c8370abcc) -- Remove irrelevant files [View](https://github.com/fystack/mpcium/commit/00556878ee6422f1d98fb857ed9209df56804251) -- Fix typo [View](https://github.com/fystack/mpcium/commit/59099144d4bc56dd95b37b86522336cd147973db) -- Added architecture documentation [View](https://github.com/fystack/mpcium/commit/a1ab7964149faf7967437c89e275ea5b37ecaad3) -- update readme [View](https://github.com/fystack/mpcium/commit/5d41030eeeeb35ed124192ffd31774072adae20e) -- Add installation guidelines [View](https://github.com/fystack/mpcium/commit/4f5c46951de47a4e8489cf3f4e122d8559472dd2) -- Move diagram above [View](https://github.com/fystack/mpcium/commit/a72a86747a266e07c42753c9cd1b90ad7f236c0b) -- Update diagram [View](https://github.com/fystack/mpcium/commit/b860ae5277ec8dcc001c464cdef128ea591574b9) -- Update readme [View](https://github.com/fystack/mpcium/commit/8cb0c4f9a46e2657b489edae52f70a59df5a702d) -- Update readme [View](https://github.com/fystack/mpcium/commit/49b36c67c599f4f1fde18094965656c9ef2e9dcc) -- Update readme [View](https://github.com/fystack/mpcium/commit/b2c28eb2543cf66329698289a6935e78f8904a1f) -- Add LICENSE [View](https://github.com/fystack/mpcium/commit/fbbe8f51e1c4f1a8e15dcd3c62835d7bdbebec65) -- Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/d9e57832050c0ede47d6f82bebaf541b37033acf) -- update .gitignore [View](https://github.com/fystack/mpcium/commit/25adf2c637577346e8517f92dca6d7a85573e482) -- Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/8c8ed58ad20e622626208a1d6072b4eccd3c1922) -- Update logs [View](https://github.com/fystack/mpcium/commit/247abc86483d9a1861faa09c264f70cc5186f9e3) -- Add version for cli [View](https://github.com/fystack/mpcium/commit/2be6b7333e7aa2e45e4c02f0828783f3ae45988d) -- Update makefile [View](https://github.com/fystack/mpcium/commit/774e2e1fde455c23557ad82148d3c5c841ff384c) -- Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/dbdd5fe240c9d76d8d3b6fd99f730ff608638bc8) -- file cleanup [View](https://github.com/fystack/mpcium/commit/51106e14bc17e62987f4afa7964f13d044d1a2cb) -- Prepare bin build [View](https://github.com/fystack/mpcium/commit/076b051251c1d7e52aeba848a267722ac308d2aa) -- Relocate package [View](https://github.com/fystack/mpcium/commit/0351ddeed902e2bee40ab945b9f2513900c06a30) -- Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/2196575b7e9b77ac03ab0b06784ed95874eb86bf) -- Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/8f2e8e81627c38b2385c76d12eb7f8b32fd799c9) -- Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/e6a0fe642508bcdffa7778d9b3d24c0bc18e6858) -- implement utility clis [View](https://github.com/fystack/mpcium/commit/1431ef3b0e07e47699e11a4c859eda8fa2e09cdf) -- Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/5ae21330662725c00aff3377a2ef478c1d4fe6c8) -- Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/57fb999a7dfe7a394307c7e4b3e9ee62edbc6a3f) -- Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/7723335f8476d06826cb6393e76cd1771139986a) -- Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/afb838853f26a47c9045cf10e6fb66e633e4b17e) -- Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/8838479aaec554f575a1617f8574856d2f7e3ba3) -- Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/642ad4f05594d36ac3144dc8896b8cea797843d8) -- Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/0d60febafeb7b58f3cb54036a2bb31810b528254) - -## v0.2.0 (2025-04-12) - -- Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/bfcd4578cb8e25ec6cccaac9be12ab49ab738ce9) -- Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/9602d4d9bfe37c2d038856d3ed206bfecd2e8c93) -- Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/a9192ca11581dd986bdd21728cbda4b78d75a753) -- Handle duplicate message [View](https://github.com/fystack/mpcium/commit/e79f6e20fbe225e5aad8b0c9e70578356fce9573) -- Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/52ee83c3ecc2bbb8c16a8227f4f00b72a57c8499) -- Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/e8ffa381f489a83e60dbcbf5262927e99eca2382) -- Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/400f26912ea6b31cbf511de93c1270776055c758) - -## v0.1.7 (2024-10-05) - -- Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/7163097387ca2c682f49bab3e4bd8ad58b33ff29) -- Revert "Debug" [View](https://github.com/fystack/mpcium/commit/f75077717d7cce0b9cfacb349470269ff1ec427b) -- Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/1d505fc8b5724daaf9bbdfa26380ee371ddd95ca) -- Debug [View](https://github.com/fystack/mpcium/commit/4810e7f553939821cce33859d871228eeebe0a2b) -- Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/203cc7707486c2089a6af61f727fb60962b84b88) -- Update mask logic [View](https://github.com/fystack/mpcium/commit/6a3869489ef4881617839fdc1e062582293fc64e) -- Update topic composer [View](https://github.com/fystack/mpcium/commit/d06f23f16d9cd47823d1b5a5cae3428ec7bb5617) -- Minor fix on make file [View](https://github.com/fystack/mpcium/commit/f376c4f8d170ff49c8eb07b4df8d76a38f2134ae) -- Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/ccfb81159a07f497dc2d8340a3b0b763719e5bcb) -- Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/87220e795b44ecc14759e71c5224c62b3bec08d3) - -## v0.1.6 (2024-09-22) - -- Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/5b97ce9b1208eafdf104f4045d6614889d470b93) -- Log config in generateid script [View](https://github.com/fystack/mpcium/commit/8f244d313655e5eb8a73b55cc5b3488e36d86488) -- Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/974b7c404a369fa6211386780881cb407ee8eee2) -- Update makefile [View](https://github.com/fystack/mpcium/commit/affc8300bf4c4cb18af0cc6a347fc8f1d8e9565a) -- Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/744e8ce48dde25fce460eaad4d73ebf2f38e2be3) -- Implement connection for prod [View](https://github.com/fystack/mpcium/commit/5e10a81f12c0879fe8ffd1ee918068ebc50114d3) -- Update changelog [View](https://github.com/fystack/mpcium/commit/d0572d20839b2b512da04f63ffc2d1fc28610cbf) - -## v0.1.5 (2024-06-22) - -- Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/c8229c0a32510eb3faeb7dc2025b4832cb65c715) -- Add type to sessions [View](https://github.com/fystack/mpcium/commit/c7c70e36c39125e6899f5e315493a0a84e47f2dd) -- Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/66d106838f335eae3852d4434f87d2cdf9efe6dd) -- Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/f30c1c5c543e360f5691fe3e434a75fcefe83056) - -## v0.1.4 (2024-05-19) - -- Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/9495ce20aea153ba00abde65a6628bf1f2602144) -- Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/c915a5f7f925b85af67f0a5dd6c5ba29f3eee818) -- Support eddsa signing [View](https://github.com/fystack/mpcium/commit/efc5125ed60ca774c382a5bcb01bb6de6fa548f0) -- Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/fc9f2c20bb41c8542edc3bbecaf261c44a52122d) -- Init logger for migration script [View](https://github.com/fystack/mpcium/commit/9159523bade220ca83fd6db81b17ccf600c9229c) - -## v0.1.3 (2024-05-11) - -- Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/934c37c9dc6b68c2ab5a7a7afe71758aae9f44ed) -- Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/92a102ed2d037e2b6929d70d082795454db42f14) -- Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/44866f36d37bfa16bcfc610e057fd7a3037e9efb) -- Support EDDSA [View](https://github.com/fystack/mpcium/commit/722e636ad00edd57243b62e877a01f629aa27b84) -- Update changelog [View](https://github.com/fystack/mpcium/commit/e9ed0f67279b6476c8d1a8638b0baad59ebd018c) - -## v0.1.2 (2024-03-09) - -- Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/f360810aa760b52871a7cba0b107d09e6bbd7d47) -- Refine log [View](https://github.com/fystack/mpcium/commit/a9cde4014c16cfe3ca6de73039b8e13c49bb65d0) -- Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/b5c15463fa01f58ce9557ebffaa0e96ce6dcda2d) -- Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/d39168ddd7fc622eb1a58ea90617680249297515) -- Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/75cb2b286fffb89f1df39c680dee3d1cacfcffc9) -- Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/cd324358d7c297d2025ea2d0c02464b5552f513d) - -## v0.1.1 (2024-02-05) - -- Add retry package to improve NATs direct message resiliency [View](https://github.com/fystack/mpcium/commit/195f9a4c50732919994b67c13396f141fa4efcdf) -- Move listening to incoming message prior to genkey and signing to fix the nats: no responders available for request [View](https://github.com/fystack/mpcium/commit/421d02e947d12324c188d9bb2868cfb9ee02c3ca) -- Increase direct messsage timeout, add mutex lock for party updating [View](https://github.com/fystack/mpcium/commit/1d75eeea669212ff4b3168575cc07d4e8a0280ae) -- Pass done function to session to clean up resource after successful execution [View](https://github.com/fystack/mpcium/commit/e5430315a3ddc4a0b74b456ee9f4f68b185b5c5e) -- Implement queue manager to spawn message queue based on topic [View](https://github.com/fystack/mpcium/commit/7c107c9cba7db68358df77ea00b00d8d6b659d1d) -- Decode round8, round9 [View](https://github.com/fystack/mpcium/commit/ccd869e8d827ecfeae453b0f865899d35b520e0f) -- Refactor signing session [View](https://github.com/fystack/mpcium/commit/4447cc46da86c03a2353edc7f01b85fd79ead084) -- Clean up code [View](https://github.com/fystack/mpcium/commit/b40d8a42082ed00099054b9852a3415ca24426d0) -- Refactor keygen session [View](https://github.com/fystack/mpcium/commit/11bc34bb5831b0b3ad39fe14e77ef56a931d023d) -- Fix script to load peer ids to consul [View](https://github.com/fystack/mpcium/commit/70a1b53c350ce6414cca308aa588a53495c9411f) +* Fix keygen topic [View](https://github.com/fystack/mpcium/commit/d6d522904b5af2882ef221785ba5a36dbc907a4c) +* Add go mod tidy to e2e [View](https://github.com/fystack/mpcium/commit/28dee5b1f1ba14c36659ab4462f5ce04adf82360) +* Update badger version, add settings for improving durability [View](https://github.com/fystack/mpcium/commit/2727f215737913c25a69c87f33bcdb1cce8152bf) +* Add changelog for v0.3.0 [View](https://github.com/fystack/mpcium/commit/1c13b3debb1590efb1fbec927ff108ff7469498b) +* Add go mod tidy to e2e [View](https://github.com/fystack/mpcium/commit/33a79e8884541615b6865458305c69a2e37a7d61) +* Update badger version, add settings for improving durability [View](https://github.com/fystack/mpcium/commit/6d33d0888a0f8313668c150de6329f8081c58661) +* Gracefully close consumers [View](https://github.com/fystack/mpcium/commit/12d87ab24d12334388ad26546dc2e3b4263e0906) +* Gracefully close consumers [View](https://github.com/fystack/mpcium/commit/6737830d99c300453613c3cca3757a9581ff35ce) +* Add missing error handling [View](https://github.com/fystack/mpcium/commit/4c9162c3968f91148dfac51edb9a615b7fdab080) +* Add missing error handling [View](https://github.com/fystack/mpcium/commit/f3af531b28d9a0237f154fe7509bc1c23691f09d) +* Change permissions of setup scripts [View](https://github.com/fystack/mpcium/commit/1f7401942f4cc4765d475adde10b9819c32b4900) +* Remove jetstream pubsub change to message broker [View](https://github.com/fystack/mpcium/commit/99522c395b09370c59a15fa83aec6c72b99606c9) +* Remove jetstream pubsub change to message broker [View](https://github.com/fystack/mpcium/commit/cf150676391e392969828c6e0fe812ae0009c107) +* Change permissions of setup scripts [View](https://github.com/fystack/mpcium/commit/e837c155a866e8434555218a18c86a2265634a7d) +* Add setup_identities, initiator [View](https://github.com/fystack/mpcium/commit/a54f5fa037bc3e2443de650348e8fe5fd97fed67) +* Add setup_identities, initiator [View](https://github.com/fystack/mpcium/commit/0ee1eddfb4147478e83b035f36208629c1bc3100) +* Revert "Only trigger pipeline on pull request" [View](https://github.com/fystack/mpcium/commit/2b94b6f09e48dc538574afe426a3416d358f4c13) +* Security fixes + CI security check improvement (#49) [View](https://github.com/fystack/mpcium/commit/dc9a964bb942eac5fe005c3cd544f22b0e8d6396) +* Add integration, unit testing CI pipelines (#48) [View](https://github.com/fystack/mpcium/commit/6213d74a3b3ad335327503430b90606effafca8c) +* Only trigger pipeline on pull request [View](https://github.com/fystack/mpcium/commit/7665aad8f3c4f7d3e447a41918c6bd4cf5e8c780) +* Add pathutil for path validation [View](https://github.com/fystack/mpcium/commit/3c664c208d4a18e3c4495f9c58e6b6247a1a64f1) +* Improve security check CI pipeline [View](https://github.com/fystack/mpcium/commit/c46f2ff6cf14fc754c86a43843816707efeab2a0) +* Secure file permission [View](https://github.com/fystack/mpcium/commit/a44fb9b9d713027f087cb80f90c49e50b9a9fd27) +* Change order of CodeQL pipeline [View](https://github.com/fystack/mpcium/commit/b69cc5ff20ee10a38c2de6d80aa9b2145dab7d0e) +* Revert "Only trigger pipeline on pull request" [View](https://github.com/fystack/mpcium/commit/01d48522c96b6e1ae3c7628cb7046644e8710e78) +* Security fixes + CI security check improvement (#49) [View](https://github.com/fystack/mpcium/commit/558beb90636fabb6814689b113ca1482480722e5) +* Only trigger pipeline on pull request [View](https://github.com/fystack/mpcium/commit/be9f29810ed0819de1dfbb86e915172ffcbe32d6) +* Add pathutil for path validation [View](https://github.com/fystack/mpcium/commit/ad129fd46997a32f86d713436e3e36ca850a3adc) +* Improve security check CI pipeline [View](https://github.com/fystack/mpcium/commit/eb8f2088d73b1efbdfdd53764760040a535712d2) +* Secure file permission [View](https://github.com/fystack/mpcium/commit/e2bb6ba145f76a8f655676be1f71e4a7d145e551) +* Change order of CodeQL pipeline [View](https://github.com/fystack/mpcium/commit/0a3ad26147d817a92898c27751b35f8b1db0a135) +* Add integration, unit testing CI pipelines (#48) [View](https://github.com/fystack/mpcium/commit/6b0275e5bf36087e8b445aaf30c578eacb5b45e0) +* Consistent reshare result topic and fix Inconsistent Success Event [View](https://github.com/fystack/mpcium/commit/75a123807fcd8c80d64a0a56ce35ca4c02550c0b) +* Refactor handle resharing error [View](https://github.com/fystack/mpcium/commit/a1e987ab1a11a891acae84a277128d7d54dd752a) +* Fix resharing, only require t+1 participants, add session_id to remove idempotempt issue [View](https://github.com/fystack/mpcium/commit/ba0d0ee9fff5d9c324849c233f11435a25d915b1) +* Consistent reshare result topic and fix Inconsistent Success Event [View](https://github.com/fystack/mpcium/commit/14d6952dbf33de452f395cf4b19391e4862693fa) +* Refactor handle resharing error [View](https://github.com/fystack/mpcium/commit/1849bb881fee1e438abb90672d2cc91aace4562d) +* Fix resharing, only require t+1 participants, add session_id to remove idempotempt issue [View](https://github.com/fystack/mpcium/commit/721c8170daf8a09ee37c2ce1d882618bac99d12d) +* Rename success event -> result event [View](https://github.com/fystack/mpcium/commit/21867b09dd587686aa8981fe546d210d9bd20b54) +* Include error in keygen and reshare event [View](https://github.com/fystack/mpcium/commit/bcc8019f6613b769cefcb666291f9db1c262d2eb) +* Rename success event -> result event [View](https://github.com/fystack/mpcium/commit/511e5f109ef8da6de4e30257fe9e9d45a0ca8035) +* Include error in keygen and reshare event [View](https://github.com/fystack/mpcium/commit/e3e6c6c5e540d458288c6a160e24292720e05871) +* Rename to improve consistent naming [View](https://github.com/fystack/mpcium/commit/624ac0bfb26d7ebe501ef94954941b995cc3e1bd) +* Implement coordination, waiting for enough peers before consuming sign message [View](https://github.com/fystack/mpcium/commit/f11745a0823fbcb5bf57454c9c98ca7b0c71112e) +* Fix signing eddsa crash on key v1 [View](https://github.com/fystack/mpcium/commit/52fe9dc0b543bb960072f8b4d9c7e64764e23789) +* Improve nats configuration [View](https://github.com/fystack/mpcium/commit/3574b7b3411340b0815cd3314d426cf8ac4591a6) +* Enrich signing session message [View](https://github.com/fystack/mpcium/commit/164c5ad6e773413325226ae1d15d95719446d0a6) +* Better error handling [View](https://github.com/fystack/mpcium/commit/d670070b1294cd2fa3ffb60693aa47bffafc1471) +* Adjust signing logic, only require t+1 nodes to participate [View](https://github.com/fystack/mpcium/commit/111f864753ffe1ff34ae08088cfe4a4895f0fb33) +* Populate version in signing session [View](https://github.com/fystack/mpcium/commit/6b313836f35eae9937c271c57972b6cdd5631899) +* Fix issue key not found after resharing [View](https://github.com/fystack/mpcium/commit/fb89fc6af4cecf8e8aa7d6a8659e2cea3f81ca1e) +* Rename to improve consistent naming [View](https://github.com/fystack/mpcium/commit/ce8a6427d0aa358d0edd2dd151ab69a896b9e3c0) +* Implement coordination, waiting for enough peers before consuming sign message [View](https://github.com/fystack/mpcium/commit/70544af85bd1cf83ce2e22c723a9ec09bd9acbef) +* Fix signing eddsa crash on key v1 [View](https://github.com/fystack/mpcium/commit/b7a6185fe4788329642cb471579e76e36c58c1cb) +* Improve nats configuration [View](https://github.com/fystack/mpcium/commit/0d991507c0a586185c7d5c1107f96c014005bbb8) +* Enrich signing session message [View](https://github.com/fystack/mpcium/commit/d2129f0ad48f56659cfe870ce0e8768d6eec848d) +* Better error handling [View](https://github.com/fystack/mpcium/commit/350b48d8e010fd73a864ff3cb588181811027d66) +* Adjust signing logic, only require t+1 nodes to participate [View](https://github.com/fystack/mpcium/commit/2a3d21aa8f0b3df634090ec6217e52cb6570a3a4) +* Populate version in signing session [View](https://github.com/fystack/mpcium/commit/6a83226252a99b78116d9a5c8c910f937abc9deb) +* Fix issue key not found after resharing [View](https://github.com/fystack/mpcium/commit/c48abd81cc6cd4517ec9cb7518abb669d813857f) +* refactor: improve session type handling and key storage logic [View](https://github.com/fystack/mpcium/commit/a6fbeb0fa03e2f213e42812aa64a6340531ffbb4) +* refactor: improve session type handling and key storage logic [View](https://github.com/fystack/mpcium/commit/25d89d6ed6d35758335e7b382b8add1e6ba067da) +* chore: resolve PR review comments [View](https://github.com/fystack/mpcium/commit/92104714203af091312dbc98321497a46b352f4b) +* chore: resolve PR review comments [View](https://github.com/fystack/mpcium/commit/a1df6bf2efe2aa5525829ab00612a49f1e6a3a61) +* remove debug log [View](https://github.com/fystack/mpcium/commit/a8070eaa02ce0f557bce3f55d007bb7f678ace91) +* remove debug log [View](https://github.com/fystack/mpcium/commit/dc27b9a1bdb05f05785e689bd511e81027005d33) +* support eddsa reshare [View](https://github.com/fystack/mpcium/commit/1312c5f04f51a906375aa4e0904f0cd27a7e300f) +* support eddsa reshare [View](https://github.com/fystack/mpcium/commit/0723c0dd0644dc26d73575f3ac9d196da1b32147) +* complete reshare ecdsa supports input threshold and peer ids [View](https://github.com/fystack/mpcium/commit/14a3030b6db25652a313c216c91976c6aad33ea2) +* complete reshare ecdsa supports input threshold and peer ids [View](https://github.com/fystack/mpcium/commit/2321371fea801c5f0d11d1f2a92b35028c22a8b2) +* Enhance reshare session management by introducing versioning and updating party ID generation logic [View](https://github.com/fystack/mpcium/commit/2b5aa6d62b10b047e961e8295c001b9b4a066ab2) +* Enhance reshare session management by introducing versioning and updating party ID generation logic [View](https://github.com/fystack/mpcium/commit/9a19171000733e433986f193173a9611a559b50d) +* Update reshare event handling logic and clean up ECDSA reshare session initialization [View](https://github.com/fystack/mpcium/commit/fa8bdbb3447dfcd7d0f6edd4d14cfc5fbe05aa59) +* Update reshare event handling logic and clean up ECDSA reshare session initialization [View](https://github.com/fystack/mpcium/commit/9661ab3babaee5e3326c1ac3ef8c2e2167280f53) +* Remove go.uber.org/mock v0.3.0 dependency from go.mod and go.sum [View](https://github.com/fystack/mpcium/commit/e7a6ab65ae0c3223b35af78fdd2d754f3294f092) +* Remove go.uber.org/mock v0.3.0 dependency from go.mod and go.sum [View](https://github.com/fystack/mpcium/commit/2620fcc8528d2d9ef02d7ecbd86f3aa9ea5384d8) +* Fix KeyTypeEd25519 declaration for consistency in eventconsumer and mpc packages [View](https://github.com/fystack/mpcium/commit/e2709d99c5145729a77872a813aef4e51499124c) +* Fix KeyTypeEd25519 declaration for consistency in eventconsumer and mpc packages [View](https://github.com/fystack/mpcium/commit/ebe0b9af529b42eb5c2e9c8b0e24b55435be7d70) +* preload preparams [View](https://github.com/fystack/mpcium/commit/641250b88774493a3b178d25ed1cc2e3a36a250d) +* preload preparams [View](https://github.com/fystack/mpcium/commit/87f1e77d304fbe011767c31d3670c2b910907dc8) +* Add resharing functionality with event handling and session management [View](https://github.com/fystack/mpcium/commit/939462e34dd727ea692e240e7e9072b31f3d6853) +* Add resharing functionality with event handling and session management [View](https://github.com/fystack/mpcium/commit/f32c6774a75394e5a0b3aad1a975171feda22cf8) +* Add keygen event [View](https://github.com/fystack/mpcium/commit/b2121e2525a41047d1605c284bf186428e9362a2) +* Add keygen event [View](https://github.com/fystack/mpcium/commit/756bdf34bc424d6a698c7aac7d1681a093e2552b) +* Add config max concurrent keygen [View](https://github.com/fystack/mpcium/commit/9a7cf978f3b745bfed8d4d00c23fa0cd67f238b7) +* Refactor session [View](https://github.com/fystack/mpcium/commit/085654e8b8e0ce8d2af577ce7aa86e8acf828fcd) +* Require all peers to participate in key generation [View](https://github.com/fystack/mpcium/commit/3650c1b0c97a0eff01caa7d75ae955ffa68ad54a) +* More granular logs on key type [View](https://github.com/fystack/mpcium/commit/be4f88556e00dba96447ded68ff94a4ece82cc1c) +* Make done usage consistent [View](https://github.com/fystack/mpcium/commit/571245c55f5a8be9d14648a3b6b93062208df7fc) +* Process key gen event concurrently [View](https://github.com/fystack/mpcium/commit/ca54b63b52b02aad458d7251883bb4145b2929b4) +* Add config max concurrent keygen [View](https://github.com/fystack/mpcium/commit/f1568e547319f0cca5faaf01edd4fe9248aaeacc) +* Refactor session [View](https://github.com/fystack/mpcium/commit/ffe2f9073fd104144a7362f15278724c389f3694) +* Require all peers to participate in key generation [View](https://github.com/fystack/mpcium/commit/0cddc3559978474d685f6b394c305bd9e2dbdb96) +* More granular logs on key type [View](https://github.com/fystack/mpcium/commit/18b7d6d19bb19cf38f93e0560bd3a77f9279a026) +* Make done usage consistent [View](https://github.com/fystack/mpcium/commit/fa1c0ef743e291e3a6fbdd710b212dbcae1d3840) +* Process key gen event concurrently [View](https://github.com/fystack/mpcium/commit/b6274f705676e268b1cabf705cd9847847f3be81) +* Reorder items [View](https://github.com/fystack/mpcium/commit/695b07498f4fc5815e6c600ef90598f8af4df3f0) +* Add resources [View](https://github.com/fystack/mpcium/commit/edcc4479c702a286b9ac0f78359193d2ee0f1f26) +* Update readme [View](https://github.com/fystack/mpcium/commit/a3318f84f8819d0d4a45572c57b8c68c8370abcc) +* Reorder items [View](https://github.com/fystack/mpcium/commit/9bc217c97774f6a3ea1a39f40e8a8e3bc4e9ab09) +* Add resources [View](https://github.com/fystack/mpcium/commit/c80266e6925ac31354a42d1342f5cf5a09fffe8c) +* Update readme [View](https://github.com/fystack/mpcium/commit/174be1d7cad68dc126ebfb8821c6b270c8c0e931) +* Remove irrelevant files [View](https://github.com/fystack/mpcium/commit/00556878ee6422f1d98fb857ed9209df56804251) +* Fix typo [View](https://github.com/fystack/mpcium/commit/59099144d4bc56dd95b37b86522336cd147973db) +* Added architecture documentation [View](https://github.com/fystack/mpcium/commit/a1ab7964149faf7967437c89e275ea5b37ecaad3) +* Remove irrelevant files [View](https://github.com/fystack/mpcium/commit/8f60cbb55c1d0524c725c6d822bd45ac259d08e0) +* Fix typo [View](https://github.com/fystack/mpcium/commit/a9ae67c52c917e2f9d1cf9ce22a166167948619a) +* Added architecture documentation [View](https://github.com/fystack/mpcium/commit/f3cdd7dbf5a4c9367ff72c786c05cae3556d7543) +* update readme [View](https://github.com/fystack/mpcium/commit/5d41030eeeeb35ed124192ffd31774072adae20e) +* update readme [View](https://github.com/fystack/mpcium/commit/8fa9f873f04dc40d6f23e19c239e08557135e0d4) +* Add installation guidelines [View](https://github.com/fystack/mpcium/commit/4f5c46951de47a4e8489cf3f4e122d8559472dd2) +* Add installation guidelines [View](https://github.com/fystack/mpcium/commit/2b72b830efaec4a34d1e53380a3563d9d7bb5d72) +* Move diagram above [View](https://github.com/fystack/mpcium/commit/4573da1d636ffe4ce7c2bcc614303edd608757a8) +* Update diagram [View](https://github.com/fystack/mpcium/commit/a662583818ccff17f86cd39f66cb32df36806e02) +* Move diagram above [View](https://github.com/fystack/mpcium/commit/a72a86747a266e07c42753c9cd1b90ad7f236c0b) +* Update diagram [View](https://github.com/fystack/mpcium/commit/b860ae5277ec8dcc001c464cdef128ea591574b9) +* Update readme [View](https://github.com/fystack/mpcium/commit/8cb0c4f9a46e2657b489edae52f70a59df5a702d) +* Update readme [View](https://github.com/fystack/mpcium/commit/a9bad6d40dfb14f213f0ceb4d445b28aa10a1c80) +* Update readme [View](https://github.com/fystack/mpcium/commit/49b36c67c599f4f1fde18094965656c9ef2e9dcc) +* Update readme [View](https://github.com/fystack/mpcium/commit/b2c28eb2543cf66329698289a6935e78f8904a1f) +* Update readme [View](https://github.com/fystack/mpcium/commit/37ad564fbee286d6ca0c1e4d3f65adedd74a4181) +* Add LICENSE [View](https://github.com/fystack/mpcium/commit/fbbe8f51e1c4f1a8e15dcd3c62835d7bdbebec65) +* Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/d9e57832050c0ede47d6f82bebaf541b37033acf) +* update .gitignore [View](https://github.com/fystack/mpcium/commit/25adf2c637577346e8517f92dca6d7a85573e482) +* Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/8c8ed58ad20e622626208a1d6072b4eccd3c1922) +* Update logs [View](https://github.com/fystack/mpcium/commit/247abc86483d9a1861faa09c264f70cc5186f9e3) +* Add version for cli [View](https://github.com/fystack/mpcium/commit/2be6b7333e7aa2e45e4c02f0828783f3ae45988d) +* Update makefile [View](https://github.com/fystack/mpcium/commit/774e2e1fde455c23557ad82148d3c5c841ff384c) +* Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/dbdd5fe240c9d76d8d3b6fd99f730ff608638bc8) +* file cleanup [View](https://github.com/fystack/mpcium/commit/51106e14bc17e62987f4afa7964f13d044d1a2cb) +* Prepare bin build [View](https://github.com/fystack/mpcium/commit/076b051251c1d7e52aeba848a267722ac308d2aa) +* Relocate package [View](https://github.com/fystack/mpcium/commit/0351ddeed902e2bee40ab945b9f2513900c06a30) +* Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/2196575b7e9b77ac03ab0b06784ed95874eb86bf) +* Update readme [View](https://github.com/fystack/mpcium/commit/ed662192485ad52f2b9aad7ed77e568439c7bd02) +* Add LICENSE [View](https://github.com/fystack/mpcium/commit/4f01f15d8dc190177b7982ab29c85f9d75b12b70) +* Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/db846b54e7f33b26de25930667aca745058026fb) +* update .gitignore [View](https://github.com/fystack/mpcium/commit/e1e3fcc734f8cb18063fbb7c73be45dd632da388) +* Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/3f1a7e3a68020a644669662daf54c5db86d37334) +* Update logs [View](https://github.com/fystack/mpcium/commit/1f944b34363dc36e96a5a5b354856113fd320bfd) +* Add version for cli [View](https://github.com/fystack/mpcium/commit/e7da31eb7c8963c2931ee8e9f878f3afe90ffd88) +* Update makefile [View](https://github.com/fystack/mpcium/commit/692836700624e4949bb0cada6530203720c7ed32) +* Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/e4355764de678c3095b6c6fd15346a0c1f9d0cc7) +* file cleanup [View](https://github.com/fystack/mpcium/commit/187d2870fd0ad599dae3074c94c7d887cdf7fff0) +* Prepare bin build [View](https://github.com/fystack/mpcium/commit/2786aec18dbb566a6a953b7ec4417ae477301b42) +* Relocate package [View](https://github.com/fystack/mpcium/commit/1ee63ba4cb81ba16fc4500894a61e28453646eff) +* Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/1d502753191f77fae9fa66f2e873a9e3743843b6) +* Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/8f2e8e81627c38b2385c76d12eb7f8b32fd799c9) +* Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/e6a0fe642508bcdffa7778d9b3d24c0bc18e6858) +* Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/0407365ee21128970c3ee1ceaf06cce0e4a238ec) +* Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/6c977affac3f67f913f140b11ad9c9e503f76d12) +* implement utility clis [View](https://github.com/fystack/mpcium/commit/90ded247dbe1bd56fa13b1651f36276496a0e540) +* Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/3780e3a6175f35b8881cccb855372bf95a7760d9) +* implement utility clis [View](https://github.com/fystack/mpcium/commit/1431ef3b0e07e47699e11a4c859eda8fa2e09cdf) +* Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/5ae21330662725c00aff3377a2ef478c1d4fe6c8) +* Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/57fb999a7dfe7a394307c7e4b3e9ee62edbc6a3f) +* Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/db4785e76e256ffda28c44a48bb5d3a06abe08ac) +* Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/84d7fede394b2090bca30eabf9366599849f6d34) +* Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/02d32325ad1dcde6715fa366757341c7055c5314) +* Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/7723335f8476d06826cb6393e76cd1771139986a) +* Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/afb838853f26a47c9045cf10e6fb66e633e4b17e) +* Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/8838479aaec554f575a1617f8574856d2f7e3ba3) +* Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/ed87c4ce61054c553b2d4b60e44adab7019c5c1f) +* Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/642ad4f05594d36ac3144dc8896b8cea797843d8) +* Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/f70eea7648d3e2c009f0609113b340b8dc816bce) +* Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/0d60febafeb7b58f3cb54036a2bb31810b528254) +* Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/bfcd4578cb8e25ec6cccaac9be12ab49ab738ce9) +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/f6da85a88c74f84e3a90ba7f7557ad3d5fa468d6) +* Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/93deb6b2c213e1502123ca6ff492a956e54ae6c1) +* Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/3956d8459284eb4a2401495c625ed52f0e26b3ca) +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/b5bb177f803fc638b38b2aea2d0dcc0aebcc20da) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/e55d2768f164225b5b58bbd6287e4f044d4b13d7) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/8a107b49b3615a6b3303b5d93afc401968090caa) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/694d3a0791772d76469a9fcd2f8f76998b5c4bbf) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/36598a87ec65dd18af00f3416a13e7559c18fda2) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/f4031664710ccffd356f614946faa3a65a3b185d) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/578a7dea3f8f9f7558b864772e93e8e50733d8fd) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/c881bfb65f9fd5b42653c9597b2a1c58b004442b) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/21225322cfc65951db1509c156518755a578b37c) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/8afedc4cd8166473e6c3c69735cae8621d6c3252) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/d9b85f00bc9b30d58e5fc473d3033b4ac5fd2adf) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1013ec7c945214eff2a2a8c57441bad11a3ca300) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/0c37114d3f7fc85108412e369dc32f5bef94c55f) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/f4328b36e731e8d0aa49f3d0c9b8e476f17448a1) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/e70c5ab1cdd8cf41196854b3c9824cb783f6d1d8) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/011fe6b39f6e57508165cc8b0a6c615cad763834) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/bff6a90571864312b159012cc75914ac4fd3ba68) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/880e5edf1ffab8ba2e415f512293cb9bfb1862b5) +* Debug [View](https://github.com/fystack/mpcium/commit/d441c0dd9c7cf975549e60ac1319908baa896737) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/94f7df33d4c301fa3406c8345bb80964ca88c400) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/04d70e69b64a10e6bcb09ba7e82c5e2d76ab9d79) +* Debug [View](https://github.com/fystack/mpcium/commit/b35bd7c03286c0e58607ca97b3e8d1b0b7bed6ba) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/30cf910910d3a448ab489decdbaa615f53301641) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/2176a1cff54f6c0841fea9e7fbb05436372d3aca) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/39c44144927ea0f930a95324f122f975354d9db5) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/cfaf20ca0f54a0f5738cd7c01d31f7a6eaa3063a) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/7c1a92b87c965fd90c2f2394a39685d706e515bc) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/aa54af18c66bad6096c8f6a1cdf34afc11e3c078) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/9017bc8df6eccf43ddd9b58cd26a674df1d84ed6) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/62b787132fd57d4bb4a5eb7a7545bc76a2dcd8c1) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/8bb1d7f3a81ca4ee50974c30b89098624113f4f2) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/551c43bde467777a3f254ac244afc18bf6a78418) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/5d914d425eea01f757e6d1b6ce7fa668fc3dd220) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/3a924288fa8b154138492f7ac93e9fee4b95ff48) +* Update makefile [View](https://github.com/fystack/mpcium/commit/b8d3da20cc0e08654e3d68912232bba83bbd1c1c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/98e50310452e6ff3ca1d85b2ca2fcf8998316c21) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/85ac5e2d62ad0eae15deeea9429cd45617b17430) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/a040423fca15291b82a487e0371eaa5ca7d38d6e) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/4f86645b96af9396d0a83b2d99bc09ec1cd9d60d) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/eb09966c185bcbfbbc6346636f8fd06582eaa161) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/9eb4a6562e1414cdcc210e081f9629650dcf4a12) +* Update makefile [View](https://github.com/fystack/mpcium/commit/ecee2ee86d60ba33a976535ae0fafd83a206a24d) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/c8423ae1dce6b1d109d5ea38717d3fd08d0c8dcc) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/1b6d725548b07257011eb1c8634e3787ff350e82) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/df731087685cc7f38e979c229dacd6607e8a3381) +* Update changelog [View](https://github.com/fystack/mpcium/commit/3641cba912aca0c01cc3f9e45525a68fa0e2fb65) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/36d6de586601fd3be178f68c19c21934edd49083) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/02381a141759dd6a6bc6b1ac7155c456b8926d46) +* Update changelog [View](https://github.com/fystack/mpcium/commit/380fd9b0b721979d095b29796f9effb1f5e60bcd) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/d472b265116c53cf95ab369f60d6820b0a83fc9f) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/f4dbcaf62dbc284644ff4ed609a593e5d279890a) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/90672ba887eda1fc4a57ef2649a309b7c94e21b4) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/a91f34bba560fcf93ca63fb8db767af834fada32) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/9bea236e6d6c115d82281feec36422e7617baeff) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/06ed20d3a58d00fdf74d297354bfdb0accfc68b0) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/c4730a7e30bcb0aa73e2766e0615d2c21e863103) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/c198e4dc28e409003d515cdebdcd88603b436420) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/3fc82401335f6be41cdc62b49e6ad6c7b4312664) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/15a9ac8c1a5a8ce62ca995ae1a20159fd4b5fcd4) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/cbdc34dfb7a1b7e7982318e8a3e1a9bcf2ebd117) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/cf7f0a2b5d80bf5913cfc10b33d2bf4666bc9bf9) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/75cb031c9c266f1f1ab76c049615ae4e116e6d4a) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/8f0f2ed855f0e28e9f4777c3962e86ba9381e9b0) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/ff754b56d690301f787b553b5c751b8b0996ab0e) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/21cb5af150620546a521a1e38028298ee66b0e72) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/3a3bbfc30cb3f81fb82c10de017a205a579e7d96) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/9d9c428579b1960f6b9632de332de2b6e688a6aa) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/fa93009633566a90b276ccf64cfbdf6bda72db94) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/1f9c5ee96e8c22215641afa4b9cca9863c7a9f13) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/8cbf96fb33fbab791c8280a61d6c19ea5a9e2a03) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/865c5217c7fa87e785c8c031c1eb1ce75e4b1b04) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/c11470b3dd46d8d3ecd27a450b1b4c57037a2d34) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/805727c633a855f8f0f8415e1ed250ac49239540) +* Update changelog [View](https://github.com/fystack/mpcium/commit/b4cf29f5cdc713b85da2b85f6e847960449640be) +* Update changelog [View](https://github.com/fystack/mpcium/commit/cae0c0984fbedc9b5aac7631b04a8d40778234b6) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/1da9562bace9d3934dd9e3a5f2a58cf6ab2cf070) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/5db1a77731b8c7eb4adf788b0e8ffdcf65d8e22f) +* Refine log [View](https://github.com/fystack/mpcium/commit/8a55f28d95d5cdb6edee9ecdefd62e7c9a8862ad) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/d43f13220b47bc0c45d2cbc0e840b0bfdb5bc06a) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/fea84fad9a6121258303560166b0d9fde1d2a34e) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/5e0561956bba696678f99761f5c41ccb972dfd1a) +* Refine log [View](https://github.com/fystack/mpcium/commit/6082886833e9f5bafe97a9224f65b7e3b22a6f0d) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/ed788f5a07d72b0564f0c9557d23fd54a03cfc45) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/8ef5c5266bb20128830e351c9f3830304beaa79c) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/a3ce7a5d87681dd135c95f24ee7b3ee51401e852) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/0cdae42be539a09fa43030daa51229c72316f267) +* Add retry package to improve NATs direct message resiliency [View](https://github.com/fystack/mpcium/commit/f1977f2dbbafaa000fe7817feb212ed8b092ba56) +* Move listening to incoming message prior to genkey and signing to fix the nats: no responders available for request [View](https://github.com/fystack/mpcium/commit/edcd524b15b0853fd0ea5d3c60c5f49cfa709852) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/52b35a6bf2f613369203b4e18de578e992549d43) +* Add retry package to improve NATs direct message resiliency [View](https://github.com/fystack/mpcium/commit/40fd294923ae44386792a5902c929d411cf6ef08) +* Move listening to incoming message prior to genkey and signing to fix the nats: no responders available for request [View](https://github.com/fystack/mpcium/commit/bd85516107010e780a7a943485674fd9864f5a34) +* Increase direct messsage timeout, add mutex lock for party updating [View](https://github.com/fystack/mpcium/commit/d250fde383f58a0a76931a47071530696741cc2e) +* Increase direct messsage timeout, add mutex lock for party updating [View](https://github.com/fystack/mpcium/commit/bc22f6c68e658471df8add55833cd81d48809c84) +* Pass done function to session to clean up resource after successful execution [View](https://github.com/fystack/mpcium/commit/923c5787a9db17fe96839d4ff4f835dc32533025) +* Implement queue manager to spawn message queue based on topic [View](https://github.com/fystack/mpcium/commit/4199697dd4d57687a7bdd1c2f253f319aaad0a79) +* Decode round8, round9 [View](https://github.com/fystack/mpcium/commit/c92e0526c0f567a7e1bb04333cac1beacb60ed95) +* Refactor signing session [View](https://github.com/fystack/mpcium/commit/9e351bf221b024e167eabdb2591e079d081279bd) +* Clean up code [View](https://github.com/fystack/mpcium/commit/202d5a988ca923efdd1d5d79baa2bf753633d1a5) +* Refactor keygen session [View](https://github.com/fystack/mpcium/commit/7ba8a189d7b84582044ed056b04ff981ec341e2f) +* Pass done function to session to clean up resource after successful execution [View](https://github.com/fystack/mpcium/commit/e611296b910fb7ce78670d3363c75feb87440918) +* Implement queue manager to spawn message queue based on topic [View](https://github.com/fystack/mpcium/commit/7fe63cb4467cbbc1c922367fc52af4613337869f) +* Decode round8, round9 [View](https://github.com/fystack/mpcium/commit/724fa07fdf8ab087cfc843032df4f9c75b12d82e) +* Refactor signing session [View](https://github.com/fystack/mpcium/commit/266e1500b74a94d4835857adc7ba22e76aa42ccf) +* Clean up code [View](https://github.com/fystack/mpcium/commit/6ca81342f0c6cad28fe42843c88825ec0ef449ba) +* Refactor keygen session [View](https://github.com/fystack/mpcium/commit/8a22812edfa2b0dd5164790a6c36bb1737d68801) +* Fix script to load peer ids to consul [View](https://github.com/fystack/mpcium/commit/8646c3ce081ac2458aa227b6009628e1f9b092a6) +* Fix script to load peer ids to consul [View](https://github.com/fystack/mpcium/commit/2d86370b154d220b7bd831267a101356e4d0af18) +* Initial readme [View](https://github.com/fystack/mpcium/commit/71337b48ce80b061d2b85936da652828ac12e808) +* Fix parse config [View](https://github.com/fystack/mpcium/commit/a3f67129db7c37be32a84e996031891f99d355cf) +* Initial readme [View](https://github.com/fystack/mpcium/commit/254ce4cdccb16e96a1cc4b57b3ea5ef8328f7259) +* Fix parse config [View](https://github.com/fystack/mpcium/commit/a865d2a8d2e20396b36747607969d9c98b65ffe7) +* Implement service discovery [View](https://github.com/fystack/mpcium/commit/13e258cdcc024c550582abc1b2ca63aab3c6c4cb) +* Refactoring main file, separate into event consumer [View](https://github.com/fystack/mpcium/commit/c24bfbba9c46f183fdb9bfb49f0cf727e7312bfc) +* Refactoring main file, separate into event consumer [View](https://github.com/fystack/mpcium/commit/2c10f933d2fcab235c3eb8ff9c7c67d8e25bca9c) +* Implement service discovery [View](https://github.com/fystack/mpcium/commit/35be93988c5d66c8838c86a76ce0bca9f9001984) +* Improve mpc node readiness implementation, need refactor later [View](https://github.com/fystack/mpcium/commit/38ec48c9460b41255b981d74a278542d19e09845) +* Init config from viper [View](https://github.com/fystack/mpcium/commit/04be8ecb1ecd4c232a804525b3e034d661ca493b) +* Improve mpc node readiness implementation, need refactor later [View](https://github.com/fystack/mpcium/commit/c65577076e0553c4471bf8a4b3f7dc643762455a) +* Init config from viper [View](https://github.com/fystack/mpcium/commit/239c37c65e129edae143052b9cc1b19abde31ee7) +* Add deploy script with pm2 [View](https://github.com/fystack/mpcium/commit/db45d026df09626854cf5825e5097edcdf8cfbc8) +* Update generate preparams timeout [View](https://github.com/fystack/mpcium/commit/183afe24ef129d7e7560dd8de2de863af0a52018) +* Add deploy script with pm2 [View](https://github.com/fystack/mpcium/commit/6a8e14f792612198c9bd810fd8dc6bdb49c9c24d) +* Update generate preparams timeout [View](https://github.com/fystack/mpcium/commit/155a404b9241e8803f2becb4f12fee3e32882207) +* Fix gnerate id script [View](https://github.com/fystack/mpcium/commit/9902d5c464b188778301a6d1ce64385bc283b0eb) +* Fix gnerate id script [View](https://github.com/fystack/mpcium/commit/bde14ae63d62e37b278c335e0406e5b182823c83) +* Add internal network code to signing session [View](https://github.com/fystack/mpcium/commit/af44208cc6fc7fe017d4a9275429e0040f1cf35a) +* Implement signing session [View](https://github.com/fystack/mpcium/commit/3165ddac01816b8bf494c17f5f91c068be85e1c0) +* Code refactoring [View](https://github.com/fystack/mpcium/commit/ee238e6696bf13705c8d760f9de51a3f054b77e6) +* mpc session file cleanup [View](https://github.com/fystack/mpcium/commit/b16af4532c31d3aed85a9cbed942a4fbbf0656e9) +* Add internal network code to signing session [View](https://github.com/fystack/mpcium/commit/b102fcdbac29e2747420bff16ee15c5dfbe51058) +* Implement signing session [View](https://github.com/fystack/mpcium/commit/53c8706b550bb21a8f64e40e1f44418180039e91) +* Code refactoring [View](https://github.com/fystack/mpcium/commit/3a24e2b3bfac90e7a257b27f421fe898a7bd9f8f) +* mpc session file cleanup [View](https://github.com/fystack/mpcium/commit/70e74af2e02d878f7f2cdea503a607f08f0829ed) +* Decode pubkey bytes, implement unit tests [View](https://github.com/fystack/mpcium/commit/4888b7308bc742eb688d1eabd9fff1a7d1890b6a) +* Decode pubkey bytes, implement unit tests [View](https://github.com/fystack/mpcium/commit/1b6bfedda96a407d968188fae9c54fec9e99d20a) +* If don't close BadgerDB connection, it will take up 2 G.B of disk space [View](https://github.com/fystack/mpcium/commit/11045349433ccf4a302720307a82462ebcaae1e8) +* Implement badger kvstore to persist tss key share [View](https://github.com/fystack/mpcium/commit/f12062162f5d9ef1bdea14db265d8e4b117e705c) +* If don't close BadgerDB connection, it will take up 2 G.B of disk space [View](https://github.com/fystack/mpcium/commit/14c959ffefc7fdce5bdebd61d36b460d4f7f681f) +* Generate different bitcoin address formats [View](https://github.com/fystack/mpcium/commit/6676be05dc31098f70aea919a25a7629b3e9347a) +* Implement wait peer ready [View](https://github.com/fystack/mpcium/commit/81cca6037cb7df93f5b549331fc6befcae636553) +* Reuse preparams to gen key [View](https://github.com/fystack/mpcium/commit/bd994a16132f1fbc2ee2845c2050211b28f5e4b6) +* Implement logging package [View](https://github.com/fystack/mpcium/commit/d44fda356590e1d7982855f13c75a87ca0a9da1d) +* Fix bugs, add color logs [View](https://github.com/fystack/mpcium/commit/c42a17fb738081fa0783d7bdf0a889e232e1010e) +* Implement badger kvstore to persist tss key share [View](https://github.com/fystack/mpcium/commit/ac8b0b7a1b2a807b67a300818cab720d8d3e6c15) +* Generate different bitcoin address formats [View](https://github.com/fystack/mpcium/commit/f2c731fdcb046fde626d555de20e1e8bcb8c9910) +* Implement wait peer ready [View](https://github.com/fystack/mpcium/commit/e74a670cff2ab190dfc50cbd3fa8ea70c643241f) +* Reuse preparams to gen key [View](https://github.com/fystack/mpcium/commit/91fc82184c88d2521d8161bd26bd5b41ac56efec) +* Implement logging package [View](https://github.com/fystack/mpcium/commit/965341741a1ebae9ac93b18e8ac5b296ea1a9b2e) +* Fix bugs, add color logs [View](https://github.com/fystack/mpcium/commit/ac43c439997373adb86951d48c2e25eb4d9db4d8) +* Use only topic to broadcast party status [View](https://github.com/fystack/mpcium/commit/6289f2e7ed8396dbccbf80ffed42002d01c32d8c) +* make waiting all parties work [View](https://github.com/fystack/mpcium/commit/4a9dd60a483ce30191ee0edbff23b92b2176bd10) +* implement create keygen session [View](https://github.com/fystack/mpcium/commit/6b6bd4d62654551ef55b455d669cab0310d44615) +* Implement direct messaging [View](https://github.com/fystack/mpcium/commit/6c19dcbc27ed4ff02cc6f1f62ab6419e555f77d7) +* Use only topic to broadcast party status [View](https://github.com/fystack/mpcium/commit/b92cc56a6edac18e11a8569217e5d8ae8427c2af) +* make waiting all parties work [View](https://github.com/fystack/mpcium/commit/baa4ada3195e12418a3633d2a9d6057240d7f27e) +* implement create keygen session [View](https://github.com/fystack/mpcium/commit/5d0655ff45c5e9c014136d1c70977da48921f0ab) +* Implement direct messaging [View](https://github.com/fystack/mpcium/commit/cedbef54e9f75e9fa1c8507ab121de4e990b0c4e) +* Write script to generate node ids [View](https://github.com/fystack/mpcium/commit/a6cfec4856da9a4bc98b10c578d92ba775f7e59b) +* Write script to generate node ids [View](https://github.com/fystack/mpcium/commit/63f35178cc840cf7ff6db90b673d2e4bdf4e1ba8) + + +## tig (2025-07-13) + +* Add go mod tidy to e2e [View](https://github.com/fystack/mpcium/commit/28dee5b1f1ba14c36659ab4462f5ce04adf82360) +* Update badger version, add settings for improving durability [View](https://github.com/fystack/mpcium/commit/2727f215737913c25a69c87f33bcdb1cce8152bf) +* Gracefully close consumers [View](https://github.com/fystack/mpcium/commit/6737830d99c300453613c3cca3757a9581ff35ce) +* Add missing error handling [View](https://github.com/fystack/mpcium/commit/f3af531b28d9a0237f154fe7509bc1c23691f09d) +* Change permissions of setup scripts [View](https://github.com/fystack/mpcium/commit/1f7401942f4cc4765d475adde10b9819c32b4900) +* Remove jetstream pubsub change to message broker [View](https://github.com/fystack/mpcium/commit/cf150676391e392969828c6e0fe812ae0009c107) +* Add setup_identities, initiator [View](https://github.com/fystack/mpcium/commit/a54f5fa037bc3e2443de650348e8fe5fd97fed67) +* Revert "Only trigger pipeline on pull request" [View](https://github.com/fystack/mpcium/commit/2b94b6f09e48dc538574afe426a3416d358f4c13) +* Security fixes + CI security check improvement (#49) [View](https://github.com/fystack/mpcium/commit/dc9a964bb942eac5fe005c3cd544f22b0e8d6396) +* Add integration, unit testing CI pipelines (#48) [View](https://github.com/fystack/mpcium/commit/6213d74a3b3ad335327503430b90606effafca8c) +* Only trigger pipeline on pull request [View](https://github.com/fystack/mpcium/commit/7665aad8f3c4f7d3e447a41918c6bd4cf5e8c780) +* Add pathutil for path validation [View](https://github.com/fystack/mpcium/commit/3c664c208d4a18e3c4495f9c58e6b6247a1a64f1) +* Improve security check CI pipeline [View](https://github.com/fystack/mpcium/commit/c46f2ff6cf14fc754c86a43843816707efeab2a0) +* Secure file permission [View](https://github.com/fystack/mpcium/commit/a44fb9b9d713027f087cb80f90c49e50b9a9fd27) +* Change order of CodeQL pipeline [View](https://github.com/fystack/mpcium/commit/b69cc5ff20ee10a38c2de6d80aa9b2145dab7d0e) +* Consistent reshare result topic and fix Inconsistent Success Event [View](https://github.com/fystack/mpcium/commit/75a123807fcd8c80d64a0a56ce35ca4c02550c0b) +* Refactor handle resharing error [View](https://github.com/fystack/mpcium/commit/a1e987ab1a11a891acae84a277128d7d54dd752a) +* Fix resharing, only require t+1 participants, add session_id to remove idempotempt issue [View](https://github.com/fystack/mpcium/commit/ba0d0ee9fff5d9c324849c233f11435a25d915b1) +* Rename success event -> result event [View](https://github.com/fystack/mpcium/commit/511e5f109ef8da6de4e30257fe9e9d45a0ca8035) +* Include error in keygen and reshare event [View](https://github.com/fystack/mpcium/commit/e3e6c6c5e540d458288c6a160e24292720e05871) +* Rename to improve consistent naming [View](https://github.com/fystack/mpcium/commit/624ac0bfb26d7ebe501ef94954941b995cc3e1bd) +* Implement coordination, waiting for enough peers before consuming sign message [View](https://github.com/fystack/mpcium/commit/f11745a0823fbcb5bf57454c9c98ca7b0c71112e) +* Fix signing eddsa crash on key v1 [View](https://github.com/fystack/mpcium/commit/52fe9dc0b543bb960072f8b4d9c7e64764e23789) +* Improve nats configuration [View](https://github.com/fystack/mpcium/commit/3574b7b3411340b0815cd3314d426cf8ac4591a6) +* Enrich signing session message [View](https://github.com/fystack/mpcium/commit/164c5ad6e773413325226ae1d15d95719446d0a6) +* Better error handling [View](https://github.com/fystack/mpcium/commit/d670070b1294cd2fa3ffb60693aa47bffafc1471) +* Adjust signing logic, only require t+1 nodes to participate [View](https://github.com/fystack/mpcium/commit/111f864753ffe1ff34ae08088cfe4a4895f0fb33) +* Populate version in signing session [View](https://github.com/fystack/mpcium/commit/6b313836f35eae9937c271c57972b6cdd5631899) +* Fix issue key not found after resharing [View](https://github.com/fystack/mpcium/commit/fb89fc6af4cecf8e8aa7d6a8659e2cea3f81ca1e) +* refactor: improve session type handling and key storage logic [View](https://github.com/fystack/mpcium/commit/a6fbeb0fa03e2f213e42812aa64a6340531ffbb4) +* chore: resolve PR review comments [View](https://github.com/fystack/mpcium/commit/92104714203af091312dbc98321497a46b352f4b) +* remove debug log [View](https://github.com/fystack/mpcium/commit/a8070eaa02ce0f557bce3f55d007bb7f678ace91) +* support eddsa reshare [View](https://github.com/fystack/mpcium/commit/1312c5f04f51a906375aa4e0904f0cd27a7e300f) +* complete reshare ecdsa supports input threshold and peer ids [View](https://github.com/fystack/mpcium/commit/14a3030b6db25652a313c216c91976c6aad33ea2) +* Enhance reshare session management by introducing versioning and updating party ID generation logic [View](https://github.com/fystack/mpcium/commit/2b5aa6d62b10b047e961e8295c001b9b4a066ab2) +* Update reshare event handling logic and clean up ECDSA reshare session initialization [View](https://github.com/fystack/mpcium/commit/fa8bdbb3447dfcd7d0f6edd4d14cfc5fbe05aa59) +* Remove go.uber.org/mock v0.3.0 dependency from go.mod and go.sum [View](https://github.com/fystack/mpcium/commit/e7a6ab65ae0c3223b35af78fdd2d754f3294f092) +* Fix KeyTypeEd25519 declaration for consistency in eventconsumer and mpc packages [View](https://github.com/fystack/mpcium/commit/e2709d99c5145729a77872a813aef4e51499124c) +* preload preparams [View](https://github.com/fystack/mpcium/commit/641250b88774493a3b178d25ed1cc2e3a36a250d) +* Add resharing functionality with event handling and session management [View](https://github.com/fystack/mpcium/commit/939462e34dd727ea692e240e7e9072b31f3d6853) +* Add keygen event [View](https://github.com/fystack/mpcium/commit/b2121e2525a41047d1605c284bf186428e9362a2) +* Add config max concurrent keygen [View](https://github.com/fystack/mpcium/commit/9a7cf978f3b745bfed8d4d00c23fa0cd67f238b7) +* Refactor session [View](https://github.com/fystack/mpcium/commit/085654e8b8e0ce8d2af577ce7aa86e8acf828fcd) +* Require all peers to participate in key generation [View](https://github.com/fystack/mpcium/commit/3650c1b0c97a0eff01caa7d75ae955ffa68ad54a) +* More granular logs on key type [View](https://github.com/fystack/mpcium/commit/be4f88556e00dba96447ded68ff94a4ece82cc1c) +* Make done usage consistent [View](https://github.com/fystack/mpcium/commit/571245c55f5a8be9d14648a3b6b93062208df7fc) +* Process key gen event concurrently [View](https://github.com/fystack/mpcium/commit/ca54b63b52b02aad458d7251883bb4145b2929b4) +* Initial readme [View](https://github.com/fystack/mpcium/commit/5075816cf4e322bc36ead69376d3f2b73411e261) +* Fix parse config [View](https://github.com/fystack/mpcium/commit/1f02a9e8254f6868a24484b87e20643ce74e9dff) +* Refactoring main file, separate into event consumer [View](https://github.com/fystack/mpcium/commit/d41011766e5ed69658cff811c2968247458a06a5) +* Improve mpc node readiness implementation, need refactor later [View](https://github.com/fystack/mpcium/commit/dc439f3c456826f668d776cecf6761b6658e44f6) +* Init config from viper [View](https://github.com/fystack/mpcium/commit/12a1d63cc38e391dbdc74b5880b7a931fca4b4dc) +* Implement service discovery [View](https://github.com/fystack/mpcium/commit/9e386811eb73b5425e4481e0a8f0e89645e824dd) +* Add deploy script with pm2 [View](https://github.com/fystack/mpcium/commit/feb6e0369c76bc52a2842785c21694357db82ca0) +* Update generate preparams timeout [View](https://github.com/fystack/mpcium/commit/2dca2b9539bc1ce0c4e40d2e1069cb162c975a49) +* Fix gnerate id script [View](https://github.com/fystack/mpcium/commit/8806ac90f9bc2e3ad5c3f7a4af021344541c5d02) +* Add internal network code to signing session [View](https://github.com/fystack/mpcium/commit/89a66dc588c695d9f02d1919acd409f864789020) +* Implement signing session [View](https://github.com/fystack/mpcium/commit/763cab18d540bbcc58bea03130e17c9cfce7af32) +* Code refactoring [View](https://github.com/fystack/mpcium/commit/21e5b8cae3278b905c0036d312dee335928bc4e6) +* mpc session file cleanup [View](https://github.com/fystack/mpcium/commit/cb5059b805faa3bdea3751fad189c59023521505) +* Decode pubkey bytes, implement unit tests [View](https://github.com/fystack/mpcium/commit/2fefa4cd5fe91d73d667ed8d91df3fcd2f738a9e) +* If don't close BadgerDB connection, it will take up 2 G.B of disk space [View](https://github.com/fystack/mpcium/commit/c22ed2e72a780340f6e3f724f9e45e8a69d66b45) +* Implement badger kvstore to persist tss key share [View](https://github.com/fystack/mpcium/commit/3132ac5a002b59e7c4242e136eae13df9e9da66e) +* Generate different bitcoin address formats [View](https://github.com/fystack/mpcium/commit/88cf8acc3da0bbd71a496ecac509c6abe9c7c69c) +* Implement wait peer ready [View](https://github.com/fystack/mpcium/commit/2fb62dd0109db1fcdeb1b4b1f77ff7c6aa5f6a4b) +* Reuse preparams to gen key [View](https://github.com/fystack/mpcium/commit/1be1edc1f6e6219d8bfb430f6f82e8a9448dd10e) +* Implement logging package [View](https://github.com/fystack/mpcium/commit/0547703bb98bf55f5b66e8caaece409e8f34c479) +* Fix bugs, add color logs [View](https://github.com/fystack/mpcium/commit/9f4d8846c4a63210e02287478810928fac676d64) +* Use only topic to broadcast party status [View](https://github.com/fystack/mpcium/commit/ddf540f1bdb18202f78ef69a68b51f910fbefaaa) +* make waiting all parties work [View](https://github.com/fystack/mpcium/commit/4c5cb70bdc4de5b2907fc49142b834e5c59c46c0) +* implement create keygen session [View](https://github.com/fystack/mpcium/commit/2c2292719facd103e62f50e3aa838c4ee3eb1e41) +* Implement direct messaging [View](https://github.com/fystack/mpcium/commit/c711103902a571e9c4976bb9403c167f06382c13) +* Write script to generate node ids [View](https://github.com/fystack/mpcium/commit/7167a0a5aa66186a1651b9987b960204ed9e790a) +* Reorder items [View](https://github.com/fystack/mpcium/commit/695b07498f4fc5815e6c600ef90598f8af4df3f0) +* Add resources [View](https://github.com/fystack/mpcium/commit/edcc4479c702a286b9ac0f78359193d2ee0f1f26) +* Update readme [View](https://github.com/fystack/mpcium/commit/a3318f84f8819d0d4a45572c57b8c68c8370abcc) +* Remove irrelevant files [View](https://github.com/fystack/mpcium/commit/00556878ee6422f1d98fb857ed9209df56804251) +* Fix typo [View](https://github.com/fystack/mpcium/commit/59099144d4bc56dd95b37b86522336cd147973db) +* Added architecture documentation [View](https://github.com/fystack/mpcium/commit/a1ab7964149faf7967437c89e275ea5b37ecaad3) +* update readme [View](https://github.com/fystack/mpcium/commit/5d41030eeeeb35ed124192ffd31774072adae20e) +* Add installation guidelines [View](https://github.com/fystack/mpcium/commit/4f5c46951de47a4e8489cf3f4e122d8559472dd2) +* Move diagram above [View](https://github.com/fystack/mpcium/commit/a72a86747a266e07c42753c9cd1b90ad7f236c0b) +* Update diagram [View](https://github.com/fystack/mpcium/commit/b860ae5277ec8dcc001c464cdef128ea591574b9) +* Update readme [View](https://github.com/fystack/mpcium/commit/8cb0c4f9a46e2657b489edae52f70a59df5a702d) +* Update readme [View](https://github.com/fystack/mpcium/commit/49b36c67c599f4f1fde18094965656c9ef2e9dcc) +* Update readme [View](https://github.com/fystack/mpcium/commit/b2c28eb2543cf66329698289a6935e78f8904a1f) +* Add LICENSE [View](https://github.com/fystack/mpcium/commit/fbbe8f51e1c4f1a8e15dcd3c62835d7bdbebec65) +* Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/d9e57832050c0ede47d6f82bebaf541b37033acf) +* update .gitignore [View](https://github.com/fystack/mpcium/commit/25adf2c637577346e8517f92dca6d7a85573e482) +* Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/8c8ed58ad20e622626208a1d6072b4eccd3c1922) +* Update logs [View](https://github.com/fystack/mpcium/commit/247abc86483d9a1861faa09c264f70cc5186f9e3) +* Add version for cli [View](https://github.com/fystack/mpcium/commit/2be6b7333e7aa2e45e4c02f0828783f3ae45988d) +* Update makefile [View](https://github.com/fystack/mpcium/commit/774e2e1fde455c23557ad82148d3c5c841ff384c) +* Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/dbdd5fe240c9d76d8d3b6fd99f730ff608638bc8) +* file cleanup [View](https://github.com/fystack/mpcium/commit/51106e14bc17e62987f4afa7964f13d044d1a2cb) +* Prepare bin build [View](https://github.com/fystack/mpcium/commit/076b051251c1d7e52aeba848a267722ac308d2aa) +* Relocate package [View](https://github.com/fystack/mpcium/commit/0351ddeed902e2bee40ab945b9f2513900c06a30) +* Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/2196575b7e9b77ac03ab0b06784ed95874eb86bf) +* Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/8f2e8e81627c38b2385c76d12eb7f8b32fd799c9) +* Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/e6a0fe642508bcdffa7778d9b3d24c0bc18e6858) +* implement utility clis [View](https://github.com/fystack/mpcium/commit/1431ef3b0e07e47699e11a4c859eda8fa2e09cdf) +* Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/5ae21330662725c00aff3377a2ef478c1d4fe6c8) +* Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/57fb999a7dfe7a394307c7e4b3e9ee62edbc6a3f) +* Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/7723335f8476d06826cb6393e76cd1771139986a) +* Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/afb838853f26a47c9045cf10e6fb66e633e4b17e) +* Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/8838479aaec554f575a1617f8574856d2f7e3ba3) +* Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/642ad4f05594d36ac3144dc8896b8cea797843d8) +* Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/0d60febafeb7b58f3cb54036a2bb31810b528254) +* Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/bfcd4578cb8e25ec6cccaac9be12ab49ab738ce9) +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/f6da85a88c74f84e3a90ba7f7557ad3d5fa468d6) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/e55d2768f164225b5b58bbd6287e4f044d4b13d7) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/8a107b49b3615a6b3303b5d93afc401968090caa) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/f4031664710ccffd356f614946faa3a65a3b185d) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/c881bfb65f9fd5b42653c9597b2a1c58b004442b) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/8afedc4cd8166473e6c3c69735cae8621d6c3252) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1013ec7c945214eff2a2a8c57441bad11a3ca300) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/0c37114d3f7fc85108412e369dc32f5bef94c55f) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/f4328b36e731e8d0aa49f3d0c9b8e476f17448a1) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/bff6a90571864312b159012cc75914ac4fd3ba68) +* Debug [View](https://github.com/fystack/mpcium/commit/d441c0dd9c7cf975549e60ac1319908baa896737) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/94f7df33d4c301fa3406c8345bb80964ca88c400) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/39c44144927ea0f930a95324f122f975354d9db5) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/cfaf20ca0f54a0f5738cd7c01d31f7a6eaa3063a) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/aa54af18c66bad6096c8f6a1cdf34afc11e3c078) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/62b787132fd57d4bb4a5eb7a7545bc76a2dcd8c1) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/8bb1d7f3a81ca4ee50974c30b89098624113f4f2) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/551c43bde467777a3f254ac244afc18bf6a78418) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/5d914d425eea01f757e6d1b6ce7fa668fc3dd220) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/3a924288fa8b154138492f7ac93e9fee4b95ff48) +* Update makefile [View](https://github.com/fystack/mpcium/commit/b8d3da20cc0e08654e3d68912232bba83bbd1c1c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/98e50310452e6ff3ca1d85b2ca2fcf8998316c21) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/1b6d725548b07257011eb1c8634e3787ff350e82) +* Update changelog [View](https://github.com/fystack/mpcium/commit/3641cba912aca0c01cc3f9e45525a68fa0e2fb65) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/36d6de586601fd3be178f68c19c21934edd49083) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/02381a141759dd6a6bc6b1ac7155c456b8926d46) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/90672ba887eda1fc4a57ef2649a309b7c94e21b4) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/a91f34bba560fcf93ca63fb8db767af834fada32) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/9bea236e6d6c115d82281feec36422e7617baeff) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/15a9ac8c1a5a8ce62ca995ae1a20159fd4b5fcd4) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/cbdc34dfb7a1b7e7982318e8a3e1a9bcf2ebd117) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/cf7f0a2b5d80bf5913cfc10b33d2bf4666bc9bf9) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/ff754b56d690301f787b553b5c751b8b0996ab0e) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/3a3bbfc30cb3f81fb82c10de017a205a579e7d96) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/fa93009633566a90b276ccf64cfbdf6bda72db94) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/1f9c5ee96e8c22215641afa4b9cca9863c7a9f13) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/c11470b3dd46d8d3ecd27a450b1b4c57037a2d34) +* Update changelog [View](https://github.com/fystack/mpcium/commit/cae0c0984fbedc9b5aac7631b04a8d40778234b6) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/5db1a77731b8c7eb4adf788b0e8ffdcf65d8e22f) +* Refine log [View](https://github.com/fystack/mpcium/commit/8a55f28d95d5cdb6edee9ecdefd62e7c9a8862ad) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/d43f13220b47bc0c45d2cbc0e840b0bfdb5bc06a) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/fea84fad9a6121258303560166b0d9fde1d2a34e) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/5e0561956bba696678f99761f5c41ccb972dfd1a) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/0cdae42be539a09fa43030daa51229c72316f267) +* Add retry package to improve NATs direct message resiliency [View](https://github.com/fystack/mpcium/commit/f1977f2dbbafaa000fe7817feb212ed8b092ba56) +* Move listening to incoming message prior to genkey and signing to fix the nats: no responders available for request [View](https://github.com/fystack/mpcium/commit/edcd524b15b0853fd0ea5d3c60c5f49cfa709852) +* Increase direct messsage timeout, add mutex lock for party updating [View](https://github.com/fystack/mpcium/commit/d250fde383f58a0a76931a47071530696741cc2e) +* Pass done function to session to clean up resource after successful execution [View](https://github.com/fystack/mpcium/commit/923c5787a9db17fe96839d4ff4f835dc32533025) +* Implement queue manager to spawn message queue based on topic [View](https://github.com/fystack/mpcium/commit/4199697dd4d57687a7bdd1c2f253f319aaad0a79) +* Decode round8, round9 [View](https://github.com/fystack/mpcium/commit/c92e0526c0f567a7e1bb04333cac1beacb60ed95) +* Refactor signing session [View](https://github.com/fystack/mpcium/commit/9e351bf221b024e167eabdb2591e079d081279bd) +* Clean up code [View](https://github.com/fystack/mpcium/commit/202d5a988ca923efdd1d5d79baa2bf753633d1a5) +* Refactor keygen session [View](https://github.com/fystack/mpcium/commit/7ba8a189d7b84582044ed056b04ff981ec341e2f) +* Fix script to load peer ids to consul [View](https://github.com/fystack/mpcium/commit/2d86370b154d220b7bd831267a101356e4d0af18) +* Initial readme [View](https://github.com/fystack/mpcium/commit/254ce4cdccb16e96a1cc4b57b3ea5ef8328f7259) +* Fix parse config [View](https://github.com/fystack/mpcium/commit/a865d2a8d2e20396b36747607969d9c98b65ffe7) +* Implement service discovery [View](https://github.com/fystack/mpcium/commit/13e258cdcc024c550582abc1b2ca63aab3c6c4cb) +* Refactoring main file, separate into event consumer [View](https://github.com/fystack/mpcium/commit/c24bfbba9c46f183fdb9bfb49f0cf727e7312bfc) +* Improve mpc node readiness implementation, need refactor later [View](https://github.com/fystack/mpcium/commit/38ec48c9460b41255b981d74a278542d19e09845) +* Init config from viper [View](https://github.com/fystack/mpcium/commit/04be8ecb1ecd4c232a804525b3e034d661ca493b) +* Add deploy script with pm2 [View](https://github.com/fystack/mpcium/commit/db45d026df09626854cf5825e5097edcdf8cfbc8) +* Update generate preparams timeout [View](https://github.com/fystack/mpcium/commit/183afe24ef129d7e7560dd8de2de863af0a52018) +* Fix gnerate id script [View](https://github.com/fystack/mpcium/commit/9902d5c464b188778301a6d1ce64385bc283b0eb) +* Add internal network code to signing session [View](https://github.com/fystack/mpcium/commit/af44208cc6fc7fe017d4a9275429e0040f1cf35a) +* Implement signing session [View](https://github.com/fystack/mpcium/commit/3165ddac01816b8bf494c17f5f91c068be85e1c0) +* Code refactoring [View](https://github.com/fystack/mpcium/commit/ee238e6696bf13705c8d760f9de51a3f054b77e6) +* mpc session file cleanup [View](https://github.com/fystack/mpcium/commit/b16af4532c31d3aed85a9cbed942a4fbbf0656e9) +* Decode pubkey bytes, implement unit tests [View](https://github.com/fystack/mpcium/commit/4888b7308bc742eb688d1eabd9fff1a7d1890b6a) +* If don't close BadgerDB connection, it will take up 2 G.B of disk space [View](https://github.com/fystack/mpcium/commit/11045349433ccf4a302720307a82462ebcaae1e8) +* Implement badger kvstore to persist tss key share [View](https://github.com/fystack/mpcium/commit/f12062162f5d9ef1bdea14db265d8e4b117e705c) +* Generate different bitcoin address formats [View](https://github.com/fystack/mpcium/commit/6676be05dc31098f70aea919a25a7629b3e9347a) +* Implement wait peer ready [View](https://github.com/fystack/mpcium/commit/81cca6037cb7df93f5b549331fc6befcae636553) +* Reuse preparams to gen key [View](https://github.com/fystack/mpcium/commit/bd994a16132f1fbc2ee2845c2050211b28f5e4b6) +* Implement logging package [View](https://github.com/fystack/mpcium/commit/d44fda356590e1d7982855f13c75a87ca0a9da1d) +* Fix bugs, add color logs [View](https://github.com/fystack/mpcium/commit/c42a17fb738081fa0783d7bdf0a889e232e1010e) +* Use only topic to broadcast party status [View](https://github.com/fystack/mpcium/commit/6289f2e7ed8396dbccbf80ffed42002d01c32d8c) +* make waiting all parties work [View](https://github.com/fystack/mpcium/commit/4a9dd60a483ce30191ee0edbff23b92b2176bd10) +* implement create keygen session [View](https://github.com/fystack/mpcium/commit/6b6bd4d62654551ef55b455d669cab0310d44615) +* Implement direct messaging [View](https://github.com/fystack/mpcium/commit/6c19dcbc27ed4ff02cc6f1f62ab6419e555f77d7) +* Write script to generate node ids [View](https://github.com/fystack/mpcium/commit/a6cfec4856da9a4bc98b10c578d92ba775f7e59b) + + +## v0.1.0 (2025-06-26) + +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/fef3c9ab7cf82ee989e085ad2387245de9a8d888) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/fff22a7cd64fd69e15fa8238f88c0b930c079455) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/df147bace0cd7834901e5804349259c6f89f57dc) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/186b80f298ee6493d35acf3dfc8de5530b922d7a) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/2927329ba3eb12f6346d2d830111170b790eeeee) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/7f427e94aba19dca59253456abcde6eb72964136) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1a03fe548e1575e5bb1a5eeee8b1194e9c647bb9) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/14b9a5cd5f78c042562bf95830b95d2873eaccf0) +* Update changelog [View](https://github.com/fystack/mpcium/commit/a1efe6eea342a718da8f46adec0c53f10515ffdb) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/637db6b0929ddf0d876662346a4531f302670d1d) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/6dd68d6ab527620b5ba5f7325ac0323342949988) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/4577d929e34be898686dcbdd4ef6b855c7aaa17d) +* Refine log [View](https://github.com/fystack/mpcium/commit/0b6be7c3cc61408bb031da2c4b8c52c4070886b7) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/b7fb4d9718607779bcfab5138abca515896bfac5) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/119bb80fa18b55381d258523041f3531ba785f08) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/ee2a972798f9f76cb566ddd95ec507a6d1f5fda6) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/5fabc7daf3627a98e35cb848e2455de136e12922) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/c0dc922f374216043dbc6ab2e26b0b6e0550a31f) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/5e4f3dce03419defc86759adb5620db167eae629) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/3c449328b3f0c5c56e9bbc22825a758a565fb4a9) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/966c474b3506a9070bd86b5e4f704d2f7053c64b) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/f6b7ef71100cb4d9387ff9a41f274d7a113a3ca8) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/7800bad2a6472b0adff4f9a001d2d435ca56861d) +* Add retry package to improve NATs direct message resiliency [View](https://github.com/fystack/mpcium/commit/10cf3f2b12a3e438c6eba3e39ed26f8781d9546e) +* Move listening to incoming message prior to genkey and signing to fix the nats: no responders available for request [View](https://github.com/fystack/mpcium/commit/e9644f801d7856f7b15c1c4d6d23cf5637fc0096) +* Increase direct messsage timeout, add mutex lock for party updating [View](https://github.com/fystack/mpcium/commit/6d2914df7dd953b2240e2a40a244cc997c42252b) +* Fix script to load peer ids to consul [View](https://github.com/fystack/mpcium/commit/caf4b3b784642abb631b0731633fc1bcf1a9f8f9) +* Pass done function to session to clean up resource after successful execution [View](https://github.com/fystack/mpcium/commit/fef2478cd8f677ff9b162b02ef8920933258e2b4) +* Implement queue manager to spawn message queue based on topic [View](https://github.com/fystack/mpcium/commit/0d36174e146d333fe653148f9d52b60054aaa092) +* Decode round8, round9 [View](https://github.com/fystack/mpcium/commit/0ca18bf60d8306e9b3919f10d2e492d48432a8f9) +* Refactor signing session [View](https://github.com/fystack/mpcium/commit/4a07620decf7f22383701f8d3933cb8d89d87a68) +* Clean up code [View](https://github.com/fystack/mpcium/commit/e93dc5c8c2d1731904e5a727e284949851edc961) +* Refactor keygen session [View](https://github.com/fystack/mpcium/commit/2e623263f8cc74b747c22f4288f0b02e67445049) + + +## v0.2.0 (2025-06-26) + +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/fef3c9ab7cf82ee989e085ad2387245de9a8d888) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/fff22a7cd64fd69e15fa8238f88c0b930c079455) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/df147bace0cd7834901e5804349259c6f89f57dc) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/186b80f298ee6493d35acf3dfc8de5530b922d7a) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/2927329ba3eb12f6346d2d830111170b790eeeee) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/7f427e94aba19dca59253456abcde6eb72964136) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1a03fe548e1575e5bb1a5eeee8b1194e9c647bb9) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/14b9a5cd5f78c042562bf95830b95d2873eaccf0) +* Update changelog [View](https://github.com/fystack/mpcium/commit/a1efe6eea342a718da8f46adec0c53f10515ffdb) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/637db6b0929ddf0d876662346a4531f302670d1d) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/6dd68d6ab527620b5ba5f7325ac0323342949988) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/4577d929e34be898686dcbdd4ef6b855c7aaa17d) +* Refine log [View](https://github.com/fystack/mpcium/commit/0b6be7c3cc61408bb031da2c4b8c52c4070886b7) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/b7fb4d9718607779bcfab5138abca515896bfac5) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/119bb80fa18b55381d258523041f3531ba785f08) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/ee2a972798f9f76cb566ddd95ec507a6d1f5fda6) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/5fabc7daf3627a98e35cb848e2455de136e12922) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/c0dc922f374216043dbc6ab2e26b0b6e0550a31f) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/5e4f3dce03419defc86759adb5620db167eae629) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/3c449328b3f0c5c56e9bbc22825a758a565fb4a9) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/966c474b3506a9070bd86b5e4f704d2f7053c64b) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/f6b7ef71100cb4d9387ff9a41f274d7a113a3ca8) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/7800bad2a6472b0adff4f9a001d2d435ca56861d) + + +## v0.1.1 (2025-06-26) + +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/14b9a5cd5f78c042562bf95830b95d2873eaccf0) +* Update changelog [View](https://github.com/fystack/mpcium/commit/a1efe6eea342a718da8f46adec0c53f10515ffdb) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/637db6b0929ddf0d876662346a4531f302670d1d) +* Change default threshhold to 1 [View](https://github.com/fystack/mpcium/commit/6dd68d6ab527620b5ba5f7325ac0323342949988) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/4577d929e34be898686dcbdd4ef6b855c7aaa17d) +* Refine log [View](https://github.com/fystack/mpcium/commit/0b6be7c3cc61408bb031da2c4b8c52c4070886b7) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/b7fb4d9718607779bcfab5138abca515896bfac5) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/119bb80fa18b55381d258523041f3531ba785f08) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/ee2a972798f9f76cb566ddd95ec507a6d1f5fda6) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/5fabc7daf3627a98e35cb848e2455de136e12922) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/c0dc922f374216043dbc6ab2e26b0b6e0550a31f) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/5e4f3dce03419defc86759adb5620db167eae629) +* Threshold validation, allow t+1 peers to create signing session [View](https://github.com/fystack/mpcium/commit/3c449328b3f0c5c56e9bbc22825a758a565fb4a9) +* Implement keyinfo store [View](https://github.com/fystack/mpcium/commit/966c474b3506a9070bd86b5e4f704d2f7053c64b) +* Track ready nodes, reduce readiness period to 1 second [View](https://github.com/fystack/mpcium/commit/f6b7ef71100cb4d9387ff9a41f274d7a113a3ca8) +* Upgrade tss-lib to v2 [View](https://github.com/fystack/mpcium/commit/7800bad2a6472b0adff4f9a001d2d435ca56861d) + + +## v0.1.7 (2025-06-26) + +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/14b9a5cd5f78c042562bf95830b95d2873eaccf0) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/ee2a972798f9f76cb566ddd95ec507a6d1f5fda6) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/5fabc7daf3627a98e35cb848e2455de136e12922) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/c0dc922f374216043dbc6ab2e26b0b6e0550a31f) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/5e4f3dce03419defc86759adb5620db167eae629) + + +## v0.1.3 (2025-06-26) + +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/637db6b0929ddf0d876662346a4531f302670d1d) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/4577d929e34be898686dcbdd4ef6b855c7aaa17d) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/b7fb4d9718607779bcfab5138abca515896bfac5) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/119bb80fa18b55381d258523041f3531ba785f08) +* Update changelog [View](https://github.com/fystack/mpcium/commit/a1efe6eea342a718da8f46adec0c53f10515ffdb) + + +## v0.1.2 (2025-06-26) + +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* Init logger for migration script [View](https://github.com/fystack/mpcium/commit/14b9a5cd5f78c042562bf95830b95d2873eaccf0) +* Update changelog [View](https://github.com/fystack/mpcium/commit/a1efe6eea342a718da8f46adec0c53f10515ffdb) +* Add script to add prefix ecdsa for old keys [View](https://github.com/fystack/mpcium/commit/637db6b0929ddf0d876662346a4531f302670d1d) +* Include eddsa pubkey in SucessGenerationEvent [View](https://github.com/fystack/mpcium/commit/4577d929e34be898686dcbdd4ef6b855c7aaa17d) +* Gen eddsa key works now [View](https://github.com/fystack/mpcium/commit/b7fb4d9718607779bcfab5138abca515896bfac5) +* Support EDDSA [View](https://github.com/fystack/mpcium/commit/119bb80fa18b55381d258523041f3531ba785f08) +* Add script to add prefix ecdsa for existing keyinfos [View](https://github.com/fystack/mpcium/commit/ee2a972798f9f76cb566ddd95ec507a6d1f5fda6) +* Return only Signature in siging success event [View](https://github.com/fystack/mpcium/commit/5fabc7daf3627a98e35cb848e2455de136e12922) +* Support eddsa signing [View](https://github.com/fystack/mpcium/commit/c0dc922f374216043dbc6ab2e26b0b6e0550a31f) +* Add eddsa signing session [View](https://github.com/fystack/mpcium/commit/5e4f3dce03419defc86759adb5620db167eae629) + + +## v0.1.5 (2025-06-26) + +* Update makefile [View](https://github.com/fystack/mpcium/commit/acd2d56f43aecf15571ab4e4b29bd06feb7c0697) +* Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/bc8f4b3ace01d892db8849b2363d958263174595) +* file cleanup [View](https://github.com/fystack/mpcium/commit/00314c535fb21092548ba52dab17c501fbd2d8e0) +* Prepare bin build [View](https://github.com/fystack/mpcium/commit/936977741613f62517de0bd0ae2e6f0bb24b7834) +* Relocate package [View](https://github.com/fystack/mpcium/commit/ef92f4b8a26485ef1345ba7e663b2fa93dfe5c16) +* Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/b294588e50da14ca711fddc43a6a315a4c639aac) +* implement utility clis [View](https://github.com/fystack/mpcium/commit/ba847cc52a4db1eed888a41682080984a839d071) +* Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/dfabe420f9766bccd0a8e8598152e66416e6789c) +* Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/cc0d5682b58ee7c0d991e8d651d21fc6fa0edf15) +* Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/170e5ff97babdef49f86a7d5404ace9fccc28c91) +* Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/9be0ffd75f70ec5e3e8539803c41b8dc848c44f5) +* Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/015d413afb7d7b0e2d4df384849dc4a92273cc36) +* Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/6bcc025a8631297e92f263bde009eb7b1a857975) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1a03fe548e1575e5bb1a5eeee8b1194e9c647bb9) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/ae222797baf276640d2051ffadc8460c11ba375b) +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/fef3c9ab7cf82ee989e085ad2387245de9a8d888) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/fff22a7cd64fd69e15fa8238f88c0b930c079455) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/df147bace0cd7834901e5804349259c6f89f57dc) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/91653637ace47ec377f60a306dc572a14d78935d) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/186b80f298ee6493d35acf3dfc8de5530b922d7a) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/2927329ba3eb12f6346d2d830111170b790eeeee) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/7f427e94aba19dca59253456abcde6eb72964136) + + +## v0.2.1 (2025-06-26) + +* update readme [View](https://github.com/fystack/mpcium/commit/ba1304aea2484f64404ed560ecbdd844d839c59b) +* Add installation guidelines [View](https://github.com/fystack/mpcium/commit/bd0b32d415d2d11a377952af8d1aed58184f6c7f) +* Move diagram above [View](https://github.com/fystack/mpcium/commit/a1a26783958139208a991c5b2be591f03efb02c6) +* Update diagram [View](https://github.com/fystack/mpcium/commit/8c252a99bcedc5371f1d2a178be52ab69947ce93) +* Update readme [View](https://github.com/fystack/mpcium/commit/27fd5bdcb9e4ea23db699fe79b8f298b3c189feb) +* Update readme [View](https://github.com/fystack/mpcium/commit/9f6f0566b8a691f1885219a5c55e1b648d72fa0a) +* Update readme [View](https://github.com/fystack/mpcium/commit/b3a4f795f31cc32bf7168431e7de2fad228da320) +* Add LICENSE [View](https://github.com/fystack/mpcium/commit/a55f75812ab630f1c92bff50100c46b7e1657a68) +* Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/95759f174ed6ff9c83cb8bd914c8e27fcedd0315) +* update .gitignore [View](https://github.com/fystack/mpcium/commit/4b6e21c4e610a8397e0ece2a2706666e7574ea1e) +* Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/c9050ad8e89756e6b711f415b3f7c98a1f447f67) +* Update logs [View](https://github.com/fystack/mpcium/commit/c38a9ed91ac9572c1e333bf1a5af3595079a4109) +* Add version for cli [View](https://github.com/fystack/mpcium/commit/54e82e71c4057c2821c80458bbcaa39c41ebb3d7) +* Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/09b2507b31471c40afdacca37dfb9453757a4135) +* Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/d7e8085944e0c2df473b71a35b45d76188a04e2e) + + +## v0.2.2 (2025-06-26) + +* update readme [View](https://github.com/fystack/mpcium/commit/ba1304aea2484f64404ed560ecbdd844d839c59b) +* Add installation guidelines [View](https://github.com/fystack/mpcium/commit/bd0b32d415d2d11a377952af8d1aed58184f6c7f) +* Move diagram above [View](https://github.com/fystack/mpcium/commit/a1a26783958139208a991c5b2be591f03efb02c6) +* Update diagram [View](https://github.com/fystack/mpcium/commit/8c252a99bcedc5371f1d2a178be52ab69947ce93) +* Update readme [View](https://github.com/fystack/mpcium/commit/27fd5bdcb9e4ea23db699fe79b8f298b3c189feb) +* Update readme [View](https://github.com/fystack/mpcium/commit/9f6f0566b8a691f1885219a5c55e1b648d72fa0a) +* Update readme [View](https://github.com/fystack/mpcium/commit/b3a4f795f31cc32bf7168431e7de2fad228da320) +* Add LICENSE [View](https://github.com/fystack/mpcium/commit/a55f75812ab630f1c92bff50100c46b7e1657a68) +* Change max deliver to 4 to fix the nats issue: ats: API error: code=400 err_code=10116 description=max deliver is required to be > length of backoff values [View](https://github.com/fystack/mpcium/commit/6bcc025a8631297e92f263bde009eb7b1a857975) +* Release v0.1.7 [View](https://github.com/fystack/mpcium/commit/1a03fe548e1575e5bb1a5eeee8b1194e9c647bb9) +* Fix bug sign mutiple transactions simulteneously crash if transactions have the same walletID [View](https://github.com/fystack/mpcium/commit/47a9bf431516fdb85badca0a186f678fbb36309c) +* Revert "Debug" [View](https://github.com/fystack/mpcium/commit/02e395c85e90657263eb05c91eb2d77a181a368b) +* Fix don't pass walletId to session [View](https://github.com/fystack/mpcium/commit/22e302e61feb872f8362332c76ac1d94c74b0c3d) +* Update change log v0.2.0 [View](https://github.com/fystack/mpcium/commit/ae222797baf276640d2051ffadc8460c11ba375b) +* Use onSuccess callback when sign session succeeds [View](https://github.com/fystack/mpcium/commit/fef3c9ab7cf82ee989e085ad2387245de9a8d888) +* Fix bug signing doesn't work after all nodes are backup [View](https://github.com/fystack/mpcium/commit/fff22a7cd64fd69e15fa8238f88c0b930c079455) +* Handle duplicate message [View](https://github.com/fystack/mpcium/commit/df147bace0cd7834901e5804349259c6f89f57dc) +* Debug [View](https://github.com/fystack/mpcium/commit/6ba56374ac631f630897077aca12c86c2964c6fe) +* Fix topic composer logic [View](https://github.com/fystack/mpcium/commit/3d56e6f2d603005eac3ad8d7adebe48a9f342e4e) +* Update mask logic [View](https://github.com/fystack/mpcium/commit/954a689124ddbda6a6c1361548630c7b9d2a3847) +* Update topic composer [View](https://github.com/fystack/mpcium/commit/f4e02b10fdc6fe8783787d5dc4477e162b1dbf84) +* Remove nolonger use files [View](https://github.com/fystack/mpcium/commit/95759f174ed6ff9c83cb8bd914c8e27fcedd0315) +* Minor fix on make file [View](https://github.com/fystack/mpcium/commit/79b08dab18f997654e98f721bc6593375db2c10d) +* Fix bug, load nats url from env var [View](https://github.com/fystack/mpcium/commit/b765a75a6f7d4fbb54e22da3cc1edd7ed3328a21) +* Update changelog v0.1.6 [View](https://github.com/fystack/mpcium/commit/652fcc05413d22c36a07b67762055a80632630e9) +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) +* update .gitignore [View](https://github.com/fystack/mpcium/commit/4b6e21c4e610a8397e0ece2a2706666e7574ea1e) +* Refactor clis to use requestPassword util [View](https://github.com/fystack/mpcium/commit/c9050ad8e89756e6b711f415b3f7c98a1f447f67) +* Update logs [View](https://github.com/fystack/mpcium/commit/c38a9ed91ac9572c1e333bf1a5af3595079a4109) +* Add version for cli [View](https://github.com/fystack/mpcium/commit/54e82e71c4057c2821c80458bbcaa39c41ebb3d7) +* Update makefile [View](https://github.com/fystack/mpcium/commit/acd2d56f43aecf15571ab4e4b29bd06feb7c0697) +* Add config.yaml.template [View](https://github.com/fystack/mpcium/commit/bc8f4b3ace01d892db8849b2363d958263174595) +* file cleanup [View](https://github.com/fystack/mpcium/commit/00314c535fb21092548ba52dab17c501fbd2d8e0) +* Prepare bin build [View](https://github.com/fystack/mpcium/commit/936977741613f62517de0bd0ae2e6f0bb24b7834) +* Relocate package [View](https://github.com/fystack/mpcium/commit/ef92f4b8a26485ef1345ba7e663b2fa93dfe5c16) +* Replace gpg with age for key encryption [View](https://github.com/fystack/mpcium/commit/b294588e50da14ca711fddc43a6a315a4c639aac) +* implement utility clis [View](https://github.com/fystack/mpcium/commit/ba847cc52a4db1eed888a41682080984a839d071) +* Implement mpcium client + examples [View](https://github.com/fystack/mpcium/commit/dfabe420f9766bccd0a8e8598152e66416e6789c) +* Code refactoring for identity store [View](https://github.com/fystack/mpcium/commit/cc0d5682b58ee7c0d991e8d651d21fc6fa0edf15) +* Encryption of credentials with GPG [View](https://github.com/fystack/mpcium/commit/170e5ff97babdef49f86a7d5404ace9fccc28c91) +* Implement identity store, multual signature verification [View](https://github.com/fystack/mpcium/commit/9be0ffd75f70ec5e3e8539803c41b8dc848c44f5) +* Load mpc threshold from config [View](https://github.com/fystack/mpcium/commit/015d413afb7d7b0e2d4df384849dc4a92273cc36) +* Bump github.com/btcsuite/btcd from 0.23.4 to 0.24.2 [View](https://github.com/fystack/mpcium/commit/09b2507b31471c40afdacca37dfb9453757a4135) +* Remove btcec pkg [View](https://github.com/fystack/mpcium/commit/d7e8085944e0c2df473b71a35b45d76188a04e2e) +* Add maxAge config to drop undelivered messages [View](https://github.com/fystack/mpcium/commit/91653637ace47ec377f60a306dc572a14d78935d) +* Update timeout consumer keep subscribe on time [View](https://github.com/fystack/mpcium/commit/186b80f298ee6493d35acf3dfc8de5530b922d7a) +* Update signing timeout logic when not enough participants [View](https://github.com/fystack/mpcium/commit/2927329ba3eb12f6346d2d830111170b790eeeee) +* Persit message, handle failure and timeout sign tx [View](https://github.com/fystack/mpcium/commit/7f427e94aba19dca59253456abcde6eb72964136) + + +## v0.1.4 (2025-06-26) + +* Add deployment script mpcium [View](https://github.com/fystack/mpcium/commit/154f6c2291bcefe45e5258b586f4eb27160d4392) +* Log config in generateid script [View](https://github.com/fystack/mpcium/commit/062ba4185038fa8d2706451d0721de99ca2cfd55) +* Update configuration load logic, mask sensitive data [View](https://github.com/fystack/mpcium/commit/834d7a5a0ad4afd7c2da047ecf41d110c52aba7e) +* Update makefile [View](https://github.com/fystack/mpcium/commit/86c23565213dde2f4ed97fd304d5ec8d65faba6c) +* Fix load config, it doens't load environment variables into struct [View](https://github.com/fystack/mpcium/commit/a1e8f02ee053a607927c2348fac78a64e2a9ebf2) +* Implement connection for prod [View](https://github.com/fystack/mpcium/commit/f74b9624087077b882b7b3944e51794b7dfb937c) +* Update changelog [View](https://github.com/fystack/mpcium/commit/2759d41530fdd3cf09cb044cba97865c1821f858) +* Add a slight delay before start sending key generation messages [View](https://github.com/fystack/mpcium/commit/e5ea31d297162f3a26e471a6b3b303595f804e5c) +* Add type to sessions [View](https://github.com/fystack/mpcium/commit/d417548f6fba87ae721c5321717b84695e5167cc) +* Add comment to add distributed lock [View](https://github.com/fystack/mpcium/commit/8804d17ca6ec3e18a48b6690b19522da9df72bdc) +* Add delay temporary solution to fix the issue that sign before all nodes are ready [View](https://github.com/fystack/mpcium/commit/d892a1b90569bfa5027df08db85c1c6997849be4) + + diff --git a/README.md b/README.md index 5fa615b..2255a1b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@

Join our Telegram community to discuss MPCIUM and Web3 cyber security!

-[![Go Version](https://img.shields.io/badge/Go-v1.23+-00ADD8?logo=go&style=for-the-badge)](https://go.dev/) +[![Go Version](https://img.shields.io/badge/Go-v1.25+-00ADD8?logo=go&style=for-the-badge)](https://go.dev/) [![License](https://img.shields.io/github/license/fystack/mpcium?style=for-the-badge)](./LICENSE) [![Go Report Card](https://goreportcard.com/badge/github.com/fystack/mpcium?style=for-the-badge)](https://goreportcard.com/report/github.com/fystack/mpcium) [![Version](https://img.shields.io/github/v/release/fystack/mpcium?label=version&logo=semantic-release&style=for-the-badge)](https://github.com/fystack/mpcium/releases) @@ -134,6 +134,7 @@ The application uses a YAML configuration file (`config.yaml`) with the followin - `max_concurrent_keygen`: Maximum concurrent key generation operations #### chain_code (REQUIRED) + - **Required** for Hierarchical Deterministic (HD) wallet functionality to derive child keys - Must be a 32-byte hexadecimal string (64 characters) - **All nodes MUST use the exact same chain_code value** diff --git a/images/mpcium.png b/images/mpcium.png index a2c3c74eeb1d883144cd071d6261db4c2c942237..f34b831a8b8132716818225708ae015dedce895b 100644 GIT binary patch literal 180390 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