REAL-TIME PAYMENT BLOCKCHAIN

Requirements

OS: Ubuntu 18.04 LTS Bionic RAM: 2 GB for one CPU Core

Installation

Build Graft Supernode

  1. Install git (if not installed already): sudo apt-get install -y git
  2. Clone Graft Supernode from GitHub repository: https://github.com/graft-project/graft-ng.git git clone --recursive https://github.com/graft-project/graft-ng.git
  3. Go to graft-ng directory: cd graft-ng
  4. Switch to alpha3 branch: git checkout alpha3
  5. Update submodules: git submodule update --init --recursive
  6. Install cryptonode dependencies: https://github.com/graft-project/GraftNetwork/blob/master/install_dependencies.sh
  7. Install dependencies from the list https://github.com/graft-project/graft-ng/tree/alpha3#dependencies sudo apt-get -y install build-essential cmake \ pkg-config libboost-all-dev \ libssl-dev autoconf automake \ check libpcre3-dev rapidjson-dev \ libreadline-dev
  8. Create build directory: mkdir -p <build directory> cd <build directory> Where <build directory> is any directory, for example, $HOME/supernode
  9. Run CMake: cmake -DENABLE_SYSLOG=ON <project root> Where <project root> is location of your project files; if you downloaded the source into your home directory, it is $HOME/graft-ng
  10. Start the build: Option A (Use single CPU): make Option B (Defined CPU affinity): make -j4 for “-j” param select appropriate number of CPU cores available on your system.
    • Wait until compilation finished.
    • Find Graft Supernode executable (graft_server) in the <build directory>.
    • Find Graft Node (graftnoded), Graft Wallet CLI (graft-wallet-cli) executables in the <build directory>/BUILD/bin

Build Graft Node

(normally you don’t need to build Graft Node separately, it currently builds as a part of supernode project.)
  1. Install git (if not installed already): sudo apt-get install -y git
  2. Clone Graft Network from GitHub repository: https://github.com/graft-project/GraftNetwork.git git clone https://github.com/graft-project/GraftNetwork.git
  3. Go to GraftNetwork directory: cd GraftNetwork
  4. Switch to rta-alpha3 branch: git checkout rta-alpha3
  5. Install dependencies from the list https://github.com/graft-project/GraftNetwork#dependencies Option A – use following command line: sudo apt-get -y install build-essential cmake \
    pkg-config libboost-all-dev \
    libssl-dev libunwind8-dev \
    liblzma-dev libldns-dev \
    libexpat1-dev doxygen graphviz
    Option B –  Execute  “install_dependencies.sh” script https://github.com/graft-project/GraftNetwork/blob/master/install_dependencies.sh ./install_dependencies.sh
  6. Start the build: Option A (Use single CPU): make release-syslog Option B (Defined CPU affinity): make -j4 release-syslog for “-j” param select appropriate number of CPU cores available on your system. In order to build standalone binaries (i.e. to upload it to the server where no dev    packages installed), invoke: make -j4 release-syslog-static
  7. Wait until compilation finished (Approximate 21 minutes using AWS T2 Medium).
  8. Find Graft Node executable (graftnoded) and Graft CLI Wallet in the <your GraftNetwork path>/GraftNetwork/build/release/bin.

Configuration of Alpha RTA Environment

Graft Node Configuration

  1. Increase the limit for maximum allowed opened file descriptors per process to 8192.
    1. edit /etc/systemd/system.conf file by adding following line under the [Manager] section: DefaultLimitNOFILE=8192
    2. restart the OS
  2. Run Graft Network daemon from <path to graftnoded> using following commands:
    1. With console output: ./graftnoded --testnet --log-file <path_to_log_file>
    2. In background mode: ./graftnoded --testnet --log-file <path_to_log_file> --detach
    Additional options: --testnet-data-dir – specify testnet data directory. --testnet-p2p-bind-port <port> – specify custom testnet p2p binding port. For example, 28680. --testnet-rpc-bind-port <port> – specify custom testnet rpc binding port. For example, 28681. --rpc-bind-ip <ip> – specify ip to bind rpc server. For example, 0.0.0.0 for external binding. --confirm-external-bind – confirm rpc-bind-ip value is not a loopback (local) IP. --help – display help message with all supported commands.
  3. Wait for blockchain synchronization.
Note: please don’t run rta-alpha testnet on the same server as public testnet

Graft Supernode Configuration

  1. [NOTE: Only for new setup] Having built supernode binary (“graft_server”), please copy <graft_ng-source-dir>/data/config.ini to the same directory as “graft_server” binary.
  2. Run “graft_server” binary, let it run for few seconds and stop it with CTRL-C. Ignore any errors in console. This will automatically create stake wallet for your supernode.
  3. Go to ~/.graft/supernode/data/stake-wallet and note wallet address from “stake-wallet.address.txt”. Request stake amount for your supernode by sending  email to alpha@graft.network with your wallet address – we will load up your stake wallet with testnet coins.
  4. Once you received coins and coins are unlocked – the supernode is ready to be used – run “graft_server” binary having “config.ini” in the same directory as binary. It make sense to redirect the log to a file – in case any bug we might request a log from you. This can be done with the following starter script:
#!/bin/bash./graft_server --log-file <path_to_log_file>

Graft Clients (Point-of-Sale and Wallet) Configuration

  1. Upload Graft Clients
    1. iOS Clients Check if you have access to iPhone clients for Alpha RTA Testnet. For this check your email if you got notification from TestFlight with Redeem Code or open TestFlight application and check if GRAFT Mobile Point of Sale version 2.0.x and GRAFT CryptoPay Wallet version 2.0.x is available for you.
    2. macOS Clients Download macOS packages for desktop clients: Graft Point-of-Sale: Graft PoS 2.0.2 https://drive.google.com/open?id=17b49G2K839vyoMTaFwxjriGEk7SluUuAGraft Wallet: GraftWallet 2.0.2 https://drive.google.com/open?id=1D3lfnpu8YgKYCWpP7LGzUt_IhJn58Mi-
  2. Configure Graft Account
    1. Open Graft Point-of-Sale or Graft Wallet application.
    2. Select Alpha RTA Testnet and press Confirm.
    3. If you want to change service settings, for example, connect to your supernode, press Settings button. How to configure custom service settings see 3.
    4. If you want to create new account, enter password, confirm it and press Create New Wallet. Then copy mnemonic phrase and press I saved it!.
    5. Also you can restore your existing wallet (from Public RTA Testnet). For this, press Restore/Import Wallet. Then enter or paste mnemonic phrase, enter and confirm password, and press Restore.
  3. Configure custom service settings
    1. Open Settings Screen.
    2. If you haven’t HTTPS access, disable HTTPS.
    3. Select one two options and enter your service address:
      1. Service address, for access via IP and Port.
      2. Service URL, for access via HTTPS or HTTP URL.
    4. Press Doneto save changes.

Appendix 1. Running Graft Node

  1. Under folder  <path to GraftNetwork>/GraftNetwork/build/release/bin, the following components may be found:
    1. graftnoded – Graft Network daemon;
    2. graft-wallet-cli – Graft Network CLI Wallet.
  2. Running Graft Network daemon Option A : graftnoded --detach Option A (Testnet): graftnoded --detach --testnet --detach Running service in background. Running without “–detach” will provide on screen visual daemon log and alscrelow to invoke daemon commands --testnet – Running on test network
  3. Additional Graft Network daemon functions: graftnoded --help
  4. Status and log files are saved at $HOME/.graft/testnet directory. To specify any arbitrary directory, add --testnet-data-dir <your-path> to the command line. Example : --testnet-data-dir <your-path>

Appendix 2. Graft CLI Wallet Commands

Creating a wallet and connecting to the local testnet node

To create new wallet for the public testnet, invoke: ./graft-wallet-cli --generate-new-wallet <wallet_name> \
--testnet --daemon-address localhost:28681

File location : <your GraftNetwork path>/GraftNetwork/build/release/bin This will try to connect to the local daemon, running in testnet mode,  ask password for a new wallet, electrum seed language, generate new wallet and finally open wallet with CLI interface. Invoke “help” to see available commands. E.g. CPU mining (Solo mining) can be started with “start_mining” command. Here’s the shell scripts automating wallet creation and other tasks in non-interactive mode: https://github.com/graft-project/GraftNetwork/tree/master/tests/libwallet_api_tests/scripts

Opening an existing wallet

To open a previously created testnet wallet, invoke: ./graft-wallet-cli --wallet-file <wallet_name> \
--password "" --testnet --trusted-daemon \
--daemon-address localhost:28681

Restoring an existing wallet

To restore your wallet via Graft CLI, you need to get the mnemonic phrase of your Graft wallet and run Graft CLI with the following options: --restore-deterministic-wallet allow to create wallet from mnemonic phrase --electrum-seed "<mnemonic phrase>" mnemonic phrase of your Graft wallet For example: Linux/MacOS: ./<path to GraftNetwork install directory>/graft-wallet-cli \
--restore-deterministic-wallet \
--electrum-seed "<mnemonic phrase>"
Windows: <path to GraftNetwork install directory>\graft-wallet-cli.exe
\ --restore-deterministic-wallet \
--electrum-seed "<mnemonic phrase>"
Then Graft CLI will ask to enter a file name for your wallet and password to secure your wallet. To get more information about options of Graft CLI you can run it with –help option:./<path to GraftNetwork install directory>/graft-wallet-cli –help To get information about actions which are available for your wallet in the Graft CLI, enter help command when opening your Graft wallet in the Graft CLI.

Reporting Bugs, Suggestions, and Information Requests

Jira for reporting bugs, suggesting improvements, and asking devs for information: https://graftnetwork.atlassian.net/projects/SUP/ To collect additional information about the issue: 1) Run graftnode and supernode with detailed logging: – Run graftnode with option –log-level 3 – Run supernode with option –log-level 2 2) Use Alpha RTA seed nodes: – Connect to specific supernode (only http) to localize issue: 18.214.197.224:28690 18.214.197.50:28690 35.169.179.171:28690 34.192.115.160:28690 – Specify this supernode in the description of the issue

Ports

28600 – load balancer http port 28643 – load balancer https port 28680 – p2p node port 28681 – rpc node port 28690 – rpc supernode port 8081 – block explorer port

DNS

testnet-dev-seed.graft.network – wallet proxy supernode load balancer DNS