The Poet is split into registration and worker services in #355. However, both are part of the same binary. The task is to separate them to be able to run registration and worker in separate processes, potentially on different machines.
They should talk via a message queue on 2 topics:
rounds
- Registration writes data of a round it closed (epoch and membership root),
- Worker listens for rounds to execute.
proofs
- Worker writes generated proofs,
- Registration listens for new proofs.
💡 The option to run them together in a single process (aka a standalone mode) could probably stay for cloud deployments, go-sm unit- and system-tests etc.