# Create a N1PC node

## Prerequisites

* A server or local machine with a recent version of Linux (Ubuntu 20.04 LTS recommended).
* A user with sudo privileges.
* Basic knowledge of terminal and command line.

## **Install git**

First, ensure Git is installed on your system to clone the N1PC repository:

```bash
sudo apt-get update
sudo apt-get install git
```

## **Setup firewall**

Configure your firewall to secure the node:

```bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 26656/tcp
sudo ufw allow 26660/tcp
sudo ufw allow 26657/tcp
sudo ufw allow 9090/tcp
sudo ufw allow 1317/tcp
sudo ufw enable
```

## **Clone n1pc repository**

Clone the repository to obtain the necessary files:

```bash
git clone  https://github.com/noone-dev-1/n1pc.git
```

## **Initialize the Node**

Navigate to the N1PC directory and initialize your node with a unique name and the network's chain ID:

```bash
cd n1pc
tar -xzvf linux-amd64.tar.gz
chmod +x n1pcd
./n1pcd init your-node-name --chain-id n1pc
```

Running the init command will create a `~/.n1pc` folder with config files. In the next steps, we will configure our node so it can connect to other nodes.

### **Make n1pcd Executable System-wide**

To ensure `n1pcd` can be run from anywhere:

```bash
nano ~/.bashrc
```

Add the following line at the end of the file:

```bash
export PATH=$PATH:<path-to-n1pc-folder-from-step-3>
```

Save and exit, then apply the changes:

```bash
source ~/.bashrc
```

## **Configure node**

Adjust the node's configuration to connect to the network:

```bash
cd ~/.n1pc/config
nano config.toml
```

```toml
# Modify the following
[p2p]
external_address = "<your-ip-address>:26656"

persistent_peers = "d81ba83695a4704c6f9333e38a693e1543b0dc40@n1pc.no-one.io:26656"
```

```bash
nano app.toml
```

```toml
# modify the following
minimum-gas-prices = "0.25noone,0.0001stake"
```

**Copy the Genesis file**

Ensure the node is configured with the correct genesis file:

```bash
cd ~/.n1pc/config

cp <path-to-n1pc-folder>/genesis.json .
```

## **Run the Node**

Start your node to begin syncing with the network:

```bash
n1pcd start
```

Once you start the node, it will begin syncing with other nodes. It takes some time to sync all blocks.


---

# 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://no-one.gitbook.io/n1pc/create-a-n1pc-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.
