Skip to content

feat(proxyd): stream raw transactions over gRPC - #11

Closed
haardikk21 wants to merge 1 commit into
mainfrom
feat/proxyd-transaction-ingress
Closed

haardikk21 wants to merge 1 commit into
mainfrom
feat/proxyd-transaction-ingress

Conversation

@haardikk21

Copy link
Copy Markdown

Summary

  • add the base.tx_ingress.v1.TransactionIngressService client contract from feat(tx-ingress): add streaming transaction submission base#4764
  • optionally forward eth_sendRawTransaction to each backend's tx_ingress_endpoint over one persistent bidirectional gRPC stream
  • correlate out-of-order stream responses with stream-local request IDs while preserving public JSON-RPC IDs and batch response order
  • split mixed public JSON-RPC batches so raw transaction calls use the stream while other methods continue over HTTP
  • reconnect after stream loss with request IDs reset for the new stream; existing proxyd retry and backend failover behavior remains in effect

rpc_url remains required for probes and all non-transaction methods. The stream is plaintext for use within the trusted VPC.

A transport failure can be ambiguous after a transaction has been sent. Existing proxyd retries may therefore resubmit it on a new stream or failover backend, as they can after an ambiguous HTTP failure; duplicate raw transactions remain identified by their transaction hash.

Depends on the receiver introduced by base/base#4764.

Testing

  • go test ./...
  • go test -race . -run TransactionIngress -count=1
  • go vet ./...
  • golangci-lint run -E goimports,sqlclosecheck,bodyclose,asciicheck,misspell,errorlint ... ./...

@haardikk21

Copy link
Copy Markdown
Author

Closing because this is not the correct repository for the change.

@haardikk21 haardikk21 closed this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant