
应用的基本条件
物联网设备负责感知环境或执行物理动作,智能合约按收到的数据执行规则。两者结合,需要连接设备、链外服务和链上合约,并明确每个环节的责任。适用条件包括数据来源可识别、更新时效符合业务要求,以及设备能够承担必要的通信任务。
数据上链后是否就可信
以太坊预言机文档说明,智能合约默认无法直接访问链外信息,预言机负责把外部数据提供给合约。这一机制仍需处理数据正确性、可用性与提供者责任问题。

在物联网场景中,需要分别判断数据是否来自指定设备、传输途中是否被修改,以及设备测量本身是否准确。例如,传感器即使完整传输了读数,也可能因故障产生错误。上链记录不能替代对采集环节的核验。

设备能否直接承担链上交互
RFC 7228描述的受限设备可能受到电力、内存、计算能力和通信带宽限制,部分设备还存在密钥设置、软件更新不便等问题。文档也指出,资源较充足的基站或服务器可以支持设备与应用之间的交互。
因此,需要依据设备实际能力分配任务。让网关承担数据整理和对接工作,可以减轻终端负担,但也需要明确网关是否能够改变数据,以及发生故障后由谁恢复服务。不能因为设备能够联网,就认定它适合承担全部区块链交互任务。
断网和旧数据如何影响合约
设备休眠、链路丢包或带宽不足,可能使数据无法及时送达。对依赖环境变化的合约而言,最后一次读数与当前状态可能存在差异。
设计时应区分采集时间和接收时间,明确数据有效期、缺失数据的处理方式,以及恢复连接后的补报规则。历史数据补传不应被误认为刚发生的新事件;无法接受通信延迟的控制环节,需要另行安排可靠的本地处理机制。
链上触发是否代表物理动作完成
预言机也可将链上信息传递给外部系统,但合约触发、指令送达和设备完成动作属于不同环节。例如,开锁指令已发出,并不能单独证明锁具已经打开。
涉及执行器的应用需要反馈实际结果,区分成功、失败与状态未知,并考虑重复指令和重试的处理方式。评价此类系统时,应同时检查数据输入和动作反馈,避免仅凭链上记录判断整个物理过程已经完成。