Conversation
Collaborator
✅ Heimdall Review Status
|
74e88af to
e5b70c9
Compare
danyalprout
approved these changes
Dec 4, 2025
danyalprout
pushed a commit
that referenced
this pull request
Feb 13, 2026
* Add a workspace * go * Fix tests concurrency * Update websocket proxy location * Fix * Fix * Update cargo run commands * Use workspace dependencies * Fix issues * update deny * More deny stuff
github-merge-queue bot
pushed a commit
that referenced
this pull request
Feb 14, 2026
* Restructure the repo as a workspace (#233) * Add a workspace * go * Fix tests concurrency * Update websocket proxy location * Fix * Fix * Update cargo run commands * Use workspace dependencies * Fix issues * update deny * More deny stuff * websocket proxy: Add authenticated endpoint settings (#261) * Add authenticated endpoint to websocket proxy * Mark code as dead * websocket proxy: disconnect downstream client if lagging (#269) * disconnect client on lag * add back lagged_connections metric * Flashblocks with extension trait (#270) * Add fb crate + block ext api * Trying to plug builderExt * Finish with the trait * Fix lint * Commit changes * Address url feedback * Add missing env vars * Address feedback * Add feedback * Update * brotli compress each message from upstream before sending downstream * hide compression behind a feature flag * remove feature flag, enable_compression arg, fix integration test * fix clippy errors * Fix FB race (#307) * Fix race condition in FB (check that we return flashblocks for correct endpoint) use std::mem::replace to avoid double locking * run make fmt * Add payload cleaning on FCU * Add test * chore: overall websocket limits should be per instance (#311) * Initial batch of metrics for flashblocks service (#300) * chore: minor tweaks to websocket-proxy (#353) * chore: remove integration feature for websocket-proxy * chore: received message metric per upstream source * fix: ensure we reconnect when we receive a close * Reformat * Add a metric to track # of bytes broadcasted * fix: ensure we ping/pong upstream and disconnect when they become unresponsive * Add some additional logging * feat: add ws filtering by addresses and topics with configurable match logic * feat: add client ping/pong health checks * Cherry pick ping/pong clients * Fix initial backoff interval * Separate rate limiting metrics by limit type Split the single `rate_limited_requests` metric into two separate counters: - `per_ip_rate_limited_requests`: Tracks rejections due to per-IP connection limits - `global_rate_limited_requests`: Tracks rejections due to global instance limits This provides better observability into which rate limiting mechanism is being triggered, enabling more targeted monitoring and alerting. Changes: - Add RateLimitType enum to distinguish between limit types - Update RateLimitError to include limit_type field - Modify server.rs to increment appropriate metric based on limit type - Update both InMemoryRateLimit and RedisRateLimit implementations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Log IP address when per-IP rate limit is exceeded Add structured logging to capture the client IP address whenever a per-IP rate limit is hit. This provides better observability for identifying which specific IPs are hitting rate limits for security monitoring and debugging. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * add ping metrics * Refactor websocket proxy to use Vec<u8> instead of String * Revert "Refactor websocket proxy to use Vec<u8> instead of String" This reverts commit 190e68145a818c594cfeca373ca977fc689ff5ef. * add metrics * fix * update comment * update * send timeout * configurable timeout * update * fix tests * fixes for merging websocket proxy * minimal ci fixes --------- Co-authored-by: Ferran Borreguero <ferran.borreguero@gmail.com> Co-authored-by: Haardik <hhaardik@uwaterloo.ca> Co-authored-by: Haardik H <haardik.haardik@coinbase.com> Co-authored-by: Solar Mithril <mikawamp@gmail.com> Co-authored-by: shana <avalonche@protonmail.com> Co-authored-by: Tobi Akerele <tobi.akerele@coinbase.com> Co-authored-by: Cody Wang <cody.wang@coinbase.com> Co-authored-by: Claude <noreply@anthropic.com>
refcell
pushed a commit
that referenced
this pull request
Feb 18, 2026
~~blocked by #205~~ ported from reth
mw2000
pushed a commit
that referenced
this pull request
Mar 9, 2026
mw2000
pushed a commit
that referenced
this pull request
Mar 16, 2026
haardikk21
pushed a commit
that referenced
this pull request
Mar 17, 2026
* fix(lychee): lints * feat(bin/node): move node building + running into a new runner crate
haardikk21
added a commit
that referenced
this pull request
Mar 17, 2026
* Restructure the repo as a workspace (#233) * Add a workspace * go * Fix tests concurrency * Update websocket proxy location * Fix * Fix * Update cargo run commands * Use workspace dependencies * Fix issues * update deny * More deny stuff * websocket proxy: Add authenticated endpoint settings (#261) * Add authenticated endpoint to websocket proxy * Mark code as dead * websocket proxy: disconnect downstream client if lagging (#269) * disconnect client on lag * add back lagged_connections metric * Flashblocks with extension trait (#270) * Add fb crate + block ext api * Trying to plug builderExt * Finish with the trait * Fix lint * Commit changes * Address url feedback * Add missing env vars * Address feedback * Add feedback * Update * brotli compress each message from upstream before sending downstream * hide compression behind a feature flag * remove feature flag, enable_compression arg, fix integration test * fix clippy errors * Fix FB race (#307) * Fix race condition in FB (check that we return flashblocks for correct endpoint) use std::mem::replace to avoid double locking * run make fmt * Add payload cleaning on FCU * Add test * chore: overall websocket limits should be per instance (#311) * Initial batch of metrics for flashblocks service (#300) * chore: minor tweaks to websocket-proxy (#353) * chore: remove integration feature for websocket-proxy * chore: received message metric per upstream source * fix: ensure we reconnect when we receive a close * Reformat * Add a metric to track # of bytes broadcasted * fix: ensure we ping/pong upstream and disconnect when they become unresponsive * Add some additional logging * feat: add ws filtering by addresses and topics with configurable match logic * feat: add client ping/pong health checks * Cherry pick ping/pong clients * Fix initial backoff interval * Separate rate limiting metrics by limit type Split the single `rate_limited_requests` metric into two separate counters: - `per_ip_rate_limited_requests`: Tracks rejections due to per-IP connection limits - `global_rate_limited_requests`: Tracks rejections due to global instance limits This provides better observability into which rate limiting mechanism is being triggered, enabling more targeted monitoring and alerting. Changes: - Add RateLimitType enum to distinguish between limit types - Update RateLimitError to include limit_type field - Modify server.rs to increment appropriate metric based on limit type - Update both InMemoryRateLimit and RedisRateLimit implementations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Log IP address when per-IP rate limit is exceeded Add structured logging to capture the client IP address whenever a per-IP rate limit is hit. This provides better observability for identifying which specific IPs are hitting rate limits for security monitoring and debugging. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * add ping metrics * Refactor websocket proxy to use Vec<u8> instead of String * Revert "Refactor websocket proxy to use Vec<u8> instead of String" This reverts commit 190e68145a818c594cfeca373ca977fc689ff5ef. * add metrics * fix * update comment * update * send timeout * configurable timeout * update * fix tests * fixes for merging websocket proxy * minimal ci fixes --------- Co-authored-by: Ferran Borreguero <ferran.borreguero@gmail.com> Co-authored-by: Haardik <hhaardik@uwaterloo.ca> Co-authored-by: Haardik H <haardik.haardik@coinbase.com> Co-authored-by: Solar Mithril <mikawamp@gmail.com> Co-authored-by: shana <avalonche@protonmail.com> Co-authored-by: Tobi Akerele <tobi.akerele@coinbase.com> Co-authored-by: Cody Wang <cody.wang@coinbase.com> Co-authored-by: Claude <noreply@anthropic.com>
haardikk21
pushed a commit
that referenced
this pull request
Mar 17, 2026
mw2000
pushed a commit
that referenced
this pull request
Mar 19, 2026
mw2000
pushed a commit
that referenced
this pull request
Mar 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Migrates the node building + running into a new crate, simplifying the node binary and allowing for the node building to be extensible.