Deploy V Systems Full Node

Preparation

Hardware

In current stage, the standard hardware requirement is VPS with 2 CPU, 16GB of RAM.

The recommend requirement is Amazon Web Services (AWS) i3 large.

Software

Operating System

All Java 1.8 and Python runnable operating system are supported (including Ubuntu, CentOS, MacOS, Windows etc.).

The recommended operating system is Ubuntu 16.04 LTS (or above).

In this instruction, we'll take Ubuntu 16.04 for instance.

Service installation

First of all, update the repository

$ sudo apt-get update

Install Java in your machine

$ sudo apt-get install openjdk-8-jdk

Check Java version (remove the old version Java if needed).

$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

Install Scala Build Tool (SBT) if you want to compile v systems node project

$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
$ sudo apt-get update
$ sudo apt-get install sbt

Install Unzip and Git if your machine do not have this tool.

$ sudo apt-get install unzip
$ sudo apt-get install git-core

Start V Systems full node

Step 1: Prepare

There is two ways to prepare to node program file. Choose the solution as you want.

Download source code and Compile (Method 1)

Download source code from GitHub.

$ git clone https://github.com/virtualeconomy/v-systems.git
$ cd vsys

Then compile by SBT. If you want to compile TestNet V Systems node,

# Compile TestNet V Systems node
$ sbt -Dnetwork=testnet packageAll

Or otherwise, if you want to compile MainNet V Systems node,

# Compile MainNet V Systems node
$ sbt packageAll

The compiled JAR file will be located at target/vsys-all-[version].jar. Copy to your own path as you want. For example,

$ mkdir ../vsys-node
$ cp target/vsys-all-*.jar ../vsys-node/v-systems.jar
$ cd ../vsys-node

Download compiled file (Method 2)

If you do not want to compile souce code, you could download the lastest JAR from https://github.com/virtualeconomy/v-systems/releases as well.

Choose v-systems-[version].jar and save to your own path as you want.

Step 2: Configuration

Set your configuration file.

# V Systems node settings
vsys {
  # Path Settings
  directory = <block data folder path>
  # Application logging level. Could be DEBUG | INFO | WARN | ERROR. Default value is INFO.
  logging-level = INFO
  # P2P Network settings
  network {
    known-peers = ["<peer ip>:<peer port>"]
    black-list-residence-time = 30s
    peers-broadcast-interval = 5s
    connection-timeout = 30s
    # Network address to bind to
    bind-address = "0.0.0.0"
    # Node name to send during handshake. Comment this string out to set random node name.
    # node-name = "My MAINNET node"
    # String with IP address and port to send as external address during handshake. Could be set automatically if uPnP is enabled.
    declared-address = "localhost:9921"
  }
  # Wallet settings
  wallet {
    # Password to protect wallet file
    password = ""
    # Wallet seed as string
    # seed = ""
  }
  # Blockchain settings
  blockchain.type = TESTNET   # Should be TESTNET or MAINNET
  # Matcher settings
  matcher.enable = no
  # Minter settings
  miner {
    enable = yes
    offline = no
    quorum = 1
    generation-delay = 1s
    interval-after-last-block-then-generation-is-allowed = 120h
    tf-like-scheduling = no
    # Left to empty as default to minter address
    reward-address = ""
  }
  # Node's REST API settings
  rest-api {
    # Enable/disable node's REST API
    enable = yes
    # Network address to bind to
    bind-address = "0.0.0.0"
    # Hash of API key string
    api-key-hash = "Fo8fR7J1gB3k2WoaE6gYKMwgWfoh9EtZtXAMBxYYCJWG"
  }
  checkpoints.public-key = "A9MX22tXpNdTTx5wBf3CunZz299c1nnca6kH3MzL312L"
}

Some key points of configuration

  • The directory should be set to your own path. We suggest you mount a large disk and set the directory to this disk.

  • It is better to choose more than 3 peers to fill the known-peers field. You could check known-peers via V explorer. Some known-peers for current reference:

    # For TestNet
    known-peers = ["18.179.34.202:9923", "13.250.53.12:9923", "18.188.219.229:9923"]
    # For MainNet (contact us to get more known peers)
    known-peers = ["13.55.174.115:9921","52.30.23.41:9921","13.113.98.91:9921","3.121.94.10:9921", "54.147.255.148:9921"]
    
  • The blockchain.type should be filled with TESTNET or MAINNET.

  • For security reason, it is better to set you own api-key-hash. You could check the hash by this command

    curl -X POST -d '<input your api key>' 'https://test.v.systems/api/utils/hash/secure'
    
  • Finnaly, we save the file, for example name it as "vsys.conf".

Step 3: Run

$ screen -S vsys-node
$ sudo java -jar v-systems*.jar vsys.conf

Detach your screen by Ctrl + A + D .

To inspect the screen

$ screen -x vsys-node
Sign In or Register to comment.