github.com/smartcontractkit/chainlink-testing-framework/libs@v0.0.0-20240227141906-ec710b4eb1a3/charts/geth-prysm/README.md (about)

     1  # Deployment initalisation flow
     2  1. Generate eth2 genesis
     3  2. Generate eth1 genesis
     4  3. Start Geth
     5  4. Wait for Geth to start
     6  5. Start Prysm beacon chain
     7  6. Start Prysm validator
     8  7. Wait for first block to be produced (that's when `chain-ready` pod becomes ready)
     9  
    10  # Default ports
    11  ## Geth
    12  * `8544` - HTTP RPC
    13  * `8545` - WS RPC
    14  * `8551` - Execution RPC (used by consensus clients)
    15  * `30303` - P2P
    16  
    17  ## Prysm
    18  * `3500` - HTTP Query RPC
    19  * `4000` - HTTP RPC (used by validators)
    20  * `8080` - HTTP Metrics (useful endpoint is `/healtz`)
    21  
    22  ## Validator
    23  None
    24  
    25  # Configuration options
    26  Description of only some selected, important options:
    27  ``` yaml
    28  prysm: 
    29    shared: 
    30      # fee recipient for block validation
    31      feeRecipent: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
    32      # how many validators should the network have
    33      validators: 8
    34      # how many seconds should initContainers or beacon chain and validator wait for Geth to start
    35      gethInitTimeoutSeconds: 600 
    36    genesis:
    37      values:
    38        # how many seconds should each slot last for validators to submit attestations
    39        secondsPerSlot: 12
    40        # how many slots should each epoch have (lower => shorter epoch => faster finality)
    41        slotsPerEpoch: 4
    42        # how many seconds in the future should the genesis time be set (this has to be after beacon chain starts )
    43        delaySeconds: 20        
    44  storage:
    45    # storage class to use for persistent volume that will be used to share data betwen containers
    46    class: hostpath
    47    # size of persistent volume
    48    size: 2Gi
    49  ```
    50  
    51  # Usage
    52  1. Connect with kubectl to the cluster you want to deploy to
    53  2. Set the context/namespace you want to use
    54  3. Run `./reinstall-eth2.sh`
    55  
    56  That script will use `Helm` to stop any existing deployment, remove PV and PVC, run lint, prepare a package and install a it.
    57  
    58  Then you should wait for `chain-ready` container to become ready, as that will mean that chain started to produce blocks. You can check it's logs to see current latest unfinalized block.
    59  
    60  # Limitations
    61  * No support for restarting of geth app (it will try to initialize the chain from scratch every time and that will fail, becuase it will try to generate genesis.json based on previous chain state)
    62  * Untested scalability
    63  * I wasn't able to add a working readiness/liveliness probe for beacon chain