【技术实现步骤摘要】
区块链的外部数据访问方法、装置、系统、设备和介质
[0001]本申请涉及区块链
,尤其涉及一种区块链的外部数据访问方法、装置、系统、设备和介质。
技术介绍
[0002]区块链是一种利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
[0003]区块链可以包括公有链和私有链,公有链中的智能合约可以通过预言机(Oracle)访问外部数据,而私有链尤其是联盟链中,例如超级账本(Hyperledger)Fabric,运行机制与公有链存在不同,通过多节点背书的机制,最后由排序节点生成区块。Hyperledger Fabric中的智能合约可以直接调用外部数据,但是存在重复调用导致外部数据服务器压力大、外部数据可能由于网络原因错误导致共识失败的缺陷。
技术实现思路
[0004]为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种区块链的外部数据访问 ...
【技术保护点】
【技术特征摘要】
1.一种区块链的外部数据访问方法,其特征在于,应用于联盟链的背书节点,所述背书节点中设置有用户合约和预言机合约,预言机服务器对应至少一个所述背书节点,所述方法包括:获取用户客户端的外部数据访问请求,所述外部数据访问请求中携带有交易信息;在所述预言机合约中不存在目标外部数据的情况下,通过所述用户合约调用所述预言机合约,将所述外部数据访问请求发送至预言机服务器,其中,所述目标外部数据为所述外部数据访问请求所请求的数据;接收所述预言机服务器返回的所述交易信息对应的所述目标外部数据;将所述目标外部数据返回给所述用户客户端。2.根据权利要求1所述的方法,其特征在于,所述交易信息包括交易标识和交易所对应统一资源定位符。3.根据权利要求1所述的方法,其特征在于,所述接收预言机服务器返回的所述交易信息对应的目标外部数据,包括:接收所述预言机服务器基于所述交易信息从内部设置的预言机缓存中或者外部数据服务器中得到的目标外部数据。4.根据权利要求3所述的方法,其特征在于,接收所述预言机服务器基于所述交易信息从内部设置的预言机缓存中或者外部数据服务器中得到的目标外部数据,包括:如果所述预言机服务器基于所述交易信息在预言机缓存中查询确定存在对应的目标外部数据,则接收所述预言机服务器返回的所述预言机缓存中的目标外部数据;否则,接收所述预言服务器基于所述交易信息从所述外部服务器中得到的目标外部数据。5.根据权利要求1所述的方法,其特征在于,将所述目标外部数据返回给所述用户客户端,包括:将所述用户合约的用户执行结果以及所述预言机合约的预言机执行结果返回给所述用户客户端,所述用户执行结果和所述预言机执行结果中均包括所述目标外部数据。6.根据权利要求5所述的方法,其特征在于,将所述用户合约的用户执行结果以及所述预言机合约的预言机执行结果返回给所述用户之后,还包括:获取排序节点对所述用户执行结果和所述预言机执行结果进行认证之后生成的交易区块,并将所述交易区块存储在账本中。7.一种区块链的外部数据访问方法,其特征在于,应用于联盟链中的预言机服务器中,所述预言机服务器对应至少一个背书节点,所述背书节点中设置有用户合约和预言机合约,所述方法包括:接收背书节点在所述预言机合约中不存在目标外部数据的情况下,通过所述用户合约调用所述预言机合约发送的外部数据访问请求,其中,所述目标外部数据为所述外部数据访问请求所请求的数据,所述外部数据访问请求中携带有交易信息;基于所述交易信息获取对应的目标外部数据;将所述目标外部数据返回给所述背书节点,以使所述背书节点将所述目标外部数据返回给用户客户端。8.根据权利要求7所述的方法,其特征在于,所述预言机服务器中设置有预言机缓存,所述基于所述交易信息获取对应的目标外部数据,包括:
基于所述交易信息从所述预言机缓存中或者外部数据服务器中获取目标外部数据。9.根据权利要求8所述的方法,其特征在于,基于所述交易信息从所述预言机缓存中或者外部数据服务器中获取目标外部数据,包括:如果基于所述交易信息在所述预言机缓存中查询确定存在对应的目标外部数据,则从所述预言机缓存中获取所述目标外部数据;否则,向所述外部数据服务器发送所述外部数据访问请求,并接收所述外部数据服务器返回的所述交易信息对应的目标外部数据。10.根据权利要求9所述的方法,其特征在于,接收所述外部数据服务器返回的所述交易信息对应的目标外部数据之后,还包括:将所述目标外部数据存储在所述预言机缓存中。11.一种区块链的外部数据访问装置,其特征在于,设置于联盟链的背书节点中,所述背书节点中设置有...
【专利技术属性】
技术研发人员:朱江,王森,刘春伟,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。