# Mainnet Normal Node

## Build dependencies

Installing dependencies and setting things up are required to run a node, please check out [Build dependencies](#build-dependencies) if you have not done.

## Run a node

You can run your read node using [go-u2u](https://github.com/unicornultrafoundation/go-u2u) repository, branch `stable`.

**Note that https and ws must not be enabled on a server that stores wallet account.**

```bash
# Install go-u2u
$ git clone https://github.com/unicornultrafoundation/go-u2u.git
$ cd go-u2u/
$ git checkout stable
$ make
```

Validate your go-u2u installation:

```bash
$./build/u2u help

VERSION:
    x.x.x-rc.x
```

### **Running with mainnet genesis file**

You may use no-history genesis file and sync with `--syncmode snap`.

```bash
# Start u2u node
$ cd build/
$ wget https://github.com/unicornultrafoundation/u2u-genesis/raw/main/mainnet.g
$ nohup ./u2u --genesis mainnet.g --genesis.allowExperimental --syncmode snap &
```

Snapsync will sync much faster. Once it's fully synced, it will automatically switch to the full sync mode.

### **Syncing progress**

Once it's run, you should wait till it's synced up to the latest block before proceeding to the next step.

You may query the latest block number of your node:

```
$ ./u2u attach --exec u2u.blockNumber
```

Then you can compare with the latest block shown on the explorer ([u2uscan.xyz](https://u2uscan.xyz/)).

For trouble shooting your node, please check [this](/network/troubleshooting.md).


---

# 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.u2u.xyz/network/run-normal-node/mainnet-normal-node.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.
