IoT区块链Hub-设备端接入最佳实践

IoT区块链Hub设备端SDK目前支持平台为Linux平台,x86_64架构。本文档以Ubuntu操作系统为例,描述农业场景下物联网设备集成IoT区块链Hub设备端SDK流程。

1. 下载设备端SDK

下载设备端SDK,并解压缩到本地磁盘目录。

tar -zxvf lto_sdk.tgz

2. 目录结构

lto/libs目录:包含IoT区块链Hub静态库文件

lto/inc目录:包含IoT区块链Hub头文件

lto/demo目录:包含IoT区块链Hub示例文件

lto/src/port目录:包含IoT区块链Hub对下层的依赖适配实现

3. 使用流程说明

3.1 接口集成

请把库文件拷贝到lto/libs目录,适配文件拷贝到lto/src/port目录。

3.2 编译构建

  1. 进入lto/demo目录,编辑lto_demo.c中的各项参数。userPlainData表示您明文数据,在该场景下为IoT设备采集的温度数据;userPrivacyData表示需要隐私处理的数据,当前场景下为IoT设备采集的地址位置信息。

cd lto/demo
vi lto_demo.c
char* userPlainData = "{\"温度\":\"25.2\"}"; 
char* userPrivacyData = "{\"位置\":\"180.24, 257.27\"}"; 
char* iotIdServiceProvider = "pkpkpkpkpkk";
char* iotIdSource = "2";
  1. 输入make指令,进行编译构建,编译成功之后会在demo目录输出lto_demo二进制文件。

make

3.3 执行结果

  1. 执行lto_demo,查看输出结果。

./lto_demo
  1. IoT设备会输出如下结果,该部分数据包含了IoT设备自身采集的数据以及生成的数据令牌,您可以把这些数据通过已有的通路发送到云端,在云端通过IoT区块链Hub进行数据上链处理。云端流程请参考:数字农业可信上链最佳实践

             iotDataDID: did:lto:000FFFFFDABCFDF0B4999700610B599D00000001
          iotDataDIDLen: 48
          userPlainData: {"温度":"25.2"}
       userPlainDataLen: 17
        userPrivacyData: {"位置":"180.24, 257.27"}
     userPrivacyDataLen: 27
            iotAuthType: ID2
         iotAuthTypeLen: 3
   iotIdServiceProvider: pkpkpkpkpkk
         iotIdServiceProviderLen: 11
                  iotId: 000FFFFFDABCFDF0B4999700
               iotIdLen: 24

          iotDataDigest: FBB7FAE10BDD1466F1C7534E7CFDFE7941FBD1A4FAE64FB1F07CA7F3AD97E02B
       iotDataDigestLen: 64
           iotDataToken: 3~2~1756E40A3FAE23E1~1628133789000~GLrSRKly/9T71lSqlzPhqX0Mb8I7uiNXmgPpt1q2cQtJcgazu61apcJrdsLqP/6D
        iotDataTokenLen: 99
        lto: generate token success!