电子通信装置的制造及其应用技术基于mqtt协议的lot跨链方法及系统技术领域1.本发明涉及mqtt协议的技术领域,具体地,涉及一种基于mqtt协议的lot跨链方法。背景技术:2.mqtt是物联网lot系统应用最广泛的低功耗、低时延的通信协议,包括中间角色的mqtt代理brocker和mqtt客户端cl ient。3.区块链是一种去中心化的分布式账本数据库,区块链具有两大核心特点:一是数据难以篡改,二是去中心化,基于这两个特点,区块链记录的信息更加可靠,可以帮助人们解决互不信任的问题。4.物联网iot设备因为硬件计算和存储能力的不足和安全上的问题,很难直接持有区块链的公私钥对,因此难以进行上链操作。因此基于物联网lot设备的上链操作是一个难题。技术实现要素:5.针对现有技术中的缺陷,本发明的目的是提供一种基于mqtt协议的lot跨链方法及系统。6.根据本发明提供的一种基于mqtt协议的lot跨链方法,包括以下步骤:7.步骤s1:建立mqtt broker的区块链账户;8.步骤s2:在区块链上建立mqtt broker与其他broker的可信任连接;9.步骤s3:建立多个mqtt broker形成的跨链网络。10.优选地,所述步骤s1包括以下子步骤:11.步骤s1.1:建立mqtt broker独立的区块链账户角色,公私钥对;建立mqtt broker在区块链上智能合约mqttbrokermanager中的注册身份,建立与区块链节点的连接,监听智能合约mqttbrokermanager上的消息;12.步骤s1.2:定义mqtt topic与区块链智能合约的映射代理;13.步骤s1.3:建立mqtt broker级连身份;访问其他broker的mqtt的client账户和client ca证书,与其他mqtt broker建立桥接,多个broker间形成级连。14.优选地,所述步骤s1.2包括:15.映射topic的定义结构1:区块链简称符号/区块链网络号/智能合约地址;16.映射topic的定义结构2:区块链简称符号/区块链网络号/智能合约别名;17.mqtt message的结构体支持直接使用web3 json-rpc的结构体;18.支持用户配置自定义的topic message和web3 json-rpc的转换脚本。19.优选地,所述步骤s2包括以下子步骤:20.步骤s2.1:通过第一mqtt broker向同一条区块链上的第二mqtt broker发起连接请求,使第一mqtt broker将加密数据发送给链上合约,并指明第二mqtt broker的地址;所述加密数据为:将第一mqtt broker的client、ca证书、ip地址端口以及第二mqtt broker的公钥信息整体打包,采用第一mqtt broker的私钥进行非对称加密而成;21.步骤s2.2:通过区块链智能合约mqttbrokermanager鉴定合约调用者第一mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第二mqtt broker,通知中包含请求的req-id;22.步骤s2.3:通过第二mqtt broker调用智能合约方法获取请求req-id对应的数据包,对数据包签名进行验签,判断是否为第一mqtt broker;23.步骤s2.4:通过第二mqtt broker的私钥对加密数据包进行非对称解密,获取第一mqtt broker的信息;24.步骤s2.5:当第二mqtt broker拒接连接,调用智能合约mqttbrokermanager的方法通知拒绝第一mqtt broker的请求;当第二mqtt broker同意连接,则将第一mqtt broker的client和ca证书内容加入本地白名单,并生成第一mqtt broker的client的访问密码一起打包,通过第二mqtt broker的私钥进行非对称加密,调用智能合约mqttbrokermanager的授权连接方法,通知同意alice的连接请求;25.步骤s2.6:通过区块链智能合约mqttbrokermanager鉴定合约调用者第二mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第一mqtt broker已经授权,通知中包含本次请求的req-id;26.步骤s2.7:通过第一mqtt broker调用智能合约方法获取第二mqtt broker请求req-id授权的数据包,并对数据包签名进行验签,使用第一mqtt broker的私钥进行非对称解密,获取其中授权访问client的访问密码;27.步骤s2.8:通过第一mqtt broker使用client访问密码与第二mqtt broker建立mqtt安全连接。28.优选地,所述步骤s3包括以下子步骤:29.步骤s3.1:将第一mqtt broker同时与第一区块链bc1和第二区块链bc2进行合约映射;30.步骤s3.2:当第一mqtt broker向topic发送的消息面向自身所在的第一区块链bc1时,使用第一mqtt broker的bc1账号,将消息体转为web3 json-rpc结构,调用区块链bc1的对应智能合约方法;当第一mqtt broker向topic发送的消息面向第二区块链bc2时,将消息用私钥进行签名,通过mqtt broker之间的级连消息,发送到位于第二区块链bc2上的第三mqtt broker上,其中第一mqtt broker与第三mqtt broker通过非区块链方式建立连接;31.步骤s3.3:通过第三mqtt broker的topic映射代理,对消息体进行验签,然后转为web3 json-rpc结构,调用区块链bc2的对应智能合约方法。32.根据本发明提供的一种基于mqtt协议的lot跨链系统,包括以下步骤:33.模块m1:建立mqtt broker的区块链账户;34.模块m2:在区块链上建立mqtt broker与其他broker的可信任连接;35.模块m3:建立多个mqtt broker形成的跨链网络。36.优选地,所述模块m1包括以下子模块:37.模块m1.1:建立mqtt broker独立的区块链账户角色,公私钥对;建立mqtt broker在区块链上智能合约mqttbrokermanager中的注册身份,建立与区块链节点的连接,监听智能合约mqttbrokermanager上的消息;38.模块m1.2:定义mqtt topic与区块链智能合约的映射代理;39.模块m1.3:建立mqtt broker级连身份;访问其他broker的mqtt的client账户和client ca证书,与其他mqtt broker建立桥接,多个broker间形成级连。40.优选地,所述模块m1.2包括:41.映射topic的定义结构1:区块链简称符号/区块链网络号/智能合约地址;42.映射topic的定义结构2:区块链简称符号/区块链网络号/智能合约别名;43.mqtt message的结构体支持直接使用web3 json-rpc的结构体;44.支持用户配置自定义的topic message和web3 json-rpc的转换脚本。45.优选地,所述模块m2包括以下子模块:46.模块m2.1:通过第一mqtt broker向同一条区块链上的第二mqtt broker发起连接请求,使第一mqtt broker将加密数据发送给链上合约,并指明第二mqtt broker的地址;所述加密数据为:将第一mqtt broker的client、ca证书、ip地址端口以及第二mqtt broker的公钥信息整体打包,采用第一mqtt broker的私钥进行非对称加密而成;47.模块m2.2:通过区块链智能合约mqttbrokermanager鉴定合约调用者第一mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第二mqtt broker,通知中包含请求的req-id;48.模块m2.3:通过第二mqtt broker调用智能合约方法获取请求req-id对应的数据包,对数据包签名进行验签,判断是否为第一mqtt broker;49.模块m2.4:通过第二mqtt broker的私钥对加密数据包进行非对称解密,获取第一mqtt broker的信息;50.模块m2.5:当第二mqtt broker拒接连接,调用智能合约mqttbrokermanager的方法通知拒绝第一mqtt broker的请求;当第二mqtt broker同意连接,则将第一mqtt broker的client和ca证书内容加入本地白名单,并生成第一mqtt broker的client的访问密码一起打包,通过第二mqtt broker的私钥进行非对称加密,调用智能合约mqttbrokermanager的授权连接方法,通知同意alice的连接请求;51.模块m2.6:通过区块链智能合约mqttbrokermanager鉴定合约调用者第二mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第一mqtt broker已经授权,通知中包含本次请求的req-id;52.模块m2.7:通过第一mqtt broker调用智能合约方法获取第二mqtt broker请求req-id授权的数据包,并对数据包签名进行验签,使用第一mqtt broker的私钥进行非对称解密,获取其中授权访问client的访问密码;53.模块m2.8:通过第一mqtt broker使用client访问密码与第二mqtt broker建立mqtt安全连接。54.优选地,所述模块m3包括以下子模块:55.模块m3.1:将第一mqtt broker同时与第一区块链bc1和第二区块链bc2进行合约映射;56.模块m3.2:当第一mqtt broker向topic发送的消息面向自身所在的第一区块链bc1时,使用第一mqtt broker的bc1账号,将消息体转为web3 json-rpc结构,调用区块链bc1的对应智能合约方法;当第一mqtt broker向topic发送的消息面向第二区块链bc2时,将消息用私钥进行签名,通过mqtt broker之间的级连消息,发送到位于第二区块链bc2上的第三mqtt broker上,其中第一mqtt broker与第三mqtt broker通过非区块链方式建立连接;57.模块m3.3:通过第三mqtt broker的topic映射代理,对消息体进行验签,然后转为web3 json-rpc结构,调用区块链bc2的对应智能合约方法。58.与现有技术相比,本发明具有如下的有益效果:59.1、本发明通过mqtt broker实现了lot设备的代理上链,解决了物联网lot设备因为硬件计算和存储能力的不足和安全上的问题,难以上链的问题。60.2、本发明中的broker之间基于区块链的信任机制实现链上身份,进行broker之间的可信数据交互,进一步对交互数据可进行区块链确权和记账,并且broker之间的级连实现物联网的跨链技术。61.3、本发明从协议层面上定义mqtt topic与区块链智能合约的映射,解决了物联网设备侧无需要改动,即能实现链下数据协议与链上数据协议的转换。附图说明62.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:63.图1为本发明实施例中mqtt broker建立连接的流程图;64.图2为本发明实施例中多个mqtt broker支持的跨链操作流程图;65.图3为本发明实施例中多个mqtt broker跨链操作示意图。具体实施方式66.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。67.本发明公开了一种基于mqtt协议的lot跨链方法,mqtt是物联网iot系统应用范围最广泛的低功耗、低时延的通信协议,包括中间角色的mqtt代理broker和mqtt客户端client.68.区块链是建立信任的分布式帐本,将mqtt代理和客户端与区块链关联,具备链上身份,通过区块链进行鉴权和建立信任的保证,将区块链上智能合约与mqtt的协议进行映射,实现一种layer1与layer2的关联方法,同时通过broker间的级连功能将连接不同区块链的多个broker建立起网络,形成物联网iot设备间的跨链网络,实现了一种链下物联网设备数据到链上的iot预言机(oracle)手段,以及iot预言机数据跨链的方案。69.本技术方案的mqtt版本需要是v5.0版本,具体包括以下步骤:70.步骤s1:建立mqtt broker的区块链账户,具体包括:71.步骤s1.1:建立独立的区块链帐户角色,公私钥对。以下的描述中alice是broker的区块链身份,bob也是类似;72.区块链上智能合约mqttbrokermanager中的注册身份;73.建立与区块链节点的连接,监听智能合约mqttbrokermanager上的消息。74.步骤s1.2:定义mqtt topic与区块链智能合约的映射代理:75.映射topic的定义结构1:区块链简称符号/区块链网络号/智能合约地址;76.映射topic的定义结构2:区块链简称符号/区块链网络号/智能合约别名;77.mqtt message的结构体支持直接使用web3 json-rpc的结构体;78.支持用户配置自定义的topic message和web3 json-rpc的转换脚本。79.步骤s1.3:建立mqtt broker级连身份;访问其他broker的mqtt的client账户和client ca证书,与其他mqtt broker建立桥接,多个broker间形成级连。80.步骤s2:在区块链上建立mqtt broker与其他broker的可信任连接,如图1所示;81.过同一条区块链进行连接的多个mqtt broker角色如下:82.a、发起连接请求的mqtt broker:alice83.b、alice期望连接到的mqtt broker:bob84.c、所有mqtt broker都保持着与区块链的连接,监听了智能合约mqttbrokermanager上的消息85.步骤s2.1:通过第一mqtt broker(alice)向同一条区块链上的第二mqtt broker(bob)发起连接请求,使第一mqtt broker(alice)将加密数据发送给链上合约,并指明第二mqtt broker(bob)的地址;所述加密数据为:将第一mqtt broker(alice)的client、ca证书、ip地址端口以及第二mqtt broker(bob)的公钥信息整体打包,采用第一mqtt broker(alice)的私钥进行非对称加密而成;86.步骤s2.2:通过区块链智能合约mqttbrokermanager鉴定合约调用者第一mqtt broker(alice)的身份是否已经合法登记,如果合法,则通过智能合约消息通知第二mqtt broker(bob),通知中包含请求的req-id;87.步骤s2.3:通过第二mqtt broker(bob)调用智能合约方法获取请求req-id对应的数据包,对数据包签名进行验签,判断是否为第一mqtt broker(alice);88.步骤s2.4:通过第二mqtt broker(bob)的私钥对加密数据包进行非对称解密,获取第一mqtt broker(alice)的信息;89.步骤s2.5:当第二mqtt broker(bob)拒接连接,调用智能合约mqttbrokermanager的方法通知拒绝第一mqtt broker(alice)的请求;当第二mqtt broker(bob)同意连接,则将第一mqtt broker(alice)的client和ca证书内容加入本地白名单,并生成第一mqtt broker(alice)的client的访问密码一起打包,通过第二mqtt broker(bob)的私钥进行非对称加密,调用智能合约mqttbrokermanager的授权连接方法,通知同意alice的连接请求;90.步骤s2.6:通过区块链智能合约mqttbrokermanager鉴定合约调用者第二mqtt broker(bob)的身份是否已经合法登记,如果合法,则通过智能合约消息通知第一mqtt broker(alice)已经授权,通知中包含本次请求的req-id;91.步骤s2.7:通过第一mqtt broker(alice)调用智能合约方法获取第二mqtt broker请求req-id授权的数据包,并对数据包签名进行验签,使用第一mqtt broker(alice)的私钥进行非对称解密,获取其中授权访问client的访问密码;92.步骤s2.8:通过第一mqtt broker(alice)使用client访问密码与第二mqtt broker(bob)建立mqtt安全连接。93.步骤s3:建立多个mqtt broker形成的跨链网络,如图2和图3所示。94.多个mqtt broker的帐号和权限如下所示:95.mqtt broker:alice具备区块链bc1的帐号公私钥,在bc1上的智能合约mqttbrokermanager已经注册,并且被授权。96.mqtt broker:bob具备区块链bc2的帐号公私钥,在bc2上的智能合约mqttbrokermanager已经注册,并且被授权。97.事先已经通过非区块链方法,直接建立了alice与bob的mqtt连接,即alice的client ca在bob的白名单中,并且拥有访问bob的mqtt client密码。同样的,bob的client ca在alice的白名单中,并且拥有访问alice的mqtt client密码。98.步骤s3.1:将第一mqtt broker(alice)同时与第一区块链bc1和第二区块链bc2进行合约映射;99.步骤s3.2:当第一mqtt broker(alice)向topic发送的消息面向自身所在的第一区块链bc1时,使用第一mqtt broker(alice)的bc1账号,将消息体转为web3json-rpc结构,调用区块链bc1的对应智能合约方法;当第一mqtt broker(alice)向topic发送的消息面向第二区块链bc2时,将消息用私钥进行签名,通过mqtt broker之间的级连消息,发送到位于第二区块链bc2上的第三mqtt broker(bob)上;100.步骤s3.3:通过第三mqtt broker(bob)的topic映射代理,对消息体进行验签,然后转为web3 json-rpc结构,调用区块链bc2的对应智能合约方法。区块链消息的通知也是相同的topic映射代理方式101.物联网iot设备因为硬件计算和存储能力的不足和安全上的问题,很难直接持有区块链的公私钥对,通过mqtt broker的能力,实现iot设备的代理上链,同时broker之间基于区块链的信任机制实现链上身份,进行broker之间的可信数据交互,进一步对交互数据可进行区块链确权和记账,并且broker之间的级连实现物联网的跨链技术。从协议层面上定义mqtt topic与区块链智能合约的映射,解决了物联网设备侧无需要改动,即能实现链下数据协议与链上数据协议的转换。102.本发明还提供了一种基于mqtt协议的lot跨链系统,包括以下模块:103.模块m1:建立mqtt broker的区块链账户;104.模块m1包括以下子模块:105.模块m1.1:建立mqtt broker独立的区块链账户角色,公私钥对;建立mqtt broker在区块链上智能合约mqttbrokermanager中的注册身份,建立与区块链节点的连接,监听智能合约mqttbrokermanager上的消息;106.模块m1.2:定义mqtt topic与区块链智能合约的映射代理;107.模块m1.2包括:108.映射topic的定义结构1:区块链简称符号/区块链网络号/智能合约地址;109.映射topic的定义结构2:区块链简称符号/区块链网络号/智能合约别名;110.mqtt message的结构体支持直接使用web3 json-rpc的结构体;111.支持用户配置自定义的topic message和web3 json-rpc的转换脚本。112.模块m1.3:建立mqtt broker级连身份;访问其他broker的mqtt的client账户和client ca证书,与其他mqtt broker建立桥接,多个broker间形成级连。113.模块m2:在区块链上建立mqtt broker与其他broker的可信任连接;114.模块m2包括以下子模块:115.模块m2.1:通过第一mqtt broker向同一条区块链上的第二mqtt broker发起连接请求,使第一mqtt broker将加密数据发送给链上合约,并指明第二mqtt broker的地址;所述加密数据为:将第一mqtt broker的client、ca证书、ip地址端口以及第二mqtt broker的公钥信息整体打包,采用第一mqtt broker的私钥进行非对称加密而成;116.模块m2.2:通过区块链智能合约mqttbrokermanager鉴定合约调用者第一mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第二mqtt broker,通知中包含请求的req-id;117.模块m2.3:通过第二mqtt broker调用智能合约方法获取请求req-id对应的数据包,对数据包签名进行验签,判断是否为第一mqtt broker;118.模块m2.4:通过第二mqtt broker的私钥对加密数据包进行非对称解密,获取第一mqtt broker的信息;119.模块m2.5:当第二mqtt broker拒接连接,调用智能合约mqttbrokermanager的方法通知拒绝第一mqtt broker的请求;当第二mqtt broker同意连接,则将第一mqtt broker的client和ca证书内容加入本地白名单,并生成第一mqtt broker的client的访问密码一起打包,通过第二mqtt broker的私钥进行非对称加密,调用智能合约mqttbrokermanager的授权连接方法,通知同意alice的连接请求;120.模块m2.6:通过区块链智能合约mqttbrokermanager鉴定合约调用者第二mqtt broker的身份是否已经合法登记,如果合法,则通过智能合约消息通知第一mqtt broker已经授权,通知中包含本次请求的req-id;121.模块m2.7:通过第一mqtt broker调用智能合约方法获取第二mqtt broker请求req-id授权的数据包,并对数据包签名进行验签,使用第一mqtt broker的私钥进行非对称解密,获取其中授权访问client的访问密码;122.模块m2.8:通过第一mqtt broker使用client访问密码与第二mqtt broker建立mqtt安全连接。123.模块m3:建立多个mqtt broker形成的跨链网络。124.模块m3包括以下子模块:125.模块m3.1:将第一mqtt broker同时与第一区块链bc1和第二区块链bc2进行合约映射;126.模块m3.2:当第一mqtt broker向topic发送的消息面向自身所在的第一区块链bc1时,使用第一mqtt broker的bc1账号,将消息体转为web3 json-rpc结构,调用区块链bc1的对应智能合约方法;当第一mqtt broker向topic发送的消息面向第二区块链bc2时,将消息用私钥进行签名,通过mqtt broker之间的级连消息,发送到位于第二区块链bc2上的第三mqtt broker上;127.模块m3.3:通过第三mqtt broker的topic映射代理,对消息体进行验签,然后转为web3 json-rpc结构,调用区块链bc2的对应智能合约方法。128.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。129.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
基于MQTT协议的loT跨链方法及系统与流程
作者:admin
2022-08-31 11:08:04
321
关键词:
电子通信装置的制造及其应用技术
专利技术
- 下一篇: 一种用于涂层的热喷涂系统的制作方法
- 上一篇: 一种高纵横比通孔机械钻孔的方法与流程