Skip to main content

Quickstart

This quickstart show most common commands to run Exorde CLI. Please check Install and Run sections for more details.

Instructions

You have several choices to run the Exorde CLI:

  • Run from sources inside a virtual Python environment
  • Run from a Docker image

Exorde CLI does not come with a GUI, it aims to be used by advanced users who want to run it inside a terminal. The installation process assume that users who run Exorde CLI are familiar with command lines.

Using the container image is the recommanded way to run Exorde CLI, as it avoid dependencies issues, handles automatic restart in case of failure/application update and make multi easier to run multiple instances of the application.

Requirements

  • Windows 8.1/10/11 or Linux or macOS
  • A container runtime, like Docker
  • 4 GB RAM (+ 1 GB per additional module run)
  • 2 CPU cores
  • 1 GB storage (HDD or SSD)

Quickstart using Python and Conda on Linux/macOS

  1. Follow the Conda's documentation to install it on your system.

  2. Download and unzip the latest version of Exorde CLI:

    wget https://github.com/exorde-labs/ExordeModuleCLI/archive/refs/heads/main.zip \
    --output-document=ExordeModuleCLI.zip \
    && unzip ExordeModuleCLI.zip \
    && rm ExordeModuleCLI.zip \
    && mv ExordeModuleCLI-main ExordeModuleCLI
  3. Go to the root of Exorde CLI folder:

    cd ExordeModuleCLI
  4. Create and activate a new virtual conda environment with Python 3.9 as the environment executable (exorde-env is an example name):

    conda create --name exorde-env python=3.9
    conda activate exorde-env
  5. Upgrade Pip :

    pip install --upgrade pip
  6. Install the required packages:

    pip install -r requirements.txt
  7. Run the program:

    python Launcher.py -m <YOUR_MAIN_ADDRESS> -l <LOGGING_LEVEL>

    Usage example:

    python Launcher.py -m 0x0F67059ea5c125104E46B46769184dB6DC405C42 -l 2

For more detailled informations, please read the full documentation.

Quickstart using Docker on a Linux VPS

  1. Install Docker.

  2. Run the program in background with autorestart:

    docker run \
    -d \
    --restart unless-stopped \
    --pull always \
    --name <CONTAINER_NAME> \
    exordelabs/exorde-cli \
    -m <YOUR_MAIN_ADDRESS> \
    -l <LOGGING_LEVEL>

    Usage example:

    docker run \
    -d \
    --restart unless-stopped \
    --pull always \
    --name exorde-cli \
    exordelabs/exorde-cli \
    -m 0x0F67059ea5c125104E46B46769184dB6DC405C42 \
    -l 2

For more detailled informations, please read the full documentation.

How to update the Docker image:

If you are already running Exorde CLI with Docker and you want to use a new uploaded image, please follow these instructions:

  1. Stop and delete all running containers of Exorde CLI:

    docker stop <CONTAINER_NAME> && docker rm <CONTAINER_NAME>

    For example, if you are running only one container named "exorde-cli":

    docker stop exorde-cli && docker rm exorde-cli
  2. Start new containers:

    docker run \
    -d \
    --restart unless-stopped \
    --pull always \
    --name <CONTAINER_NAME> \
    exordelabs/exorde-cli \
    -m <YOUR_MAIN_ADDRESS> \
    -l <LOGGING_LEVEL>

When running

For example, if you run in conda mode with -l 2 (moderate amount of logs), you should see this in the console:

$ python Launcher.py -m 0x0000000000000000000000000000000000000001 -l 2
Selected logging Level: 2 . (0 = no logs, 1 = general logs, 2 = validation logs, 3 = validation + scraping logs, 4 = detailed validation + scraping logs
Local version signature = 71bfaedc8729595259f92cef5588e2c1 Latest (github) version signature = 71bfaedc8729595259f92cef5588e2c1

[INITIAL MODULE SETUP] Downloading code modules on decentralized storage...
[ Network Load Balancing ] Waiting 35 seconds - System status = Booting.

****************
[BYPASS] Fetching from ExordeLabs github: https://raw.githubusercontent.com/exorde-labs/TestnetProtocol/main/targets/CodeModules.txt
[Github Override] Code Sub-Module 1
Downloading... https://bafybeif6ln5fub32alppg4vg6c45mvechrm3jdamdemmnwp6zp4mjjxfva.ipfs.w3s.link/Transaction.py
[Github Override] Code Sub-Module 2
Downloading... https://bafybeihmppvo74zfxu3o6772xduxuxdvhq74frbff7r26vg6wwir2ekc6e.ipfs.w3s.link/Scraper.py
[Github Override] Code Sub-Module 3
Downloading... https://bafybeib2loz7rndikazdw7prqvzrnucwrvbj6al5om64kyo4y4l6x5rlou.ipfs.w3s.link/Validator.py
[Github Override] Code Sub-Module 4
Downloading... https://bafybeiaw7lpbz6sa5aadb5sgiyvfqi3dxpt4w6nb5uvr6mhwiqf4rotnra.ipfs.w3s.link/App.py
[App Core] Initialized
[App] sub routine initialized
[Initial Worker Check] KICK STATUS: False
[Init] READING CONFIG FILE
[Init] Current Config : {'ExordeApp': {'ERCAddress': '0x0000000000000000000000000000000000000002', 'MainERCAddress': '0x0000000000000000000000000000000000000001', 'Updated': 1, 'SendCountryInfo': 1, 'lastInfo': 'Windows GUI is being fixed. Restart once in a while to make sure any REP is transfered. This is being improved.', 'lastUpdate': 'v1.3.5a', 'lastTimestamp': 1670366341}}
[Pre-Faucet check] User sFuel Balance = 0.001
No need to faucet.
[Init] CREATING UTILS

[Init Version Check] Checking version on start
[stakeChecking] Instanciating AddressManager
[Init Worker Master] Claiming Master
Latest message from Exorde Labs: Windows GUI is being fixed. Restart once in a while to make sure any REP is transfered. This is being improved.
[Init Version Check] Current Module Version: v1.3.5a
[Init Worker Master] Claiming Master
[Init] EXDT Staking requirement OK
[Init] CREATING DATA COLLECTION SUBROUTINE
[Init] CREATING VALIDATION SUBROUTINE
[Validation 2022-12-21 08:58:34.196893] IPFS gateways fetched
[CURRENT REWARDS & REP] Main Address 0x0000000000000000000000000000000000000001, REP Rewards = 1191.93, Time of snapshot = 2022-12-21 08:58:36.443782
[Validation 2022-12-21 08:58:36.443801] sub routine instancied
[Validation 2022-12-21 08:58:40.350560] Lauching the check content routine[Validation 2022-12-21 08:58:40.350619] sub routine initialized

[Validation 2022-12-21 08:59:11.224471] Worker 0x0000000000000000000000000000000000000002 Not registered
[Validation 2022-12-21 08:59:11.224521] DataSpotting contract instanciated
[Spotting] json response = {'cid': 'QmRimPYtUvg76bRzUmc3doYtmYEJ2fD8oThWfbbcwijiJC'}
[Spotting] json response = {'cid': 'QmYqXdnBoKhRNbzddbk5DEoWubjnWaiEjhkSPjPtsVcK9A'}
[Validation 2022-12-21 09:02:49.541910] Worker 0x0000000000000000000000000000000000000002 already registered
[Validation 2022-12-21 09:02:52.818510] New Work Available Detected.
[Validation 2022-12-21 09:02:52.818549] Fetching Work Batch ID
[2022-12-21 09:03:02.651535] DATA BATCH VALIDATION Batch ID = 72089 PROCESSING 20 batch files.
[Validation 2022-12-21 09:03:10.451516] Lauching the check content routine
[Validation 2022-12-21 09:03:13.919015] Worker 0x0000000000000000000000000000000000000002 already registered
[Validation 2022-12-21 09:03:20.345036] New Work Available Detected.
[Validation 2022-12-21 09:03:20.345074] Fetching Work Batch ID

...

The module is autonomous.

Spontaneous updates

Sometimes, Exorde Labs needs to push some update in the code. The module will detect it, and kill itself. This is important for the Exorde Network to remain hommogenous, so older versions have to be killed right away.

When this happens, the module will print a message & shut down. It has to be restarted manually.