Context and scope
We directly make AppRequests to validators for their BLS signatures, and then aggregate the signatures internally. Both subnet-evm and coreth provide a Warp API to do this instead. We should add a configuration option to use these APIs.
Discussion and alternatives
The main advantage of directly making AppRequests from the relayer is that this should work for any VM out of the box, whereas in order to use the API, the VM must provide that API (which is not guaranteed to have a standard interface with respect to other VMS) and the relayer must integrate it. The API approach would require more VM-specific code within the relayer, but would greatly simplify the signature aggregation complexity by offloading it to the VMs. We should consider what long term approach we want to take; likely supporting both will not be necessary nor desirable.
Context and scope We directly make AppRequests to validators for their BLS signatures, and then aggregate the signatures internally. Both
subnet-evm
andcoreth
provide a Warp API to do this instead. We should add a configuration option to use these APIs.Discussion and alternatives The main advantage of directly making AppRequests from the relayer is that this should work for any VM out of the box, whereas in order to use the API, the VM must provide that API (which is not guaranteed to have a standard interface with respect to other VMS) and the relayer must integrate it. The API approach would require more VM-specific code within the relayer, but would greatly simplify the signature aggregation complexity by offloading it to the VMs. We should consider what long term approach we want to take; likely supporting both will not be necessary nor desirable.