(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210251326.6
(22)申请日 2022.03.15
(65)同一申请的已公布的文献号
申请公布号 CN 114327802 A
(43)申请公布日 2022.04.12
(73)专利权人 北京百度网讯科技有限公司
地址 100085 北京市海淀区上地十街10号
百度大厦2层
(72)发明人 刘晓赫 郑旗 郑斌
(74)专利代理 机构 北京品源专利代理有限公司
11332
专利代理师 王瑞云
(51)Int.Cl.
G06F 9/46(2006.01)
G06F 9/54(2006.01)G06F 21/60(2013.01)
G06Q 20/38(2012.01)
H04L 9/32(2006.01)
(56)对比文件
CN 112651037 A,2021.04.13
CN 110866740 A,2020.0 3.06
CN 111565204 A,2020.08.21
CN 111401903 A,2020.07.10
CN 109981679 A,2019.07.0 5
US 2021103581 A1,2021.04.08
US 2020092106 A1,2020.0 3.19
审查员 卢洁
(54)发明名称
区块链访问链外数据 的方法、 装置、 设备和
介质
(57)摘要
本公开提供了一种区块链访问链外数据的
方法、 装置、 设备和介质, 涉及计算机技术领域,
尤其涉及区块链技术。 该方法应用于区块链节
点, 包括: 获取基于业务合约发起的业务预执行
请求; 在执行业务预执行请求的过程中, 如果检
测到链外 数据的访问需求, 则产生链外数据访问
请求; 根据链外数据访问请求, 使得预言机服务
根据链外 数据访问请求对链外数据源进行访问;
接收预言机服务反馈的链外数据访问结果和预
言机服务的背书签名; 根据链外数据访问结果继
续执行业务预执行请求, 以产生业务预执行结
果; 获取业务事务请求并向区块链 提交业务事务
请求。 上述技术方案能够降低区块链访问链外数
据的延迟, 并避免 网络拥堵。
权利要求书2页 说明书11页 附图4页
CN 114327802 B
2022.06.17
CN 114327802 B
1.一种区块链访问链外数据的方法, 应用于区块链 节点, 所述方法包括:
获取基于业 务合约发起的业 务预执行请求;
在执行所述业务预执行请求的过程中, 如果检测到链外数据的访 问需求, 则产生链外
数据访问请求;
根据所述链外数据访问请求, 使得预言机服务根据 所述链外数据访问请求对链外数据
源进行访问;
接收所述预言机服 务反馈的链外数据访问结果和预言机服 务的背书签名;
根据所述链外数据访问结果继续执 行所述业务预执行请求, 以产生 业务预执行结果;
获取业务事务请求并向区块链提交所述业务事务请求; 其中, 所述业务事务请求包括
所述业务预执行请求、 链外数据访问结果、 背 书签名和业 务预执行结果;
接收并验证提交至区块链的业务事务请求的过程中, 如果从所述业务事务请求中获取
到链外数据访问结果和背书签名, 则将所述链外数据访问结果和背书签名记录为链外数据
访问需求的上 下文;
在验证所述链外数据的访问需求时, 验证所述背 书签名;
在背书签名验证通过时, 确 认所述链外数据访问结果作为所述链外数据访问需求的结
果。
2.根据权利要求1所述的方法, 其中, 所述背书签名用于在区块链节点验证到链外数据
访问需求时, 直接根据所述背 书签名的验证结果确认所述链外数据访问结果。
3.根据权利要求1所述的方法, 其中, 根据所述链外数据访 问请求, 使得所述预言机服
务根据所述链外数据访问请求对链外数据源进行访问包括:
根据所述链外数据访 问请求, 调用预言机服务的访 问接口, 以使得所述预言机服务根
据所述链外数据访问请求对链外数据源进行访问。
4.根据权利要求3所述的方法, 其中, 所述预言机服务的访问接口为所述预言机服务的
原生代码程序接口。
5.根据权利要求4所述的方法, 其中, 根据所述链外数据访 问请求, 调用预言机服务的
访问接口包括:
通过预言机合约执行所述链外数据访问请求, 并产生预言机服务的访问接口的调用指
令, 由预言机合约的虚拟机传输给区块链内核程序;
通过所述区块链内核程序将所述调用指令传输给 所述预言机服 务所在的预言机节点。
6.根据权利要求3所述的方法, 其中, 如果检测到链外数据的访 问需求, 则产生链外数
据访问请求包括:
如果检测到链外数据的访问需求, 则根据 所述访问需求确定待访问的链外数据源和预
言机服务的地址, 并根据所述待访问的链外数据源和预言机服务的地址产生链外数据访问
请求;
相应的, 根据所述链外数据访问请求, 调用预言机服 务的访问接口包括:
根据所述链外数据访 问请求中的预言机服务的地址, 调用预言机服务的访 问接口, 并
将所述待访问的链外数据源的地址作为调用访问接口 的输入参数。
7.根据权利要求3所述的方法, 其中, 根据所述链外数据访 问请求, 调用预言机服务的
访问接口包括:权 利 要 求 书 1/2 页
2
CN 114327802 B
2通过预言机合约执 行所述链外数据访问请求, 以获取链外数据的访问需求;
根据所述访 问需求, 以及预言机合约中注册的预言机服务和链外数据源, 确定待访 问
的链外数据源和预言机服 务的地址产生链外数据访问请求。
8.一种区块链访问链外数据的装置, 配置 于区块链 节点, 所述装置包括:
业务预执行请求获取模块, 用于获取基于业 务合约发起的业 务预执行请求;
链外数据访 问请求生成模块, 用于在执行所述业务预执行请求的过程中, 如果检测到
链外数据的访问需求, 则产生链外数据访问请求;
预言机服务控制模块, 用于根据所述链外数据访 问请求, 使得所述预言机服务根据所
述链外数据访问请求对链外数据源进行访问;
反馈数据接收模块, 用于接收所述预言机服务反馈的链外数据访问结果和预言机服务
的背书签名;
业务预执行结果生成模块, 用于根据 所述链外数据访问结果继续执行所述业务预执行
请求, 以产生 业务预执行结果;
业务事务请求获取模块, 用于获取业务事务请求并向区块链提交所述业务事务请求;
其中, 所述业务事务请求包括所述业务预执行请求、 链外数据访问结果、 背书签名和业务预
执行结果;
上下文确定模块, 用于接收并验证提交至区块链的业务事务请求的过程中, 如果从所
述业务事务请求中获取到链外数据访问结果和背书签名, 则将所述链外数据访问结果和背
书签名记录为链外数据访问需求的上 下文;
背书签名验证模块, 用于在验证所述链外数据的访问需求时, 验证所述背 书签名;
结果确定模块, 用于在背书签名验证通过时, 确认所述链外数据访 问结果作为所述链
外数据访问需求的结果。
9.一种电子设备, 包括:
至少一个处 理器; 以及
与所述至少一个处 理器通信连接的存 储器; 其中,
所述存储器存储有可被所述至少一个处理器执行的指令, 所述指令被所述至少一个处
理器执行, 以使所述至少一个处理器能够执行权利要求1 ‑7中任一项所述的区块链访问链
外数据的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质, 其中, 所述计算机指令用于
使所述计算机执 行根据权利要求1 ‑7中任一项所述的区块链访问链外数据的方法。权 利 要 求 书 2/2 页
3
CN 114327802 B
3
专利 区块链访问链外数据的方法、装置、设备和介质
文档预览
中文文档
18 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-07 12:40:40上传分享