点击下方“JavaEdge”,选择“设为星标”
第一时间关注技术干货!
本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
魔都架构师 | 全网30W技术追随者
大厂分布式系统/数据中台实战专家
主导交易系统百万级流量调优 & 车联网平台架构
AIGC应用开发先行者 | 区块链落地实践者
以技术驱动创新,我们的征途是改变世界!
实战干货:编程严选网
链下数据是怎样做到实时上链的,必须通过预言机这个过程处理吗?
是的,预言机(Oracle)是目前链下数据上链的主流且标准的解决方案,但不是唯一方式。
1 为啥需要预言机?
区块链是一个确定性、封闭的系统环境,具有以下特点:
无法主动获取外部数据:智能合约在执行过程中不能对外部请求获取新数据
保证结果一致性:同一代码在不同节点执行必须产生完全相同的结果
不支持网络调用:为了避免不确定性,虚拟机不允许智能合约进行I/O操作
因此,智能合约就像"被关在小黑屋里的人",只能被动接受外部传来的信息。
2 预言机的工作流程
以去中心化预言机(如Chainlink)为例:
1. 用户合约发起数据请求
↓
2. 链上Oracle合约接收请求并记录Event事件
↓
3. 预言机节点网络订阅事件,从多个外部数据源获取数据
↓
4. 节点间进行数据聚合和共识(如取中位数)
↓
5. 预言机调用合约将验证后的数据返回
↓
6. 用户合约接收数据并继续业务逻辑
3 上链的其他方式虽然预言机是主流,但也有其他方案:
3.1中心化数据录入
由可信第三方直接发起交易上链
适用于权威数据(如政府公告)
缺点:存在单点故障风险
先在链下收集和验证数据
批量提交到主链
降低上链成本,提高效率
连接不同区块链之间的信息传递
例如:将比特币链的数据传递到以太坊
代表项目:Oraclize
优点:高性能、实现简单
缺点:单点故障、信任依赖第三方
适用场景:联盟链、可信环境
代表项目:Chainlink、DOS Network
优点:去中心化、安全性高
缺点:实现复杂、性能相对较低
适用场景:公链、高安全需求场景
时效性:数据从获取到上链有延迟
成本:频繁上链会产生大量Gas费用
安全性:防止数据被篡改或节点作恶
可靠性:确保数据源的准确性
必须使用预言机吗?在大多数情况下,是的。因为智能合约本身无法主动获取外部数据。
实时性如何实现?预言机通过订阅事件、快速响应、数据聚合等方式尽量缩短延迟,但真正的"实时"在区块链上是困难的(受区块时间限制)。
发展趋势:预言机正从单一的数据输入向全栈服务发展,包括计算、存储、跨链、自动化等。
预言机本质上是区块链与现实世界之间的唯一可信桥梁,没有它,区块链智能合约将无法与真实世界交互,这也是为什么90%的智能合约用例都需要预言机支持的原因。
编程严选网:http://www.javaedge.cn/ 专注分享AI时代下软件开发全场景最新最佳实践~
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.