From 54b719ad6432b6509e7541e584d775567be6e9ef Mon Sep 17 00:00:00 2001 From: Afri <58883403+q9f@users.noreply.github.com> Date: Wed, 4 Oct 2023 10:19:38 +0200 Subject: [PATCH] docs: change status to launched (#80) --- README.md | 85 +++++----------- SETUP.md | 298 ------------------------------------------------------ 2 files changed, 25 insertions(+), 358 deletions(-) delete mode 100644 SETUP.md diff --git a/README.md b/README.md index 2661f8f..218cb9d 100644 --- a/README.md +++ b/README.md @@ -5,78 +5,43 @@ Meet `--holesky`, the first long-standing, merged-from-genesis, public Ethereum testnet. Holešky will replace Goerli as a staking, infrastructure and protocol-developer testnet in 2023. For testing decentralized applications, smart contracts, and other EVM functionality, please use Sepolia! -### Metadata +* Homepage: [holesky.ethpandaops.io](https://holesky.ethpandaops.io) +* Staking Launchpad: [holesky.launchpad.ethereum.org](https://holesky.launchpad.ethereum.org) -This is _work in progress_. The final config will be shared prior to launch date. +### Metadata -* Status: _Planned_ ([#3](https://github.com/eth-clients/holesky/issues/3)) +* Status: launched (Sep/28, 2023) * Flag: `--holesky` * Flavor: Permissionless (Proof-of-Stake), _to replace Goerli_ * Launch Date: **Sept/28, 2023, 12:00 UTC** * Linux Epoch time: 1695902400 * LTS: Dec/2027, EOL: Dec/2028 -* Execution Version: Cancun _(TBD)_ -* Consensus Version: Deneb _(TBD)_ +* Execution Version: London +* Consensus Version: Bellatrix * Merge: At Genesis (`0`) -* Shapella Epoch: `256` - * Epoch time: `1696000704` (**Sept/29, 2023, 15:18:24 UTC**) +* Shapella + * Shanghai time: `1696000704` (**Sept/29, 2023, 15:18:24 UTC**) + * Capella epoch: `256` +* Dencun + * Cancun time: _TBD_ + * Deneb epoch: _TBD_ * Network ID: `17000` * Chain ID: `17000` -* Genesis block on EL: -```json - { - "baseFeePerGas": "0x3b9aca00", - "difficulty": "0x1", - "extraData": "0x", - "gasLimit": "0x17d7840", - "gasUsed": "0x0", - "hash": "0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "miner": "0x0000000000000000000000000000000000000000", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000001234", - "number": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": "0x202", - "stateRoot": "0x69d8c9d72f6fa4ad42d4702b433707212f90db395eb54dc20bc85de253788783", - "timestamp": "0x65156994", - "totalDifficulty": "0x1", - "transactions": [], - "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "uncles": [] - } -``` -* EVM Version: London - * Homestead: 0 (block number) - * Byzantium: 0 (block number) - * Constantinople: 0 (block number) - * Petersfork: 0 (block number) - * Istanbul: 0 (block number) - * Berlin: 0 (block number) - * MuirGlacier: 0 (block number) - * London: 0 (block number) - * Shanghai: 1696000704 (unix time) - * Cancun: _(TBD)_ -* Bootnodes Execution layer: - * `enode://ac906289e4b7f12df423d654c5a962b6ebe5b3a74cc9e06292a85221f9a64a6f1cfdd6b714ed6dacef51578f92b34c60ee91e9ede9c7f8fadc4d347326d95e2b@146.190.13.128:30303` - * `enode://a3435a0155a3e837c02f5e7f5662a2f1fbc25b48e4dc232016e1c51b544cb5b4510ef633ea3278c0e970fa8ad8141e2d4d0f9f95456c537ff05fdf9b31c15072@178.128.136.233:30303` -* Bootnodes Consensus layer: - * // EF - * `enr:-Ku4QFo-9q73SspYI8cac_4kTX7yF800VXqJW4Lj3HkIkb5CMqFLxciNHePmMt4XdJzHvhrCC5ADI4D_GkAsxGJRLnQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAhnTT-AQFwAP__________gmlkgnY0gmlwhLKAiOmJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyk` - * `enr:-Ku4QPG7F72mbKx3gEQEx07wpYYusGDh-ni6SNkLvOS-hhN-BxIggN7tKlmalb0L5JPoAfqD-akTZ-gX06hFeBEz4WoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAhnTT-AQFwAP__________gmlkgnY0gmlwhJK-DYCJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyk` - * `enr:-LK4QPxe-mDiSOtEB_Y82ozvxn9aQM07Ui8A-vQHNgYGMMthfsfOabaaTHhhJHFCBQQVRjBww_A5bM1rf8MlkJU_l68Eh2F0dG5ldHOIAADAAAAAAACEZXRoMpBpt9l0BAFwAAABAAAAAAAAgmlkgnY0gmlwhLKAiOmJc2VjcDI1NmsxoQJu6T9pclPObAzEVQ53DpVQqjadmVxdTLL-J3h9NFoCeIN0Y3CCIyiDdWRwgiMo` - * `enr:-Ly4QGbOw4xNel5EhmDsJJ-QhC9XycWtsetnWoZ0uRy381GHdHsNHJiCwDTOkb3S1Ade0SFQkWJX_pgb3g8Jfh93rvMBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpBpt9l0BAFwAAABAAAAAAAAgmlkgnY0gmlwhJK-DYCJc2VjcDI1NmsxoQOxKv9sv3zKF8GDewgFGGHKP5HCZZpPpTrwl9eXKAWGxIhzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA` - * // TEKU - * `enr:-LS4QG0uV4qvcpJ-HFDJRGBmnlD3TJo7yc4jwK8iP7iKaTlfQ5kZvIDspLMJhk7j9KapuL9yyHaZmwTEZqr10k9XumyCEcmHYXR0bmV0c4gAAAAABgAAAIRldGgykGm32XQEAXAAAAEAAAAAAACCaWSCdjSCaXCErK4j-YlzZWNwMjU2azGhAgfWRBEJlb7gAhXIB5ePmjj2b8io0UpEenq1Kl9cxStJg3RjcIIjKIN1ZHCCIyg` - * // Sigma Prime - * `enr:-Le4QLoE1wFHSlGcm48a9ZESb_MRLqPPu6G0vHqu4MaUcQNDHS69tsy-zkN0K6pglyzX8m24mkb-LtBcbjAYdP1uxm4BhGV0aDKQabfZdAQBcAAAAQAAAAAAAIJpZIJ2NIJpcIQ5gR6Wg2lwNpAgAUHQBwEQAAAAAAAAADR-iXNlY3AyNTZrMaEDPMSNdcL92uNIyCsS177Z6KTXlbZakQqxv3aQcWawNXeDdWRwgiMohHVkcDaCI4I` +* Genesis hash on EL: `0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4` +* State root on EL: `0x69d8c9d72f6fa4ad42d4702b433707212f90db395eb54dc20bc85de253788783` +* Block root on CL: `0xab09edd9380f8451c3ff5c809821174a36dce606fea8b5ea35ea936915dbf889` +* State root on CL: `0x0ea3f6f9515823b59c863454675fefcd1d8b4f2dbe454db166206a41fda060a0` * Deposit contract address: `0x4242424242424242424242424242424242424242` ### Resources -* Block Explorer (EL+CL) [https://holesky.beaconcha.in/](https://holesky.beaconcha.in/) -* Ethstats: [https://ethstats.holesky.ethpandaops.io](https://ethstats.holesky.ethpandaops.io) -* Homepage: [https://holesky.ethpandaops.io](https://holesky.ethpandaops.io) + +* Homepage: [holesky.ethpandaops.io](https://holesky.ethpandaops.io) +* Staking Launchpad: [holesky.launchpad.ethereum.org](https://holesky.launchpad.ethereum.org) +* Block Explorers + * [holesky.etherscan.io](https://holesky.etherscan.io/) + * [holesky.beaconcha.in](https://holesky.beaconcha.in/) + * [dora-holesky.pk910.de](https://dora-holesky.pk910.de/) +* Ethstats: [ethstats.holesky.ethpandaops.io](https://ethstats.holesky.ethpandaops.io) +* Faucet: [holesky-faucet.pk910.de](https://holesky-faucet.pk910.de/) * Latest Proposal: [Ethereum Magicians - Predictable Ethereum Testnet Lifecycle](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575) * Some Context: [Ethereum Magicians - Paths out of the Goerli supply mess](https://ethereum-magicians.org/t/testnet-workgroup-paths-out-of-the-goerli-supply-mess/11453) diff --git a/SETUP.md b/SETUP.md deleted file mode 100644 index 589d496..0000000 --- a/SETUP.md +++ /dev/null @@ -1,298 +0,0 @@ -# How to setup a post-merge Testnet - -Field notes from setting up a public Ethereum testnet that is _"merged from genesis."_ It has been compiled from many bits and pieces on the web with main pioneering work done by Protolambda and Parithosh. - -### Execution-Layer Configuration - -Creating a new genesis is as simple as running `geth dumpgenesis` and subsequently modifying fields as needed for the testnet. Main cornerstones: - -- set all protocol upgrades to block `0` -- set merge block and TTD to `0` and set the TTD passed flag to `true` -- remove the `ethash` parameter altogether -- remove the existing `alloc` as well and create a custom allocation as per our needs -- adjust the genesis parameters as we wish (mainly `timestamp`, `extraData`, `nonce`) - - current unix time: `date +%s` - - note that all fields needs to be hexadecimal -- lastly, set a new `chainID` for replay protection - -Now all that is left is the deposit contract. Since we _merge from genesis_, this has to be part of the genesis state. - -- take the vanilla deposit contract from the consensus specs: [deposit_contract.sol](https://github.com/ethereum/consensus-specs/blob/dev/solidity_deposit_contract/deposit_contract.sol) -- get the solidity compiler version 0.6.11 and get the binary of the runtime part -- create an empty deposit tree (see [proto's notes](https://github.com/protolambda/merge-genesis-tools/blob/master/README.md#deposit-contract) below) - -> - To embed the run-time code of the contract, not the deployment code -> - Use: `solc --bin-runtime` -> - Initialize the initial storage, normally initialized by the contract constructor -> - Reverse engineered from contract storage debugger (remix IDE) -> - Verified with `compute_initial_storage` -> - Matching the storage layout: `solc --storage-layout` -> - We embed an empty deposit tree, there are no missing deposit events. -> -> _[...]_ -> -> To generate the storage layout data: -> ``` -> solc --optimize --optimize-runs 5000000 --metadata-literal --bin-runtime --storage-layout deposit_contract.sol -> ``` -> -> To compute the storage key-value pairs: -> ``` -> (venv) python compute_initial_storage.py -> ``` - -Finally, add the binary and storage tuples to the alloc of the genesis file. Once set, initialize as many execution clients as desired. - -```shell -geth init \ - --datadir "/tmp/holesovice/execution/0" \ - /home/user/.opt/eth-clients/holesovice/execution/genesis.json - -geth init \ - --datadir "/tmp/holesovice/execution/1" \ - /home/user/.opt/eth-clients/holesovice/execution/genesis.json -``` - -Run an execution node and get the genesis hash from it, e.g., attach to it and query `eth.getBlockByNumber(0)`. - -```shell -geth \ - --networkid 11166111 \ - --datadir "/tmp/holesovice/execution/0" -``` - -Note down the genesis hash for the consensus layer later and also get the node's enode to connect other execution-layer clients if desired. - -```shell -geth \ - --networkid 11166111 \ - --datadir "/tmp/holesovice/execution/1" \ - --authrpc.port 8651 \ - --port 31303 \ - --bootnodes "enode://d5704c15a444908cacdea75c25139530024c248b05815e7e260c415bea2381465fa7cd4f78d778700e37a2be9fe480642d308e74a704bcf146bf7cb53732ab83@127.0.0.1:30303" -``` - -Persist the bootnodes in a text file for later use if necessary, e.g., `bootnodes.txt`. - -### Consensus-Layer Configuration - -To create a new consensus-layer configuration, simply get the latest [mainnet.yaml](https://github.com/ethereum/consensus-specs/blob/dev/configs/mainnet.yaml) config from the consensus specs. - -- come up with a unique `CONFIG_NAME`, i.e., the name of our testnet -- set TTD to `0` and the terminal hash to the genesis hash we previously extracted -- set the minimum genesis time to the genesis time of the execution layer (or later) -- set the fork versions to something custom to not conflict with mainnet, e.g., `0x00166111` for genesis, `0x01166111` for altair, and so on -- set the deposit chain and network ID to the previously created execution-layer network and match the deposit contract address to the one in the genesis - -In addition to the `config.yaml` for the consensus layer, we also create auxiliary files for the deposit contract: - -- `deploy_block.txt` containing the block number `0` -- `deposit_contract_block.txt` containing the execution genesis hash -- `deposit_contract.txt` containing the address from the genesis alloc - -Lastly, before generating the genesis, we need to create validators that will kick off the chain right from the start. - -- generate mnemonics (BIP0039) for everyone who is going to run genesis validators - - store them in a `mnemonics.yaml` - - see these notes for formatting: [protolambda/eth2-testnet-genesis#mnemonics](https://github.com/protolambda/eth2-testnet-genesis#mnemonics) -- lastly, use the [eth2 testnet genesis](https://github.com/protolambda/eth2-testnet-genesis) tool to generate the `genesis.ssz` state for a `merge` configuration - -```shell -eth2-testnet-genesis merge \ - --config "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --eth1-config "/home/user/.opt/eth-clients/holesovice/execution/genesis.json" \ - --mnemonics "/home/user/.opt/eth-clients/holesovice/consensus/mnemonic.yaml" \ - --state-output "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --tranches-dir "/home/user/.opt/eth-clients/holesovice/consensus/tranches" -``` - -The genesis state will contain the initial genesis validators and there is no need to conduct actual deposits. To add more validators later, simply use the deposit contract at any time. - -That's all for the configuration. We can run beacon nodes now and allow them to network before genesis. Note, that the network needs at least two peered beacon nodes, otherwise the nodes will act as if they are offline and refuse to author blocks. - -```shell -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8551" \ - --jwt-secret "/tmp/holesovice/execution/0/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/0" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 -``` - -Note, we are setting the ENR IP to whatever we need it _(here: local)_ so that we can use the ENR as initial bootnode record. Get it from the identity endpoint: - -```shell -curl http://localhost:9596/eth/v1/node/identity -``` - -All ENRs can be persisted in a file such as `bootnodes.txt` that we can pass to the beacon-chain clients later to bootstrap the networking. - -```shell -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8551" \ - --jwt-secret "/tmp/holesovice/execution/0/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/1" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 \ - --rest.port 9696 \ - --port 9100 \ - --network.connectToDiscv5Bootnodes true \ - --bootnodes "enr:-Ku4QFQtoQ8Os6ePsGnaVhQHVOJpG1AdD8lI5eVin-LVXhDIY5GtGfZhJfWiN9sx59y9rt5kKEdA3hlVd5NcbVr97gkFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL8-KCPND2kixBj-wDqGG33ySHYJflbz7XkGL5JsVxJnYN0Y3CCIyg,enr:-Ku4QNOQz2TatOuWhuFvuzfXpDsPrv4An-P5P60SwG3nR-pWdsj2G0Is7M5lJ0cqfGFrg0QLEb1Bj5l3u6gvo4PmFDEFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPZxnhiMNp6Kwt0xg29s8bcCYsWheIyQ3GKamZ4lnipLIN0Y3CCI4w,enr:-Ku4QHFo3nbJPxWY0je6z34UPfma9xqP9os0ML3GIgUCnsyhRGC84B0BvHOOuxEVBEzKPAoCv7hbMkGGkbCPqMhMclUFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQP9MEV7lchABvza09gZKSuSb1pEv99SlFjrHSQujh7lb4N0Y3CCI_A,enr:-Ku4QHJ3K_HhJWuLid32jpxwZipds0-YgtX8IW43BvJqUQutJ6il5EIQY71qS9T_vHNst5Y_Bm0OOdh84xnxVF4hsLoFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMmaG17UMfVGG8NAuAmMzFd88xWstoO_gHMOO5RnaWNi4N0Y3CCJFQ,enr:-Ku4QD_lKVwo52Y9JOrZibU9I6qh-QOiA213HAELfLHfnB4reWQhZq0YVS1rsf1GU7afqjD7UvKfWQTi6LsdjGNkMSwFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQJsajVPzBxl8CS8W2Jj7CKpxojG5t85yrQ32WuMD1h4eoN0Y3CCJLg" -``` - -We do this for as many beacon nodes as we want. Note that we need to enable discv5 bootnodes, otherwise our clients will not peer. - -### Launch the Network - -We have both execution-layer and consensus-layer clients running already. We can easily make sure they are running correctly by reading the logs. If they fail to authenticate or connect, there will be errors. - -However, to actually kick off the network, we need to ensure the validators are loaded and connected prior to genesis. If we fail to generate a chain within the first 32 slots the clients will remain forever in a _syncing_ state, potentially to prevent long-range attacks. - -- use the [deposit CLI](https://github.com/ethereum/staking-deposit-cli) to generate validator keypairs -- run `./deposit existing-mnemonic` and follow the instructions - -This generates deposit data and the actual keypairs. The deposit data can be discarded as we don't need actual deposits. The keys can be imported to our validator client. Make sure to also provide a password. - -```shell -lodestar validator \ - --dataDir "/tmp/holesovice/consensus/0" \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --graffiti "YOLO HOLESOVICE LODESTAR" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --importKeystores "/home/user/.opt/eth-clients/holesovice/consensus/validator_keys" \ - --importKeystoresPassword "/home/user/.opt/eth-clients/holesovice/consensus/validator_keys/password.txt" -``` - -Once the keys and passwords are imported, the validator client will wait to take on its duties. Once the minimum genesis time (and genesis delay) are passed, it will propose blocks and attestations. - -That's our new testnet. - -# Resources - -Credit goes to Gajinder, Parithosh, and Protolamda for the valuable pointers, tools, and documentation. - -- [github/protolambda/merge-genesis-tools](https://github.com/protolambda/merge-genesis-tools) -- [github/ethereum/consensus-specs](https://github.com/ethereum/consensus-specs) -- [notes/protolambda/merge-devnet-setup-guide](https://notes.ethereum.org/@protolambda/merge-devnet-setup-guide) -- [github/ethereumjs/consensus-deployment-ansible](https://github.com/ethereumjs/consensus-deployment-ansible) -- [github/protolambda/eth2-testnet-genesis](https://github.com/protolambda/eth2-testnet-genesis) -- [github/ethereum/staking-deposit-cli](https://github.com/ethereum/staking-deposit-cli) -- [github/ChainSafe/lodestar](https://github.com/ChainSafe/lodestar) - -# Temporary Local Testnet Notes - -```shell -geth init \ - --datadir "/tmp/holesovice/execution/0" \ - /home/user/.opt/eth-clients/holesovice/execution/genesis.json - -geth init \ - --datadir "/tmp/holesovice/execution/1" \ - /home/user/.opt/eth-clients/holesovice/execution/genesis.json - -geth \ - --networkid 11166111 \ - --datadir "/tmp/holesovice/execution/0" \ - --bootnodes "enode://d5704c15a444908cacdea75c25139530024c248b05815e7e260c415bea2381465fa7cd4f78d778700e37a2be9fe480642d308e74a704bcf146bf7cb53732ab83@127.0.0.1:30303,enode://eb271cb12a0f227265e79322fb3e8fc9e87e5401d1781f328b2002584dcfc200686f76644c614f629fcea10ca81b06c5ceb357da5aadd62934e8c26fc39944b3@127.0.0.1:31303" - -geth attach "/tmp/holesovice/execution/0/geth.ipc" - -eth.getBlockByNumber(0) - -geth \ - --networkid 11166111 \ - --datadir "/tmp/holesovice/execution/1" \ - --authrpc.port 8651 \ - --port 31303 \ - --bootnodes "enode://d5704c15a444908cacdea75c25139530024c248b05815e7e260c415bea2381465fa7cd4f78d778700e37a2be9fe480642d308e74a704bcf146bf7cb53732ab83@127.0.0.1:30303,enode://eb271cb12a0f227265e79322fb3e8fc9e87e5401d1781f328b2002584dcfc200686f76644c614f629fcea10ca81b06c5ceb357da5aadd62934e8c26fc39944b3@127.0.0.1:31303" - -eth2-testnet-genesis merge \ - --config "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --eth1-config "/home/user/.opt/eth-clients/holesovice/execution/genesis.json" \ - --mnemonics "/home/user/.opt/eth-clients/holesovice/consensus/mnemonic.yaml" \ - --state-output "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --tranches-dir "/home/user/.opt/eth-clients/holesovice/consensus/tranches" - -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8551" \ - --jwt-secret "/tmp/holesovice/execution/0/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/0" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 - -lodestar validator \ - --dataDir "/tmp/holesovice/consensus/0" \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --graffiti "YOLO HOLESOVICE LODESTAR" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --importKeystores "/home/user/.opt/eth-clients/holesovice/consensus/validator_keys" \ - --importKeystoresPassword "/home/user/.opt/eth-clients/holesovice/consensus/validator_keys/password.txt" - -curl http://localhost:9596/eth/v1/node/identity - -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8551" \ - --jwt-secret "/tmp/holesovice/execution/0/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/1" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 \ - --rest.port 9696 \ - --port 9100 \ - --network.connectToDiscv5Bootnodes true \ - --bootnodes "enr:-Ku4QFQtoQ8Os6ePsGnaVhQHVOJpG1AdD8lI5eVin-LVXhDIY5GtGfZhJfWiN9sx59y9rt5kKEdA3hlVd5NcbVr97gkFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL8-KCPND2kixBj-wDqGG33ySHYJflbz7XkGL5JsVxJnYN0Y3CCIyg,enr:-Ku4QNOQz2TatOuWhuFvuzfXpDsPrv4An-P5P60SwG3nR-pWdsj2G0Is7M5lJ0cqfGFrg0QLEb1Bj5l3u6gvo4PmFDEFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPZxnhiMNp6Kwt0xg29s8bcCYsWheIyQ3GKamZ4lnipLIN0Y3CCI4w,enr:-Ku4QHFo3nbJPxWY0je6z34UPfma9xqP9os0ML3GIgUCnsyhRGC84B0BvHOOuxEVBEzKPAoCv7hbMkGGkbCPqMhMclUFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQP9MEV7lchABvza09gZKSuSb1pEv99SlFjrHSQujh7lb4N0Y3CCI_A,enr:-Ku4QHJ3K_HhJWuLid32jpxwZipds0-YgtX8IW43BvJqUQutJ6il5EIQY71qS9T_vHNst5Y_Bm0OOdh84xnxVF4hsLoFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMmaG17UMfVGG8NAuAmMzFd88xWstoO_gHMOO5RnaWNi4N0Y3CCJFQ,enr:-Ku4QD_lKVwo52Y9JOrZibU9I6qh-QOiA213HAELfLHfnB4reWQhZq0YVS1rsf1GU7afqjD7UvKfWQTi6LsdjGNkMSwFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQJsajVPzBxl8CS8W2Jj7CKpxojG5t85yrQ32WuMD1h4eoN0Y3CCJLg" - -curl http://localhost:9696/eth/v1/node/identity - -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8651" \ - --jwt-secret "/tmp/holesovice/execution/1/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/2" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 \ - --rest.port 9796 \ - --port 9200 \ - --network.connectToDiscv5Bootnodes true \ - --bootnodes "enr:-Ku4QFQtoQ8Os6ePsGnaVhQHVOJpG1AdD8lI5eVin-LVXhDIY5GtGfZhJfWiN9sx59y9rt5kKEdA3hlVd5NcbVr97gkFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL8-KCPND2kixBj-wDqGG33ySHYJflbz7XkGL5JsVxJnYN0Y3CCIyg,enr:-Ku4QNOQz2TatOuWhuFvuzfXpDsPrv4An-P5P60SwG3nR-pWdsj2G0Is7M5lJ0cqfGFrg0QLEb1Bj5l3u6gvo4PmFDEFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPZxnhiMNp6Kwt0xg29s8bcCYsWheIyQ3GKamZ4lnipLIN0Y3CCI4w,enr:-Ku4QHFo3nbJPxWY0je6z34UPfma9xqP9os0ML3GIgUCnsyhRGC84B0BvHOOuxEVBEzKPAoCv7hbMkGGkbCPqMhMclUFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQP9MEV7lchABvza09gZKSuSb1pEv99SlFjrHSQujh7lb4N0Y3CCI_A,enr:-Ku4QHJ3K_HhJWuLid32jpxwZipds0-YgtX8IW43BvJqUQutJ6il5EIQY71qS9T_vHNst5Y_Bm0OOdh84xnxVF4hsLoFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMmaG17UMfVGG8NAuAmMzFd88xWstoO_gHMOO5RnaWNi4N0Y3CCJFQ,enr:-Ku4QD_lKVwo52Y9JOrZibU9I6qh-QOiA213HAELfLHfnB4reWQhZq0YVS1rsf1GU7afqjD7UvKfWQTi6LsdjGNkMSwFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQJsajVPzBxl8CS8W2Jj7CKpxojG5t85yrQ32WuMD1h4eoN0Y3CCJLg" - -curl http://localhost:9796/eth/v1/node/identity - -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8551" \ - --jwt-secret "/tmp/holesovice/execution/0/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/3" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 \ - --rest.port 9896 \ - --port 9300 \ - --network.connectToDiscv5Bootnodes true \ - --bootnodes "enr:-Ku4QFQtoQ8Os6ePsGnaVhQHVOJpG1AdD8lI5eVin-LVXhDIY5GtGfZhJfWiN9sx59y9rt5kKEdA3hlVd5NcbVr97gkFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL8-KCPND2kixBj-wDqGG33ySHYJflbz7XkGL5JsVxJnYN0Y3CCIyg,enr:-Ku4QNOQz2TatOuWhuFvuzfXpDsPrv4An-P5P60SwG3nR-pWdsj2G0Is7M5lJ0cqfGFrg0QLEb1Bj5l3u6gvo4PmFDEFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPZxnhiMNp6Kwt0xg29s8bcCYsWheIyQ3GKamZ4lnipLIN0Y3CCI4w,enr:-Ku4QHFo3nbJPxWY0je6z34UPfma9xqP9os0ML3GIgUCnsyhRGC84B0BvHOOuxEVBEzKPAoCv7hbMkGGkbCPqMhMclUFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQP9MEV7lchABvza09gZKSuSb1pEv99SlFjrHSQujh7lb4N0Y3CCI_A,enr:-Ku4QHJ3K_HhJWuLid32jpxwZipds0-YgtX8IW43BvJqUQutJ6il5EIQY71qS9T_vHNst5Y_Bm0OOdh84xnxVF4hsLoFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMmaG17UMfVGG8NAuAmMzFd88xWstoO_gHMOO5RnaWNi4N0Y3CCJFQ,enr:-Ku4QD_lKVwo52Y9JOrZibU9I6qh-QOiA213HAELfLHfnB4reWQhZq0YVS1rsf1GU7afqjD7UvKfWQTi6LsdjGNkMSwFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQJsajVPzBxl8CS8W2Jj7CKpxojG5t85yrQ32WuMD1h4eoN0Y3CCJLg" - -curl http://localhost:9896/eth/v1/node/identity - -lodestar beacon \ - --suggestedFeeRecipient "0xCaA29806044A08E533963b2e573C1230A2cd9a2d" \ - --execution.urls "http://127.0.0.1:8651" \ - --jwt-secret "/tmp/holesovice/execution/1/geth/jwtsecret" \ - --dataDir "/tmp/holesovice/consensus/4" \ - --paramsFile "/home/user/.opt/eth-clients/holesovice/consensus/config.yaml" \ - --genesisStateFile "/home/user/.opt/eth-clients/holesovice/consensus/genesis.ssz" \ - --enr.ip 127.0.0.1 \ - --rest.port 9996 \ - --port 9400 \ - --network.connectToDiscv5Bootnodes true \ - --bootnodes "enr:-Ku4QFQtoQ8Os6ePsGnaVhQHVOJpG1AdD8lI5eVin-LVXhDIY5GtGfZhJfWiN9sx59y9rt5kKEdA3hlVd5NcbVr97gkFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL8-KCPND2kixBj-wDqGG33ySHYJflbz7XkGL5JsVxJnYN0Y3CCIyg,enr:-Ku4QNOQz2TatOuWhuFvuzfXpDsPrv4An-P5P60SwG3nR-pWdsj2G0Is7M5lJ0cqfGFrg0QLEb1Bj5l3u6gvo4PmFDEFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPZxnhiMNp6Kwt0xg29s8bcCYsWheIyQ3GKamZ4lnipLIN0Y3CCI4w,enr:-Ku4QHFo3nbJPxWY0je6z34UPfma9xqP9os0ML3GIgUCnsyhRGC84B0BvHOOuxEVBEzKPAoCv7hbMkGGkbCPqMhMclUFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQP9MEV7lchABvza09gZKSuSb1pEv99SlFjrHSQujh7lb4N0Y3CCI_A,enr:-Ku4QHJ3K_HhJWuLid32jpxwZipds0-YgtX8IW43BvJqUQutJ6il5EIQY71qS9T_vHNst5Y_Bm0OOdh84xnxVF4hsLoFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMmaG17UMfVGG8NAuAmMzFd88xWstoO_gHMOO5RnaWNi4N0Y3CCJFQ,enr:-Ku4QD_lKVwo52Y9JOrZibU9I6qh-QOiA213HAELfLHfnB4reWQhZq0YVS1rsf1GU7afqjD7UvKfWQTi6LsdjGNkMSwFh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDfrT8vAhZhEf__________gmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQJsajVPzBxl8CS8W2Jj7CKpxojG5t85yrQ32WuMD1h4eoN0Y3CCJLg" - -curl http://localhost:9996/eth/v1/node/identity -```