首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >智能契约究竟是如何使用来自先知的数据的?

智能契约究竟是如何使用来自先知的数据的?
EN

Ethereum用户
提问于 2022-10-27 07:49:32
回答 2查看 47关注 0票数 0

我认为智能契约不能进行网络调用,因此不能调用外部API来获取数据。

我读过预言是为智能合同提供外部数据的方法。

如果智能合同实际上无法向智能契约提出网络请求,那么我现在很困惑,如果智能契约实际上无法向智能契约提供这些外部数据,那么它们究竟是如何提供这些外部数据的?

那这是怎么回事?智能契约究竟是如何使用来自先知的数据的?

EN

回答 2

Ethereum用户

发布于 2022-10-27 08:25:01

让我们以Chainlink oracle网络为例:

Chainlink网络的第一个服务是Data,您可以从该服务获得令牌价格。让我们来看看数据提要是如何工作的。

在这个过程中有3个角色,一个由多个甲骨文节点组成的离链甲骨文网络,多个数据提供者提供数据,以及一个在线智能协议来接收离链甲骨文网络发送的数据。

价格馈送的过程如下所示(实际过程更为复杂):

  1. Oracle节点从数据提供商(如CEX )和其他权威机构(如coinmarketcap和coingecko )获取数据。
  2. Oracle节点通过oracle网络和网络广播结果,得到所有数目的中位数(达到一致)并生成报告。
  3. 离链甲骨文网络将报告发送给由oracle部署的在线智能契约(聚合器契约)。
  4. 聚合器契约验证报告是否由以前注册的节点生成。
  5. 使用者契约调用聚合器契约中的函数并获取令牌的价格。

您可以查看有关数据提要这里的更多细节。

票数 1
EN

Ethereum用户

发布于 2022-11-02 01:18:35

先知是中间人,可以从链外获得可信的数据。有不同的oracle提供程序,每个提供程序都有不同的机制来验证数据是否有效。

例如,chainlink是oracle提供程序。链本身是一个块链,有节点来获取数据。每个节点都使用自己的智能契约来获取数据。要运行链接节点,您必须锁定一些资金,以便如果您作弊,您将失去您的资金。

一旦每个节点获得数据,链链接块链就有一个检测数据是否可靠的算法。假设你需要测量一个位置的温度。10个链路节点提供了40F到43F之间的值,其中5个提供了50F到55F之间的值。因此,链环算法将丢弃这5个节点,并在40F到43F之间使用10个节点的平均值。(算法更复杂,基本上是它所做的。)

如果检查连锁甲骨文智能合同,函数名为getRoundDatalatestRoundData,指示它们不会从单个源获取数据。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/138246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档