Setup C Virtual Device
Minimal code implementing an UniquID node. It can be used to add UniquID functionalities to the AWS IoT C sdk. Please refer to the README in the repo for further informations.
Install Prerequisites
Install these packages on your machine
sudo apt install cmake
sudo apt install libcurl4-openssl-dev
How to integrate in the AWS IoT C sdk
Clone the AWS-IoT-sdk
git clone https://github.com/aws/aws-iot-device-sdk-embedded-C.git -b v3.0.1
Clone this repository inside the external_libs directory
cd aws-iot-device-sdk-embedded-C/external_libs/ git clone https://github.com/uniquid/uidagent-c.git
Clone the uidcore-c library
git clone --recurse-submodules https://github.com/uniquid/uidcore-c.git
Clone the mbedtls code
rm mbedTLS/README.txt git clone https://github.com/ARMmbed/mbedtls.git mbedTLS -b mbedtls-2.16.1
Apply the provided patch, IoT-sdk.patch
cd .. git apply external_libs/uidagent-c/IoT-sdk.patch cd samples/linux/subscribe_publish_sample make
Run the C device
Copy in the "certs" directory the CA certificates chain to authenticate the aws-mqtt-proxy and the uniquid mqtt broker. The file must be named rootCA.crt
cp ../../../../caChain-xxxxxxxxxxxxxx.crt ../../../certs/rootCA.crt
Press tab to find the right caChain file.
Copy the configuration file (example file) **
cp ../../../../aws_device_cfg.json aws_device_cfg.json
Run the sample
./subscribe_publish_sample
** The configuration can also be loaded from AWS_AGENT_CONFIG environment variable
export AWS_AGENT_CONFIG=$(cat path-to/aws_device_cfg.json)
The device will try to connect to the proxy every 10 seconds, for this reason an error message will be reported until you create an UniquID Contract between the C device and the AWS-IOT-UNIQUID-AUTHORIZER to bind these two components.
Only when both the components will receive the contract from the blockchain, the device will be able to connect.
Last updated