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

Re-design processor/coordinator interactions #565

Open
kayabaNerve opened this issue Apr 26, 2024 · 4 comments
Open

Re-design processor/coordinator interactions #565

kayabaNerve opened this issue Apr 26, 2024 · 4 comments
Labels

Comments

@kayabaNerve
Copy link
Member

The current message queue is an interactive ordered process not amenable to rebuilding one but not both.

Interactions should be designed as an append-only series of data blobs queriable at any time in a way either can successfully be rebuilt. This would also parallelize the ordering, improving performance and preventing the risk of deadlocks.

@kayabaNerve
Copy link
Member Author

I'm unsure we can get to this prior to mainnet :///

@kayabaNerve
Copy link
Member Author

processor-smash is premised on reading from the message-queue, then internally dispatching without locks/blocking yet queueing. It accordingly doesn't mean this issue would improve performance, and has already resolved the deadlock concerns.

The ability to rebuild remains its own active question.

@kayabaNerve
Copy link
Member Author

kayabaNerve commented Jan 12, 2025

The Processor, if rebuilding, should be able to reset the message-queue's counter and simply re-read the full event stream. The once concern is if the old Processor sent preprocesses, and then the new Processor sent preprocesses (de-duplicated), and then the new Processor sent signature shares. We'd need to mark all in-process signing attempts as invalid.

The Coordinator, if rebuilding, has to wait for a new Tendermint block and only start participating then. The Coordinator only needs to handle key_gen::ProcessorMessage and substrate::ProcessorMessage, but can similarly reset the counter and re-read the event stream.

If both are rebuilding, it should be the existing commentary, but with the option to reset the message-queue's message history entirely.

@kayabaNerve
Copy link
Member Author

Provided transactions announcing a Batch occur by receiving a preprocess from the Processor for that Batch. The above commentary is inaccurate accordingly.

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

No branches or pull requests

1 participant