besu-eth/besu - Open Source PR Review Scorecard

An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://github.com/besu-eth/besu/wiki

C-Rank Grade: A (Welcoming) - 69/100

External PR Merge Rate: 66%

Response Time: -

First Timer Success: 73%

Frequently Asked Questions

Is besu-eth/besu welcoming to first-time open-source contributors?

besu-eth/besu has a recorded first-timer success rate of 73.5%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in besu-eth/besu respond to incoming external pull requests in approximately 0.0 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 69.1 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 69.1 places besu-eth/besu in the A tier.

What is the external contributor pull request merge rate for besu-eth/besu?

The external contributor pull request merge rate for besu-eth/besu is 66.2%, based on public PR activity from non-core contributors.

Are there Good First Issues available in besu-eth/besu?

besu-eth/besu currently has 3 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

besu-eth
besu-eth/besuA•Welcoming1.9k
GitHub
Back to Explorer
besu-eth

besu-eth/besu

1,850
Active (30d)A•Welcoming(69/100)Java

An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://github.com/besu-eth/besu/wiki

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Architecture Gatekeeper

Warmth Score
7.5/10
Patience Score
8.0/10
Nitpick Rate
40%

Strict review standards in besu-eth/besu. Ensure PR scope matches issue requirements closely before requesting review.

Top PR Submission Do's

  • •Ensure code complies with the project coding style
  • •Keep PRs scoped to a single concern
  • •Include context and link to the related issue

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit PRs without linking an issue
  • •Do not break existing tests without fixing them
  • •Do not mix unrelated refactors in a single PR
Response Velocity
-
No reviewer activity recorded

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
66.2%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
73.5%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
45 core
Highly collaborative maintainer core
Diagnostic Health HUD
66.2%
Merge Gauge
73.5%
1st-Timer
Community Vibe49/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for besu-eth/besu
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/besu-eth/besu)](https://getmerged.abhishekco.de/besu-eth/besu?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Summary The snap/2 GetBlockAccessLists handler has no dedicated per-request lookup cap, unlike its sibling snap handlers (GetByteCodes, GetStorageRanges) and the eth/71 GetBlockAccessLists handler. This is a consistency/hardening gap, not a vulnerability: the request is already bounded, just by much looser limits. Details SnapServer.constructGetBlockAccessListsResponse loops over every requested hash and calls blockchain.getBlockAccessList(blockHash) (SnapServer.java:~285-297). The only limits on that loop come from the shared ResponseSizePredicate: MAX_ENTRIES_PER_REQUEST = 100000 (SnapServer.java:75, enforced at :806) a 4 s per-request time budget (DEFAULT_MAX_MILLIS_PER_REQUEST, :762) the response byte budget (MAX_RESPONSE_SIZE = 2 MiB, :76) calculateBlockAccessListEncodedSize counts a missing BAL as 1 byte (SnapServer.java:~841), so unknown hashes barely consume the byte budget and the effective bound is the 100k-entry / 4 s one. Stored BALs are also fully decoded from storage ju

📅 Opened Oct 5, 2026💬 5 comments
Quality: 50/100Contribute

Steps to Reproduce Run Besu with named ephemery network Observe it does not get peers besu --p2p-port 30303 --discovery-mode BOTH --rpc-http-enabled --rpc-http-host 0.0.0.0 --rpc-http-port 8545 --rpc-http-cors-origins=* --rpc-http-max-active-connections=65536 --rpc-max-logs-range=65536 --rpc-ws-enabled --rpc-ws-host 0.0.0.0 --rpc-ws-port 8546 --host-allowlist=* --engine-host-allowlist=* --engine-jwt-secret=/var/lib/besu/ee-secret/jwtsecret --engine-rpc-port=8551 --logging info --metrics-enabled --metrics-host 0.0.0.0 --metrics-port 6060 --nat-method=DOCKER --data-path /var/lib/besu --network ephemery Further detail Besu uses chain ID 39438163, which matches Ephemery iteration 163. The Geth peers (v1.16.5 and v1.17.5) accept its status message (validated? true). Right after Besu's first header request (GetHeadersFromPeerTask), they disconnect it with 0x10 SUBPROTOCOL_TRIGGERED. Besu advertises eth/68–eth/71 and snap/1. It happens with the built-in bootnodes, with the release's enod

📅 Opened Sep 23, 2026💬 5 comments
Quality: 50/100Contribute

Description As an RPC node operator, I want the ability to import EraE history files so that I can sync a full node quickly. Similar to the existing era1 support, but updated for erae. It was possible to sync a node with --snapsync-synchronizer-pre-checkpoint-headers-only-enabled=false until 26.8.0. Now full sync, optionally with era1 files, is the remaining option. Not part of this request: The ability to generate / export EraE files Acceptance Criteria New parameter --erae-import-prepipeline-enabled New parameter --erae-data-uri, maybe defaulting to https://data.ethpandaops.io/erae/mainnet/ Alias parameter --erae-import-prepipeline-concurrency, same value as --era1-import-prepipeline-concurrency Full sync node can catch up from a set of full history EraE files

📅 Opened Sep 5, 2026💬 1 comment
Quality: 50/100Contribute

Steps to Reproduce Run Besu 26.8.1 with --rpc-ws-enabled=true --rpc-ws-max-active-connections=1000. Point any client that keeps opening/closing WebSocket connections at the WS port at a steady rate (health probe, reconnecting subscriber, connection broker — anything that generates fresh handshakes). Watch WebSocketService's reported active-connections count (via the Rejecting new connection ... N/M WARN log or the active_ws_connection_count Prometheus gauge). It only ever grows. Cross-check with ss / netstat inside the Besu process's network namespace — real TCP connection count stays flat. After N minutes (depending on rate) the counter passes the configured cap and Besu starts rejecting every new WS handshake until the process is restarted. Expected behavior: activeConnectionsCount decrements when the underlying TCP/WS connection closes, so the counter matches the real number of open sockets, and the cap only fires when real load approaches it. Actual behavior: The counter clim

📅 Opened Sep 2, 2026💬 2 comments
Quality: 50/100Contribute

Summary callTracer with tracerConfig: {"onlyTopCall": true} was fixed in #10967 (issue #10955) to return only the root frame, but Besu still collects a full opcode-level trace before discarding it. For deep/expensive transactions this means allocating a TraceFrame (with stack/memory/storage snapshots) per opcode for a request whose caller explicitly asked to skip exactly that work. Current flow DebugTraceTransaction, DebugTraceCall, and DebugTraceBlockStreamer each construct a DebugOperationTracer/StreamingDebugOperationTracer unconditionally before execution. tracePostExecution appends a frame for every opcode regardless of onlyTopCall. Only afterward does CallTracerResultConverter.convert(trace, onlyTopCall) (added in #10967) discard that work and return just the root. Why it's safe to skip earlier Tracers in Besu are pure observers — gas/output/error/revertReason all come from TransactionProcessingResult, computed by the EVM independent of whether any tracer is attached (the same

📅 Opened Aug 6, 2026💬 1 comment
Quality: 50/100Contribute
Looking for more Java beginner tasks?Explore Java GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for besu-eth/besu

When evaluating whether to contribute to besu-eth/besu, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of besu-eth/besu acknowledge new external contributions in approximately -. Out of all submitted pull requests from non-core authors in the last 180-day window, 66.2% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to besu-eth/besu

01

Is besu-eth/besu welcoming to first-time open-source contributors?

besu-eth/besu has a recorded first-timer success rate of 73.5%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~-. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 69.1 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 69.1 places besu-eth/besu in the Welcoming tier.

04

What is the external contributor pull request merge rate for besu-eth/besu?

The external pull request merge rate is 66.2%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in besu-eth/besu?

Yes, besu-eth/besu currently has 3 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for besu-eth/besu are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.