Chainlink 商品 [黄金、白银、石油] 价格以测试网智能合约为基础

Chainlink Commidities [Gold, Silver, Oil] Pricefeeds on Testnet Smart Contracts

我正在测试在 Rinkeby 测试网上获取商品价格信息的不同方法。

一个简单的解决方案是使用 Chainlink 的 GET API 函数和 JSON 解析来自 “Metals-API”[许多不同商品的价格供应商]。这样我就可以直接拿到链上的数据了。

或者,我们可以尝试使用 Chainlink 的商品价格源 [https://data.chain.link/ethereum/mainnet/commodities]。 问题是这些价格信息目前是以太坊主网独有的。 我用 Infura 做了一个测试,我有两个 Web3 实例同时从 Kovan [ETH 价格] 和以太坊主网 [WTI 价格] 获取数据 它奏效了!我在想我可以通过 Web3 事务将数据从这两个链传递到 Rinkeby。然而,我看到的问题是,理论上攻击者可以将任何数据传递给合约[如果有人制作自己的 Web3 脚本来欺骗合约,合约无法知道哪些输入数据是真实的]。 还有其他方法可以在链之间传递数据吗?

我看到的三个解决方案是:

  1. 为 Chainlink 商品价格添加更多测试网地址,以将数据直接放在测试网上。是否有计划扩大对测试网的支持以及扩大价格以追踪黄金、白银和石油以外的商品?

  2. 新的跨链互操作性协议 (CCIP)。 我无法通过有关如何使用此协议的示例找到更多信息。 我在 CCIP 主页上发送了“了解更多”的提交。 协议还没有对 public 开放吗?

  3. 使用网络抓取工具 API 从 https://data.chain.link/ethereum/mainnet/commodities 获取数据。是否有 API 用于所有链上的 Chainlink 价格反馈 [我找不到]?

我联系了帕特里克柯林斯,他给了我一个很好的答案:

  1. Data feeds are on many chains, see here: https://docs.chain.link/docs/reference-contracts/

  2. CCIP is still being worked on. Its not even ready for beta yet.

  3. You wouldn’t want to use testnet data feeds for production use cases ever. Testnets are supported as a staging instance, and the prices are regularly outdated (since it’s just a testnet and there is no real financial incentive to keep them up to date)"

编辑:存在 Rinkeby OIL、XAU 和 XAG 价格信息,可在此处找到 https://docs.chain.link/docs/ethereum-addresses/. I made a Youtube video about this, but as the demo shows the values are not for production use https://www.youtube.com/watch?v=cSMWUlRlGZo