Links

Hardware

Overview

The blockchain client SDK is targeted to embedded devices and allows you to easily interact with the IoTeX blockchain in order to fetch blockchain data, send transactions or perform contract execution actions.

How does it work

The communication with the blockchain is done over HTTP, using the HTTP to JSON-RPC bridge at gateway.iotexlab.io.

Supported devices

  • Unix machines with curl support
  • ESP32 based boards using Arduino framework
  • ESP8266 based boards using Arduino framework
  • Nano33 IoT using Arduino framework
  • Arduino MKR WiFi 1010 using Arduino framework (not tested)

Porting to a new platform

Effort has been taken in trying to decouple non-platform dependant code as much as possible. However, a specific implementation of the following modules is needed when porting the library to a non supported device:
  • Http: the HTTP interface needs implemented. See src/http/platform_name/http.cpp for implemented platforms.
  • Storage: The storage class needs implemented. It contains only two methods: savePrivateKey() saves the private key, and readPrivateKey() reads the private key. See src/storage/platform_name/storage.cpp for implemented platforms.
  • Random: The random class needs implemented for true random number generation. It contains a single method fillRandom(), that fills a buffer with random bytes. See src/random/platform_name/random.cpp for implemented platforms.

Library architecture

Below are the main modules comprising the SDK:
ABI
Account
API
Connection
Contract
Encoder
HTTP
Protobuf
Random
Signer
Storage
​