Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
72bb633
Add rln-prover code (from VAC repository)
sydhds Oct 20, 2025
d361320
Add Dockerfile
sydhds Oct 21, 2025
75b976d
Add rln-prover github workflow
sydhds Oct 21, 2025
a23aa6e
Fix dependency between lint & unused-deps jobs in rln-prover CI workflow
sydhds Oct 21, 2025
c670b8e
Remove commit tag env var in rln-prover CI workflow
sydhds Oct 21, 2025
25346c5
Remove commit tag env var in rln-prover CI workflow (attemp 2)
sydhds Oct 21, 2025
61b2299
Remove commit tag declatation in rln-prover CI workflow (attemp 3)
sydhds Oct 21, 2025
d21249e
Remove commit tag declatation in rln-prover CI workflow (attemp 4)
sydhds Oct 21, 2025
dfb1ec7
Restore commit tag in CI workflow
sydhds Oct 21, 2025
e794177
Remove usage of commit_tag in rln-prover-tests.yml
sydhds Oct 22, 2025
cf74d2f
commit tag optional
nadeemb53 Oct 23, 2025
ea1948e
Merge branch 'feat/import-rln-prover' of github.com:status-im/status-…
nadeemb53 Oct 23, 2025
7f2d986
fix: rln prover and karma service flag updates in compose file
nadeemb53 Oct 28, 2025
54a4ba1
fix: CI fixes
nadeemb53 Oct 28, 2025
e72bf20
fix: rln prover CI failing due to tests and clippy
nadeemb53 Oct 28, 2025
1f93f3e
Remove unwanted unit test file: e2e.rs
sydhds Oct 28, 2025
a3764d6
Update code
sydhds Oct 28, 2025
624f1bc
Cargo fmt
sydhds Oct 28, 2025
69c4013
Disable anvil tests
sydhds Oct 28, 2025
f946ce6
fix: contract deployment issues fixed caused by missing deps and mism…
nadeemb53 Oct 28, 2025
69bdb38
Merge branch 'feat/import-rln-prover' of github.com:status-im/status-…
nadeemb53 Oct 28, 2025
07ed097
fix: test flakiness for rln prover test
nadeemb53 Oct 28, 2025
355fddf
chore: panic state change from aport to unwind
nadeemb53 Oct 28, 2025
4cbae65
feat: publish to docker registry and access images from there
nadeemb53 Oct 29, 2025
3c9e564
Run rln prover unit tests with verbose flag
sydhds Oct 29, 2025
ec52733
Temp disable optim
sydhds Oct 29, 2025
9d6484c
RUST_BACKTRACE set to full
sydhds Oct 29, 2025
1c1b742
fix: graph.bin fix, race condition turning test flaky fixed, nodejs v…
nadeemb53 Oct 29, 2025
29ac281
fix: rust code formating
nadeemb53 Oct 29, 2025
718bed6
fix: rust code formating
nadeemb53 Oct 29, 2025
eef4aaa
fix: update graph.bin to rln 0.9.0 compatible version and mark as binary
nadeemb53 Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,7 @@ prover/prover-assets/**/**/**/*.bin binary
prover/prover-assets/**/**/**/**/*.bin binary
prover/prover-assets/kzgsrs/* binary

rln-prover/rln_proof/resources/*.bin binary

*.woff2 binary

2 changes: 1 addition & 1 deletion .github/actions/setup-nodejs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ inputs:
node-version:
description: 'The version of node to use'
required: true
default: '20.17.0'
default: '22.x'
pnpm-version:
description: 'The version of pnpm to use'
required: true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/coordinator-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ on:
workflow_call:
inputs:
commit_tag:
required: true
required: false
type: string
default: 'local'
secrets:
DOCKERHUB_USERNAME:
required: false
Expand Down
50 changes: 6 additions & 44 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,13 @@ jobs:
name: Filter commit changes
outputs:
changed-file-count: ${{ steps.filter.outputs.all_count }}
coordinator: ${{ steps.filter.outputs.coordinator }}
staterecovery: ${{ steps.filter.outputs.staterecovery }}
postman: ${{ steps.filter.outputs.postman }}
prover: ${{ steps.filter.outputs.prover }}
transaction-exclusion-api: ${{ steps.filter.outputs.transaction-exclusion-api }}
has-changes-requiring-build: ${{ steps.exclusion-filter.outputs.has-changes-requiring-build }}
contracts-excluding-local-deployment-artifacts: ${{ steps.exclusion-filter.outputs.contracts-excluding-local-deployment-artifacts }}
contracts-excluding-local-deployment-artifacts-count: ${{ steps.exclusion-filter.outputs.contracts-excluding-local-deployment-artifacts_count }}
smart-contracts: ${{ steps.filter.outputs.smart-contracts }}
linea-sequencer-plugin: ${{ steps.filter.outputs.linea-sequencer-plugin }}
rln-prover: ${{ steps.filter.outputs.rln-prover }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -53,42 +50,12 @@ jobs:
filters: |
all:
- '**/**'
coordinator:
- 'coordinator/**'
- 'testdata/**'
- 'buildSrc/**'
- 'jvm-libs/**'
- 'gradle/**'
- 'build.gradle'
- 'gradle.properties'
- 'settings.gradle'
- '.github/workflows/coordinator-*.yml'
- '.github/workflows/main.yml'
- 'config/common/traces-limits-v2.toml'
- 'config/coordinator/**'
- 'e2e/**'
- 'docker/compose-*.yml'
staterecovery:
- 'state-recovery/**'
- 'buildSrc/**'
- 'jvm-libs/**'
- 'gradle/**'
- 'build.gradle'
- 'gradle.properties'
- 'settings.gradle'
- '.github/workflows/staterecovery-*.yml'
- '.github/workflows/main.yml'
postman:
- 'postman/**'
- 'sdk/**'
- 'ts-libs/linea-native-libs/**'
- '.github/workflows/postman-*.yml'
- '.github/workflows/main.yml'
prover:
- 'prover/**'
- '.github/workflows/prover-*.yml'
- '.github/workflows/main.yml'
- 'constraints'
transaction-exclusion-api:
- 'transaction-exclusion-api/**'
- 'jvm-libs/generic/extensions/futures/**'
Expand All @@ -106,15 +73,13 @@ jobs:
- 'build.gradle'
- 'gradle.properties'
- 'settings.gradle'
smart-contracts:
- 'contracts/**'
- 'testdata/**'
- 'prover/**'
- '.github/workflows/main.yml'
- '.github/workflows/run-smc-tests.yml'
linea-sequencer-plugin:
- 'besu-plugins/linea-sequencer/**'
- '.github/workflows/linea-sequencer-plugin-testing.yml'
rln-prover:
- 'rln-prover/**'
- '.github/workflows/main.yml'
- '.githb/workflows/rln-prover-tests.yml'

- name: Filter out commit changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2
Expand All @@ -140,13 +105,10 @@ jobs:
if: ${{ needs.filter-commit-changes.outputs.has-changes-requiring-build == 'true' }}
uses: ./.github/workflows/testing.yml
with:
coordinator_changed: ${{ needs.filter-commit-changes.outputs.coordinator || 'false' }}
linea_sequencer_changed: ${{ needs.filter-commit-changes.outputs.linea-sequencer-plugin || 'false' }}
postman_changed: ${{ needs.filter-commit-changes.outputs.postman || 'false' }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover || 'false' }}
smart_contracts_changed: ${{ needs.filter-commit-changes.outputs.smart-contracts || 'false' }}
staterecovery_changed: ${{ needs.filter-commit-changes.outputs.staterecovery || 'false' }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api || 'false' }}
rln_prover_changed: ${{ needs.filter-commit-changes.outputs.rln-prover || 'false' }}
secrets: inherit

# Always complete successfully even if no tests run
Expand Down
91 changes: 91 additions & 0 deletions .github/workflows/rln-prover-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: RLN prover tests

permissions:
contents: read
actions: read

on:
workflow_call:

env:
PROTOC_VERSION: "3.25.3"
RUST_LOG: "debug"
RUST_BACKTRACE: "full"

jobs:
lint:
runs-on: ubuntu-latest
name: Run RLN prover tests
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Install protoc
uses: taiki-e/install-action@v2
with:
tool: protoc@${{ env.PROTOC_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: "stable"
workspaces: "rln-prover"
- name: Check formatting
if: success() || failure()
working-directory: rln-prover
run: cargo fmt --all -- --check
- name: Check clippy
if: success() || failure()
working-directory: rln-prover
run: cargo clippy --all-targets --release -- -D warnings

test:
runs-on: ubuntu-latest
timeout-minutes: 60
name: Test
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install protoc
uses: taiki-e/install-action@v2
with:
tool: protoc@${{ env.PROTOC_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: "stable"
workspaces: "rln-prover"
- name: Install foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Test
working-directory: rln-prover
run: cargo test -v --release -- --nocapture

unused-deps:
needs: [lint, test]
runs-on: ubuntu-latest
timeout-minutes: 60
name: Unused Dependencies
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install protoc
uses: taiki-e/install-action@v2
with:
tool: protoc@${{ env.PROTOC_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: "nightly"
workspaces: "rln-prover"
- name: Install cargo-udeps
uses: taiki-e/install-action@v2
with:
tool: cargo-udeps
- name: Check unused dependencies
working-directory: rln-prover
run: cargo +nightly udeps --all-targets --all-features

3 changes: 2 additions & 1 deletion .github/workflows/run-smc-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ on:
workflow_call:
inputs:
commit_tag:
required: true
required: false
type: string
default: 'local'

env:
GOPROXY: "https://proxy.golang.org"
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/staterecovery-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ on:
workflow_call:
inputs:
commit_tag:
required: true
required: false
type: string
default: 'local'
secrets:
DOCKERHUB_USERNAME:
required: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/status-network-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
uses: "actions/setup-node@v3"
with:
cache: "pnpm"
node-version: "lts/*"
node-version: "22.x"

- name: "Install the Node.js dependencies"
run: "pnpm install"
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
uses: "actions/setup-node@v3"
with:
cache: "pnpm"
node-version: "lts/*"
node-version: "22.x"

- name: "Install the Node.js dependencies"
run: "pnpm install"
Expand Down
40 changes: 8 additions & 32 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,41 +7,22 @@ permissions:
on:
workflow_call:
inputs:
coordinator_changed:
required: true
type: string
staterecovery_changed:
required: true
type: string
postman_changed:
required: true
type: string
prover_changed:
required: true
type: string
transaction_exclusion_api_changed:
required: true
type: string
smart_contracts_changed:
linea_sequencer_changed:
required: true
type: string
linea_sequencer_changed:
rln_prover_changed:
required: true
type: string

jobs:
# Cache for pulling Docker images is disabled as we empirically found that this
# (retrieving cache and loading Docker images) actually increased test time-to-completion
coordinator:
uses: ./.github/workflows/coordinator-testing.yml
if: ${{ inputs.coordinator_changed == 'true' }}
secrets: inherit

prover:
uses: ./.github/workflows/prover-testing.yml
if: ${{ inputs.prover_changed == 'true' }}
secrets: inherit

postman:
uses: ./.github/workflows/postman-testing.yml
if: ${{ inputs.postman_changed == 'true' }}
Expand All @@ -52,25 +33,20 @@ jobs:
if: ${{ inputs.transaction_exclusion_api_changed == 'true' }}
secrets: inherit

staterecovery:
uses: ./.github/workflows/staterecovery-testing.yml
if: ${{ inputs.staterecovery_changed == 'true' }}
secrets: inherit

smart-contracts:
uses: ./.github/workflows/run-smc-tests.yml
if: ${{ inputs.smart_contracts_changed == 'true' }}
secrets: inherit

linea-sequencer:
uses: ./.github/workflows/linea-sequencer-plugin-testing.yml
if: ${{ inputs.linea_sequencer_changed == 'true' }}
secrets: inherit

rln-prover:
uses: ./.github/workflows/rln-prover-tests.yml
if: ${{ inputs.rln_prover_changed == 'true' }}
secrets: inherit

# If all jobs are skipped, the workflow will still succeed.
always_succeed:
runs-on: ubuntu-latest
if: ${{ inputs.coordinator_changed == 'false' && inputs.prover_changed == 'false' && inputs.postman_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' }}
if: ${{ inputs.postman_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' && inputs.linea_sequencer_changed == 'false' && inputs.rln_prover_changed == 'false' }}
steps:
- name: Ensure Workflow Success
run: echo "All jobs were skipped, but workflow succeeds."
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -145,4 +145,7 @@ __pycache__/
!prover/**/verifying_key.bin
!/sdk/src/lib/compressor/bin

custom-besu-package
custom-besu-package
lib/forge-std
lib/openzeppelin-contracts
lib/openzeppelin-contracts-upgradeable
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@ clean-testnet-folders:
clean-environment:
docker compose -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery kill -s 9 || true;
docker compose -f docker/compose-tracing-v2-ci-extension.yml -f docker/compose-tracing-v2-staterecovery-extension.yml --profile l1 --profile l2 --profile debug --profile staterecovery down || true;
# Ensure RLN stack containers are stopped as well
docker rm -f rln-prover karma-service sequencer || true;
make clean-local-folders;
docker volume rm linea-local-dev linea-logs || true; # ignore failure if volumes do not exist already
# Remove both legacy and RLN stack volumes (ignore failures if they don't exist)
docker volume rm linea-local-dev linea-logs docker_local-dev docker_logs docker_rln-data || true; # ignore failure if volumes do not exist already
docker system prune -f || true;

start-env: COMPOSE_PROFILES:=l1,l2
Expand Down
Loading
Loading