- Contains the 3 servers that is currently written in Rust:
tss_share_2_server
,tss_client_server
andtss_sm_manager
. The componentTx Sender
in the following diagram is implemented in Nodejs and is maintained here: https://github.com/FDC-AI/open-defender/tree/develop/packages/tss-tx-sender - The ZenGo library
multi-party-ecdsa
is referred to as submodule tss_sm_client
is used as a functional library, no main function. It's used byshare_2_server
andclient_server
https://documenter.getpostman.com/view/12538945/2s93CPqXMu
- Step 2 is done by RabbitMQ with queue name:
request-@open-defender/tss-tx-sender: share-2-server-keygen-signal
(config in.env
)
- Step 3 is done by RabbitMQ with queue name:
request-@open-defender/tss-tx-sender: share-2-server-sign-signal
(config in.env
)
cd tss_client_server
cargo run
- the api is
/new-key
- send key gen request to tx sender api
/new-key
- after receiving the response ack from share 2, talk to sm manager to participate key gen, and get the local-share key
- the api is
/send-tx
- send tx request to tx-sender api
/request-tx
- if the response says the simulation succeeded, talk to sm manager to contribute to signature
cd tss_share_2_server
cargo run
- consuem the key gen signal from the queue
- talk to sm manager to participate key gen, and save the resulting local-share key for corresponding user
- consume the sign signal from the queue
- signature can be generated from sm manager
- call tx sender api
/submit-tx
and the signature will be written into its db
cd tss_sm_manager
cargo run
Just react to whatever requests come from client server and share 2 server