diff --git a/.gitignore b/.gitignore index a6d12b02445b..073b21cf322a 100644 --- a/.gitignore +++ b/.gitignore @@ -48,8 +48,8 @@ docs/pages/**/*-cli.md docs/pages/assets docs/pages/images docs/pages/security.md -docs/pages/lightclient-prover/lightclient.md -docs/pages/lightclient-prover/prover.md +docs/pages/libraries/lightclient-prover/lightclient.md +docs/pages/libraries/lightclient-prover/prover.md docs/pages/api/api-reference.md docs/pages/contribution/getting-started.md ## Docusaurus diff --git a/.wordlist.txt b/.wordlist.txt index 06622ba04b3e..cb67bbd39df7 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -78,6 +78,8 @@ PoS Prysm Quickstart RPC +Reth +Ryzen SHA SSD SSZ diff --git a/README.md b/README.md index 8546a467f404..4abb03554957 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ - :gear: Follow the installation method for [source install](https://chainsafe.github.io/lodestar/getting-started/installation/#build-from-source), [NPM install](https://chainsafe.github.io/lodestar/getting-started/installation/#install-from-npm-not-recommended), or [Docker install](https://chainsafe.github.io/lodestar/getting-started/installation/#docker-installation) to install Lodestar. Or use our [Lodestar Quickstart scripts](https://github.com/ChainSafe/lodestar-quickstart). - :books: Use [Lodestar libraries](https://chainsafe.github.io/lodestar/supporting-libraries/libraries/) in your next Ethereum Typescript project. - :globe_with_meridians: Run a beacon node on [mainnet or a public testnet](https://chainsafe.github.io/lodestar/getting-started/starting-a-node/). -- :computer: Utilize the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- :computer: Utilize the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). - :spiral_notepad: View the Lodestar [CLI commands and options](https://chainsafe.github.io/lodestar/reference/cli/). - :nerd_face: View the [Package and dependency structure](https://chainsafe.github.io/lodestar/contribution/depgraph/). - :memo: Prospective contributors can read the [contributing section](./CONTRIBUTING.md) to understand how we develop and test on Lodestar. diff --git a/docs/pages/contribution/advanced-topics/setting-up-a-testnet.md b/docs/pages/contribution/advanced-topics/setting-up-a-testnet.md index 1d6e38941ea9..09d4735931a8 100644 --- a/docs/pages/contribution/advanced-topics/setting-up-a-testnet.md +++ b/docs/pages/contribution/advanced-topics/setting-up-a-testnet.md @@ -21,10 +21,10 @@ Run a beacon node as a **bootnode**, with 8 validators with the following comman --reset ``` -`--genesisValidators` and `--genesisTime` define the genesis state of the beacon chain. `--dataDir` defines a path where -lodestar should store the beacon state. -`--enr.ip` sets the ENR IP entry for the node (essential for second node to connect via `enr`) and `--enr.udp` exposes the `discv5` discovery service (if you want to connect more than 1 node and enable discovery amongst them via _bootnode_). -Lastly the `--reset` flag ensures the state is cleared on each restart - which is useful when testing locally. +[`--genesisValidators`](../dev-cli.md#--genesisvalidators) and [`--genesisTime`](../dev-cli.md#--genesistime) define the genesis state of the beacon chain. [`--dataDir`](../dev-cli.md#--datadir) defines a path where +Lodestar should store the beacon state. +[`--enr.ip`](../dev-cli.md#--enrip) sets the ENR IP entry for the node (essential for second node to connect via `enr`) and [`--enr.udp`](../dev-cli.md#--enrudp) exposes the Discv5 discovery service (if you want to connect more than 1 node and enable discovery amongst them via _bootnode_). +Lastly the [`--reset`](../dev-cli.md#--reset) flag ensures the state is cleared on each restart - which is useful when testing locally. Once the node has started, make a request to `curl http://localhost:9596/eth/v1/node/identity` and copy the `enr` value. @@ -49,16 +49,16 @@ Start the second node without starting any validators and connect to the first n --reset ``` -By default, lodestar starts as many validators as the number supplied by `--genesisValidators`. In order to not start any validator, this is overridden by -the `--startValidators` option. Passing a value of `0..0` means no validators should be started. +By default, Lodestar starts as many validators as the number supplied by [`--genesisValidators`](../dev-cli.md#--genesisvalidators). In order to not start any validator, this is overridden by +the [`--startValidators`](../dev-cli.md#--startvalidators) option. Passing a value of `0..0` means no validators should be started. -Also, take note that the values of `--genesisValidators` and `--genesisTime` must be the same as the ones passed to the first node in order for the two nodes +Also, take note that the values of [`--genesisValidators`](../dev-cli.md#--genesisvalidators) and [`--genesisTime`](../dev-cli.md#--genesistime) must be the same as the ones passed to the first node in order for the two nodes to have the same beacon chain. -Also `--port` and `--rest.port` are supplied since the default values will already be in use by the first node. +Also [`--port`](../dev-cli.md#--port) and [`--rest.port`](../dev-cli.md#--restport) are supplied since the default values will already be in use by the first node. The `--network.connectToDiscv5Bootnodes` flags needs to be set to true as this is needed to allow connection to boot ENRs on local devnet. -The exact ENR of node to connect to is then supplied via the `--bootnodes` flag. +The exact ENR of node to connect to is then supplied via the [`--bootnodes`](../dev-cli.md#--bootnodes) flag. Once the second node starts, you should see an output similar to the following in either of the terminals: @@ -93,7 +93,7 @@ will give a result similar to the following: ## Post-Merge local testnet -To set up a local testnet with a Post-Merge configuration, you may need to add the following parameters (in addition to the parameters described above) to your `lodestar dev` command: +To set up a local testnet with a Post-Merge configuration, you may need to add the following parameters (in addition to the parameters described above) to your [`lodestar dev`](../dev-cli.md#dev-options) command: - `--params.ALTAIR_FORK_EPOCH 0` - `--params.BELLATRIX_FORK_EPOCH 0` diff --git a/docs/pages/index.md b/docs/pages/index.md index 7948cb9f8b57..6f2faa4b1de4 100644 --- a/docs/pages/index.md +++ b/docs/pages/index.md @@ -10,26 +10,25 @@ title: Home ### Getting started -- Install [binaries](./run/getting-started/installation.md/#binaries), follow the installation method for [source install](./run/getting-started/installation.md/#build-from-source) or [Docker install](./run/getting-started/installation.md/#docker-installation) to install Lodestar. Or use our [Lodestar Quickstart scripts](https://github.com/ChainSafe/lodestar-quickstart). +- Install [binaries](./run/getting-started/installation/#binaries), follow the installation method for [source install](./run/getting-started/installation/#build-from-source) or [Docker install](./run/getting-started/installation/#docker-installation) to install Lodestar. Or use our [Lodestar Quickstart scripts](https://github.com/ChainSafe/lodestar-quickstart). - Use [Lodestar libraries](./supporting-libraries/index.md) in your next Ethereum Typescript project. - Run a beacon node on [mainnet or a public testnet](./run/beacon-management/starting-a-node.md). - Utilize the whole stack by [starting a local testnet](./contribution/advanced-topics/setting-up-a-testnet.md). -- View the Lodestar [CLI commands and options](./run/beacon-management/beacon-cli.md) +- View the Lodestar Beacon [CLI commands and options](./run/beacon-management/beacon-cli.md) - Prospective contributors can read the [contributing section](./contribution/getting-started.md) to understand how we develop and test on Lodestar. -- If you have questions [submit an issue](https://github.com/ChainSafe/lodestar/issues/new) or join us on [Discord](https://discord.gg/yjyvFRP)! +- If you have questions [submit an issue](https://github.com/ChainSafe/lodestar/issues/new/choose) or join us on [Discord](https://discord.gg/yjyvFRP)! - Please note our [security policy](./security.md). -- Sign up to our [mailing list](https://chainsafe.typeform.com/lodestar) for announcements and any critical information about Lodestar. ## Specifications Hardware specifications minimum / recommended, to run the Lodestar client. -| | Minimum | Recommended | -| --------- | -------------------------------- | --------------------------------- | -| Processor | Intel Core i5–760 or AMD FX-8100 | Intel Core i7–4770 or AMD FX-8310 | -| Memory | 4GB RAM | 8GB RAM | -| Storage | 20GB available space SSD | 100GB available space SSD | -| Internet | Broadband connection | Broadband connection | +| | Minimum | Recommended | +| --------- | -------------------------------------- | -------------------------------------- | +| Processor | Intel Core i3–9100 or AMD Ryzen 5 3450 | Intel Core i7–9700 or AMD Ryzen 7 4700 | +| Memory | 16GB RAM | 32GB RAM | +| Storage | 100GB available space SSD | 1TB available space SSD | +| Internet | Broadband connection | Broadband connection | ## About these docs diff --git a/docs/pages/run/beacon-management/data-retention.md b/docs/pages/run/beacon-management/data-retention.md index 57fa5dde0f55..3e6b8a9899a1 100644 --- a/docs/pages/run/beacon-management/data-retention.md +++ b/docs/pages/run/beacon-management/data-retention.md @@ -51,4 +51,4 @@ Configuring your node to store and prune data is key to success. On average you Logs can also become quite large so please check out the section on [log management](../logging-and-metrics/log-management.md) for more information. -There is really only one flag that is needed to manage the data for Lodestar, [`--dataDir`](./beacon-management/beacon-cli#--datadir). Other than that handling log management is really the heart of the data management story. Beacon node data is what it is. Depending on the execution client that is chosen, there may be flags to help with data storage growth but that is outside the scope of this document. +There is really only one flag that is needed to manage the data for Lodestar, [`--dataDir`](./beacon-cli#--datadir). Other than that handling log management is really the heart of the data management story. Beacon node data is what it is. Depending on the execution client that is chosen, there may be flags to help with data storage growth but that is outside the scope of this document. diff --git a/docs/pages/run/beacon-management/starting-a-node.md b/docs/pages/run/beacon-management/starting-a-node.md index 86c03c621c4e..6838e14304d6 100644 --- a/docs/pages/run/beacon-management/starting-a-node.md +++ b/docs/pages/run/beacon-management/starting-a-node.md @@ -39,16 +39,19 @@ When starting up a Lodestar beacon node in any configuration, ensure you add the ### Ensure JWT is configured with your execution node **For Go Ethereum:** -Use the `--authrpc.jwtsecret /data/jwtsecret` flag to configure the secret. Use their documentation [here](https://geth.ethereum.org/docs/interface/merge). +Use the `--authrpc.jwtsecret /path/to/jwtsecret.hex` flag to configure the secret. Use their documentation [here](https://geth.ethereum.org/docs/getting-started#start-geth). **For Nethermind:** -Use the `--JsonRpc.JwtSecretFile /data/jwtsecret` flag to configure the secret. Use their documentation [here](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/running-nethermind-post-merge#jwtsecretfile). +Use the `--JsonRpc.JwtSecretFile /path/to/jwtsecret.hex` flag to configure the secret. Use their documentation [here](https://docs.nethermind.io/get-started/consensus-clients/#configuring-json-rpc-interface). **For Besu:** -Use the `--engine-jwt-secret=` flag to configure the secret. Use their documentation [here](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#engine-jwt-secret). +Use the `--engine-jwt-secret=/path/to/jwtsecret.hex` flag to configure the secret. Use their documentation [here](https://besu.hyperledger.org/public-networks/how-to/use-besu-api/authenticate#2-create-the-jwt). **For Erigon:** -Use the `--authrpc.jwtsecret` flag to configure the secret. Use their documentation [here](https://github.com/ledgerwatch/erigon?tab=readme-ov-file#beacon-chain-consensus-layer). +Use the `--authrpc.jwtsecret /path/to/jwtsecret.hex` flag to configure the secret. Use their documentation [here](https://github.com/ledgerwatch/erigon?tab=readme-ov-file#beacon-chain-consensus-layer). + +**For Reth:** +Use the `--authrpc.jwtsecret /path/to/jwtsecret.hex` flag to configure the secret. Use their documentation [here](https://reth.rs/run/mainnet.html?highlight=jwt#running-the-reth-node). ## Run a beacon node @@ -92,7 +95,7 @@ If your node is stuck with `Searching for peers` review your network configurati By default, Lodestar stores all configuration and chain data at the path `$XDG_DATA_HOME/lodestar/$NETWORK_NAME`. -A young testnet should take a few hours to sync. If you see multiple or consistent errors in the logs, please open a [Github issue](https://github.com/ChainSafe/lodestar/issues/new) or reach out to us in [Discord](https://discord.gg/yjyvFRP). Just by reporting anomalies you are helping accelerate the progress of Ethereum Consensus, thanks for contributing! +A young testnet should take a few hours to sync. If you see multiple or consistent errors in the logs, please open a [Github issue](https://github.com/ChainSafe/lodestar/issues/new/choose) or reach out to us in [Discord](https://discord.gg/yjyvFRP). Just by reporting anomalies you are helping accelerate the progress of Ethereum Consensus, thanks for contributing! :::warning It is dangerous to expose your Beacon APIs publicly as there is no default authentication mechanism provided. Ensure your beacon node host is not exposing ports 8545 or 9596 outside of your internal network. diff --git a/docs/pages/run/getting-started/installation.md b/docs/pages/run/getting-started/installation.md index b5ea6b74f5fb..52cb2770725b 100644 --- a/docs/pages/run/getting-started/installation.md +++ b/docs/pages/run/getting-started/installation.md @@ -2,7 +2,7 @@ ## Binaries -Binaries can be downloaded from [this page](https://github.com/ChainSafe/lodestar/releases/) under the `Assets` section. +Binaries can be downloaded from [the release page](https://github.com/ChainSafe/lodestar/releases/latest) under the `Assets` section. ## Docker Installation @@ -85,7 +85,7 @@ Lodestar should now be ready for use. ./lodestar --help ``` -See [Command Line Reference](./../../reference/cli.md) for further information. +See [Command Line Reference](./../beacon-management/beacon-cli.md) for further information. ### Known Issues diff --git a/docs/pages/run/validator-management/vc-configuration.md b/docs/pages/run/validator-management/vc-configuration.md index 077d3f479139..ce6db52b3a66 100644 --- a/docs/pages/run/validator-management/vc-configuration.md +++ b/docs/pages/run/validator-management/vc-configuration.md @@ -1,5 +1,5 @@ --- -title: Stake with a Validator Client +title: Starting a Validator Client --- # Validator Configuration @@ -30,7 +30,7 @@ You will also need the passphrase used the encrypt the keystore. This can be spe #### Option 1: Import Keys To Lodestar's Keystores Folder -You can load the keys into the keystore folder using the `validator import` command. There are two methods for importing keystores: +You can load the keys into the keystore folder using the [`validator import`](../validator-management/validator-cli.md#validator-import) command. There are two methods for importing keystores: _Interactive passphrase import_ @@ -50,13 +50,13 @@ The interactive passphrase import method will prompt every keystore in the `vali The plaintext passphrase file import method will allow you to import all keystores in the `validator_keys` folder encrypted with the same password contained in `password.txt` for efficiency. ::: -Once imported with either method, these keystores will be automatically loaded when you start the validator. To list the imported keystores, use the `validator list` command. +Once imported with either method, these keystores will be automatically loaded when you start the validator. To list the imported keystores, use the [`validator list`](./validator-cli.md#validator-list) command. --- #### Option 2: Import Keys When Starting the Validator -To import keys when you start the validator specify the `--importKeystores` and `--importKeystoresPassword` flags with the `validator` command: +To import keys when you start the validator specify the [`--importKeystores`](./validator-cli.md#--importkeystores) and [`--importKeystoresPassword`](./validator-cli.md#--importkeystorespassword) flags with the [`validator`](./validator-cli.md#base-validator-command) command: ```bash ./lodestar validator --importKeystores ./validator_keys --importKeystoresPassword ./password.txt @@ -70,17 +70,17 @@ If you import keys using `--importKeystores` at runtime (Option 2) any keys load Post-Merge Ethereum requires validators to set a **Fee Recipient** which allows you to receive priority fees when proposing blocks. If you do not set this address, your priority fees will be sent to the [burn address](https://etherscan.io/address/0x0000000000000000000000000000000000000000). -Configure your validator client's fee recipient address by using the `--suggestedFeeRecipient` flag. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address `0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d` would add the following flag to their configuration: `--suggestedFeeRecipient 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d`. +Configure your validator client's fee recipient address by using the [`--suggestedFeeRecipient`](./validator-cli.md#--suggestedfeerecipient) flag. Ensure you specify an Ethereum address you control. An example of a fee recipient set with the address `0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d` would add the following flag to their configuration: `--suggestedFeeRecipient 0xB7576e9d314Df41EC5506494293Afb1bd5D3f65d`. -You may choose to use the `--strictFeeRecipientCheck` flag to enable a strict check of the fee recipient address with the one returned by the beacon node for added reassurance. +You may choose to use the [`--strictFeeRecipientCheck`](./validator-cli.md#--strictfeerecipientcheck) flag to enable a strict check of the fee recipient address with the one returned by the beacon node for added reassurance. ### Configure your builder selection and/or builder boost factor If you are running a beacon node with connected builder relays, you may use these validator configurations to signal which block (builder vs. local execution) the beacon node should produce. -With produceBlockV3 (enabled automatically after the Deneb hard fork), the `--builder.boostFactor` is a percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if `--builder.selection` is set to anything other than `maxprofit`. Even though this is set on the validator client, the calculation is requested and applied on the beacon node itself. For more information, see the [produceBlockV3 Beacon API](https://ethereum.github.io/beacon-APIs/#/ValidatorRequiredApi/produceBlockV3). +With produceBlockV3 (enabled automatically after the Deneb hard fork), the [`--builder.boostFactor`](./validator-cli.md#--builderboostfactor) is a percentage multiplier the block producing beacon node must apply to boost (>100) or dampen (<100) builder block value for selection against execution block. The multiplier is ignored if [`--builder.selection`](./validator-cli.md#--builderselection) is set to anything other than `maxprofit`. Even though this is set on the validator client, the calculation is requested and applied on the beacon node itself. For more information, see the [produceBlockV3 Beacon API](https://ethereum.github.io/beacon-APIs/#/ValidatorRequiredApi/produceBlockV3). -With Lodestar's `--builder.selection` validator options, you can select: +With Lodestar's [`--builder.selection`](./validator-cli.md#--builderselection) validator options, you can select: - `default`: Default setting for Lodestar set at `--builder.boostFactor=90`. This default setting will have a local block boost of ~10%. Note that this value might change in the future depending on what we think is the most appropriate value to help improve censorship resistance of Ethereum. - `maxprofit`: An alias of `--builder.boostFactor=100`, which will always choose the more profitable block. Using this option, you may customize your `--builder.boostFactor` to your preference. Examples of its usage are below. @@ -91,7 +91,7 @@ With Lodestar's `--builder.selection` validator options, you can select: #### Calculating builder boost factor with examples -To calculate the builder boost factor setting, you need to know what percentage you will accept a builder block for against a local execution block using the following formula: `100*100/(100+percentage)`. The value passed to `--builder.boostFactor` must be a valid number without decimals. +To calculate the builder boost factor setting, you need to know what percentage you will accept a builder block for against a local execution block using the following formula: `100*100/(100+percentage)`. The value passed to [`--builder.boostFactor`](./validator-cli.md#--builderboostfactor) must be a valid number without decimals. Example 1: I will only accept a builder block with 25% more value than the local execution block. diff --git a/docs/pages/supporting-libraries/index.md b/docs/pages/supporting-libraries/index.md index 555294393ec1..ad7e37ec278c 100644 --- a/docs/pages/supporting-libraries/index.md +++ b/docs/pages/supporting-libraries/index.md @@ -4,7 +4,7 @@ ### LibP2P -- [`@chainsafe/js-libp2p-noise`](https://github.com/NodeFactoryIo/js-libp2p-noise) - [Noise](https://noiseprotocol.org/noise.html) handshake for `js-libp2p` +- [`@chainsafe/js-libp2p-noise`](https://github.com/ChainSafe/js-libp2p-noise) - [Noise](https://noiseprotocol.org/noise.html) handshake for `js-libp2p` - [`@chainsafe/js-libp2p-gossipsub`](https://github.com/ChainSafe/js-libp2p-gossipsub) - [Gossipsub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) protocol for `js-libp2p` - [`@chainsafe/libp2p-yamux`](https://github.com/ChainSafe/js-libp2p-yamux) diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 47825d48b47a..a82421a961cb 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -3,16 +3,18 @@ import type {SidebarsConfig} from "@docusaurus/plugin-content-docs"; const sidebars: SidebarsConfig = { tutorialSidebar: [ "index", + "introduction", + "security", { type: "category", label: "Run A Node", + collapsed: false, items: [ "run/getting-started/quick-start", "run/getting-started/installation", { type: "category", label: "Beacon node", - collapsed: false, items: [ "run/beacon-management/starting-a-node", "run/beacon-management/beacon-cli", @@ -25,7 +27,6 @@ const sidebars: SidebarsConfig = { { type: "category", label: "Validator Client", - collapsed: false, items: [ "run/validator-management/vc-configuration", "run/validator-management/validator-cli", @@ -35,13 +36,11 @@ const sidebars: SidebarsConfig = { { type: "category", label: "Logging and Metrics", - collapsed: false, items: ["run/logging-and-metrics/prometheus-grafana", "run/logging-and-metrics/client-monitoring"], }, { type: "category", label: "Discv5 Bootnode", - collapsed: false, items: ["run/bootnode/bootnode-cli"], }, ], @@ -53,12 +52,12 @@ const sidebars: SidebarsConfig = { items: [ { type: "category", - label: "Lodestar Light Client", + label: "Light Client", items: ["libraries/lightclient-prover/lightclient-cli", "libraries/lightclient-prover/lightclient"], }, { type: "category", - label: "Lodestar Light Prover", + label: "Prover", items: ["libraries/lightclient-prover/prover"], }, ], @@ -73,7 +72,6 @@ const sidebars: SidebarsConfig = { { type: "category", label: "Advanced Topics", - collapsed: false, items: ["contribution/advanced-topics/setting-up-a-testnet"], }, "contribution/depgraph", @@ -81,6 +79,7 @@ const sidebars: SidebarsConfig = { type: "category", label: "Development Tools", items: [ + "contribution/dev-cli", "contribution/tools/debugging", "contribution/tools/flamegraphs", "contribution/tools/heap-dumps", @@ -90,7 +89,6 @@ const sidebars: SidebarsConfig = { { type: "category", label: "Testing", - collapsed: false, items: [ "contribution/testing/index", "contribution/testing/end-to-end-tests", diff --git a/packages/api/README.md b/packages/api/README.md index 39d7098d60ce..ad7a9986ca4b 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -45,7 +45,7 @@ You will need to go over the [specification](https://github.com/ethereum/beacon- ## Getting started - Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar. -- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). ## Contributors diff --git a/packages/beacon-node/README.md b/packages/beacon-node/README.md index 92e3f38787b7..f60764164620 100644 --- a/packages/beacon-node/README.md +++ b/packages/beacon-node/README.md @@ -18,7 +18,7 @@ You will need to go over the [specification](https://github.com/ethereum/consens ## Getting started - Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar. -- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). ## Contributors diff --git a/packages/cli/README.md b/packages/cli/README.md index 028661af856a..e33fda9a03c7 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -12,7 +12,7 @@ Command line tool for Lodestar ## Getting started - Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar. -- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). ### Lodestar diff --git a/packages/reqresp/README.md b/packages/reqresp/README.md index dbfbf304c541..5d6e971702f9 100644 --- a/packages/reqresp/README.md +++ b/packages/reqresp/README.md @@ -53,7 +53,7 @@ You will need to go over the [specification](https://github.com/ethereum/beacon- ## Getting started - Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar. -- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). ## Contributors diff --git a/packages/validator/README.md b/packages/validator/README.md index b29972acf8ac..fa853519ecfe 100644 --- a/packages/validator/README.md +++ b/packages/validator/README.md @@ -13,7 +13,7 @@ eth-consensus api compatible beacon nodes/databases/loggers. ## Getting started - Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar. -- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/). +- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet/). ## License