Workstation Setup

Before you can run your Solana Localnet with Hayek Validator Kit, you must prepare your local workstation.

Hardware Requirements

To successfully run and manage a Localnet in your workstation, your workstation should be considered a good development machine. That means:

  • CPU: Apple Silicon, AMD, Intel Core i5+

  • Memory: 16GB+

  • OS: Ubuntu 24+, macOS 15+, Windows 10+

Software Requirements

In addition to having a decent workstation, you must also have installed the following software:

  • Docker Desktop 4.41+

  • VSCode or Cursor

Ansible User Config

Depending on your preferred use of ZSH or BASH on your host, you will need the following environment config file:

# for zsh
cat ~/.zshenv 

# for bash
cat ~/.bashrc

... and check that it looks like this:

. "$HOME/.cargo/env"
export ANSIBLE_REMOTE_USER=michel
export SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"

If it doesn't exist or it doesn't look like this, you'll need to setup the default Ansible user as an environment variable. This user will be the one connecting to the Ansible Control node and used to run all Ansible commands. Replace <your_ansible_user> with your actual Ansible user from the server-setup provisioned users.

Depending on what your host shell is, run:

# For zsh (used in recent versions of macOS)
echo 'export ANSIBLE_REMOTE_USER=<your_ansible_user>' >> ~/.zshenv

# For bash
echo 'export ANSIBLE_REMOTE_USER=<your_ansible_user>' >> ~/.bashrc

After you complete your Ansible user setup, please check again using the previous commands.

SSH Access

You will need an ssh key to ssh into the nodes on Localnet. The recommended approach is that you create and manage your keys directly on 1Password, Keeper or similar password managers.

SSH key in 1Password

If you have your ssh key stored in 1Password, run the line corresponding to your preferred host shell:

# For zsh
echo 'export SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"' >> ~/.zshenv

# For bash
echo 'export SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"' >> ~/.bashrc

SSH key stored locally

If you have your ssh key already stored locally in your host machine, run the line corresponding to your preferred host shell:

# For ED25519 keys
ssh-add ~/.ssh/id_ed25519

# For RSA keys
ssh-add ~/.ssh/id_rsa

No SSH Keys

If you don't have an ssh key and you don't want to use 1Password, then you must generate a new keypair for ssh access like this:

ssh-keygen -t ed25519
# output will go to ~/.ssh/id_ed25519 and ~/.ssh/id_ed25519.pub

cat ~/.ssh/id_ed25519.pub # print the public key to the console
# copy the public key to paste later on the remote validator machine

Environment Checkup

Fully close and reopen your terminal. Yes, do it. Yes. Do. It. Please.

If you are working through your IDE (VS Code or Cursor), fully close and reopen your IDE (not just the project) and check the following:

  • Running echo $ANSIBLE_REMOTE_USER in your IDE terminal prints your ansible user

  • Running echo $SSH_AUTH_SOCK in your IDE terminal prints:

    • When not using ssh key stored in 1Password, you should see something like /private/tmp/com.apple.launchd.MPKIACDzzx/Listeners

    • When using ssh key stored in 1Password, you should see something like /Users/<your_user>/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock

You should now be ready to start the cluster.

Last updated

Was this helpful?