首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链应用之物联网

比特佳人一贾晴

佳人在手,币链我有

有时候,我们愿意原谅一个人,并不是我们真的愿意原谅他,而是我们不愿意失去他。

——比特佳人

物联网往往是割裂的封闭的体系,广域物联网和局域物联网不能发生交互,私有化部署的工业系统和IDC为基础的IT网络难以连接。然而物联网的数据往往需要较高的一致性和安全性,这是任何一个中心化体系下的技术难以解决的问题。现代的物联网技术往往伴随着冗余性的节点,混合云等技术,然而在一致性和安全性问题上,区块链提供的是最终的解法。可惜的是,区块链的存在着基础设施匮乏,技术门槛较高,技术风险过大的问题,如常被诟病的扩展性问题至今没有较为成熟的解决方案,使得目前的分布式应用稀少且停留在虚拟层面,并不能和真实世界发生交互。

从物联网诞生的那一天起,它就是碎片化的。街上随处可见的共享单车,不同类别的车你需要不同的手机应用才能打开,这些节点并不等价,没有标准,是碎片化的。 任何品牌的手机都可以通话、联网以及交换数据,为什么交通工具却不行?其实不止是交通工具,那些看起来已经联网的门,灯,报警器,咖啡机等等,他们所连接的网络都是割裂的,封闭的。同样类型的产品都是碎片化的,更不要说不同类型的产品了。物的种类已经多到数不过来,而几乎每一种物都很难像个人电脑或是手机那样同质化。碎片化的问题可以不解决吗?答案是否定的。而解决碎片化的一种方式需要引入操作系统以及中间件的概念,兼容碎片化的硬件设备,并提供统一的编程接口。

IT技术是标准化的,个人电脑通过 http 协议和服务器进行交互,在浏览器上呈现出来,这是一种标准化。比特币节点之间的全网广播,也是标准化的。 只有将碎片化的产品不断标准化,才有可能将节点统一起来,或是让节点之间形成一种共识。在标准化这件事上整个物联网行业尝试了有二十多年,在物理层标准上有 WiFi, BLE, Zigbee 等,工业网络有Modbus, Profibus,工业以太网等,尽管不同标准之间不能兼容,然而应用层的标准却一直没有推行起来, Machine B 和Machine B 连接成功,但MachineA 却并不知道任何操纵或是请求 MachineB 的指令。更要命的是,同样是一种设备,不同的驱动,不同软件商的私有协议各不相同,难以交互。

指令有的时候是没有可读性的, GPIO_14号高电平变低电平的这个操作,能否和别的串口兼容,对开关的作用具体是什么,有的时候是未知的。你往往需要下面这样的定义。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_LED.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15;

GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_LED.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_LED);

但是这种做法很难在互联网应用工程师群体里被推广起来,它的门槛不低,很容易写出bug,而且可读性依然不高。他们更喜欢如下这样的编程方式:

$('led-green').on();

$('led-red').off();

当节点之间有了应用层协议的标准,节点之间的通信就停留在了设备抽象之间的交互,可以是支付,请求,验证等,当多个设备组成阵列的时候,抽象级别会高一级,成为应用和应用之间的交互。标准在应用层的统一,会是物联网当下最需要解决的问题,也是未来万物互联互通的重要基础设施。物联网的标准不会在中心化的云端实现,而是在边缘计算的可编程开始,摒弃传统的模块 + 云的模式,应用逻辑会在固件之外,形成统一的编程模型,也就是建立区块链链上编程系统。

通过链上编程系统,就可以实现不同品牌 IoT 设备之间的可信互操作

每个智能设备有一个地址,出场的时候商家把这个地址写入硬件,并在硬件的包装盒内放置该地址私钥的二维码。 控制中心通过获得私钥后发送给设备一条绑定命令(使用该私钥签名),拥有该硬件的完整控制权。绑定后控制中心可以删除设备的私钥,只需保存控制中心自己的私钥即可

• 点对点控制:控制中心通过给设备发起一条带自己签名的控制 TX,来操作设备。(并不需要链的参与,但要求控制时,控制中心和设备均在线)

• 基于链上状态的控制:当控制端无法和设备建立点对点连接时,可以让控制端消费一些 Token,在链上写入一个“状态改变” TX,或“控制命令” TX 来操作目标设备(这些 TX 一样需要有)。目标设备可以直接从链上同步状态或控制命令,或则通过一个可信轻节点(比如一个网桥设备)同步状态或控制命令。区块链解决了所有设备都连上云后,云的运维成本和稳定性问题。

• 自动化控制:并不需要使用合约来设置“气温低于 15 度则关闭空调”的逻辑,这些自定化控制逻辑可以用传统的开发语言在控制端(一个 App )里实现,降低了设备支持合约所需要的硬件成本,同时也减少了主链因为运行合约带来的可能的卡死。

当然这样的一个生态构建难度系数目前来说还是极高的,但是相信区块链的赋能会让每个人享受到万物互联带来的便利。

温柔点

撩完就带走我

-END-

作者:比特佳人一贾晴,一个单身有颜,明明可以靠脸吃饭,却根植于区块链技术创新的二次元少女;币链深情,触动少女心,唯有以身相许,才能阻隔世间情(*-*)

微信公号:比特佳人一贾晴(ID:Bitjiaren)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180430G0RCOO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券