Skip to content

The Robonomics Framework

Compare
Choose a tag to compare
@akru akru released this 29 Apr 03:16
· 443 commits to master since this release
71f2f13

This release native runtime: IPCI chain version 5, Robonomics chain version 84.

During the development of Robonomics Network a lot of experiments happen. Tons of code written and erased after use. It was expected that many Smart City and Industry 4.0 cases could match by not so large count of programming patterns. We decide to generalize it as a set of open-source packages with the name Robonomics Framework.

Robonomics Crates

Link: https://crates.robonomics.network

Structure of Robonomics Framework followed.

  • Robonomics Protocol - network library that provides primitives to build P2P communication for Industry 4.0 and Smart City cases.
  • Robonomics IO - stream-oriented library with support general set of sensors and actuators (including virtual devices like PubSub or stdin/stdout) that makes hardware interaction easy.
  • Robonomics CLI - console line primitives that make framework functions runnable.
  • Robonomics Frame - a collection of pallets suitable for Smart City and Industry 4.0 cases.
  • Robonomics Node - substrate-based blockchain node with Robonomics Network extensions.

Robonomics Pipelines

Pipelines intro

Not all cases require a programming challenge. In most cases is possible to build a pipeline and solve it as stream processing task.

For example, bash pipeline looks like:

$ cat my_data.txt | sha256sum > my_data.sum

This sentence read a text file, calc SHA256 sum of content, and write it into a different file.

Robonomics I/O

Especially to make hardware interaction easy we introduce robonomics_io crate. This crate implements two kinds of devices: source - device that intended to read a data and sink - device that intended to write data. This approach suits the pipelines paradigm well and implemented in Robonomics CLI as io subcommand.

$ robonomics io
robonomics-io 0.18.0
Run I/O actions using Robonomics Framework.

USAGE:
    robonomics io [FLAGS] [OPTIONS] <SUBCOMMAND>

SUBCOMMANDS:
    help     Prints this message or the help of the given subcommand(s)
    read     Read information from device
    write    Write information into device

For example, the sentence that simple read value from Nova SDS011 sensor is followed.

$ robonomics io read sds011
{"timestamp":"1588090281","pm25":0.5,"pm10":1.5}

Is it also possible to combine IO actions to get something useful, like this:

$ robonomics io read sds011 | gz | robonomics io write pubsub my-sensor-data

The sentence above reads JSON values from a sensor, compresses it using gzip, and publishes it into my-sensor-data topic.

Conclusion

Pipelines for IO actions look like a very powerful tool for extremely high-speed prototyping that could be easily adopted into the code using robonomics-io crate.

Changelog

  • Robonomics PubSub module refactored, from now it's async and thread-safe.
  • Introduced Robonomics I/O stream-oriented crate.
  • CLI functions moved into dedicated robonomics-cli crate.
  • Added support for Nova SDS011 sensor.
  • Added workflow for crates.robonomics.network.

Downloads

Robonomics Node

SHA256 OS Link
35ebcb2e982d90ec12cb603cc8640c3c7b7e5c8fba644375f8e47046819b43fd Ubuntu Download
12a04f79e26827c4f29567c3c76a053ec63707c05c5d1fa70f0d36b54af2ae4b MacOS Download
0d4de484d6afaef2ade9cd6629569ceb182f1ac877d072db8fe8fd188a74bde2 Windows Download

Subkey

SHA256 OS Link
ddf6cbcdfddf094e5b57b2f260032e7c5b55701ad30eb09f14136037517b88e1 Ubuntu Download
8133de74ffc56adee8f15df588e97834548fb150ae57777623c765eacb38ce44 MacOS Download
7847cc6652e36f2ad96ca69a3170ac5df6b7214c910d5dfdd2f8df31f5b707dc Windows Download