model - Chainlink新手疑惑

标签 model ethereum solidity chainlink

本周我将开始研究 Chainlink,现在我正在尝试将所有内容整合在一起,然后再继续探索 Chainlink 文档。也许你可以帮助我完成这项任务。

您能否证实这一理解?

正如我已经读到的,Chainlink 中有 3 个模型:

  • 具有 Flux Aggregator 的去中心化数据模型,其中预言机智能合约接收加密 Assets 的价格报告并将其聚合以向消费者提供此信息。然而,该模型已被 OCR 取代,对吗?
  • 链下报告汇总链下加密 Assets 的价格并将单笔交易发送到预言机智能合约,该智能合约向消费者提供价格中位数。
  • 基本请求模型,可以调用任何 Chainlink 作业。通常,此作业是在将结果发送给智能合约使用者之前进行一些转换的 API 调用。

如果我没有误解这个基本概念,我有一些疑问:

  • 前两个模型,DDM 和 OCR,仅适用于 Assets 价格,或者它们可以用于其他类型的数据,因为存在提供该数据的预言机?如果属实,是否有此类用法的真实示例?
  • 关于基本请求模型,我觉得它是一种中心化的解决方案,我没有看到任何聚合/协调的步骤,只有一个节点响应,仅此而已。这种理解正确还是我遗漏了什么?
  • 另一个尚不清楚的概念:什么是数据提供者?我发现了这个页面https://market.link/search/data-providers看起来像是中心化的数据提供者,是这样吗?

最佳答案

这里提出了一些很好的问题和要点。我将尝试一一解决它们:

The first two models, DDM and OCR, are only for assets' prices or they could be used for other kinds of data since exists oracles providing that data? If true, are there real examples of this kind of usage?

正确,目前它们主要用于 Assets 价格,因为那是当前最大的需求。但 future 的想法是,它们将用于许多其他类型的数据,例如天气数据、体育和选举结果等。就现实世界的例子而言,目前仅官方支持价格数据源,但什么也没有阻止某人获取代码并尝试为其他类型的数据启动自己的 OCR 网络

About the Basic Request Model, I feel like it is a centralized solution, I haven't seen any step of aggregation/conciliation, only one node responds and that is it. Is this understanding right or I'm missing something?

这是正确的。直接 API 请求确实开启了智能合约用例,但以目前的形式很容易出现集中化。您可以通过自己手动进行聚合和分散来缓解这种情况。例如,使用 3 个独立的 chainlink 节点/作业在智能合约中调用 API 3 次,然后在第三次结果后在链上进行验证或聚合。将来,这个模型可能会改变以自动化这个过程,并提供一种更简单的方法来获得这个功能,而没有中心化风险(例如今天的 Chainlink Keepers 是如何工作的)

Another concept not clear yet: what is a Data Provider? I found out this page https://market.link/search/data-providers and seems like centralized providers of data, is that right?

数据提供商是指向智能合约提供数据的任何公司或企业。他们通常还运行自己的 Chainlink 节点,该节点有专门为智能合约创建的作业来调用以获取数据。例如SportsMonks是一家数据提供商,将体育数据出售给跨多个区 block 链的智能合约。他们运行 Chainlink 节点,这些节点有返回这些数据的作业,因此智能合约开发人员可以访问它并在他们的 dApp 中使用它。 market.link 上的列表向开发人员展示了如何访问数据,即他们在智能合约中需要哪些作业 ID 和参数、调用电话的费用等。

关于model - Chainlink新手疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72318627/

相关文章:

solidity - 使用 ethers js 运行安全帽测试时,契约(Contract)事件监听器未触发

solidity - Metamask 未连接到本地主机 8545

php - Symfony2/Doctrine 模型通过相关 ID 和类型将单个表连接到多个其他表

ruby-on-rails - 模型中的 SystemStackError(堆栈级别太深)

ethereum - ERC721 实现

mocha.js - mocha : Timeout of 20000ms exceeded 单元测试错误

go - 将参数作为 bytes32 传递给 Solidity 智能合约

view - 在 CFWheels 项目中放置查询(尤其是长查询)的位置

laravel - 如何在 Laravel 中基于迁移文件制作模型

javascript - 使用 Web3.js 将值(value)从 Solidity 合约转移到 Ganache 账户