Requirements
Before starting, ensure that you have the following installed on your computer:- Docker
version 25.0.2or greater - Kurtosis
v0.90.1or greater - Foundry
v1.0.0or greater (for testing purposes)
Kurtosis local devnet
Going through this process will set up and run multiple services, execution clients, block explorers, databases, and more. If you run the default Kurtosis configuration, it will run the following:- 5 validator nodes
- 3 full nodes
- 6 additional services
The packaged Kurtosis EL genesis template already includes the
depositContractAddress field that
Fusaka networks require. If you swap in a custom EL genesis, add "depositContractAddress": "0x4242424242424242424242424242424242424242" under config.Step 1 - Clone repository and run nodes
The first step is to clone the Beacon Kit repository.make start-devnet.
Step 2 - Configure wallet
If you want to see a list of all defined wallet addresses and private keys, refer to constants.star. Start by adding the network to your MetaMask wallet.
Next import one of the private keys defined in constants.star.
Step 3 - Deploy contract
To demonstrate deploying a contract to the local devnet, you can useforge create:
Step 4 - Read contract
Verify that the contract was deployed and the initial message was set:Testing deposits
In this section, you upgrade one of the full nodes from the default Kurtosis deployment to a full validator, following the process laid out in the Become a Validator guide.Node setup
Revisebeaconkit-local.yml to remove all additional services, then clean and re-launch:
kurtosis enclave inspect my-local-devnet.
Collect registration transaction parameters
Log into the beaconkit container:Send registration and activation transactions
Generate the command in the container and execute it from the host OS. Send the registration transaction first, then the activation transaction with the remaining stake. After 2 complete epochs, the validator status should change toactive_ongoing.
Debugging issues
If Docker stops working on MacOS, first try runningkurtosis clean -a. If the problem persists, try removing all containers and restarting Docker.