{"id":35214699,"url":"https://github.com/flashbots/bproxy","last_synced_at":"2026-04-07T04:31:37.287Z","repository":{"id":282202810,"uuid":"947174151","full_name":"flashbots/bproxy","owner":"flashbots","description":"L2 builder proxy","archived":false,"fork":false,"pushed_at":"2026-02-05T20:37:49.000Z","size":285,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-06T04:04:57.939Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flashbots.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-12T09:17:12.000Z","updated_at":"2025-10-10T09:46:50.000Z","dependencies_parsed_at":"2025-03-28T13:36:44.837Z","dependency_job_id":"2fb25f26-11ab-47a9-baeb-0195edb6755e","html_url":"https://github.com/flashbots/bproxy","commit_stats":null,"previous_names":["flashbots/bproxy"],"tags_count":98,"template":false,"template_full_name":null,"purl":"pkg:github/flashbots/bproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fbproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fbproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fbproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fbproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flashbots","download_url":"https://codeload.github.com/flashbots/bproxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashbots%2Fbproxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31500397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-12-29T21:22:58.090Z","updated_at":"2026-04-07T04:31:37.271Z","avatar_url":"https://github.com/flashbots.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bproxy\n\nL2 builder proxy that proxies RPC and Authenticated RPC calls to the builder,\nand mirrors `eth_sendRawTransaction` (on rpc) and `engine_forkchoiceUpdatedV3`\nwith extra attributes (on authrpc) to its peers.\n\n## Usage\n\n```text\nbproxy serve [command options]\n\nOPTIONS:\n   AUTHRPC\n\n   --authrpc-backend url                                                                            url of authrpc backend (default: \"http://127.0.0.1:18551\") [$BPROXY_AUTHRPC_BACKEND]\n   --authrpc-backend-timeout duration                                                               max duration for authrpc backend requests (default: 1s) [$BPROXY_AUTHRPC_BACKEND_TIMEOUT]\n   --authrpc-client-idle-connection-timeout duration                                                duration to keep idle authrpc connections open (default: 30s) [$BPROXY_AUTHRPC_CLIENT_IDLE_CONNECTION_TIMEOUT]\n   --authrpc-deduplicate-fcus                                                                       deduplicate repetitive fcu messages (default: false) [$BPROXY_AUTHRPC_DEDUPLICATE_FCUS]\n   --authrpc-enabled                                                                                enable authrpc proxy (default: false) [$BPROXY_AUTHRPC_ENABLED]\n   --authrpc-extra-mirrored-jrpc-methods methods [ --authrpc-extra-mirrored-jrpc-methods methods ]  list of authrpc jrpc methods that will be mirrored in addition to the default [$BPROXY_AUTHRPC_EXTRA_MIRRORED_JRPC_METHODS]\n   --authrpc-healthcheck url                                                                        url of authrpc backend healthcheck endpoint (default: disabled) [$BPROXY_AUTHRPC_HEALTHCHECK]\n   --authrpc-healthcheck-interval interval                                                          interval between consecutive authrpc backend healthchecks (default: 1s) [$BPROXY_AUTHRPC_HEALTHCHECK_INTERVAL]\n   --authrpc-healthcheck-threshold-healthy count                                                    count of consecutive successful healthchecks to consider authrpc backend to be healthy (default: 2) [$BPROXY_AUTHRPC_HEALTHCHECK_THRESHOLD_HEALTHY]\n   --authrpc-healthcheck-threshold-unhealthy count                                                  count of consecutive failed healthchecks to consider authrpc backend to be unhealthy (default: 2) [$BPROXY_AUTHRPC_HEALTHCHECK_THRESHOLD_UNHEALTHY]\n   --authrpc-listen-address host:port                                                               host:port for authrpc proxy (default: \"0.0.0.0:8551\") [$BPROXY_AUTHRPC_LISTEN_ADDRESS]\n   --authrpc-log-requests                                                                           whether to log authrpc requests (default: false) [$BPROXY_AUTHRPC_LOG_REQUESTS]\n   --authrpc-log-requests-max-size size                                                             do not log authrpc requests larger than size (default: 4096) [$BPROXY_AUTHRPC_LOG_REQUESTS_MAX_SIZE]\n   --authrpc-log-responses                                                                          whether to log responses to proxied/mirrored authrpc requests (default: false) [$BPROXY_AUTHRPC_LOG_RESPONSES]\n   --authrpc-log-responses-max-size size                                                            do not log authrpc responses larger than size (default: 4096) [$BPROXY_AUTHRPC_LOG_RESPONSES_MAX_SIZE]\n   --authrpc-max-backend-connection-wait-timeout duration                                           maximum duration to wait for a free authrpc backend connection (0s means don't wait) (default: 0s) [$BPROXY_AUTHRPC_MAX_BACKEND_CONNECTION_WAIT_TIMEOUT]\n   --authrpc-max-backend-connections-per-host count                                                 maximum connections count per authrpc backend host (default: 1) [$BPROXY_AUTHRPC_MAX_BACKEND_CONNECTIONS_PER_HOST]\n   --authrpc-max-client-connections-per-ip count                                                    maximum authrpc client tcp connections count per ip (0 means unlimited) (default: 0) [$BPROXY_AUTHRPC_MAX_CLIENT_CONNECTIONS_PER_IP]\n   --authrpc-max-request-size megabytes                                                             maximum authrpc request payload size in megabytes (default: 15) [$BPROXY_AUTHRPC_MAX_REQUEST_SIZE]\n   --authrpc-max-response-size megabytes                                                            maximum authrpc response payload size in megabytes (default: 160) [$BPROXY_AUTHRPC_MAX_RESPONSE_SIZE]\n   --authrpc-mirror-fcu-with-payload                                                                mirror engine_forkchoiceUpdated calls that carry execution payload (default: false) [$BPROXY_AUTHRPC_MIRROR_FCU_WITH_PAYLOAD]\n   --authrpc-mirror-fcu-without-payload                                                             mirror engine_forkchoiceUpdated calls that do not carry execution payload (default: false) [$BPROXY_AUTHRPC_MIRROR_FCU_WITHOUT_PAYLOAD]\n   --authrpc-mirror-get-payload                                                                     mirror engine_getPayload calls (default: false) [$BPROXY_AUTHRPC_MIRROR_GET_PAYLOAD]\n   --authrpc-mirror-new-payload                                                                     mirror engine_newPayload calls (default: false) [$BPROXY_AUTHRPC_MIRROR_NEW_PAYLOAD]\n   --authrpc-mirror-set-max-da-size                                                                 mirror miner_setMaxDASize calls (default: false) [$BPROXY_AUTHRPC_MIRROR_SET_MAX_DA_SIZE]\n   --authrpc-peer-tls-insecure-skip-verify                                                          do not verify authrpc peers' tls certificates (default: false) [$BPROXY_AUTHRPC_PEER_TLS_INSECURE_SKIP_VERIFY]\n   --authrpc-peers urls [ --authrpc-peers urls ]                                                    list of authrpc peers urls to mirror the requests to [$BPROXY_AUTHRPC_PEERS]\n   --authrpc-remove-backend-from-peers                                                              remove authrpc backend from peers (default: false) [$BPROXY_AUTHRPC_REMOVE_BACKEND_FROM_PEERS]\n   --authrpc-tls-crt path                                                                           path to authrpc tls certificate (default: uses plain-text http) [$BPROXY_AUTHRPC_TLS_CRT]\n   --authrpc-tls-key path                                                                           path to authrpc tls key (default: uses plain-text http) [$BPROXY_AUTHRPC_TLS_KEY]\n   --authrpc-use-priority-queue                                                                     whether to prioritise \"important\" calls over the rest (default: false) [$BPROXY_AUTHRPC_USE_PRIORITY_QUEUE]\n\n   CHAOS\n\n   --chaos-authrpc-enabled                                                      whether authrpc proxy should be injecting artificial error conditions (default: false) [$BPROXY_CHAOS_AUTHRPC_ENABLED]\n   --chaos-authrpc-injected-http-error-probability percent                      probability in percent at which to randomly inject http errors into responses processed by authrpc proxy (default: 0) [$BPROXY_CHAOS_AUTHRPC_INJECTED_HTTP_ERROR_PROBABILITY]\n   --chaos-authrpc-injected-invalid-jrpc-response-probability percent           probability in percent at which to randomly inject invalid jrpc into responses processed by authrpc proxy (default: 0) [$BPROXY_CHAOS_AUTHRPC_INJECTED_INVALID_JRPC_RESPONSE_PROBABILITY]\n   --chaos-authrpc-injected-jrpc-error-probability percent                      probability in percent at which to randomly inject jrpc errors into responses processed by authrpc proxy (default: 0) [$BPROXY_CHAOS_AUTHRPC_INJECTED_JRPC_ERROR_PROBABILITY]\n   --chaos-authrpc-max-injected-latency latency                                 max latency to randomly enforce on every response processed by authrpc proxy (default: 0s) [$BPROXY_CHAOS_AUTHRPC_MAX_INJECTED_LATENCY]\n   --chaos-authrpc-min-injected-latency latency                                 min latency to enforce on every response processed by authrpc proxy (default: 0s) [$BPROXY_CHAOS_AUTHRPC_MIN_INJECTED_LATENCY]\n   --chaos-flashblocks-dropped-message-probability percent                      probability in percent at which to randomly drop messages processed by flashblocks proxy (default: 0) [$BPROXY_CHAOS_FLASHBLOCKS_DROPPED_MESSAGE_PROBABILITY]\n   --chaos-flashblocks-enabled                                                  whether flashblocks proxy should be injecting artificial error conditions (default: false) [$BPROXY_CHAOS_FLASHBLOCKS_ENABLED]\n   --chaos-flashblocks-injected-invalid-flashblock-payload-probability percent  probability in percent at which to randomly inject an invalid flashblock (default: 0) [$BPROXY_CHAOS_FLASHBLOCKS_INJECTED_INVALID_FLASHBLOCK_PAYLOAD_PROBABILITY]\n   --chaos-flashblocks-injected-malformed-json-message-probability percent      probability in percent at which to randomly inject a malformed json message (default: 0) [$BPROXY_CHAOS_FLASHBLOCKS_INJECTED_MALFORMED_JSON_MESSAGE_PROBABILITY]\n   --chaos-flashblocks-max-injected-latency latency                             max latency to randomly enforce on every response processed by flashblocks proxy (default: 0s) [$BPROXY_CHAOS_FLASHBLOCKS_MAX_INJECTED_LATENCY]\n   --chaos-flashblocks-min-injected-latency latency                             min latency to enforce on every response processed by flashblocks proxy (default: 0s) [$BPROXY_CHAOS_FLASHBLOCKS_MIN_INJECTED_LATENCY]\n   --chaos-rpc-enabled                                                          whether rpc proxy should be injecting artificial error conditions (default: false) [$BPROXY_CHAOS_RPC_ENABLED]\n   --chaos-rpc-injected-http-error-probability percent                          probability in percent at which to randomly inject http errors into responses processed by rpc proxy (default: 0) [$BPROXY_CHAOS_RPC_INJECTED_HTTP_ERROR_PROBABILITY]\n   --chaos-rpc-injected-invalid-jrpc-response-probability percent               probability in percent at which to randomly inject invalid jrpc into responses processed by rpc proxy (default: 0) [$BPROXY_CHAOS_RPC_INJECTED_INVALID_JRPC_RESPONSE_PROBABILITY]\n   --chaos-rpc-injected-jrpc-error-probability percent                          probability in percent at which to randomly inject jrpc errors into responses processed by rpc proxy (default: 0) [$BPROXY_CHAOS_RPC_INJECTED_JRPC_ERROR_PROBABILITY]\n   --chaos-rpc-max-injected-latency latency                                     max latency to randomly enforce on every response processed by rpc proxy (default: 0s) [$BPROXY_CHAOS_RPC_MAX_INJECTED_LATENCY]\n   --chaos-rpc-min-injected-latency latency                                     min latency to enforce on every response processed by rpc proxy (default: 0s) [$BPROXY_CHAOS_RPC_MIN_INJECTED_LATENCY]\n\n   FLASHBLOCKS\n\n   --flashblocks-backend url                            url of flashblocks backend (default: \"ws://127.0.0.1:11111\") [$BPROXY_FLASHBLOCKS_BACKEND]\n   --flashblocks-backward-timeout duration              max duration for flashblocks frontend reads and backend writes (0s means no timeout) (default: 0s) [$BPROXY_FLASHBLOCKS_BACKWARD_TIMEOUT]\n   --flashblocks-control-timeout duration               max duration for control websocket messages reads and writes (0s means no timeout) (default: 2s) [$BPROXY_FLASHBLOCKS_CONTROL_TIMEOUT]\n   --flashblocks-enabled                                enable flashblocks proxy (default: false) [$BPROXY_FLASHBLOCKS_ENABLED]\n   --flashblocks-forward-timeout duration               max duration for flashblocks backend reads and frontend writes (0s means no timeout) (default: 5s) [$BPROXY_FLASHBLOCKS_FORWARD_TIMEOUT]\n   --flashblocks-healthcheck url                        url of flashblocks backend healthcheck endpoint (default: disabled) [$BPROXY_FLASHBLOCKS_HEALTHCHECK]\n   --flashblocks-healthcheck-interval interval          interval between consecutive flashblocks backend healthchecks (default: 1s) [$BPROXY_FLASHBLOCKS_HEALTHCHECK_INTERVAL]\n   --flashblocks-healthcheck-threshold-healthy count    count of consecutive successful healthchecks to consider flashblocks backend to be healthy (default: 2) [$BPROXY_FLASHBLOCKS_HEALTHCHECK_THRESHOLD_HEALTHY]\n   --flashblocks-healthcheck-threshold-unhealthy count  count of consecutive failed healthchecks to consider flashblocks backend to be unhealthy (default: 2) [$BPROXY_FLASHBLOCKS_HEALTHCHECK_THRESHOLD_UNHEALTHY]\n   --flashblocks-listen-address host:port               host:port for flashblocks proxy (default: \"0.0.0.0:1111\") [$BPROXY_FLASHBLOCKS_LISTEN_ADDRESS]\n   --flashblocks-log-messages                           whether to log flashblocks messages (default: false) [$BPROXY_FLASHBLOCKS_LOG_MESSAGES]\n   --flashblocks-log-messages-max-size size             do not log flashblocks messages larger than size (default: 4096) [$BPROXY_FLASHBLOCKS_LOG_MESSAGES_MAX_SIZE]\n   --flashblocks-read-buffer-size megabytes             flashblocks read buffer size in megabytes (messages from client) (default: 16) [$BPROXY_FLASHBLOCKS_READ_BUFFER_SIZE]\n   --flashblocks-tls-crt path                           path to flashblocks tls certificate (default: uses plain-text http) [$BPROXY_FLASHBLOCKS_TLS_CRT]\n   --flashblocks-tls-key path                           path to flashblocks tls key (default: uses plain-text http) [$BPROXY_FLASHBLOCKS_TLS_KEY]\n   --flashblocks-write-buffer-size megabytes            flashblocks write buffer size in megabytes (messages from backend) (default: 16) [$BPROXY_FLASHBLOCKS_WRITE_BUFFER_SIZE]\n\n   METRICS\n\n   --metrics-listen-address host:port  host:port for metrics server (default: \"0.0.0.0:6785\") [$BPROXY_METRICS_LISTEN_ADDRESS]\n\n   RPC\n\n   --rpc-backend url                                                                        url of rpc backend (default: \"http://127.0.0.1:18545\") [$BPROXY_RPC_BACKEND]\n   --rpc-backend-timeout duration                                                           max duration for rpc backend requests (default: 1s) [$BPROXY_RPC_BACKEND_TIMEOUT]\n   --rpc-client-idle-connection-timeout duration                                            duration to keep idle rpc connections open (default: 30s) [$BPROXY_RPC_CLIENT_IDLE_CONNECTION_TIMEOUT]\n   --rpc-enabled                                                                            enable rpc proxy (default: false) [$BPROXY_RPC_ENABLED]\n   --rpc-extra-mirrored-jrpc-methods methods [ --rpc-extra-mirrored-jrpc-methods methods ]  list of rpc jrpc methods that will be mirrored in addition to the default [$BPROXY_RPC_EXTRA_MIRRORED_JRPC_METHODS]\n   --rpc-healthcheck url                                                                    url of rpc backend healthcheck endpoint (default: disabled) [$BPROXY_RPC_HEALTHCHECK]\n   --rpc-healthcheck-interval interval                                                      interval between consecutive rpc backend healthchecks (default: 1s) [$BPROXY_RPC_HEALTHCHECK_INTERVAL]\n   --rpc-healthcheck-threshold-healthy count                                                count of consecutive successful healthchecks to consider rpc backend to be healthy (default: 2) [$BPROXY_RPC_HEALTHCHECK_THRESHOLD_HEALTHY]\n   --rpc-healthcheck-threshold-unhealthy count                                              count of consecutive failed healthchecks to consider rpc backend to be unhealthy (default: 2) [$BPROXY_RPC_HEALTHCHECK_THRESHOLD_UNHEALTHY]\n   --rpc-listen-address host:port                                                           host:port for rpc proxy (default: \"0.0.0.0:8545\") [$BPROXY_RPC_LISTEN_ADDRESS]\n   --rpc-log-requests                                                                       whether to log rpc requests (default: false) [$BPROXY_RPC_LOG_REQUESTS]\n   --rpc-log-requests-max-size size                                                         do not log rpc requests larger than size (default: 4096) [$BPROXY_RPC_LOG_REQUESTS_MAX_SIZE]\n   --rpc-log-responses                                                                      whether to log responses to proxied/mirrored rpc requests (default: false) [$BPROXY_RPC_LOG_RESPONSES]\n   --rpc-log-responses-max-size size                                                        do not log rpc responses larger than size (default: 4096) [$BPROXY_RPC_LOG_RESPONSES_MAX_SIZE]\n   --rpc-max-backend-connection-wait-timeout duration                                       maximum duration to wait for a free rpc backend connection (0s means don't wait) (default: 0s) [$BPROXY_RPC_MAX_BACKEND_CONNECTION_WAIT_TIMEOUT]\n   --rpc-max-backend-connections-per-host count                                             maximum connections count per rpc backend host (default: 1) [$BPROXY_RPC_MAX_BACKEND_CONNECTIONS_PER_HOST]\n   --rpc-max-client-connections-per-ip count                                                maximum rpc client tcp connections count per ip (0 means unlimited) (default: 0) [$BPROXY_RPC_MAX_CLIENT_CONNECTIONS_PER_IP]\n   --rpc-max-request-size megabytes                                                         maximum rpc request payload size in megabytes (default: 15) [$BPROXY_RPC_MAX_REQUEST_SIZE]\n   --rpc-max-response-size megabytes                                                        maximum rpc response payload size in megabytes (default: 160) [$BPROXY_RPC_MAX_RESPONSE_SIZE]\n   --rpc-peer-tls-insecure-skip-verify                                                      do not verify rpc peers' tls certificates (default: false) [$BPROXY_RPC_PEER_TLS_INSECURE_SKIP_VERIFY]\n   --rpc-peers urls [ --rpc-peers urls ]                                                    list of rpc peers urls to mirror the requests to [$BPROXY_RPC_PEERS]\n   --rpc-remove-backend-from-peers                                                          remove rpc backend from peers (default: false) [$BPROXY_RPC_REMOVE_BACKEND_FROM_PEERS]\n   --rpc-tls-crt path                                                                       path to rpc tls certificate (default: uses plain-text http) [$BPROXY_RPC_TLS_CRT]\n   --rpc-tls-key path                                                                       path to rpc tls key (default: uses plain-text http) [$BPROXY_RPC_TLS_KEY]\n   --rpc-use-priority-queue                                                                 whether to prioritise \"important\" calls over the rest (default: false) [$BPROXY_RPC_USE_PRIORITY_QUEUE]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fbproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflashbots%2Fbproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashbots%2Fbproxy/lists"}