Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete a keygen happy path ceremony in axelar-core using rust-tssd #1

Closed
6 tasks
ggutoski opened this issue Jan 11, 2021 · 3 comments
Closed
6 tasks
Assignees
Labels
enhancement New feature or request

Comments

@ggutoski
Copy link
Contributor

ggutoski commented Jan 11, 2021

Current status of rust-tssd is a prototype keygen happy path passing only a minimal test. Next goal is the title: Complete a keygen happy path ceremony in axelar-core using rust-tssd.

Tasks

  • Golang client for rust-tssd. I currently have a local golang rust-tssd client repo for rust-tssd with a basic test---this repo should be moved into the rust-tssd repo itself.
  • Better tests: golang client, rust-tssd, thrush.
  • thrush, rust-tssd should never panic---return errors instead.
  • Rust-tssd does not yet store keys it generates. Add a KV store for (pubkey_name, pubkey_data). Need to search for a good KV store rust library.
  • Swap rust-tssd into axelar-core, run a ceremony. Prerequisite: figure out the deserialization needs of the resulting pubkey in axelar-core.
  • Code review?
@ggutoski
Copy link
Contributor Author

Status

New library names: math library: thrush -> tofn, grpc wrapper daemon: rust-tssd -> tofnd.

Status of original tasks

  1. Test clients for tofnd. Rust client included in tofnd. I have a quick-and-dirty golang client for tofnd: go-tofnd-client
  2. Better tests. Not really.
  3. tofn, tofnd should never panic. Some progress. API now includes error return values. But there's still some panic errors.
  4. KV store for tofnd. No code. Preliminary investigation into candidates. See list below.
  5. Figure out deserialization needs for keygen in axelar-core. Done. tofnd produces serialized pubkey in bitcoin format. This pubkey can be deserialized in axelar-core via the usual btcec package. Verified in go-tofnd-client.
  6. Swap tofnd into axelar-core, run a ceremony. Barely started. I have code to swap in tofnd but it'll need to be hand-merged due to subsequent changes to axelar-core. No tests yet.

Notes

  • tofn largely re-written with new design.
  • Rust client for tofnd was brutal, took 3 stressful days of fighting with the tokio library.

Rust KV store candidates

Promising candidate: ex0dus-0x/microkv: Minimal and persistent key-value store designed with security in mind

Other contenders:

@ggutoski
Copy link
Contributor Author

Sprint concluded. Tasks rolled over to #4.

@neocho
Copy link

neocho commented Jul 9, 2022

Hey ggutoski! Do you still have the go-tofnd-client to try out?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants