# Lausanne (v2.3.0-bkc)

## Before Upgrading

* This upgrade may involve some downtime. Please ensure you have a maintenance plan in place **before proceeding** with the following upgrade instructions.
* During the upgrade, your Geth (go-ethereum) node will be temporarily unavailable to the KUB network.
* After upgrading to the new version, your node may take approximately **5 to 15 minutes** to resynchronize with the latest blockchain information.
* We **strongly recommend** creating a disk snapshot **before upgrading** to prevent any potential data loss during the process.

## Instructions

Ensure the Geth node is fully stopped before proceeding with the upgrade

```bash
systemctl stop geth
```

Download and extract the Geth v2.3.0 binary from the official GitHub releases

```bash
wget https://github.com/kub-chain/bkc/releases/download/v2.3.0-bkc/geth2.3.0.linux-amd64.tar.gz
tar -xvf ./geth2.3.0.linux-amd64.tar.gz -c /usr/bin/
```

Grant the necessary execution permissions to the downloaded binary

```bash
sudo chmod +x /usr/bin/geth
```

Confirm that the correct version has been installed

```shellscript
/usr/bin/geth version
```

The expected output must be: `v2.3.0-bkc`

```shellscript
Geth
Version: 2.3.0-bkc-stable
Git Commit: ccc47eed26444e7fc262705fd1c3561119da1664 # This may be different
Git Commit Date: 20250506 # This may be different
...
```

Retrieve the latest `genesis.json` via the following command

```bash
wget https://raw.githubusercontent.com/kub-chain/bkc-node/main/mainnet/genesis.json
```

Verify that the downloaded file contains the required hard fork configuration

```bash
cat ./genesis.json
```

The output should contain the following field:

<pre class="language-json"><code class="lang-json">{
  ...
  "lausanneBlock": &#x3C;hard-fork-block>,
  ...
<strong>}
</strong></code></pre>

Apply the new `genesis.json`

```bash
/usr/bin/geth --datadir /bkc-node/mainnet/data init ./genesis.json
```

{% hint style="warning" %}
The data directory path used in the guide may differ from your actual environment. Verify your data directory path before executing any command and substitute it accordingly.
{% endhint %}

Start the Geth service to resume normal operation

```bash
systemctl start geth
```

Monitor the output logs to confirm the node has started successfully and is operating as expected

```bash
journalctl -fu geth
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kubchain.com/node-upgrade-instruction/lausanne-v2.3.0-bkc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
