Open
Description
When this crate was initially designed there was no async
/await
support, as a result the asynchronous logic in this crate is implemented with custom Future
impls.
Recently we wanted to make some of the methods on Environment
async, e.g. round_data
should return a Future
as it requires a call to a keystore that may be remote. This small change propagates throughout the crate (e.g. Voter::new
needs to become asynchronous) and is not amenable to the current architecture. A redesign to use async
/await
and not rely on Future
implementations would make this change easier to implement.
Activity