Most EL clients implement the subscription API documented here: https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub. These are widely adopted but not yet included in the specs. It's easy to specify eth_subscribe and eth_unsubscribe. I'm unsure how to specify the concrete methods (newHeads, newPendingTransactions, etc.) as they are passed as parameters to eth_subscribe. Plus when we push data, we're effectively sending an eth_subscription request from server to the client, and the data for that request depends on the concrete method.
After the current state is done I'd like to propose the following modifications:
- Adding an optional parameter to
newPendingTransactions named fullTx. It defaults to false. If true the server returns the full tx object instead of the hash. This is already merged in geth.
- Adding an optional parameter to
newHeads named verbosity. Default value of 0 returns only the hash. If value is 1, we return the complete head object. If value is 2, we return the complete block object. If value is 3 we return the block object + receipts.
- Add optional parameter to
newPendingTransactions named filter. The server uses the filter to narrow down the list of txes to return.
Most EL clients implement the subscription API documented here: https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub. These are widely adopted but not yet included in the specs. It's easy to specify
eth_subscribeandeth_unsubscribe. I'm unsure how to specify the concrete methods (newHeads,newPendingTransactions, etc.) as they are passed as parameters toeth_subscribe. Plus when we push data, we're effectively sending aneth_subscriptionrequest from server to the client, and the data for that request depends on the concrete method.After the current state is done I'd like to propose the following modifications:
newPendingTransactionsnamedfullTx. It defaults to false. If true the server returns the full tx object instead of the hash. This is already merged in geth.newHeadsnamedverbosity. Default value of 0 returns only the hash. If value is 1, we return the complete head object. If value is 2, we return the complete block object. If value is 3 we return the block object + receipts.newPendingTransactionsnamedfilter. The server uses the filter to narrow down the list of txes to return.