hashgraph / hedera-services

Crypto, token, consensus, file, and smart contract services for the Hedera public ledger
Apache License 2.0
317 stars 138 forks source link

TSS-Ledger-ID: Conditional TSS Candidate Roster Adoption #14540

Open edward-swirldslabs opened 4 months ago

edward-swirldslabs commented 4 months ago
### Data Structures and Algorithm
- [ ] https://github.com/hashgraph/hedera-services/issues/14744
- [ ] https://github.com/hashgraph/hedera-services/issues/14745
### TSS Base Service Data Flows
- [ ] https://github.com/hashgraph/hedera-services/issues/14966
- [ ] https://github.com/hashgraph/hedera-services/issues/14758
- [ ] https://github.com/hashgraph/hedera-services/issues/14747
- [ ] https://github.com/hashgraph/hedera-services/issues/14748
- [ ] https://github.com/hashgraph/hedera-services/issues/14749
- [ ] https://github.com/hashgraph/hedera-services/issues/14750
- [ ] https://github.com/hashgraph/hedera-services/issues/14760
- [ ] https://github.com/hashgraph/hedera-services/issues/14755
- [ ] https://github.com/hashgraph/hedera-services/issues/15492
### Integrating Capability
- [ ] https://github.com/hashgraph/hedera-services/issues/14754
- [ ] https://github.com/hashgraph/hedera-services/issues/14751
- [ ] https://github.com/hashgraph/hedera-services/issues/14759
- [ ] https://github.com/hashgraph/hedera-services/issues/14753
- [ ] https://github.com/hashgraph/hedera-services/issues/15252
- [ ] https://github.com/hashgraph/hedera-services/issues/16587
### Testing
- [ ] https://github.com/hashgraph/hedera-services/issues/14757
- [ ] https://github.com/hashgraph/hedera-services/issues/16119
- [ ] https://github.com/hashgraph/hedera-services/issues/14761
- [ ] https://github.com/hashgraph/hedera-services/issues/14763
- [ ] https://github.com/hashgraph/hedera-services/issues/15262
### Deployment
- [ ] BLOCKED by completion of https://github.com/hashgraph/hedera-services/issues/14542
- [ ] https://github.com/hashgraph/hedera-services/issues/14765
- [ ] https://github.com/hashgraph/hedera-services/issues/14766
### Perf Testing
- [ ] https://github.com/hashgraph/hedera-services/issues/14746
### Preliminaries
- [ ] https://github.com/hashgraph/hedera-services/issues/15898
- [x] Feature flag to toggle TSS handlers from no-ops to for `TssMessageHandler`, submitting a empty `TssVote`; and for `TssVoteHandler`, logging something...(?)
- [x] Feature flag to toggle the end-of-staking-period logic to set a candidate `Roster` on the `TssBaseService`.
- [x] Make `TssBaseService`, upon receiving a candidate `Roster`, schedule async gossip of an empty `TssMessage` representing its nodes "shares-of-shares" for the next roster.
- [x] Ensure that any special case needed in `HandleWorkflow` to allow the gossiped `TssMessage`/`TssVote` transactions to trigger the expected mock responses is there.
anthony-swirldslabs commented 3 months ago

Wire everything together, gated by feature flag.

By the feature flag created above, or by a new feature flag? Please fix the wording.

anthony-swirldslabs commented 3 months ago

Create Metrics for candidate roster, voting, and adoption

TSS-Roster would already create metrics for "candidate roster", so you only need the last two in TSS-Ledger-Id.

anthony-swirldslabs commented 3 months ago

Integration with Services and App

It's a bit unclear what specifically needs to be done under this task.

anthony-swirldslabs commented 3 months ago

BTW, you could split the work further. Per the title of this epic, the tasks here could only be responsible for the conditional adoption of the candidate roster. The creation of a Ledger ID could be a separate epic. Also, the keying process could be a separate epic as well. You can call these epics "groups" if you like. This grouping would help see streams of work that may be parallelized, or otherwise present self-contained deliverables.

anthony-swirldslabs commented 3 months ago

Cleanup Migration Code, remove feature flag

Should there be a launch task where we actually test this functionality in real world before we remove the feature flag for good?

edward-swirldslabs commented 3 months ago

Integration with Services and App

It's a bit unclear what specifically needs to be done under this task.

I removed it

anthony-swirldslabs commented 3 months ago

Thanks for the updates! Looks good overall. Only my last two comments from above remain open still.

anthony-swirldslabs commented 3 months ago

Looks good to me.