Getting Started

Setting Up a Single STRATO Node

If you are using STRATO for the first time, there are a few steps that are required to start a single node (or a single node network). Before we get to the setup instructions, we'll walk through some general system recommendations and prerequisites for your software setup.

System Recommendations

Although STRATO may be run in a Windows environment successfully, we generally recommend that STRATO be set up on a Linux or Unix-based (Mac) Operating system.
In addition to being slightly more perfomant, we have found that troubleshooting on a Linux/Unix environment is much easier for first time users.

Pre-requisites

Linux/MacOSX:

  • Install Docker on your machine
  • Install Docker Compose on your machine
  • Python 2.7 for PBFT network deployment

  • For Mac users: Install wget using Homebrew (use the steps below):

    • Homebrew:

      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    • wget:

      brew install wget --with-libressl

Windows:

The list of the ports required to be available on the machine

Setup

Steps to setup and run single STRATO node using Docker on your machine:

  1. Add the STRATO software package to your node and change directories into the STRATO folder: cd strato-getting-started
  2. Launch STRATO single node:

    ./strato --single
    

    If running on the remote machine, provide the NODE_HOST variable with the machine's external IP address or domain (reachable through the network) when running the STRATO: NODE_HOST=example.com ./strato.sh --single

    Windows users should always provide the NODE_HOST variable with the docker machine IP address (in most cases it is 192.168.99.100) when running the STRATO: NODE_HOST=192.168.99.100 ./strato.sh --single

  3. Check if STRATO services are running (using docker ps) & view the Strato Management Dashboard at http://localhost/ (or http://<remote_node_host>/ when running on remote machine)

    If NODE_HOST is set in step 3, use it's value instead of the localhost hereinafter

  4. If you are using STRATO with OAuth enabled, set the key encryption password.

    If you are manually starting a STRATO node with OAuth, you will be prompted for a key encryption password. This password is used to encrypt STRATO users' private keys.

    If you need to start a new STRATO node programmatically, calling strato-getting-started from a script, you pass the environment variable PASSWORD into the strato-getting-started script. If starting STRATO without using strato-getting-started, the following command must be executed before the node will allow transactions to be signed by OAuth accounts:

docker exec -it strato_bloc_1 curl -X POST http://vault-wrapper:8000/strato/v2.3/password -H "Content-Type: application/json" -d '"<your_chosen_password>"'

  1. Explore the Bloc and STRATO API docs via the top right link on the Dashboard (http://localhost) STRATO Management Dashboard

    • Default credentials for UI web pages:
      username: admin
      password: admin
      
    • Credentials for UI on an OAuth-enabled dashboard page:

      username: user1
      password: 1234
      

    • API Documentation can be found at the API Reference section of this Guide

  2. Refer documentation here to get started with developing a sample app

  3. For more info on support and enterprise licensed subscription, contact the team here.

Stopping STRATO

To stop a running instance of STRATO Developer Edition on your machine, run this command (from within the git cloned getting-started folder)

./strato --stop

To stop and wipe out a running instance of STRATO Developer Edition on your machine, run this command (from within the git cloned getting-started folder)(you will lose state of any transactions/data created in the blockchain)

./strato --wipe

Other STRATO commands

A few other commands are important for management of your STRATO node:

./strato --down
This removes STRATO containers but leaves your underlying volumes intact. Starting with STRATO 4.5, this allows a user to stop and start a STRATO node without needing to resync chain data. Note: the node must stay on the same STRATO version for the chain data to persist, and the user cannot restart the node with an upgraded STRATO version.

./strato --drop-chains
This removes all STRATO containers and chain data volumes. However, user data volumes are still retained.

./strato --fetch-logs
This retrieves a zipped folder of key STRATO system logs, and can be used after a node or network error to aide BlockApps Support in responding to your support request.

A full list of STRATO commands can be seen by running the help function inside your STRATO folder:

./strato --help

Ports used

STRATO services need the following ports to be available on the machine (refer docker-compose.yml for details):

:80, :443 (for Nginx)
:30303, :30303/UDP (for Strato P2P)

License Agreement

See BlockApps STRATO end user license agreement