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

entropy-tss /info route to get account ID cannot be used until a connection to chain has been made #1203

Open
ameba23 opened this issue Dec 6, 2024 · 0 comments · May be fixed by #1216
Open
Milestone

Comments

@ameba23
Copy link
Contributor

ameba23 commented Dec 6, 2024

In #1128 we remove the ability to pass in a pre-generated mnemonic to entropy-tss. Instead, it is generated internally and the public key / account ID can be retrieved via the /info http route.

This does not effects our tests because we can still use the built-in development mnemonics. But for testnet the workflow has to be changed.

There was a proposal to still include these public keys in the testnet chainspec, by starting the tss nodes and getting the public keys before compiling the chain.

There is a chicken and egg problem here, because entropy-tss does not start its http server until a successful connection to the chain has been made - it calls the check_node_prerequisites function before starting a TCP listener:

entropy_tss::launch::check_node_prerequisites(

There are a number of possible ways around this, eg: starting the server before making that check, or starting a simpler version of the server with only the /info endpoint, or reading the account ID out from the logs.

But personally i would like to move away from having TSS servers pre-configured at genesis, as id like to keep things as close to production conditions as possible.

@HCastano made a proposal to have an extrinsic which allows us to add TSS details to an existing validator after genesis. I think this is a good move, but we need to be careful about how we handle validators with no associated TSS node - the jump start extrinsic handler would need some changes as it currently picks initial signers from the session pallet's validators() getter, not the staking extension's list of TSS nodes.

let validators = pallet_session::Pallet::<T>::validators();

I expect there may be similar issues with picking a new signer for reshare in the new session handler, but we could add a jumpstart requirement that all validators must have an associated TSS node at that point.

@github-project-automation github-project-automation bot moved this to 📋 Backlog in Entropy Core Dec 6, 2024
@ameba23 ameba23 added this to the v0.4.0 milestone Dec 6, 2024
@ameba23 ameba23 linked a pull request Dec 16, 2024 that will close this issue
@ameba23 ameba23 closed this as completed Dec 16, 2024
@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Entropy Core Dec 16, 2024
@ameba23 ameba23 reopened this Dec 16, 2024
@ameba23 ameba23 moved this from ✅ Done to 🏗 In progress in Entropy Core Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🏗 In progress
Development

Successfully merging a pull request may close this issue.

1 participant