{"id":28766949,"url":"https://github.com/base/flashblocks-websocket-proxy","last_synced_at":"2025-08-24T14:44:24.180Z","repository":{"id":282915113,"uuid":"937771053","full_name":"base/flashblocks-websocket-proxy","owner":"base","description":"A websocket proxy for distributing Flashblocks","archived":false,"fork":false,"pushed_at":"2025-05-07T17:35:37.000Z","size":88,"stargazers_count":7,"open_issues_count":2,"forks_count":4,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-07T18:40:07.768Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/base.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-23T21:11:12.000Z","updated_at":"2025-05-05T21:38:47.000Z","dependencies_parsed_at":"2025-03-17T16:45:26.983Z","dependency_job_id":"8fd3af1b-c75c-42ce-b24e-3e60fbadfd92","html_url":"https://github.com/base/flashblocks-websocket-proxy","commit_stats":null,"previous_names":["base/flashblocks-websocket-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/base/flashblocks-websocket-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fflashblocks-websocket-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fflashblocks-websocket-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fflashblocks-websocket-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fflashblocks-websocket-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/base","download_url":"https://codeload.github.com/base/flashblocks-websocket-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fflashblocks-websocket-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260360078,"owners_count":22997415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T12:37:43.455Z","updated_at":"2025-08-24T14:44:24.141Z","avatar_url":"https://github.com/base.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flashblocks Websocket Proxy\n\n\u003e ⚠️ **Warning**\n\u003e\n\u003e This is currently alpha software -- deploy at your own risk!\n\u003e\n\u003e Currently, this project is a one-directional generic websocket proxy. It doesn't inspect any data or validate clients.\n\u003e This may not always be the case.\n\n## Overview\n\nThe Flashblocks Websocket Proxy is a service that subscribes to new Flashblocks from\n[rollup-boost](https://github.com/flashbots/rollup-boost) on the sequencer. Then broadcasts them out to any downstream\nRPC nodes. Minimizing the number of connections to the sequencer and restricting access.\n\n\u003c!-- Badge row 1 - status --\u003e\n\n[![GitHub contributors](https://img.shields.io/github/contributors/base/flashblocks-websocket-proxy)](https://github.com/base/flashblocks-websocket-proxy/graphs/contributors)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/w/base/flashblocks-websocket-proxy)](https://github.com/base/flashblocks-websocket-proxy/graphs/contributors)\n[![GitHub Stars](https://img.shields.io/github/stars/base/flashblocks-websocket-proxy.svg)](https://github.com/base/flashblocks-websocket-proxy/stargazers)\n![GitHub repo size](https://img.shields.io/github/repo-size/base/flashblocks-websocket-proxy)\n[![GitHub](https://img.shields.io/github/license/base/flashblocks-websocket-proxy?color=blue)](https://github.com/base/flashblocks-websocket-proxy/blob/master/LICENSE.md)\n\n\u003c!-- Badge row 2 - links and profiles --\u003e\n\n[![Website base.org](https://img.shields.io/website-up-down-green-red/https/base.org.svg)](https://base.org)\n[![Blog](https://img.shields.io/badge/blog-up-green)](https://base.mirror.xyz/)\n[![Docs](https://img.shields.io/badge/docs-up-green)](https://docs.base.org/)\n[![Discord](https://img.shields.io/discord/1067165013397213286?label=discord)](https://base.org/discord)\n[![Twitter Base](https://img.shields.io/twitter/follow/Base?style=social)](https://twitter.com/Base)\n\n\u003c!-- Badge row 3 - detailed status --\u003e\n\n[![GitHub pull requests by-label](https://img.shields.io/github/issues-pr-raw/base/flashblocks-websocket-proxy)](https://github.com/base/flashblocks-websocket-proxy/pulls)\n[![GitHub Issues](https://img.shields.io/github/issues-raw/base/flashblocks-websocket-proxy.svg)](https://github.com/base/flashblocks-websocket-proxy/issues)\n\n## For Developers\n\n### Contributing\n\n### Building \u0026 Testing\n\nYou can build and test the project using [Cargo](https://doc.rust-lang.org/cargo/). Some useful commands are:\n\n```\n# Build the project\ncargo build\n\n# Run all the tests (requires local version of redis to be installed)\ncargo test --all-features\n```\n\n### Deployment\n\nBuilds of the websocket proxy [are provided](https://github.com/base/flashblocks-websocket-proxy/pkgs/container/flashblocks-websocket-proxy).\nThe only configuration required is the rollup-boost URL to proxy. You can set this via an env var `UPSTREAM_WS` or a flag `--upstream-ws`.\n\nYou can see a full list of parameters by running:\n\n`docker run ghcr.io/base/flashblocks-websocket-proxy:master --help`\n\n### Redis Integration\n\nThe proxy supports distributed rate limiting with Redis. This is useful when running multiple instances of the proxy behind a load balancer, as it allows rate limits to be enforced across all instances.\n\nTo enable Redis integration, use the following parameters:\n\n- `--redis-url` - Redis connection URL (e.g., `redis://localhost:6379`)\n- `--redis-key-prefix` - Prefix for Redis keys (default: `flashblocks`)\n\nExample:\n\n```bash\ndocker run ghcr.io/base/flashblocks-websocket-proxy:master \\\n  --upstream-ws wss://your-sequencer-endpoint \\\n  --redis-url redis://redis:6379 \\\n  --global-connections-limit 1000 \\\n  --per-ip-connections-limit 10\n```\n\nWhen Redis is enabled, the following features are available:\n\n- Distributed rate limiting across multiple proxy instances\n- Connection tracking persists even if the proxy instance restarts\n- More accurate global connection limiting in multi-instance deployments\n\nIf the Redis connection fails, the proxy will automatically fall back to in-memory rate limiting.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbase%2Fflashblocks-websocket-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbase%2Fflashblocks-websocket-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbase%2Fflashblocks-websocket-proxy/lists"}