掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的设备控制方法、装置、设备和存储介质

文献发布时间:2023-06-19 10:57:17


基于区块链的设备控制方法、装置、设备和存储介质

技术领域

本申请涉及计算机技术,具体涉及基于区块链的设备控制方法、装置、设备和存储介质。

背景技术

目前,智能设备被广泛使用。智能设备在接收到控制指令后可以完成相应的动作。但是关于如何为智能设备发布可信的控制指令,以及如何对智能设备付出的生产力进行安全支付则没有很好的解决方法。

发明内容

有鉴于此,本申请公开一种基于区块链的设备控制方法,上述区块链中部署了用于管理智能设备的智能合约;上述方法包括:

接收需求方发起的设备控制请求;

调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作,以及,

从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

本申请还公开一种基于区块链的设备控制方法,上述区块链中部署了用于管理智能设备的智能合约;上述方法包括:

接收需求方发起的设备控制请求;

调用上述智能合约包括的转入逻辑,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述设备控制请求对应的控制指令价值锚定的虚拟资源;

在向上述智能设备对应的区块链账户转入预设数量的虚拟资源之后,进一步调用上述智能合约中的发送逻辑,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作。

本申请还公开一种基于区块链的设备控制装置,上述区块链中部署了用于管理智能设备的智能合约;上述装置包括:

接收模块,接收需求方发起的设备控制请求;

调用模块,调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作,以及,

从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

本申请还公开一种基于区块链的设备控制装置,上述区块链中部署了用于管理智能设备的智能合约;上述装置包括:

接收模块,接收需求方发起的设备控制请求;

第一调用模块,调用上述智能合约包括的转入逻辑,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述设备控制请求对应的控制指令价值锚定的虚拟资源;

第二调用模块,在向上述智能设备对应的区块链账户转入预设数量的虚拟资源之后,进一步调用上述智能合约中的发送逻辑,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作。

本申请还公开一种电子设备,上述电子设备部署于区块链;上述区块链中部署了用于管理智能设备的智能合约;上述电子设备包括:处理器;用于存储上述处理器可执行指令的存储器;

其中,上述处理器被配置为调用上述存储器中存储的可执行指令,实现如前述任一实施例示出的设备控制方法。

本申请还公开一种计算机可读存储介质,上述存储介质部署于区块链;上述区块链中部署了用于管理智能设备的智能合约;上述存储介质存储有计算机程序,上述计算机程序用于执行如前述任一实施例示出的设备控制方法。

在上述方案中,由于可以响应于上述设备控制请求,调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,完成对上述智能设备的控制,并从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源;因此,可以通过智能合约驱动对智能设备的控制以及对智能设备生产力的支付,从而保证控制过程与支付过程的透明化与不可篡改,进而实现对智能设备的可信管理以及对智能设备生产力的安全支付。

应当理解的是,以上述的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请示出的一种创建智能合约的示意图;

图2为本申请示出的一种基于区块链的设备控制方法的方法流程图;

图3为本申请示出的一种场景示意图;

图4为本申请示出的一种机器人控制流程示意图;

图5为本申请示出的一种基于区块链的设备控制方法的方法流程图;

图6为本申请示出的一种基于区块链的设备控制装置的结构示意图;

图7为本申请示出的一种电子设备的硬件结构示意图。

具体实施方式

下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在可以包括多数形式,除非上述下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。

区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。

而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。

联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。

不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。

以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。

例如图1所示,Bob将一个包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图1中的“0x68e12cf284…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。

合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储(Storage)则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。

前述提到,包含创建智能合约的交易的data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,采用诸如Solidity、Serpent、LLL语言等高级语言。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。

以Solidity语言为例,用其编写的合约与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储中的值,用于保存合约的状态。

本申请旨在提出一种基于区块链的设备控制方法。该方法通过部署在区块链中的智能合约完成智能设备的管理,以将智能设备管理与区块链资源转移技术融合,实现对智能设备的可信管理以及对智能设备生产力的安全支付。

上述智能设备可以是任意类型的智能设备。例如,上述智能设备可以是机器人,手机终端,家用设备等。

上述方法可以应用于基于区块链搭建的业务系统。上述业务系统可以包括若干节点设备。上述节点设备可以是部署于区块链中的任意电子设备。例如,上述节点设备可以是项目运营方、需求方、智能设备等对应的节点设备。需要说明的是,本申请不对节点设备的设备类型进行特别限定。

上述区块链可以是公有链、私有链或联盟链。其中,当上述区块链为联盟链时,上述节点设备可以是通过验证后才加入上述区块链的节点设备。需要说明的是,本申请不对区块链的具体类型进行限定。

上述区块链中可以部署用于管理智能设备的智能合约。上述智能合约可以由项目运营方根据业务需求预先开发并部署在区块链中的。上述项目运营方可以指需求方,智能设备开发者,智能设备管理平台中的一方或几方。

在一些例子中,上述智能合约在经过项目运营方开发完成后,可以通过项目运营方对应节点设备打包一笔智能合约发布交易发送至上述业务系统。上述业务系统中的各节点对上述智能合约达成共识后,可以完成上述智能合约发布。

上述智能合约中可以声明发送逻辑。一方面,通过该发送逻辑可以与上述智能设备进行交互,将上述设备控制请求对应的控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作智能设备;

另一方面,可以从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

请参见图2,图2为本申请示出的一种基于区块链的设备控制方法的方法流程图。

如图2所示,上述设备控制方法(以下简称方法)可以包括:

S202,接收需求方发起的设备控制请求。

上述需求方,可以是指对智能设备有运转需求的任意用户。例如,上述需求方可以是快递派送人员。该人员可以向智能小车发生派送指令,使该小车将快递送往目的地。再例如,上述需求方可以是操作工人。该工人可以向机器手臂发送控制指令,使该手臂完成产品生产。

上述设备控制请求,具体可以包括针对智能设备的具体需求。

在一些例子中,上述设备控制请求可以包括针对智能设备的控制指令。上述控制指令,具体包括上述智能设备可以识别的操作指令。例如,上述控制指令可以是,向前位移1米或者旋转360度等。

需求方可以根据对应的客户端完成控制指令的输入。然后上述客户端可以根据输入信息生成上述设备控制请求,并发送至上述业务系统,以由该系统进行合约调用。

在一些例子中,为上述设备控制请求可以包括控制参数。即需求方可以根据需求在客户端中输入控制参数。然后上述客户端可以将上述设备控制请求发送至上述业务系统。上述业务系统可以根据上述控制参数生成控制指令。

在本例中,由于上述控制指令由上述业务系统生成,提升了控制指令的可信性。

在一些例子中,在开发上述智能合约时,可以开发控制指令生成逻辑。在生成控制指令时,可以调用上述智能合约包括的生成逻辑,基于上述控制参数生成控制指令。

由于上述控制指令是依赖上述智能合约生成,因此,可以保证上述控制指令的透明化与不可篡改,进而提升控制指令的可信性。

业务系统在接收到上述设备控制请求后,可以执行S204,调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作,以及,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在一些例子中,上述智能合约可以将上述控制指令发布至上述区块链,并将指示上述控制指令的区块信息发送至上述智能设备。上述智能设备可以基于获取到的区块信息从上述区块中获取上述控制指令。

在一些例子中,上述智能合约可以通过发送逻辑,生成包含上述控制指令的发送事件,以使上述智能设备对应的服务端在获取到上述发送事件时,将上述发送事件进一步发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述发送事件中的控制指令控制上述智能设备执行与上述控制指令对应的控制动作。

上述智能设备对应的服务端可以包括上述智能设备接入的区块链即服务BaaS平台;或者,上述智能设备接入的区块链节点设备上搭载的服务程序(SDK)。

在一些例子中上述智能设备可以通过BaaS平台以拉块的方式在上述区块链中监听上述发送事件。当BaaS平台监听到上述发送事件后,可以将上述发送事件发送至上述智能设备。该智能设备可以上述响应于上述发送事件,根据上述发送事件中的控制指令,完成对应的控制动作。

在一些例子中,上述区块链账户,可以是用户(例如,需求方)在上述区块链中完成注册后,为上述用户创建的账户。在一些例子中,上述区块链账户可以是合约账户,即由上述智能合约为用户创建的账户。

在一些例子中,上述虚拟资源可以是与线下实物锚定的虚拟资产。通过上述区块链中搭载的价值锚定合约,可以将需求方拥有的线下实物(例如,汽车,房产,账户余额等)锚定为链上虚拟资产,并存在上述需求方对应的账户中。

当某一需求方通过控制指令完成对智能设备的控制,则需要向上述智能设备支付该次控制指令价值锚定的虚拟资源。

在一些例子中,上述虚拟资源包括与上述控制指令所消耗的上述智能设备的系统资源价值锚定的资源。在执行S204时,可以确定执行上述控制指令所消耗的上述智能设备的系统资源的第一数量。然后,计算与上述第一数量价值锚定的虚拟资源的第二数量。最后,再从上述需求方对应的区块链账户向上述智能设备对应的区块链账户转入上述第二数量的虚拟资源。

在一些例子中,可以预先根据业务需求,设定单位系统资源与单位虚拟资源的比例关系。然后根据上述第一数量,以及上述比例关系,可以确定上述第二数量。

在上述例子中,可以通过智能设备消耗的系统资源量确定转移的虚拟资源量,因此可以为上述智能设备支付与生产力等价的报酬,进而保证智能设备权益。

在一些例子中,上述虚拟资源包括与上述控制指令的指令类型价值锚定的资源。在执行S204时,可以计算与上述控制指令的指令类型价值锚定的上述虚拟资源的第三数量。然后,再从上述需求方对应的区块链账户向上述智能设备对应的区块链账户转入上述第三数量的虚拟资源。

在一些例子中,在上述区块链中可以预先维护指令类型与虚拟资源数量的对应关系。在计算上述第三数量时可以先确定上述控制指令的指令类型。然后通过查找上述对应关系,确定上述第三数量。

在上述例子中,可以通过控制指令的指令类型确定转移的虚拟资源量,因此可以为上述智能设备支付与执行动作等价的报酬,进而保证智能设备权益。

在上述方案中,由于可以调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,完成对上述智能设备的控制,并从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源;因此,可以通过智能合约驱动对智能设备的控制以及对智能设备生产力的支付,从而保证控制过程与支付过程的透明化与不可篡改,进而实现对智能设备的可信管理以及对智能设备生产力的安全支付。

在一些例子中,在从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源时,可以响应于将上述控制指令发送至上述控制设备,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在本例中,上述设备控制请求中包括上述需求方对应的账户信息以及上述智能设备对应的账户信息。上述业务系统可以在完成与上述智能设备的交互后,调用上述智能合约包括的转账逻辑,以从上述设备控制请求中获取上述账户信息。然后从需求方对应的账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在这里,由于上述智能设备可以在接收到控制指令时,接收到转入的虚拟资源,从而保证了智能设备的权益。

在一些例子中,可以响应于上述智能设备执行了与上述控制指令对应的控制动作,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在本例中,上述业务系统可以通过上述智能合约生成发送事件,向上述智能设备发送上述控制指令。上述智能设备可以响应于上述控制指令完成控制动作,并生成动作完成的结果作为上述发送事件的响应返回至上述智能合约。上述业务系统在接收到动作完成的结果后,可以从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在这里,由于在智能设备完成控制动作后,才进行资源转移,因此,保证了需求方的权益。

在一些例子中,上述控制指令基于上述需求方对应的私钥进行了数字签名处理;和/或,基于上述智能合约对应的私钥进行了数字签名处理。

上述智能设备在解析上述控制指令时,可以基于上述需求方对应的私钥和/或上述智能合约对应的私钥对该控制指令进行签名验证。如果验证通过,则可以验证该控制指令的真实性。

在本例中,通过数字签名机制,进一步保证了控制指令的可信性,实现对智能设备的可信管理。

在一些例子中,上述智能设备搭载的操作系统包括用于响应控制指令的若干控制单元。其中,上述若干控制单元可以分别对应不同的控制动作。例如,上述智能设备可以是机器人。上述若干控制单元可以控制机器人手臂的手臂控制单元,控制机器人行走的行走控制单元。上述控制单元可以是由开发人员预先开发的程序代码构成的。

可以理解的是,此时对智能设备的控制可以是对上述控制单元的控制。

在一些例子中,执行上述S204时,可以调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述控制指令控制上述智能设备执行与上述控制指令对应的控制动作。

在一些例子中,可以通过上述智能合约将上述控制指令发布在上述区块链中,并将上述控制指令对应区块的区块信息发送至上述目标控制单元。上述目标控制单元可以通过上述区块信息获取上述控制指令,并完成相应控制动作。

在一些例子中,上述操作系统为ROS(Robot Operating System,机器人操作系统)。

上述ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。该ROS中可以包括若干ROS Node(机器人操作系统节点)以及ROS Master(机器人操作系统管理员)。

上述ROS Master,可以用于管理上述ROS Node,并提供基础服务。上述基础服务包括但不限于保存智能合约合需求方公钥。

上述ROS Node可以理解为上述控制单元,用于控制机器人完成不同的控制动作。

上述ROS可以采用诸如Topic机制的异步通信方式。在一些例子中,ROS Node、ROSMaster以及上述智能合约可以登记或发布任意Topic,并在该Topic下发布消息或订阅消息。

在一些例子中,可以接收需求方发起的创建请求;其中,上述创建请求包括用于创建上述目标Topic的创建信息。然后响应于上述创建请求,调用上述智能合约包括的创建逻辑,基于上述创建信息创建上述目标Topic。

上述目标Topic可以部署于上述区块链。可以将创建的上述目标Topic对应区块的区块信息发送至上述ROS,以使上述ROS包括的各Node可以通过上述区块信息获取上述目标Topic,并监听目标Topic下的消息。

完成目标Topic创建后,可以通过上述智能合约将上述控制指令发布至上述区块链部署的目标Topic中。然后,将上述目标Topic对应区块的区块信息发送至订阅该目标Topic的目标控制单元,以使上述目标控制单元根据上述区块信息获取上述目标Topic中的控制指令并执行相应动作。

在一些例子中,可以调用上述智能合约包括的发送逻辑,生成包含上述控制指令的发送事件,以使上述智能设备对应的服务端在获取到上述发送事件时,将上述发送事件进一步发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述发送事件中的控制指令控制上述智能设备执行与上述控制指令对应的控制动作。

在一些例子中,上述操作系统为ROS(Robot Operating System,机器人操作系统)。上述控制单元包括上述ROS系统中的ROS node。上述ROS中部署了Topic。

此时,上述智能合约生成发送事件后可以将该发送事件发布至上述区块链。上述智能设备接入的区块链即服务BaaS平台或者上述智能设备接入的区块链节点设备上搭载的服务程序(例如,SDK)可以监听上述区块链中发布的发送事件。在监听到上述发送事件后,可以将上述发送事件进一步发送至上述智能设备。上述智能设备搭载的ROS Master可以解析出上述发送事件包括的控制指令,并将上述控制指令写入上述ROS部署的目标Topic中。订阅该目标Topic的目标控制单元可以获取上述控制指令并完成相应动作。

在上述方案中,通过智能合约将控制指令发送至智能设备对应的目标控制单元以使上述目标控制单元控制上述智能设备执行与上述控制指令对应的控制动作,从而实现对智能设备的可信管理。

以下结合对机器人进行控制的场景进行实施例说明。

请参见图3,图3为本申请示出的一种场景示意图。

如图3所示,机器人管理系统(以下简称系统)包括相互通信的区块链子系统(以下简称区块链)以及服务子系统。

其中,上述机器人管理系统用于提供机器人管理服务。

上述服务子系统可以与需求方A,智能设备B对应的客户端进行连接,并为之提供服务。上述服务不限于响应于需求方的请求发布智能合约调用交易,或与智能设备进行数据交互等。在一些例子中,上述服务子系统可以是BaaS平台。

图3中示出运营方C可以根据业务需求开发一套智能合约。该智能合约包括发送逻辑,该发送逻辑可以将控制指令发送至机器人,并完成向机器人的安全支付。该智能合约还可以包括创建逻辑,用于创建Topic。

上述运营方C可以将上述智能合约发送至上述服务子系统,以使该服务系统构建智能合约发布交易完成该合约的存证。

上述机器人B可以是扫地机器人。该设备中可以搭载与上述服务子系统对应的客户端,实现与该子系统的交互。

上述机器人B可以搭载ROS(Robot Operating System,机器人操作系统)。

假设本例中,ROS Node1(以下简称Node1)用于控制机器人行走。

上述ROS可以采用诸如Topic机制的一步通信方式。在一些例子中,ROS Node(以下简称Node)、ROS Master(以下简称Master)以及上述智能合约可以登记或发布任意Topic,并在该Topic下发布消息或订阅消息。

上述需求方A可以通过上述机器人管理系统向机器人B发送控制指令,完成对B的控制。

上述需求方A、机器人B可以预先在上述系统中完成注册。在完成注册后,上述智能合约可以分配与需求方A对应的A账户以及与机器人B对应的B账户。需求方A可以预先向上述A账户中充值一定量的虚拟资产。

在完成注册后,上述智能合约可以分别为需求方A与机器人B分配一对公私钥,并且可以将智能合约对应的合约地址(即智能合约公钥)返回需求方A和机器人B。其中,机器人B可以将上述智能合约公钥存储至Master中。Node可以从上述Master处获取上述公钥。需求方A可以在上述区块链中广播其对应的公钥,机器人B可以将需求方A的公钥存储至上述Master中。

当需求方A需要使机器人B行走1米时,可以通过客户端A构建行走Topic创建请求;其中,上述创建请求包括用于创建目标Topic(行走Topic)的创建信息;然后上述客户端A可以将该请求发送至对应的服务子系统。

上述服务系统在接收到上述请求后,可以构建智能合约调用交易,调用上述智能合约包括的创建逻辑,基于上述创建信息创建上述目标Topic。

在一些例子中,在创建好上述目标Topic后,可以将上述目标Topic发布至上述区块链。上述Node可以通过上述服务子系统(上述机器人对应的服务端)或者上述机器人备接入的区块链节点设备上搭载的服务程序(例如SDK)从上述区块链中监听Topic下的消息。

在一些例子中,区块链中部署的Topic包括执行动作关键字;ROS包括的各Node可以通过识别上述关键字确定是否订阅该Topic。在本场景中,Node1是用于控制机器人行走的,因此,可以订阅上述目标Topic(行走Topic)下的控制指令消息。当Node1监听到上述目标Topic下的控制指令消息后,可以通过该控制指令控制上述机器人执行相应的动作。

请参见图4,图4为本申请示出的一种机器人控制流程示意图。

如图4所示,当需求方A需要使机器人B行走1米时,可以通过客户端A构建设备控制请求。其中,上述设备控制请求可以包括通过Node1使机器人B行走1米的控制指令以及上述智能合约对应的合约地址。本申请不对指令的具体格式进行限定。

上述客户端A可以执行S402,利用需求方A对应的私钥对该请求和该指令进行签名,并将该请求发送至上述服务子系统。

上述服务子系统在接收到该请求后,可以通过需求方对应的公钥对该请求进行验证,并在验证通过后,基于该请求中携带的合约地址以及上述控制指令构建智能合约调用交易。上述服务子系统可以将该调用交易发布至区块链。上述区块链中的各节点设备在达成共识后,可以获取上述智能合约,并在本地搭载的虚拟机(EVM)中执行该合约。

上述节点设备可以执行S404,调用上述智能合约中的发送逻辑,一方面,通过智能合约对应的私钥对上述控制指令进行签名,并将签名后的控制指令发布在上述行走Topic下。

另一方面,确定上述需求方A对应的A账户,以及机器人B对应的B账户。然后还可以确定该次控制指令对应的转移资产。在确定上述信息后,可以从A账户中划出确定的上述转移资产,并转入B账户中。

上述Node1可以执行S406,监听上述行走Topic下的控制指令消息。当监听到上述控制指令消息后,可以从上述Topic处获取上述控制指令消息。然后再从Master处获取上述智能合约和上述需求方对应的公钥。之后,可以通过获取的公钥对上述控制指令进行验证,并在验证通过后控制上述机器人执行行走1米的动作。

在上述方案中,通过上述智能合约一方面可以使机器人按照需求方提出的控制指令完成相应动作达到可信管理的目的;另一方面还可以为机器人付出的劳动进行安全支付。

本申请中还提出一种基于区块链的设备控制方法,上述区块链中部署了用于管理智能设备的智能合约。

请参见图5,图5为本申请示出的一种基于区块链的设备控制方法的方法流程图。

如图5所示,上述方法可以包括:

S502,接收需求方发起的设备控制请求。

S504,调用上述智能合约包括的转入逻辑,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述设备控制请求对应的控制指令价值锚定的虚拟资源。

S506,在向上述智能设备对应的区块链账户转入预设数量的虚拟资源之后,进一步调用上述智能合约中的发送逻辑,得到上述控制请求对应的控制指令并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作。

在上述例子中,由于可以先通过智能合约包括的转入逻辑完成虚拟资源的转移,然后再通过智能合约包括的发送逻辑,与智能设备进行交互完成对该设备的控制,从而一方面,可以通过智能合约驱动对智能设备的控制以及对智能设备生产力的支付,从而保证控制过程与支付过程的透明化与不可篡改,进而实现对智能设备的可信管理以及对智能设备生产力的安全支付;另一方面,可以保证智能设备的权益。

与上述任一实施例相对应的,本申请还提出一种基于区块链的设备控制装置。

请参见图6,图6为本申请示出的一种基于区块链的设备控制装置的结构示意图。

如图6所示,上述装置60可以包括:

接收模块61,接收需求方发起的设备控制请求;

调用模块62,调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作,以及,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在示出的一些实施例中,上述智能设备搭载的操作系统包括用于响应控制指令的若干控制单元;

上述调用模块62具体用于:

调用上述智能合约,得到上述设备控制请求对应的控制指令,并将上述设备控制请求对应的控制指令发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述控制指令控制上述智能设备执行与上述控制指令对应的控制动作。

在示出的一些实施例中,上述若干控制单元分别对应不同的控制动作。

在示出的一些实施例中,上述调用模块62包括:

发布模块,将上述控制指令发布至上述区块链;

发送模块,将上述控制指令对应区块的区块信息发送至上述目标控制单元,以使上述目标控制单元根据上述区块信息获取上述控制指令。

在示出的一些实施例中,上述操作系统为ROS系统;上述控制单元包括上述ROS系统中的ROS node;上述区块链中部署了Topic;

上述发布模块具体用于:将上述控制指令发布至上述区块链部署的目标Topic中;

上述发送模块具体用于:

将上述目标Topic对应区块的区块信息发送至订阅该目标Topic的目标控制单元,以使上述目标控制单元根据上述区块信息获取上述目标Topic中的控制指令。

在示出的一些实施例中,上述调用模块62具体用于:

调用上述智能合约包括的发送逻辑,生成包含上述控制指令的发送事件,以使上述智能设备对应的服务端在获取到上述发送事件时,将上述发送事件进一步发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述发送事件中的控制指令控制上述智能设备执行与上述控制指令对应的控制动作。

在示出的一些实施例中,上述操作系统为ROS系统;上述控制单元包括上述ROS系统中的ROS node;

上述调用模块62具体用于:

将上述发送事件进一步发送至上述目标控制单元订阅的目标Topic,以使上述目标控制单元从订阅的上述目标Topic获取上述发送事件。

在示出的一些实施例中,上述装置60还包括:

创建请求接收模块,接收需求方发起的创建请求;其中,上述创建请求包括用于创建上述目标Topic的创建信息;

创建逻辑调用模块,响应于上述创建请求,调用上述智能合约包括的创建逻辑,基于上述创建信息创建上述目标Topic。

在示出的一些实施例中,与上述智能设备对应的服务端包括上述智能设备接入的区块链即服务BaaS平台;或者,上述智能设备接入的区块链节点设备上搭载的服务程序。

在示出的一些实施例中,上述调用模块62具体用于:

响应于将上述控制指令发送至上述控制设备,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源;或者,

响应于上述智能设备执行了与上述控制指令对应的控制动作,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述控制指令价值锚定的虚拟资源。

在示出的一些实施例中,上述虚拟资源包括与上述控制指令所消耗的上述智能设备的系统资源价值锚定的资源;

上述调用模块62具体用于:

确定执行上述控制指令所消耗的上述智能设备的系统资源的第一数量;

计算与上述第一数量价值锚定的虚拟资源的第二数量;

从上述需求方对应的区块链账户向上述智能设备对应的区块链账户转入上述第二数量的虚拟资源。

在示出的一些实施例中,上述虚拟资源包括与上述控制指令的指令类型价值锚定的资源;

上述调用模块62具体用于:

计算与上述控制指令的指令类型价值锚定的上述虚拟资源的第三数量;

从上述需求方对应的区块链账户向上述智能设备对应的区块链账户转入上述第三数量的虚拟资源。

在示出的一些实施例中,上述控制指令基于上述需求方对应的私钥进行了数字签名处理;和/或,基于上述智能合约对应的私钥进行了数字签名处理;

上述调用模块62具体用于:

将上述控制指令发送至上述智能设备搭载的操作系统中的目标控制单元,以使上述目标控制单元响应上述控制指令,对于与上述私钥对应的公钥对上述控制指令进行数字签名验证,并在验证通过时,控制上述智能设备执行与上述控制指令对应的控制动作。

在示出的一些实施例中,上述设备控制请求包括针对上述智能设备的控制参数;上述调用模块62具体用于:

调用上述智能合约,基于上述控制参数生成控制指令。

在示出的一些实施例中,上述调用模块62具体用于:

调用上述智能合约包括的生成逻辑,基于上述控制参数生成控制指令。

本申请还提出一种基于区块链的设备控制装置70,上述区块链中部署了用于管理智能设备的智能合约。上述装置70可以包括:

接收模块71,接收需求方发起的设备控制请求;

第一调用模块72,调用上述智能合约包括的转入逻辑,从上述需求方对应的区块链账户,向上述智能设备对应的区块链账户转入与上述设备控制请求对应的控制指令价值锚定的虚拟资源;

第二调用模块73,在向上述智能设备对应的区块链账户转入预设数量的虚拟资源之后,进一步调用上述智能合约中的发送逻辑,得到上述设备控制请求对应的控制指令,并将上述控制指令发送至上述智能设备,以控制上述智能设备执行与上述控制指令对应的控制动作。

本申请示出的基于区块链的设备控制装置的实施例可以应用于电子设备上。相应地,本申请公开了一种电子设备,上述电子设备部署于区块链;上述区块链中部署了用于管理智能设备的智能合约。该设备可以包括:处理器。

用于存储处理器可执行指令的存储器。

其中,上述处理器被配置为调用上述存储器中存储的可执行指令,实现如上述任一实施例示出的设备控制方法。

请参见图7,图7为本申请示出的一种电子设备的硬件结构示意图。

如图7所示,该电子设备可以包括用于执行指令的处理器,用于进行网络连接的网络接口,用于为处理器存储运行数据的内存,以及用于存储设备控制装置对应指令的非易失性存储器。

其中,设备控制装置的实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

可以理解的是,为了提升处理速度,设备控制装置对应指令也可以直接存储于内存中,在此不作限定。

本申请提出一种计算机可读存储介质,上述存储介质部署于区块链;上述区块链中部署了用于管理智能设备的智能合约。上述存储介质存储有计算机程序,上述计算机程序用于执行上述任一实施例示出的设备控制方法。

本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上述实施的计算机程序产品的形式。

本申请中的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”可以包括三种方案:A、B、以及“A和B”。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、可以包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上述以被数据处理装置执行或控制参数处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上述,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。

本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。上述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。

适合用于执行计算机程序的计算机可以包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件可以包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将可以包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质可以包括所有形式的非易失性存储器、媒介和存储器设备,例如可以包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。

相关技术
  • 基于区块链的设备控制方法、装置、设备和存储介质
  • 基于区块链的安检通行控制方法、装置、设备及存储介质
技术分类

06120112739147