Skip to content

Conversation

@james-prysm
Copy link
Contributor

@james-prysm james-prysm commented Nov 13, 2025

What type of PR is this?

Feature

What does this PR do? Why is it needed?

  • introduces a lite supernode mode via the new flag --lite-supernode
  • lite supernode will custody the minimum based on the number of validators running, but will subscribe to 64 subnets to obtain 64 data columns required to reconstruct all blobs

cgc=4, sampling=60
Pro:
Minimize incoming RPC Requests and bandwidth (we serve only RPC request corresponding to the first 4 columns)
We can revert to a full node
Con:
Not so useful for our peers, increase disconnection likelihood
More complex to implement (by a little)

Mode Subscriptions Storage Custody (serving)
lite-supernode 64 subnets 64 columns 8 groups
Full supernode 128 subnets 128 columns 128 groups
Regular node (1 validator) ~8 subnets ~8 columns 8 groups

note: 1 validator = 8 vs 0 validators = 4, kurtosis can't start with 0

kurtosis testing parameters

participants:
# Super-nodes
- el_type: geth
  el_image: ethpandaops/geth:master
  cl_type: prysm
  vc_image: gcr.io/offchainlabs/prysm/validator:latest
  cl_image: gcr.io/offchainlabs/prysm/beacon-chain:latest
  count: 2
  cl_extra_params:
    - --supernode
  vc_extra_params:
    - --verbosity=debug
# Full-nodes
- el_type: geth
  el_image: ethpandaops/geth:master
  cl_type: prysm
  vc_image: gcr.io/offchainlabs/prysm/validator:latest
  cl_image: gcr.io/offchainlabs/prysm/beacon-chain:latest
  count: 2
  validator_count: 1
  cl_extra_params:
    - --lite-supernode
  vc_extra_params:
    - --verbosity=debug

additional_services:
- dora
- spamoor

spamoor_params:
image: ethpandaops/spamoor:master
max_mem: 4000
spammers:
  - scenario: eoatx
    config:
      throughput: 200
  - scenario: blobs
    config:
      throughput: 20

network_params:
fulu_fork_epoch: 0
withdrawal_type: "0x02"
preset: mainnet
# seconds_per_slot: 6

global_log_level: debug

first i checked that the cgc was 8 using

curl -H "Accept: application/json" http://127.0.0.1:32816/eth/v1/node/identity

then i checked that the datacolumns were 64 using

curl -s http://127.0.0.1:32816/eth/v1/debug/beacon/data_column_sidecars/head | jq '.data | length'

also checked that the .sszs files if it contained 64 headers

Which issues(s) does this PR fix?

Fixes #

Other notes for review

Acknowledgements

@james-prysm james-prysm added ux Cosmetic / User Experience related items peer-das fulu labels Nov 14, 2025
@james-prysm
Copy link
Contributor Author

How should this work with backfill?

@james-prysm
Copy link
Contributor Author

Unsure if we want to allow for different cgc vs sampling. need clarification

@james-prysm
Copy link
Contributor Author

this pr is preferred for now #16029

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked fulu peer-das ux Cosmetic / User Experience related items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants