Skip to content

feat(beacon): add streaming raw API responses - #81

Open
Savid wants to merge 1 commit into
release/gloasfrom
feat/raw-streaming
Open

feat(beacon): add streaming raw API responses#81
Savid wants to merge 1 commit into
release/gloasfrom
feat/raw-streaming

Conversation

@Savid

@Savid Savid commented Jul 29, 2026

Copy link
Copy Markdown
Member

Summary

  • add streaming OpenRaw* methods for beacon states, blocks, and execution payload envelopes
  • return response metadata with explicit body ownership, idempotent close, leak cleanup, and lifecycle metrics
  • use a dedicated configurable raw HTTP client with HTTP/2 support, bounded concurrent response bodies, and explicit wire-encoding control
  • share request and status handling with buffered raw fetches, including typed status errors and bounded error-body draining
  • document streaming usage, timeout behavior, completeness checks, and concurrency constraints

Breaking changes

  • expand the beacon.Node and api.ConsensusClient interfaces
  • update api.NewConsensusClient to require separate regular and raw HTTP clients plus a raw-response observer

Validation

  • go test ./... -count=10
  • go test -race ./... -count=3
  • Linux heap and RSS acceptance gates, including 50 concurrent real TLS HTTP/2 responses of 73,216,552 bytes each
  • full 50-response buffered comparison on a high-memory host
  • go vet with normal and acceptance build tags
  • golangci-lint run ./...

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