few words about description of a fsm visualization

This commit is contained in:
programmer10110 2020-10-07 18:13:43 +03:00
parent 9acea2c6aa
commit 9fad94e5a0
1 changed files with 18 additions and 0 deletions

18
fsm-states.md Normal file
View File

@ -0,0 +1,18 @@
# Finite-state machines description
We moved away from the idea of one large state machine that would perform all tasks, so we divided the functionality into three separate state machines:
* SignatureProposalFSM - responsible for collecting agreements to participate in a specific DKG round
* DKGProposalFSM - responsible for collecting a neccessary data (pubkeys, commits, deals, responses and reconstructed pubkeys) for a DKG process
* SigningProposalFSM - responsible for signature process (collecting agreements to sign a message, collecting partial signs and reconstructed full signature)
We implemented a FSMPoolProvider containing all three state machines that we can switch between each other by hand calling necessary events.
## Visual representation of FSMs
### SignatureProposalFSM
![SignatureProposalFSM](sigFSM.svg)
### DKGProposalFSM
![DKGProposalFSM](dkgFSM.svg)
### SigningProposalFSM
![SigningProposalFSM](signatureFSM.svg)