# Running Full Node

**Requirements:** Before starting the installation, make sure your computer meets the following requirements:

1. Stable internet connection.
2. Adequate storage space to store the blockchain.
3. Supported operating system (Linux, Windows, or macOS).
4. Basic knowledge of terminal/command prompt.
5. Availability of Ethereum software.

**Hardware Requirements:**

| System Requirement       | Minimum Specification | Recommended Specification                                   |
| ------------------------ | --------------------- | ----------------------------------------------------------- |
| Processor (CPU)          | Multi-core, 2.0 GHz   | Multi-core, 3.0 GHz or higher                               |
| Memory (RAM)             | 8 GB                  | 16 GB or more                                               |
| Storage (HDD/SSD)        | 500 GB HDD or SSD     | 1 TB SSD or larger                                          |
| Internet Connection      | Stable, high-speed    | Fiber optic or cable internet recommended                   |
| Operating System         | Linux, Windows, macOS | Linux (Ubuntu, CentOS), Windows 10, macOS Catalina or later |
| Ethereum Client Software | Geth                  | Latest stable version                                       |

**List of Nodes:**

Copy

```
enode://8a269edae780ddf45cdaa4a1fbd567b464586fe588fd07b741d1a2cd31cc6ec57f7fe4e02532164a7a6bc48460b5a1da8bac4a9cf0510c1d04529d00f30d1a24@127.0.0.1:0?discport=30310
```

**Installing Ethereum:**

***Linux**:* To install Ethereum on Linux, follow these steps:

1. Open the terminal.
2. Add the Ethereum repository with the command:

   Copy

   ```
   sudo add-apt-repository -y ppa:ethereum/ethereum
   ```
3. Update the package list:

   Copy

   ```
   sudo apt-get update
   ```
4. Install Ethereum:

   Copy

   ```
   sudo apt-get install ethereum
   ```

***Windows**:* Installing Ethereum on Windows requires a few additional steps. You can download the Ethereum installer from the official Ethereum website, then follow the provided installation guide.

***macOS**:* Installing Ethereum on macOS can be done using Homebrew. Follow these steps:

1. Open Terminal.
2. Install Homebrew (if not installed already):

   Copy

   ```
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
   ```
3. Install Ethereum with Homebrew:

   Copy

   ```
   brew tap ethereum/ethereum
   brew install ethereum
   ```

**Running Full Node:**

Once you have successfully installed Ethereum, follow these steps to run a full node:

1. Open a terminal or command prompt.
2. Start the Ethereum node by running the following command:

   Copy

   ```
   export DEEPN_ADDRESS="your deepn wallet address"
   export DEEPN_PASSWORD="deepn wallet password"

   geth \
       --datadir deepN-node \                                 # Specifies the data directory for the node
       --port 30306 \                                         # Sets the port for P2P communication
       --bootnodes "enode://..." \                            # Specifies the boot node(s) for network discovery
       --networkid 222555 \                                   # Sets the network identifier
       --unlock $DEEPN_ADDRESS \                              # Unlocks the specified account for transaction signing
       --password $DEEPN_PASSWORD \                           # Specifies the password file to unlock the account
       --authrpc.port 8551 \                                  # Sets the port for RPC authentication
       --mine \                                                # Enables mining
       --miner.etherbase $DEEPN_ADDRESS \                     # Sets the mining reward address
       --http \                                                # Enables the HTTP-RPC server
       --http.port 2225 \                                     # Sets the port for the HTTP-RPC server
       --http.addr 0.0.0.0 \                                  # Sets the HTTP-RPC server address to listen on all interfaces
       --http.vhosts "*" \                                    # Sets the allowed virtual hosts for the HTTP-RPC server
       --http.corsdomain "*" \                                # Sets the CORS domain for the HTTP-RPC server
       --http.api "clique,debug,eth,net,txpool" \             # Sets the enabled HTTP-RPC APIs
       --allow-insecure-unlock console                        # Allows insecure unlocking of the account and starts the JavaScript console
   ```

   1. `export DEEPN_ADDRESS="your deepN wallet address"`: This line sets an environment variable **Requirements:** Before starting the installation, make sure your computer meets the following requirements:

      1. Stable internet connection.
      2. Adequate storage space to store the blockchain.
      3. Supported operating system (Linux, Windows, or macOS).
      4. Basic knowledge of terminal/command prompt.
      5. Availability of Ethereum software.

      **Hardware Requirements:**

      | System Requirement       | Minimum Specification | Recommended Specification                                   |
      | ------------------------ | --------------------- | ----------------------------------------------------------- |
      | Processor (CPU)          | Multi-core, 2.0 GHz   | Multi-core, 3.0 GHz or higher                               |
      | Memory (RAM)             | 8 GB                  | 16 GB or more                                               |
      | Storage (HDD/SSD)        | 500 GB HDD or SSD     | 1 TB SSD or larger                                          |
      | Internet Connection      | Stable, high-speed    | Fiber optic or cable internet recommended                   |
      | Operating System         | Linux, Windows, macOS | Linux (Ubuntu, CentOS), Windows 10, macOS Catalina or later |
      | Ethereum Client Software | Geth                  | Latest stable version                                       |

      **List of Nodes:**

      Copy

      ```
      enode://8a269edae780ddf45cdaa4a1fbd567b464586fe588fd07b741d1a2cd31cc6ec57f7fe4e02532164a7a6bc48460b5a1da8bac4a9cf0510c1d04529d00f30d1a24@127.0.0.1:0?discport=30310
      ```

      **Installing Ethereum:**

      ***Linux**:* To install Ethereum on Linux, follow these steps:

      1. Open the terminal.
      2. Add the Ethereum repository with the command:

         Copy

         ```
         sudo add-apt-repository -y ppa:ethereum/ethereum
         ```
      3. Update the package list:

         Copy

         ```
         sudo apt-get update
         ```
      4. Install Ethereum:

         Copy

         ```
         sudo apt-get install ethereum
         ```

      ***Windows**:* Installing Ethereum on Windows requires a few additional steps. You can download the Ethereum installer from the official Ethereum website, then follow the provided installation guide.

      ***macOS**:* Installing Ethereum on macOS can be done using Homebrew. Follow these steps:

      1. Open Terminal.
      2. Install Homebrew (if not installed already):

         Copy

         ```
         /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
         ```
      3. Install Ethereum with Homebrew:

         Copy

         ```
         brew tap ethereum/ethereum
         brew install ethereum
         ```

      **Running Full Node:**

      Once you have successfully installed Ethereum, follow these steps to run a full node:

      1. Open a terminal or command prompt.
      2. Start the Ethereum node by running the following command:

         Copy

         ```
         export DEEPN_ADDRESS="your deepn wallet address"
         export DEEPN_PASSWORD="deepn wallet password"

         geth \
             --datadir deepn-node \                                 # Specifies the data directory for the node
             --port 30306 \                                         # Sets the port for P2P communication
             --bootnodes "enode://..." \                            # Specifies the boot node(s) for network discovery
             --networkid 222555 \                                   # Sets the network identifier
             --unlock $DEEPN_ADDRESS \                              # Unlocks the specified account for transaction signing
             --password $DEEPN_PASSWORD \                           # Specifies the password file to unlock the account
             --authrpc.port 8551 \                                  # Sets the port for RPC authentication
             --mine \                                                # Enables mining
             --miner.etherbase $DEEPN_ADDRESS \                     # Sets the mining reward address
             --http \                                                # Enables the HTTP-RPC server
             --http.port 2225 \                                     # Sets the port for the HTTP-RPC server
             --http.addr 0.0.0.0 \                                  # Sets the HTTP-RPC server address to listen on all interfaces
             --http.vhosts "*" \                                    # Sets the allowed virtual hosts for the HTTP-RPC server
             --http.corsdomain "*" \                                # Sets the CORS domain for the HTTP-RPC server
             --http.api "clique,debug,eth,net,txpool" \             # Sets the enabled HTTP-RPC APIs
             --allow-insecure-unlock console                        # Allows insecure unlocking of the account and starts the JavaScript console
         ```

         1. `export DEEPN_ADDRESS="your deepn wallet address"`: This line sets an environment variable `DEEPN_ADDRESS` to store the Ethereum wallet address. Replace `"your deepn wallet address"` with your actual Ethereum wallet address.
         2. `export DEEPN_PASSWORD="deepn wallet password"`: This line sets an environment variable `DEEPN_PASSWORD` to store the password for the Ethereum wallet. Replace `"deepn wallet password"` with your actual wallet password.
         3. `geth`: This is the command-line tool for running Ethereum nodes.
         4. `--datadir deepn-node`: Specifies the data directory for the node where blockchain data will be stored. Replace `"deepn-node"` with the desired directory path.
         5. `--port 30306`: Sets the port for P2P communication. Ethereum nodes communicate with each other through this port.
         6. `--bootnodes "enode://..."`: Specifies the boot node(s) for network discovery. Boot nodes help new nodes join the network by providing them with information about other peers.
         7. `--networkid 222555`: Sets the network identifier. Nodes with the same network ID will only connect to each other.
         8. `--unlock $DEEPN_ADDRESS`: Unlocks the specified account for transaction signing. It uses the wallet address stored in the `DEEPN_ADDRESS` environment variable.
         9. `--password $DEEPN_PASSWORD`: Specifies the password file to unlock the account. It uses the password stored in the `DEEPN_PASSWORD` environment variable.
         10. `--authrpc.port 8551`: Sets the port for RPC authentication. This port is used for authenticating RPC requests.
         11. `--mine`: Enables mining. The node will attempt to create new blocks and add them to the blockchain.
         12. `--miner.etherbase $DEEPN_ADDRESS`: Sets the mining reward address. Mining rewards will be sent to the address specified in the `DEEPN_ADDRESS` environment variable.
         13. `--http`: Enables the HTTP-RPC server. This allows interaction with the node via HTTP requests.
         14. `--http.port 2225`: Sets the port for the HTTP-RPC server. HTTP requests to interact with the node will be served on this port.
         15. `--http.addr 0.0.0.0`: Sets the HTTP-RPC server address to listen on all interfaces. Allows external connections to the HTTP-RPC server.
         16. `--http.vhosts "*"`: Sets the allowed virtual hosts for the HTTP-RPC server. All hosts are allowed.
         17. `--http.corsdomain "*"`: Sets the CORS domain for the HTTP-RPC server. Allows cross-origin requests from any domain.
         18. `--http.api "clique,debug,eth,net,txpool"`: Sets the enabled HTTP-RPC APIs. Specifies the APIs that can be accessed via HTTP-RPC.
         19. `--allow-insecure-unlock console`: Allows insecure unlocking of the account and starts the JavaScript console. This parameter is used when unlocking an account for mining. However, it's important to note that using insecure unlock methods can pose security risks and should be used with caution, especially in production environments.
      3. The node will start synchronizing the blockchain. This process may take some time depending on your internet connection speed and the current size of the blockchain.
      4. Once synchronization is complete, your Ethereum node is ready to use. You can interact with the node through the RPC interface you activated earlier.

      Be sure to refer to the official Ethereum documentation for further information on configuring and using your Ethereum node.`_ADDRESS` to store the Ethereum wallet address. Replace `"your deepn wallet address"` with your actual Ethereum wallet address.
   2. `export DEEPN_PASSWORD="deepn wallet password"`: This line sets an environment variable `DEEPN_PASSWORD` to store the password for the Ethereum wallet. Replace `"deepn wallet password"` with your actual wallet password.
   3. `geth`: This is the command-line tool for running Ethereum nodes.
   4. `--datadir deepn-node`: Specifies the data directory for the node where blockchain data will be stored. Replace `"deepn-node"` with the desired directory path.
   5. `--port 30306`: Sets the port for P2P communication. Ethereum nodes communicate with each other through this port.
   6. `--bootnodes "enode://..."`: Specifies the boot node(s) for network discovery. Boot nodes help new nodes join the network by providing them with information about other peers.
   7. `--networkid 222555`: Sets the network identifier. Nodes with the same network ID will only connect to each other.
   8. `--unlock $DEEPN_ADDRESS`: Unlocks the specified account for transaction signing. It uses the wallet address stored in the `DEEPN_ADDRESS` environment variable.
   9. `--password $DEEPN_PASSWORD`: Specifies the password file to unlock the account. It uses the password stored in the `DEEPN_PASSWORD` environment variable.
   10. `--authrpc.port 8551`: Sets the port for RPC authentication. This port is used for authenticating RPC requests.
   11. `--mine`: Enables mining. The node will attempt to create new blocks and add them to the blockchain.
   12. `--miner.etherbase $DEEPN_ADDRESS`: Sets the mining reward address. Mining rewards will be sent to the address specified in the `DEEPN_ADDRESS` environment variable.
   13. `--http`: Enables the HTTP-RPC server. This allows interaction with the node via HTTP requests.
   14. `--http.port 2225`: Sets the port for the HTTP-RPC server. HTTP requests to interact with the node will be served on this port.
   15. `--http.addr 0.0.0.0`: Sets the HTTP-RPC server address to listen on all interfaces. Allows external connections to the HTTP-RPC server.
   16. `--http.vhosts "*"`: Sets the allowed virtual hosts for the HTTP-RPC server. All hosts are allowed.
   17. `--http.corsdomain "*"`: Sets the CORS domain for the HTTP-RPC server. Allows cross-origin requests from any domain.
   18. `--http.api "clique,debug,eth,net,txpool"`: Sets the enabled HTTP-RPC APIs. Specifies the APIs that can be accessed via HTTP-RPC.
   19. `--allow-insecure-unlock console`: Allows insecure unlocking of the account and starts the JavaScript console. This parameter is used when unlocking an account for mining. However, it's important to note that using insecure unlock methods can pose security risks and should be used with caution, especially in production environments.
3. The node will start synchronizing the blockchain. This process may take some time depending on your internet connection speed and the current size of the blockchain.
4. Once synchronization is complete, your Ethereum node is ready to use. You can interact with the node through the RPC interface you activated earlier.

Be sure to refer to the official Ethereum documentation for further information on configuring and using your Ethereum node.
