> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.12.3

<Warning>
  Please do not proceed until Monad Foundation provides notice.
</Warning>

## Instructions for node operators

### 1. SSH into the node as `monad` user

### 2. Upgrade monad package

<Tabs>
  <Tab title="Mainnet">
    ```bash theme={null}
    sudo apt update && sudo apt install --reinstall monad=0.12.3 -y --allow-downgrades --allow-change-held-packages
    ```
  </Tab>

  <Tab title="Testnet">
    ```bash theme={null}
    sudo apt update && sudo apt install --reinstall monad=0.12.3~rc.2 -y --allow-downgrades --allow-change-held-packages
    ```
  </Tab>
</Tabs>

### 3. Restart the services and verify

```bash theme={null}
sudo systemctl restart monad-bft monad-execution monad-rpc
sudo systemctl status monad-bft monad-execution monad-rpc --no-pager -l
```

Expected output: All services should show `Active: active (running)`

### 4. Verify the correct version is running

```bash theme={null}
monad-rpc --version
```

Expected output:

<Tabs>
  <Tab title="Mainnet">
    ```json theme={null}
    monad-rpc {"commit":"6323f3fcaf067c18884e3ffe72a22fb1a8d0216a","tag":"v0.12.3","branch":"","modified":true}
    ```
  </Tab>

  <Tab title="Testnet">
    ```json theme={null}
    monad-rpc {"commit":"6323f3fcaf067c18884e3ffe72a22fb1a8d0216a","tag":"","branch":"","modified":true}
    ```
  </Tab>
</Tabs>

## Patch notes

Please refer to the public changelog for [`v0.12.3`](/developer-essentials/changelog/releases#v0123).

### Important updates for node operators

* **\[Node ops]** Add `--root-offsets-chunk-count` flag to `monad-mpt` to configure the number of chunks allocated for root offsets
  * Each chunk holds approximately 16.5M blocks. Previously, all nodes were hardcoded to use 2 chunks (max TrieDB capacity of \~33M blocks)
  * New default: 16 **must be a power of 2**
  * Note that the default value of 16 translates to approximately 268M blocks \~ 1240 days. In most cases the limiting factor is disk capacity which will auto-compact when filled to 80%
  * Ref: [monad PR #1937](https://github.com/category-labs/monad/pull/1937)
* **\[RPC / Node ops]** Allow RPC to run without `monad-bft`
  * Enables standalone RPC operation for improved deployment flexibility
  * Ref: [monad-bft PR #2613](https://github.com/category-labs/monad-bft/pull/2613)
* **\[RPC]** [EIP-7966](https://eips.ethereum.org/EIPS/eip-7966) (`eth_sendRawTransactionSync`) support
  * Ref: [monad-bft PR #2542](https://github.com/category-labs/monad-bft/pull/2542)
* **\[Node ops / Archive]** Archive infrastructure improvements
  * Refactor `monad-block-writer` for improved reliability with `--max-blocks-per-iter` configuration
  * Async backfill with traces-only archive support
  * Add `require-traces` archiver flag and indexer fallback source
  * Support for historical execution event archiving with generic directory archiving
  * **Potentially breaking: Remove `--start-block` from `monad-archiver` systemd service; operators must use imperative CLI to set start block**
    * Example: `monad-archiver set-start-block --block 1000000 --archive-sink s3://bucket-name/path`
    * Use `--async-backfill` flag to set the async-backfill marker instead of primary marker
  * Ref: [monad-bft PR #2610](https://github.com/category-labs/monad-bft/pull/2610), [monad-bft PR #2606](https://github.com/category-labs/monad-bft/pull/2606), [monad-bft PR #2598](https://github.com/category-labs/monad-bft/pull/2598), [monad-bft PR #2514](https://github.com/category-labs/monad-bft/pull/2514), [monad-bft PR #2612](https://github.com/category-labs/monad-bft/pull/2612), [monad-bft PR #2569](https://github.com/category-labs/monad-bft/pull/2569), [monad-bft PR #2623](https://github.com/category-labs/monad-bft/pull/2623)
* **\[Node ops]** Networking configuration updates
  * Use default MTU 1500
  * Add HDR histogram for broadcast latency tracking in `monad-executor` and `monad-raptorcast`
  * Ref: [monad-bft PR #2576](https://github.com/category-labs/monad-bft/pull/2576), [monad-bft PR #2602](https://github.com/category-labs/monad-bft/pull/2602)
* **\[Consensus]** *Opt-in* Wire authentication protocol for UDP
  * Node operator instructions to be provided in the future
  * Includes replay window adjustments for improved reliability
  * Ref: [monad-bft PR #2417](https://github.com/category-labs/monad-bft/pull/2417), [monad-bft PR #2544](https://github.com/category-labs/monad-bft/pull/2544), [monad-bft PR #2626](https://github.com/category-labs/monad-bft/pull/2626), [monad-bft PR #2091](https://github.com/category-labs/monad-bft/pull/2091)
