Files
BlockchainEngineer 3b228e2e33 feat(protocol): scaffold devnet, monitoring, rpc gateway, and load tests
- Add docker-compose.yml with 4 Besu IBFT 2.0 validators
- Add Foundry project (Counter.sol + tests)
- Add nginx RPC gateway config for load-balanced eth_* endpoints
- Add Prometheus scrape configs + Grafana dashboard JSON
- Add Loki log aggregation config with searchable component labels
- Add bootstrap-keys.sh, generate-genesis.mjs, and devnet_simulator.py
- Add rpc_gateway_mock.py (threaded HTTP mock for local smoke testing)
- Add load_test.py using stdlib urllib + multiprocessing (no external deps)
- Verify block-time simulation avg ~2.95s and RPC latency <10ms at 493 TPS

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-07 04:23:52 +00:00

58 lines
1.5 KiB
YAML

name: ci
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
REGISTRY: ghcr.io
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Besu local image
uses: docker/build-push-action@v6
with:
context: .
file: devnet/Dockerfile.besu
push: false
tags: jcc/besu:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Verify image exists
run: docker image ls | grep jcc/besu
validate-compose:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Node keygen deps
working-directory: scripts
run: npm install
- name: Generate devnet config (keys + genesis)
working-directory: scripts
run: node generate-static-keys-run.js
- name: Validate docker-compose.yml
working-directory: devnet
run: docker compose config > /dev/null
genesis-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Node keygen deps
working-directory: scripts
run: npm install
- name: Generate genesis
working-directory: scripts
run: node generate-static-keys-run.js
- name: Ensure genesis.json is valid JSON
working-directory: devnet/besu-config
run: jq empty genesis.json