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