Lowering Ethereum client implementations requirements for black-box testing
(The title is my interpretation)
@AlexeyAkhunov proposed some time ago to drive black-box testing by p2p network interface instead of RPC methods. This eliminates the need of having RPC module in an Ethereum client implementation.
I also know this was recently discussed with @Andrei and he proposed (my interpretation) something in functionality similar to RPC but without inter-process communication — i.e. API / FFI allowing to use an Ethereum client as a shared library.
To my understanding, Hive requires a combination of CLI interface and RPC.
Personally, I don’t see using network interface as a practical solution here. The behavior is allowed to differ between implementations and preparing good testing scenarios would be difficult. Moreover, the behavior is not required to be deterministic. And further debugging may be not easy. But I’m not network expert, looking for other’s comments.