Robonomics on Substrate
AIRA (Autonomous Intelligent Robot Agent) project implements the standard of economic interaction between human-robot and robot-robot via liability smart contract. AIRA makes it possible to connect a variety of different robots to the market of robot liabilities for the direct sale of data from robot sensors, ordering of logistics services, and organization ordering of personalized products at fully automated enterprises.
This source is a part of AIRA project. It implements their purposes using Substrate technologies.
2. Try it out
When connection is success you can explore
Robonomics testnet using Substrate UI. Just create account and request test XRT in our Matrix room.
3. Install node
Robonomics on Substrate binary blobs available as an assets in releases. Latest version you can try to build from source code.
3.1. Building from source
Ensure you have Rust and the support software installed:
curl https://sh.rustup.rs -sSf | sh # on Windows download and run rustup-init.exe # from https://rustup.rs instead rustup update nightly rustup target add wasm32-unknown-unknown --toolchain nightly rustup update stable cargo install --git https://github.com/alexcrichton/wasm-gc
You will also need to install the following packages:
sudo apt install cmake pkg-config libssl-dev git clang libclang-dev
brew install cmake pkg-config openssl git llvm
# Install LLVM # Download and install the Pre Build Windows binaries # of LLVM from http://releases.llvm.org/download.html # Install OpenSSL (through vcpkg) mkdir \Tools cd \Tools git clone https://github.com/Microsoft/vcpkg.git cd vcpkg .\bootstrap-vcpkg.bat .\vcpkg.exe install openssl:x64-windows-static $env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static' $env:OPENSSL_STATIC = 'Yes' [System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)
Install robonomics node from git source:
cargo install --force --git https://github.com/airalab/substrate-node-robonomics
Run node in Robonomics testnet:
Or run your local development network:
3.2. Building with Nix
Install Nix package manager:
curl https://nixos.org/nix/install | sh
Run in Nix shell:
git clone https://github.com/airalab/substrate-node-robonomics && cd substrate-node-robonomics nix-shell --run "cargo run --release"
4. Network maintaining
Currently Robonomics on Substrate testnet is maintained by developers but anyone can support the project by several ways described below.
4.1. Full node
4.2. Become a validator
For nodes that can be online 24/7 also available most important role on chain - block producers or briefly validator. Robonomics on Substrate use NPoS algorithm for choosing block production accounts. For this reason if you have any stake in test XRT you can try self in block production. You can request test XRT in our Matrix room.
Generate two accounts
controllerusing Account page
Transfer full amount of test XRT to
stashand a little bit to
Send extrinsic from
stashaccount with params
staking:bond(controller, value, payee):
stashaccount total balance
Send extrinsic from
controlleraccount with params
Launch Robonomics node (set
controlleraccount seed as parameter):
robonomics --validator --key %CONTROLLER_SEED%
Check validator list
5. Robotics integration
ros helps to use Robonomics Substrate modules in ROS-enabled cyber-physical systems.
5.1. Building with ROS feature
Install ROS using instruction.
Import ROS environment:
cargo build --release --features ros
5.2. Launch ROS node
Start ROS core service
cargo run --release --features ros
Subscribe for best block number:
rostopic echo /blockchain/best_number