> For the complete documentation index, see [llms.txt](https://docs.x1.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.x1.xyz/validating/network-upgrades/validator-restart.md).

# Validator restart

How to stop, start, and verify your X1 validator.

## Update Binary (if new version)

```bash
cd ~/tachyon
git fetch origin
git checkout v4.0
git pull
cargo build --release
~/tachyon/target/release/tachyon-validator --version
```

Confirm the `feat:` value in that output matches the cluster's `feature-set`:

{% code overflow="wrap" %}

```bash
curl -s $RPC_URL -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"getVersion"}'
```

{% endcode %}

{% hint style="warning" %}
Upgrading to v4.0 is not a drop-in binary swap. v4.0 removed several long-deprecated validator arguments, and the validator will refuse to start if your startup script still passes any of them.
{% endhint %}

Check your startup script before you restart:

{% code overflow="wrap" %}

```bash
grep -nE -- '--(gossip-host|tpu-disable-quic|tpu-enable-udp|tpu-coalesce-ms|cuda|dev-halt-at-slot|accounts-hash-cache-path|accounts-db-clean-threads|accounts-db-hash-threads|accounts-db-read-cache-limit-mb|disable-accounts-disk-index|transaction-structure)|blockstore-processor' $HOME/bin/validator.sh
```

{% endcode %}

No output means your script is fine. If it matches, fix it before restarting:

| Argument found                                     | Do this instead                                                   |
| -------------------------------------------------- | ----------------------------------------------------------------- |
| `--gossip-host`                                    | Use `--bind-address`                                              |
| `--block-verification-method blockstore-processor` | Remove it, or use `--block-verification-method unified-scheduler` |
| Anything else the grep matched                     | Remove it — all are no-ops that v4.0 deleted                      |

## Wait for Safe Restart Window

```bash
tachyon-validator --ledger ~/ledger wait-for-restart-window --min-idle-time 10
```

## Stop

```bash
tachyon-validator exit -f
```

## Start

```bash
nohup ~/bin/validator.sh &
```

## Verify

```bash
ps aux | grep tachyon-validator | grep -v grep
tail -f ~/validator.log
solana catchup ~/.config/solana/identity.json --our-localhost
solana validators | grep $(solana address -k ~/.config/solana/identity.json)
```
