Reading Validator Config

Hands-on exercise: Locate your chain config folder and prepare to add upgrade.json on your Docker validator.

Objectives

By the end of this exercise, you will be able to:

  • Locate your chain’s config directory (the folder that contains config.json).
  • Confirm where upgrade.json must be placed for your Blockchain ID.
  • Access your Docker-hosted validator terminal to edit config files safely.

Prerequisites

Before starting this exercise, ensure you have:

  • A running Docker-hosted AvalancheGo node for the L1 you created in:
    • /academy/avalanche-l1/access-restriction/02-genesis-activation/03-console-creation-l1-with-self-hosted-node
  • Your Blockchain ID for that L1 (copied during chain creation).
  • Access to the machine where the Docker container is running.

Instructions

Step 1: Identify your Docker container

In a terminal on the machine running Docker, list running containers and find the one running AvalancheGo:

docker ps

Step 2: Open a shell inside the validator container

Use docker exec to get a shell:

docker exec -it <YOUR_CONTAINER_NAME_OR_ID> sh

If sh isn’t available, try:

docker exec -it <YOUR_CONTAINER_NAME_OR_ID> bash

Step 3: Locate your chain config directory

The upgrade guide expects upgrade.json to live next to config.json at:

  • ~/.avalanchego/configs/chains/<BLOCKCHAIN_ID>/

Inside the container, list the chain folders:

ls ~/.avalanchego/configs/chains

Then enter your chain’s folder (use your Blockchain ID from the earlier lesson):

cd ~/.avalanchego/configs/chains/<YOUR_BLOCKCHAIN_ID>
ls

You should see a config.json file in this directory.

Expected Output

You should have a terminal open inside the validator container and be able to cd into:

  • ~/.avalanchego/configs/chains/<YOUR_BLOCKCHAIN_ID>/
config.json

Verification

To verify you've completed this exercise successfully:

  1. You can list the chain folder and see config.json.
  2. You know exactly where to create upgrade.json for the next step.

Troubleshooting

Issue: I don’t see my Blockchain ID folder

Problem: ~/.avalanchego/configs/chains/ doesn’t contain your Blockchain ID.

Solution:

  • Double-check you copied the Blockchain ID (not Subnet ID).
  • Confirm you’re inside the correct container (the one actually running your L1).
  • If your AvalancheGo container mounts config from the host, the chain configs may live on the host filesystem; in that case, edit the host-side mounted directory.

Next Steps

Next, you’ll create upgrade.json entries that disable txAllowListConfig and contractDeployerAllowListConfig.

Is this guide helpful?