π Becoming an Aztec Sequencer with DAppNode
Your comprehensive guide to setting up and joining the Aztec network as a sequencer using DAppNode infrastructure. Let's get you sequencing! π―
π¦ Phase 1: Install DAppNode Packageβ
Start by grabbing the Aztec package from the DAppStore. This sets up your sequencer environment all nice and integrated with your DAppNode setup.
π Phase 2: Generate Your Keystoreβ
Step 1οΈβ£: Install Aztec CLI on Your Local Machineβ
Download and install the Aztec Command Line Interface (it's quick, I promise):
bash -i <(curl -s https://install.aztec.network)
Step 2οΈβ£: Add Aztec CLI to Your PATHβ
Make the Aztec CLI globally accessible by adding it to your shell configuration:
echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Step 3οΈβ£: Generate Your Keystoreβ
Time to create your secure keystore! π‘οΈ You can go with either an automatically generated 12-word mnemonic but we strongly recommend a 24 words mnemonic for maximum security. Treat it like your most prized possessionβstore it securely in a password manager or encrypted vault and never share it with a soul!
For all the details on keystore generation, check out the official Aztec keystore documentation.
Example:
aztec validator-keys new \
--fee-recipient 0x0000000000000000000000000000000000000000000000000000000000000000 \
--staker-output \
--gse-address 0xfb243b9112bb65785a4a8edaf32529accf003614 \ # Check in Aztec's documentation for the correct GSE address
--mnemonic "<MNEMONIC>" \
--l1-rpc-urls http://geth.sepolia-geth.dappnode:8545 \ # or any execution RPC
--data-dir ./
Please note that --fee-recipient needs to be an Aztec address, not an Ethereum address. It's OK to leave it as 0x00... for now because there are no txs in the Ignition phase (so no tx fees) and can be changed later.
Step 4οΈβ£: Upload Keystore to DAppNodeβ
- Navigate to your DAppNode Packages Tab π
- Open the Aztec package π¦
- Access the File Manager tab π
- Upload your newly generated keystore file to the
/keystoredirectory
Boom! π₯ Your keystore is now locked and loaded, ready for your Aztec sequencer to use.
If your logs show this error:
[17:55:44.683] WARN: node:blob-sink:client Unable to get blob sidecar for XXXXXXX: Not Found (404) {"status":404,"statusText":"Not Found","body":"{\"message\":\"Block not found: the node does not custody enough data columns to reconstruct blobs - please start the beacon node with the `--subscribe-all-data-subnets` flag to ensure this call to succeed, or retry later if it is already the case\",\"code\":404}"}
Make sure to add --subscribe-all-data-subnets in your Beacon Chain package:
β Phase 3: Approve STAKE Token Spendingβ
Before you can join the party as a sequencer, you gotta approve the Aztec rollup contract to spend 200,000 STAKE tokens. That's your ticket to the show! π«
In order to perform this step you will need to install foundry in your computer (there will be a UI later on to perform this step, but for now you'll need to use CLI).
You can install foundry following the instructions in their repo
curl -L https://foundry.paradigm.xyz | bash
Step 1οΈβ£: Execute the Approval Transactionβ
Now execute the approval transaction from within the container:
cast send 0x139d2a7a0881e16332d7D1F8DB383A4507E1Ea7A \
"approve(address,uint256)" \
0xebd99ff0ff6677205509ae73f93d0ca52ac85d67 \
200000ether \
--private-key "$PRIVATE_KEY_OF_OLD_SEQUENCER" \
--rpc-url http://execution.sepolia.dncore.dappnode:8545
Sit tight β³ and wait for the transaction to be confirmed on-chain. Grab some coffee β while you wait!
π° Phase 4: Fund Your Attesterβ
Your attester address has been generated with the command in Step 3οΈβ£. Specifically in the keyn_attestern_staker_output.json, where n is the index of the key you've generated (1, for most of us who only generate 1).
Open the ...staker_output.json file and you will find the address in the "attester" field.
Attester ETH Funding πΈβ
Make sure your Attester Ethereum address has enough ETH to cover gas fees. Grab some from a testnet faucet or transfer from your funded account. Faucets for testnet here and here
ποΈ Phase 5: Join as a Sequencerβ
Alright, moment of truth! π¬ Let's register your validator on the Aztec network using the CLI.
Run this bad boy replacing the placeholders with your data and become a sequencer:
Note: bls-secret-key can be found in the file key1.json under the "bls" section.
aztec \
add-l1-validator \
--l1-rpc-urls http://execution.sepolia.dncore.dappnode:8545 \
--network testnet \
--private-key $PRIVATE_KEY_OF_OLD_SEQUENCER \
--attester $ETH_ATTESTER_ADDRESS \
--withdrawer $ANY_ETH_ADDRESS \
--bls-secret-key $BLS_ATTESTER_PRIV_KEY \
--rollup 0xebd99ff0ff6677205509ae73f93d0ca52ac85d67
Success! π Your sequencer is now registered on the Aztec testnet and ready to start producing blocks. Welcome to the sequencer club! π
You can check the status of your sequencer in Dashtec. Remember that what is called "Sequencer address" in the dashboard is the "Attester" address in your ...staker_output.json file.
π Security Best Practicesβ
- π« Never ever share your mnemonic or private keys with anyone, period
- π Lock down that mnemonic β use a dedicated password manager or encrypted storage
- πΌ Hardware wallet time β consider using hardware wallets for your withdrawal and attester addresses
- π§ͺ Test first β run everything through testnet before going anywhere near mainnet
- π Keep an eye on your sequencer logs regularly through DAppNode's dashboard
π Troubleshootingβ
Running into issues? Here's a quick troubleshooting guide:
- Keystore Upload Fails π€ β Make sure the file's in proper JSON format and has the right permissions
- SSH Connection Failed π β Verify your DAppNode is running and accessible on your network, check firewall settings
- Docker Container Not Found π³ β Ensure the Aztec package is installed and running, check the package name matches your network (e.g.,
aztec-sepolia) - Approval Transaction Reverts β β Check that you've got enough ETH for gas and sufficient STAKE balance
- CLI Connection Errors π β Verify your ETH RPC URL is actually reachable and the network's responding from within the container
π― You've Got Thisβ
You're all set to become an Aztec sequencer. Follow these steps carefully, keep your keys safe, and you'll be sequencing like a pro in no time. Happy validating! πβ¨