> For the complete documentation index, see [llms.txt](https://ibvm.gitbook.io/ibvm-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ibvm.gitbook.io/ibvm-doc/technical-documentation/ibvm-node-installation-and-operations-guide.md).

# IBVM Node Installation & Operations Guide

## Overview

IBVM (International Bitcoin Virtual Machine) is a Bitcoin Layer-2 blockchain that provides EVM compatibility, fast transaction processing, and scalable smart contract execution while leveraging Bitcoin's security model. IBVM supports Solidity smart contracts and standard Ethereum development tools.

This guide explains how to install, configure, operate, and maintain an IBVM node.

## Network Information

| Parameter          | Value                                                       |
| ------------------ | ----------------------------------------------------------- |
| Network Name       | IBVM Mainnet                                                |
| Blockchain Type    | Bitcoin Layer 2                                             |
| Virtual Machine    | EVM Compatible                                              |
| Smart Contracts    | Solidity Compatible                                         |
| Native Token       | IBVM                                                        |
| Decimals           | 18                                                          |
| Average Block Time | 2 Seconds                                                   |
| Explorer           | [https://ibvmscan.io](https://ibvmscan.io/)                 |
| Documentation      | <https://ibvm.gitbook.io/ibvm-doc>                          |
| Mainnet RPC        | [https://rpc-mainnet.ibvm.io](https://rpc-mainnet.ibvm.io/) |
| GitHub             | <https://github.com/IBVM-official>                          |
| Support            | <support@ibvm.io>                                           |

## Hardware Requirements

### Full Node

| Component | Minimum          |
| --------- | ---------------- |
| CPU       | 4 Cores          |
| RAM       | 8 GB             |
| Storage   | 100 GB SSD       |
| Network   | 100 Mbps         |
| OS        | Ubuntu 22.04 LTS |

### Archive Node

| Component | Minimum    |
| --------- | ---------- |
| CPU       | 8 Cores    |
| RAM       | 16 GB      |
| Storage   | 500 GB SSD |
| Network   | 100 Mbps   |

Supported Operating Systems

* Ubuntu 20.04 LTS
* Ubuntu 22.04 LTS
* Debian 11+
* Rocky Linux 8+
* AlmaLinux 8+

Ubuntu 22.04 LTS is recommended.

## Install Dependencies

Update packages:

sudo apt update

sudo apt upgrade -y

<br>

Install required utilities:

sudo apt install curl wget unzip git screen tmux build-essential -y

<br>

Verify installation:

git --version

wget --version

<br>

## Download IBVM Node Software

Clone the official repository: git clone <https://github.com/IBVM-official>

Move into repository: cd IBVM-official

Follow build instructions provided within the repository.

## Create Node Directories

Full Node: mkdir -p \~/ibvm/fullnode

Archive Node: mkdir -p \~/ibvm/archive

## Initialize Chain

Download official genesis file.

Example: wget <https://rpc-mainnet.ibvm.io/genesis.json>

Initialize Full Node: geth init --datadir \~/ibvm/fullnode genesis.json

Initialize Archive Node: geth init --datadir \~/ibvm/archive genesis.json

## Start Full Node

geth \\

\--datadir \~/ibvm/fullnode \\

\--syncmode=full \\

\--http \\

\--http.addr 0.0.0.0 \\

\--http.port 8545 \\

\--http.api eth,net,web3,debug,txpool \\

\--ws \\

\--ws.addr 0.0.0.0 \\

\--ws.port 8546 \\

\--ws.api eth,net,web3,debug,txpool \\

\--cache 4096

## Start Archive Node

geth \\

\--datadir \~/ibvm/archive \\

\--syncmode=full \\

\--gcmode=archive \\

\--http \\

\--http.addr 0.0.0.0 \\

\--http.port 8545 \\

\--http.api eth,net,web3,debug,txpool \\

\--ws \\

\--ws.addr 0.0.0.0 \\

\--ws.port 8546 \\

\--ws.api eth,net,web3,debug,txpool \\

\--cache 4096

## Running IBVM as a Service

Create service file: sudo nano /etc/systemd/system/ibvm.service

Service configuration:

\[Unit]

Description=IBVM Node

After=network.target

<br>

\[Service]

User=root

Type=simple

ExecStart=/usr/local/bin/geth \\

\--datadir /root/ibvm/fullnode \\

\--syncmode full \\

\--http \\

\--http.addr 0.0.0.0 \\

\--http.port 8545 \\

\--http.api eth,net,web3,debug,txpool

<br>

Restart=always

RestartSec=5

<br>

\[Install]

WantedBy=multi-user.target

<br>

Enable:

sudo systemctl daemon-reload

sudo systemctl enable ibvm

sudo systemctl start ibvm

<br>

Check status: sudo systemctl status ibvm

Logs: journalctl -u ibvm -f

## Synchronization Status

Attach console: geth attach <http://localhost:8545>

Current block: eth.blockNumber

Peer count: net.peerCount

Sync status: eth.syncing

If output returns: false

The node is fully synchronized.

## Snapshot Installation

To accelerate synchronization: wget <https://snapshots.ibvm.io/latest.tar.gz>

Extract: tar -xvf latest.tar.gz

Move chain data: mv chaindata \~/ibvm/fullnode/geth/

Start node normally.

## External Storage Configuration

Create mount point: sudo mkdir /mnt/gethdata

Mount drive: sudo mount /dev/sdb /mnt/gethdata

Move blockchain data:

sudo systemctl stop ibvm

mv \~/ibvm/archive/\* /mnt/gethdata/

Restart node using: --datadir /mnt/gethdata

## Storage Requirements

Current estimates:

| Duration  | Full Node | Archive Node |
| --------- | --------- | ------------ |
| 3 Months  | 30-40 GB  | 100-120 GB   |
| 6 Months  | 50-70 GB  | 180-220 GB   |
| 12 Months | 100+ GB   | 400+ GB      |

Actual usage depends on network activity.

## Removing Internal Transactions

Archive node operators can remove tracing data:

geth removedb --datadir /mnt/gethdata --internal

This removes internal transaction history while preserving blockchain state.

Always create backups first.

## Backup Procedure

Stop node: sudo systemctl stop ibvm

Create backup: tar -czvf ibvm-backup.tar.gz \~/ibvm

Store backups securely.

## Firewall Configuration

Allow P2P:

sudo ufw allow 30303/tcp

sudo ufw allow 30303/udp

<br>

Allow RPC: sudo ufw allow 8545/tcp

Allow WebSocket: sudo ufw allow 8546/tcp

Enable firewall: sudo ufw enable

<br>

## RPC Endpoints

Mainnet RPC: [https://rpc-mainnet.ibvm.io](https://rpc-mainnet.ibvm.io/)

Example Local RPC: <http://SERVER\\_IP:8545>

WebSocket: ws\://SERVER\_IP:8546

## Common JSON-RPC Methods

Current Block: eth\_blockNumber

Balance: eth\_getBalance

<br>

Transaction Receipt: eth\_getTransactionReceipt

Transaction Details: eth\_getTransactionByHash

Gas Price: eth\_gasPrice

## Address Format

IBVM follows Ethereum-compatible addresses.

Format: 0x + 40 hexadecimal characters

Example:  0x1234567890abcdef1234567890abcdef12345678

Length: 42 characters

Checksum: EIP-55 compatible.

## Security Recommendations

* Restrict RPC access using firewall rules.
* Never expose admin APIs publicly.
* Use HTTPS reverse proxy for public RPC nodes.
* Regularly update node software.
* Backup node data frequently.
* Monitor disk growth and peer count.
* Use dedicated infrastructure for production services.

***

## Official Resources

Documentation: <https://ibvm.gitbook.io/ibvm-doc>

Explorer: [https://ibvmscan.io](https://ibvmscan.io/)

Mainnet RPC: [https://rpc-mainnet.ibvm.io](https://rpc-mainnet.ibvm.io/)

GitHub: <https://github.com/IBVM-official>

Website: [https://ibvm.io](https://ibvm.io/)

Support: <support@ibvm.io>

## About IBVM

IBVM (International Bitcoin Virtual Machine) is a Bitcoin Layer-2 solution that combines Bitcoin security with EVM-compatible smart contract functionality, enabling scalable decentralized applications, DeFi protocols, and enterprise blockchain infrastructure.

Copyright © IBVM Pty Ltd.\
All Rights Reserved.

<br>
