Bitcoin Commons benchmarking suite for comparing Bitcoin Core and Bitcoin Commons performance.
# Clone and setup
git clone <repo> && cd bllvm-bench
make all
# Or step by step:
make setup-auto # Auto-discover and clone dependencies
make bench # Run benchmarks
make json # Generate consolidated JSON
make csv # Generate CSV report- Runs fair benchmarks comparing Bitcoin Core and Bitcoin Commons
- Generates JSON reports with statistical analysis
- Produces CSV files for spreadsheet analysis
- Automatically discovers Core/Commons installations
- Individual JSON:
results/{benchmark}-{timestamp}.json - Consolidated JSON:
results/benchmark-results-consolidated-{timestamp}.json - CSV Report:
results/benchmark-results-consolidated-{timestamp}.csv - Suite Summary:
results/suite-*/summary.json - GitHub Pages Site: View at
benchmarks.thebitcoincommons.org(loads JSON dynamically)
Benchmarks run automatically via GitHub Actions on a self-hosted runner:
- Scheduled: Daily at 2 AM UTC
- Manual: Trigger via Actions tab
- On Push: When benchmark code changes
Results are automatically:
- Generated as consolidated JSON
- Committed to
docs/data/ - Published to GitHub Pages
- Released (on scheduled runs)
See .github/workflows/README.md for setup instructions.
- README_BENCHMARKING.md - Full benchmarking guide
- README_DIFFERENTIAL_TESTING.md - Differential testing guide
- TROUBLESHOOTING.md - Common issues and solutions
- docs/REGRESSION_DETECTION.md - Regression detection & historical tracking
- docs/ - Additional documentation
- .github/workflows/README.md - GitHub Actions setup
make help- Show all available targetsmake setup- Interactive setupmake setup-auto- Auto-setup (clones dependencies)make bench- Run benchmarksmake json- Generate consolidated JSONmake csv- Generate CSV from JSONmake report-full- Generate both JSON and CSVmake deep-analysis- Deep Commons analysis (CPU cycles, cache, etc.)make update-gh-pages- Update GitHub Pages with latest JSONmake check- Check if all dependencies are availablemake validate- Validate benchmark JSON (FILE=path/to/file.json)make history- Track benchmark history for trend analysismake regressions- Detect performance regressions vs baselinemake all- Full workflow (setup + bench + report)