diff --git a/docs/docs/cli-reference/clean.md b/docs/docs/cli-reference/clean.md index 6936f13094..e656b1cbe1 100644 --- a/docs/docs/cli-reference/clean.md +++ b/docs/docs/cli-reference/clean.md @@ -10,6 +10,7 @@ The `clean` command is used to remove stopped enclaves and their contents to fre - Removes all services within stopped enclaves - Removes all unused Kurtosis images (engine + logs aggregator + enclaves) - Removes all files artifacts and all Docker volumes within stopped enclaves + ``` kurtosis clean [flags] ``` diff --git a/docs/docs/get-started/quickstart.md b/docs/docs/get-started/quickstart.md index 4fa94979df..ebe53ab920 100644 --- a/docs/docs/get-started/quickstart.md +++ b/docs/docs/get-started/quickstart.md @@ -9,7 +9,7 @@ sidebar_position: 1 Introduction ------------ -Welcome to the [Kurtosis][homepage] quickstart! This guide takes ~5 minutes and will walk you through how to use a Kurtosis package to spin up a distributed system over Docker. Specifically, you will use the [eth2-package][eth2-package] to bootstrap and start-up a private Ethereum testnet. +Welcome to the [Kurtosis][homepage] quickstart! This guide takes ~5 minutes and will walk you through how to use a Kurtosis package to spin up a distributed system over Docker. Specifically, you will use the [ethereum-package][ethereum-package] to bootstrap and start-up a private Ethereum testnet. Kurtosis is a platform for packaging and launching environments of containerized services and serve two types of users: the author of an environment definition, referred to as a [Kurtosis package][packages-reference], and the consumer or user of the environment definition. This quickstart is intended to put you in the shoes of the consumer - someone who needs a quick and easy way to get a production-like environment to develop and test changes quicker for your distributed system. A separate guide is [available here][how-to-set-up-postgres-guide] to introduce you to the world of Kurtosis package authoring and how one might define and build an environment with Kurtosis for themselves or for their team. @@ -27,7 +27,7 @@ This guide is in a "code along" format, which means you are expected to follow t This quickstart is in a "code along" format. You can also dive straight into running the end results and exploring the code too. -**Open the Playground: [Start](https://gitpod.io/?autoStart=true&editor=code#https://github.com/kurtosis-tech/eth2-package)** +**Open the Playground: [Start](https://gitpod.io/?autoStart=true&editor=code#https://github.com/kurtosis-tech/ethereum-package)** Click on the "New Workspace" button! You don't have to worry about the Context URL, Editor or Class. It's all pre-configured for you. @@ -46,7 +46,7 @@ Define how your system should look like Kurtosis environment definitions, referred to here on as [Kurtosis packages][packages-reference], support parameterization out of the box. This means your teams or your communities can leverage the same package with different configurations for their specific use-case, eliminating the need to maintain different Bash scripts or `docker-compose.yml` files per use of the environment definition. -You're now going to create a file to house the parameters that you will pass in at runtime when your system starts up. Check out the README for the [eth2-package][eth2-package] to see the full list of configuration options and flags available for use. +You're now going to create a file to house the parameters that you will pass in at runtime when your system starts up. Check out the README for the [ethereum-package][ethereum-package] to see the full list of configuration options and flags available for use. Create a file titled: `network_params.json` in your home directory, populate it with the below contents, and save your file: ```json @@ -90,7 +90,7 @@ Spin up your system! -------------------- Great! You're now ready to bring up your own network. Simply run: ```console -kurtosis run --enclave eth-network github.com/kurtosis-tech/eth2-package "$(cat ~/network_params.json)" +kurtosis run --enclave eth-network github.com/kurtosis-tech/ethereum-package "$(cat ~/network_params.json)" ``` Kurtosis will then begin to spin up your private Ethereum testnet by interpreting the instructions in the Kurtosis package, validating the plan to ensure there are no conflicts or obvious errors, and then finally executes the plan (read more about multi-phase runs [here][multi-phase-runs-reference]). Kurtosis first spins up an isolated, ephemeral environment on your machine called an [enclave][enclaves-reference] where all the services and [files artifacts][files-artifacts-reference] for your system will reside in. Then, those services will be bootstrapped and required files generated to start up the system. @@ -243,7 +243,7 @@ Thank you for trying our quickstart. We hope you enjoyed it. [cassandra-package-example]: https://github.com/kurtosis-tech/cassandra-package [go-test-example]: https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/quickstart/go-test [ts-test-example]: https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/quickstart/ts-test -[eth2-package]: https://github.com/kurtosis-tech/eth2-package/ +[ethereum-package]: https://github.com/kurtosis-tech/ethereum-package/ [homepage]: home.md @@ -252,7 +252,6 @@ Thank you for trying our quickstart. We hope you enjoyed it. [bazel-github]: https://github.com/bazelbuild/bazel/ [starlark-github-repo]: https://github.com/bazelbuild/starlark [postgrest]: https://postgrest.org/en/stable/ -[ethereum-package]: https://github.com/kurtosis-tech/eth2-package [waku-package]: https://github.com/logos-co/wakurtosis [near-package]: https://github.com/kurtosis-tech/near-package [iterm]: https://iterm2.com/ diff --git a/docs/docs/guides/how-to-full-mev-with-eth2-package.md b/docs/docs/guides/how-to-full-mev-with-eth2-package.md index b61b320f46..18794b7d78 100644 --- a/docs/docs/guides/how-to-full-mev-with-eth2-package.md +++ b/docs/docs/guides/how-to-full-mev-with-eth2-package.md @@ -1,43 +1,43 @@ --- title: How to launch a private Ethereum testnet with Flashbot's MEV Boost implementation of Proposer Builder Seperation (PBS) sidebar_label: Launch a testnet with MEV infra -slug: /how-to-full-mev-with-eth2-package +slug: /how-to-full-mev-with-ethereum-package toc_max_heading_level: 2 sidebar_position: 12 --- :::tip Here are some quick short-cuts for folks who would prefer: -* To get going right away: install Kurtosis & Docker and then run: `kurtosis run github.com/kurtosis-tech/eth2-package '{"mev_type": "full"}'` -* To dive into the code example: visit the repository [here](https://github.com/kurtosis-tech/eth2-package). -* Not to run this package on their local machine: try it out on the [Kurtosis playground](https://gitpod.io/?autoStart=true&editor=code#https://github.com/kurtosis-tech/eth2-package) +* To get going right away: install Kurtosis & Docker and then run: `kurtosis run github.com/kurtosis-tech/ethereum-package '{"mev_type": "full"}'` +* To dive into the code example: visit the repository [here](https://github.com/kurtosis-tech/ethereum-package). +* Not to run this package on their local machine: try it out on the [Kurtosis playground](https://gitpod.io/?autoStart=true&editor=code#https://github.com/kurtosis-tech/ethereum-package) ::: -We're elated to share that the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package) now supports the Flashbot's implementation of [Proposer-Builder Separation (PBS)](https://ethereum.org/en/roadmap/pbs/) using [MEV-Boost](https://boost.flashbots.net) protocol. +We're elated to share that the [`ethereum-package`](https://github.com/kurtosis-tech/ethereum-package) now supports the Flashbot's implementation of [Proposer-Builder Separation (PBS)](https://ethereum.org/en/roadmap/pbs/) using [MEV-Boost](https://boost.flashbots.net) protocol. This milestone marks a huge step forward in the journey towards a full, in-protocol PBS implementation for Proof-of-Stake Ethereum as developers across the ecosystem now have a way to instantiate fully functioning testnets to validate functionality, behvaior, and scales across all client combinations with a Builder API implementation (Flashbots', in this case). -Keep reading to learn [how it all works](#brief-overview-of-the-architecture) & [how to get started with the `eth2-package`](#quickstart). +Keep reading to learn [how it all works](#brief-overview-of-the-architecture) & [how to get started with the `ethereum-package`](#quickstart). -#### Why `eth2-package`? -As a reminder, the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package) is a reproducible and portable environment definition that should be used to bootstrap & deploy private testnets. The package will function the exact same way locally or in the cloud over Docker or Kubernetes, supports all major Execution Layer (EL) and Consensus Layer (CL) client implementations, and can be scaled to whatever size your team needs - limited only by your underlying hardware/backend. +#### Why `ethereum-package`? +As a reminder, the [`ethereum-package`](https://github.com/kurtosis-tech/ethereum-package) is a reproducible and portable environment definition that should be used to bootstrap & deploy private testnets. The package will function the exact same way locally or in the cloud over Docker or Kubernetes, supports all major Execution Layer (EL) and Consensus Layer (CL) client implementations, and can be scaled to whatever size your team needs - limited only by your underlying hardware/backend. #### What if I only want the MEV parts? And if that wasn't enough, Kurtosis environment definitions (known as [Packages](https://docs.kurtosis.com/concepts-reference/packages/)) are entirely composable, meaning you can define and build-your-own private testnet using only the parts you need and with the option of adding your own services (e.g. MEV searcher tools). Feel free to check out the following [code example](https://github.com/kurtosis-tech/2-el-cl-mev-package/blob/main/main.star). ## Brief overview of the architecture -Explicitly, the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package) supports two modes: `full-mev` and `mock-mev`. +Explicitly, the [`ethereum-package`](https://github.com/kurtosis-tech/ethereum-package) supports two modes: `full-mev` and `mock-mev`. The former mode is valuable for validating behavior between the protocol and out-of-protocol middle-ware infrastructure (e.g. searchers, relayer) and instantiates [`mev-boost`](https://github.com/flashbots/mev-boost), [`mev-relay`](https://github.com/flashbots/mev-boost-relay), [`mev-flood`](https://github.com/flashbots/mev-flood) and Flashbot's Geth-based block builder called [`mev-builder`](https://github.com/flashbots/builder). The latter mode will only spin up [`mev-boost`](https://github.com/flashbots/mev-boost) and a [`mock-builder`](https://github.com/marioevz/mock-builder), which is useful for testing in-protocol behavior like testing if clients are able to call the relayer for a payload via `mev-boost`, reject invalid payloads, or trigger the [circuit breaker](https://hackmd.io/@ralexstokes/BJn9N6Thc) to ensure functionality of the beacon chain. -The `eth2-package` with MEV emulation are already in use by client teams to help uncover bugs (examples [here](https://github.com/prysmaticlabs/prysm/pull/12736) and [here](https://github.com/NethermindEth/nethermind/commit/4d805769159dc0717aa1ba38cc3ebc53f9a375cf)). +The `ethereum-package` with MEV emulation are already in use by client teams to help uncover bugs (examples [here](https://github.com/prysmaticlabs/prysm/pull/12736) and [here](https://github.com/NethermindEth/nethermind/commit/4d805769159dc0717aa1ba38cc3ebc53f9a375cf)). Everything you see below in the architecture diagram gets configured, initialized, and bootstrapped together by Kurtosis. ![mev-arch](/img/guides/full-mev-infra-arch-diagram.png) #### Caveats: -* The `mev-boost-relay` service requires Capella at an epoch of non-zero. For the eth2-package, the Capella fork is set to happen after the first epoch to be started up and fully connected to the CL client. +* The `mev-boost-relay` service requires Capella at an epoch of non-zero. For the ethereum-package, the Capella fork is set to happen after the first epoch to be started up and fully connected to the CL client. * Validators (64 per node by default, so 128 in the example in this guide) will get registered with the relay automatically after the 2nd epoch. This registration process is simply a configuration addition to the mev-boost config - which Kurtosis will automatically take care of as part of the set up. This means that the `mev-relay` infrastructure only becomes aware of the existence of the validators after the 2nd epoch. * After the 3rd epoch, the `mev-relay` service will begin to receive execution payloads (`eth_sendPayload`, which does not contain transaction content) from the `mev-builder` service (or `mock-builder` in `mock-mev` mode). * Validators will then start to receive validated execution payload headers from the `mev-relay` service (via `mev-boost`) after the 4th epoch. The validator selects the most valuable header, signs the payload, and returns the signed header to the relay - effectively proposing the payload of transactions to be included in the soon-to-be-proposed block. Once the relay verifies the block proposer's signature, the relay will respond with the full execution payload body (incl. the transaction contents) for the validator to use when proposing a `SignedBeaconBlock` to the network. @@ -49,7 +49,7 @@ Once the network is online, `mev-flood` will deploy UniV2 smart contracts, provi ::: ## Quickstart -Leveraging the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package) is simple. In this short quickstart, you will: +Leveraging the [`ethereum-package`](https://github.com/kurtosis-tech/ethereum-package) is simple. In this short quickstart, you will: 1. Install Docker & Kurtosis locally. 2. Configure your network using a `.json` file. 3. Run a single command to launch your network with `full MEV`. @@ -60,7 +60,7 @@ Leveraging the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package) i * [Install Kurtosis](https://docs.kurtosis.com/install/#ii-install-the-cli) or [upgrade Kurtosis to the latest version](https://docs.kurtosis.com/upgrade). You can check if Kurtosis is running using the command: `kurtosis version`, which will print your current Kurtosis engine version and CLI version. #### Configure your network -Next, create a file titled: `eth2-package-params.json` in your working directory and populate it with: +Next, create a file titled: `ethereum-package-params.json` in your working directory and populate it with: ```json { "participants": [{ @@ -94,14 +94,14 @@ You will use the above file by passing it in at runtime, effectively enabling yo #### Launch the network with `full MEV` Great! You're now ready to bring up your own network. Simply run: ```bash -kurtosis run --enclave eth-network github.com/kurtosis-tech/eth2-package "$(cat ~/eth2-package-params.json)" +kurtosis run --enclave eth-network github.com/kurtosis-tech/ethereum-package "$(cat ~/ethereum-package-params.json)" ``` Kurtosis will then begin to spin up your private Ethereum testnet with `full MEV`. You will see a stream of text get printed in your terminal as Kurtosis begins to generate genesis files, configure the Ethereum nodes, launch a Grafana and Prometheus instance, and bootstrap the network together with the full suite of MEV products from Flashbots. In ~2 minutes, you should see the following output at the end: ```bash Starlark code successfully run. Output was: { "grafana_info": { - "dashboard_path": "/d/QdTOwy-nz/eth2-merge-kurtosis-module-dashboard?orgId=1", + "dashboard_path": "/d/QdTOwy-nz/ethereum-merge-kurtosis-module-dashboard?orgId=1", "password": "admin", "user": "admin" } @@ -179,7 +179,7 @@ The first section that gets printed contains some basic metadata about the encla Next, you'll see a section dedicated to [Files Artifacts](https://docs.kurtosis.com/concepts-reference/files-artifacts/), which are Kurtosis' first-class representation of data inside your enclave, stored as compressed TGZ files. You'll notice there are configuration files for the nodes, grafana, and prometheus as well as private keys for pre-funded accounts and genesis-related data. These files artifacts were generated and used by Kurtosis to start the network and abstracts away the complexities and overhead that come with generating validator keys and getting genesis and node config files produced and mounted to the right containers yourself. -Lastly, there is a section called `User Services` which display the number of services (running in Docker containers) that make up your network. You will notice that there are 2 Ethereum nodes, each with a `MEV-Boost` instance spun up & connected to it. In addition to this, you will see the rest of the Flashbots MEV infrastructure including the `mev-relay` suite of services (read more about the `mev-relay` services [here](https://github.com/flashbots/mev-boost-relay/blob/main/ARCHITECTURE.md)) and `mev-flood`. By default, the `eth2-package` also comes with supporting services which include a fork monitor, redis, postgres, grafana, prometheus, a transaction spammer, a testnet-verifier, and the services used to generate genesis data. Both of the Redis and Postgres instances are required for `mev-relay` to function properly. Each of these services are running in Docker containers inside your local enclave & Kurtosis has automatically mapped each container port to your machine's ephemeral ports for seamless interaction with the services running in your enclave. +Lastly, there is a section called `User Services` which display the number of services (running in Docker containers) that make up your network. You will notice that there are 2 Ethereum nodes, each with a `MEV-Boost` instance spun up & connected to it. In addition to this, you will see the rest of the Flashbots MEV infrastructure including the `mev-relay` suite of services (read more about the `mev-relay` services [here](https://github.com/flashbots/mev-boost-relay/blob/main/ARCHITECTURE.md)) and `mev-flood`. By default, the `ethereum-package` also comes with supporting services which include a fork monitor, redis, postgres, grafana, prometheus, a transaction spammer, a testnet-verifier, and the services used to generate genesis data. Both of the Redis and Postgres instances are required for `mev-relay` to function properly. Each of these services are running in Docker containers inside your local enclave & Kurtosis has automatically mapped each container port to your machine's ephemeral ports for seamless interaction with the services running in your enclave. #### Visit the website to see registered validators and delivered payloads Now that your network is online, you can visit the relay website using the local port mapped to that endpoint. For this example, it will be `127.0.0.1:62930`, but it will be different for you. @@ -195,7 +195,7 @@ The inclusion of a Proposer Builder Seperation (PBS) implemention was in support The next immediate thing we hope to do is to *decompose* the environment definition into smaller pieces, enabling developers to build-their-own MEV-enabled systems by simply importing only the parts of the MEV infrastructure that they need. We've begun working on this already with [eth-kurtosis](https://github.com/kurtosis-tech/eth-kurtosis), which contains an index of composable building blocks to define your own testnet. -If there are other use cases you had in mind (e.g. fuzzing the network at the protocol level) or have questions about `eth-kurtosis` or this `eth2-package`, please don't hesitate to reach out! +If there are other use cases you had in mind (e.g. fuzzing the network at the protocol level) or have questions about `eth-kurtosis` or this `ethereum-package`, please don't hesitate to reach out! ## Conclusion This guide was meant to be quick - we hope it was. To recap, you: @@ -203,11 +203,11 @@ This guide was meant to be quick - we hope it was. To recap, you: - Created a `.json` file that contains the necessary parameters for the network - Ran a single command to spin up a private Ethereum testnet with MEV infrastructure -The `eth2-package` is available for anyone to use, will work the same way on your local machine or in the cloud, and will run on Docker or Kubernetes. +The `ethereum-package` is available for anyone to use, will work the same way on your local machine or in the cloud, and will run on Docker or Kubernetes. You saw first-hand how packages, effectively environment definitions, are written once and then can be used by anyone in a very trivial way to reproduce the environment. This accelerates developer velocity by enabling engineers to spend less time on configuring and setting up development and testing frameworks, and more time instead on building the unique features and capabilities for their projects. -Additionally, we hope you also enjoyed the parameterizability aspect of Kurtosis Packages. By changing the `eth2-package-params.json`, you can get a fine-tune your testnet however you see fit. +Additionally, we hope you also enjoyed the parameterizability aspect of Kurtosis Packages. By changing the `ethereum-package-params.json`, you can get a fine-tune your testnet however you see fit. We hope this guide was helpful and we'd love to hear from you. Please don't hesitate to share with us what went well, and what didn't, using [`kurtosis feedback`](../cli-reference/feedback.md) from the CLI to file an issue in our [Github](https://github.com/kurtosis-tech/eth-kurtosis/issues) or post your question in our [Github Discussions](https://github.com/kurtosis-tech/kurtosis/discussions). diff --git a/docs/docs/guides/how-to-local-eth-testnet.md b/docs/docs/guides/how-to-local-eth-testnet.md index f9b8c1b05c..bcd0f330da 100644 --- a/docs/docs/guides/how-to-local-eth-testnet.md +++ b/docs/docs/guides/how-to-local-eth-testnet.md @@ -11,7 +11,7 @@ sidebar_position: 10 This guide walks you through the process of instantiating a configurable local Ethereum testnet, deploying a smart contract to it, and using the testnet to run tests against your dApp. This guide is designed for dApp developers who want to develop and test their dApps locally against different network configurations before deploying to a live testnet or the mainnet. In this guide, you will: -* Instantiate a local Ethereum testnet with the [`eth-network-package`](https://github.com/kurtosis-tech/eth-network-package) using [Kurtosis](https://www.kurtosis.com/), +* Instantiate a local Ethereum testnet with the [`ethereum-package`](https://github.com/kurtosis-tech/ethereum-package) using [Kurtosis](https://www.kurtosis.com/), * Connect your Hardhat dApp development environment to the local testnet to compile, deploy, and test a dApp, and * Configure the local testnet, including parameters like number of nodes and specific EL/CL client pairings, to enable development and testing workflows against various network configurations. @@ -19,7 +19,7 @@ In this guide, you will: [Kurtosis](https://www.kurtosis.com/) is a composable build system designed for configuring multi-container environments. It specifically enables developers to create reproducible environments that require dynamic setup logic, such as blockchain testnets. -In this guide, the Kurtosis eth-network-package spins up a local Ethereum testnet with support for the [`geth`](https://geth.ethereum.org/) Execution Layer (EL) client, as well as [`teku`](https://consensys.net/knowledge-base/ethereum-2/teku/), [`lighthouse`](https://lighthouse.sigmaprime.io/), and [`lodestar`](https://lodestar.chainsafe.io/) Consensus Layer (CL) clients. This package serves as a configurable and composable alternative to networks in frameworks like Hardhat Network, Ganache, and Anvil. Kurtosis offers developers greater control and flexibility over the testnets they use, which is a major reason why the [Ethereum Foundation used Kurtosis to test the Merge](https://www.kurtosis.com/blog/testing-the-ethereum-merge) and continues to use it for testing network upgrades. +In this guide, the Kurtosis ethereum-package spins up a local Ethereum testnet with support for the [`geth`](https://geth.ethereum.org/) Execution Layer (EL) client, as well as [`teku`](https://consensys.net/knowledge-base/ethereum-2/teku/), [`lighthouse`](https://lighthouse.sigmaprime.io/), and [`lodestar`](https://lodestar.chainsafe.io/) Consensus Layer (CL) clients. This package serves as a configurable and composable alternative to networks in frameworks like Hardhat Network, Ganache, and Anvil. Kurtosis offers developers greater control and flexibility over the testnets they use, which is a major reason why the [Ethereum Foundation used Kurtosis to test the Merge](https://www.kurtosis.com/blog/testing-the-ethereum-merge) and continues to use it for testing network upgrades. ## Setting up Kurtosis @@ -32,7 +32,7 @@ Before you proceed, make sure you have: To spin up a local Ethereum testnet, run: ```bash -kurtosis --enclave local-eth-testnet run github.com/kurtosis-tech/eth-network-package +kurtosis --enclave local-eth-testnet run github.com/kurtosis-tech/ethereum-package ``` :::info This command names your network: "local-eth-testnet” using the `--enclave` flag. @@ -81,7 +81,7 @@ Congratulations! You used Kurtosis to instantiate a local Ethereum testnet, with ### Review -In this section, you executed a command that directed Kurtosis to use the [`eth-network-package` hosted remotely on GitHub](https://github.com/kurtosis-tech/eth-network-package) to spin up a local Ethereum testnet within a Kurtosis [Enclave](https://docs.kurtosis.com/concepts-reference/enclaves/). Inside your enclave, you will find both "file artifacts" and "user services". +In this section, you executed a command that directed Kurtosis to use the [`ethereum-package` hosted remotely on GitHub](https://github.com/kurtosis-tech/ethereum-package) to spin up a local Ethereum testnet within a Kurtosis [Enclave](https://docs.kurtosis.com/concepts-reference/enclaves/). Inside your enclave, you will find both "file artifacts" and "user services". The [File Artifacts](https://docs.kurtosis.com/concepts-reference/files-artifacts/) in your enclave include all the data generated and utilized to bootstrap the EL and CL clients. The data was created using the `prelaunch-data-generator` service built from this [Docker image](https://github.com/ethpandaops/ethereum-genesis-generator) @@ -113,8 +113,8 @@ Example in `hardhat.config.ts`: localnet: { url: 'http://127.0.0.1:<$YOUR_PORT>',// TODO: REPLACE $YOUR_PORT WITH THE PORT OF A NODE URI PRODUCED BY THE ETH NETWORK KURTOSIS PACKAGE -// These are private keys associated with prefunded test accounts created by the eth-network-package -// +// These are private keys associated with prefunded test accounts created by the ethereum-package +// accounts: [ "ef5177cd0b6b21c87db5a0bf35d4084a8a57a9d6a064f86d51ac85f2b873a4e2", "48fcc39ae27a0e8bf0274021ae6ebd8fe4a0e12623d61464c498900b28feb567", @@ -139,7 +139,7 @@ The output should look something like this: 0x1F6298457C5d76270325B724Da5d1953923a6B88 has balance 10000000000000000000000000 ``` -This confirms that Hardhat is using your local testnet and detects the pre-funded accounts created by the `eth-network-package`. +This confirms that Hardhat is using your local testnet and detects the pre-funded accounts created by the `ethereum-package`. ### Deploy and test your dApp locally With the dApp development environment fully connected to the local Ethereum testnet, you can now run development and testing workflows against your dApp using the local testnet. @@ -181,7 +181,7 @@ Now let’s explore how you can configure the underlying network for testing our Your local Ethereum testnet can be configured to use different EL and CL client pairs, as well as a varying number of nodes, depending on the scenario and specific network configuration you want to develop or test. This means that, once set up, you can spin up a customized local testnet and use it to run the same workflows (deployment, tests, etc.) under various network configurations to ensure everything works as expected. To learn more about the other parameters you can modify, visit this link. -Give it a try! You can pass various configuration options to the `eth-network-package` via a JSON file. This network params JSON file provides the specific configurations that Kurtosis will use to set up the local Ethereum network. +Give it a try! You can pass various configuration options to the `ethereum-package` via a JSON file. This network params JSON file provides the specific configurations that Kurtosis will use to set up the local Ethereum network. Take the default configuration file and edit it to spin up two nodes with different EL/CL pairs: * Node 1 with `geth`/`lighthouse` @@ -245,7 +245,7 @@ The `network_params` struct configures the network settings that are used to cre Save your edited params file in any directory you wish (in the example below, it is saved to the desktop) and then use it to run your Kurtosis package by running: ```bash -kurtosis clean -a && kurtosis run --enclave local-eth-testnet github.com/kurtosis-tech/eth-network-package "$(cat ~/eth-network-params.json)" +kurtosis clean -a && kurtosis run --enclave local-eth-testnet github.com/kurtosis-tech/ethereum-package "$(cat ~/eth-network-params.json)" ``` :::TIP Note that the `kurtosis clean -a` command is used here to instruct Kurtosis to destroy the old testnet and its contents before starting a new one up. @@ -328,5 +328,4 @@ And that's it! To recap this short guide, you: We’d love to hear from you on what went well for you, what could be improved, or to answer any of your questions. Don’t hesitate to reach out via [Github](https://github.com/kurtosis-tech/kurtosis/issues/new/choose) or [email us](mailto:feedback@kurtosistech.com)! ### Other examples and guides -We encourage you to check out our [quickstart](https://docs.kurtosis.com/quickstart) (where you’ll build a Postgres database and API on top) and our other examples in our [awesome-kurtosis repository](https://github.com/kurtosis-tech/awesome-kurtosis) where you’ll find some great examples, including packages for: -* [Spinning up the same local Ethereum testnet](https://github.com/kurtosis-tech/eth2-package), but with additional services connected such as a transaction spammer (to simulate transactions), a fork monitor, and a connected Grafana and Prometheus instance +We encourage you to check out our [quickstart](https://docs.kurtosis.com/quickstart) (where you’ll build a Postgres database and API on top) and our other examples in our [awesome-kurtosis repository](https://github.com/kurtosis-tech/awesome-kurtosis) where you’ll find some great examples.