Frank|Chainlink
Frank|Chainlink - 开发者大使

浙江 - 杭州 注册于 2022-05-30

江湖只有他的大名,没有他的介绍。

向TA求助
79学分数
119 贡献值
1个粉丝

最近动态

2022-09-22 15:18 回答问题

在使用Chainlink Any API 的时候,会有两个地方有余额,一个是在 Oracle 合约中,Oracle 合约会收到用户合约调用 Chainlink Any API 的数据的费用,以 LINK 计算。另一个是你自身节点的余额,以 ETH 计算。 对于 Oracle 合约中的余额,可以通过 withdrawable查看有多少可以取出的余额。对于 Chainlink 节点中的ETH,需要在节点中获取到私钥文件,然后通过私钥转出 ETH。

2022-09-22 15:01 回答问题

在这里 https://market.link/ 可以找到很多数据提供商,里面有些是提供体育数据的。比如说这个数据提供商https://market.link/nodes/SportMonks/integrations

2022-09-22 14:59 回答问题

请查看官方文档中的参数设置,设置中有一个参数是 ETH_GAS_LIMIT_DEFAULT,这个参数是用来配置节点的 callback gas limit上限的。

2022-09-19 11:41 回答问题

需要将job ID 中的 “-”都删掉,然后你再试试,应该就可以了

2022-09-19 11:40 回答问题

Keeper 的节点会动态选择 gas price,主要是根据之前几个区块的 gas price 来选择。通过这样的方法来保证交易的 gas price 是适应当前的网络情况。 如果 Keeper 节点在后面几个区块中都没有能够看到 performUpkeep 的交易,它就会自动提高手续费,然后重新发送交易,直到这个交易被确认。

2022-09-19 11:34 回答问题

在 1.8.0 的 Chainlink 节点版本中,浏览器的 UI 中有 “Error” 和 “Runs” 两个 tab 可以debug,就如同下图一样:

W6AxZ.png

点击 “error” 可以看到具体的错误信息,如图所示:

![IUEU0.jpeg](https://img.learnblockchain.cn/atta

2022-09-19 11:28 回答问题

在 checkUpKeep 中是可以使用 priceFeed 来获取价格数据的,然后keepers 可以根据 checkupkeep 的结果来调用 performUpKeep 函数。你的代码看起来没有什么问题。

请确认一下是不是在使用 Rinkeby 或 Kovan 的测试网络,现在 Chainlink 在 Rinkeby 和 Kovan 上的服务已经 deprecated 了。

2022-09-13 16:34 回答问题

在任何一个区块链网络中,合约都不能访问链下数据。Chainlink 预言机的工作模式是:链下预言机网络中的节点会监控链上的event log,如果出现了请求,就会做相应的回应,一般是把用户合约所需要的数据提供给用户的合约。

所以在一条私链中,首先需要在链上部署 Chainlink 预言机相关合约,比如对于 Data Feed,需要部署 Proxy 和 Aggregator 合约;然后还需要运营一个链下的预言机网络,以监控链上的请求。

给某一个区块链网络部署预言机网络一般是由官方提供服务,私人部署

2022-09-13 16:22 回答问题

价格数据是由多个数据提供商将自己的数据提供给 Chainlink 节点,然后 Chainlink 节点在预言机网络中与其他的预言机节点进行共识,然后将共识以后的数据发送到链上的聚合合约(aggregator contract)。目前的聚合方式是取所有节点的中位数。

如果 API 提供的是 JSON 数据,就没有办法通过这种方式在预言机网络中共识。所以对于非标数据,一般是不同的节点运营商会在自身运营的节点中部署一个Job,然后通过Job回应合约对于某种数据的请求。 可以相关问题:[如何通过 Chain

2022-09-13 16:16 回答问题

VRF(Verifiable Random Function) 全名是可验证随机数函数,有一个很大的特点是可验证性。 VRF 在返回每一个随机数(randomness)的时候,都会返回一个证明(proof),以证明这个随机数是由某个私钥按照约定好的算法根据输入值生成的。这里这个输入值就是种子(seed),它的作用是阻止VRF根据随意生成随机数。

2022-09-13 15:59 回答问题

Chainlink 预言机出了喂价,随机数和合约自动化工具以外,还有一项服务叫做 AnyAPI,用户可以自己运行一个 Chainlink 节点,然后在节点之上去实现一个 job。 这个 job 可以监控链上智能合约的 event log,然后出现请求,可以拿到这个 event log 中的参数,然后向一个 API 发送请求得到结果,再写回到智能合约之中。 所以如果想要给自己的智能合约提供体育比赛的价格数据,可以运行自己的节点。

另外如果自身不准备运行节点,可以使用已经在提供体育数据的节点的服务,提

2022-09-13 15:40 回答问题

不论在哪条链上,使用 Chainlink VRF,要支付的费用都是三部分组成的:

  1. premium fee,也就是 VRF 节点的收费。可以在这里找到在不同的链上使用 Chainlink VRF 的 premium fee。
  2. callback gas。在 VRFConsumer 合约(也就是用户合约)中,会有一个回调函数 fulfillRandomness,这个回调函数会对

2022-08-17 16:59 回答问题

一般 VRF 不成功,有两个原因: 第一是 VRF subscription 的 balance 不满足 minimum balance。 第二是 callbackgaslimit 设置的太低了,VRF 没法完成 fulfillRandomWords 中的操作。

你的 Callbackgaslimit 设置的是 200k,可能有点低了,改高一点试试,上限是 2.5M。

2022-08-17 11:33 回答问题

如果使用的是 Rinkeby 或者 goerli 这样的以太坊测试网,有的时候前端页面可能会短暂的显示不正常,如果这个问题持续出现,请贴出具体的 CheckUpKeep 和 PerformUpKeep 函数我来看一下。

2022-08-17 11:32 回答问题

Chainlink 除了喂价(Data Feed)这个产品之外,还有一个叫做 AnyAPI 的产品。

在 AnyAPI 中,可以允许用户自建一个 Chainlink 节点,然后使用这个 Chainlink 节点中获取 webAPI 中的数据,然后根据链上合约的请求,发送交易给到用户合约。

详细的教程和介绍可以看官方文档

2022-08-17 11:25 回答问题

Chainlink DataFeed 也就是喂价是不支持自己发布资产价格的,如果想要发布一个资产价格,比如说目前在 Uniswap 上的 a/eth,需要联系官方加才行。

原因是 Chainlink 的预言机网络是由多个节点运营方组成,这些节点运营方需要从数据提供商获取数据,目前不管是节点运营方还是数据提供商都是由准入的,所以要新增一个价格需要这两方都支持才行。

你如果仅仅是在 Uniswap 中有一个交易对,那么这个数据源太过单一,很容易受到操控。

目前 Chainlink 提供的所有的

2022-08-17 11:16 回答问题

如果使用的是 Rinkeby 或者 goerli 这样的以太坊测试网,有的时候前端页面会短暂的显示不正常,如果一直没有办法成功的话,请贴出具体的 CheckUpKeep 和 PerformUpKeep 函数我来看一下。

另外请注意是不是 upkeep 中的余额不足。

2022-08-17 11:04 回答问题

Chainlink 有多个产品,并不是所有的产品都有多个链下数据源,从而需要达成一致。

你问的应该是 Chainlink DataFeed,也就是喂价这个产品。 Data Feed 这个产品的流程是这样的:Chainlink 本身是一个预言机网络,预言机网络中有多个预言机节点,每一个预言机节点都会从自身的数据提供商获取数据,而数据提供商会从多个数据源获取数据,比如说各大交易所和第三方机构。

预言机节点在接收到数据以后,会经过一个叫 [OCR off-chain reporting](https

2022-08-17 10:51 回答问题

你使用的是 Chainlink VRF V2 获取随机数,用户合约会继承 VRFConsumerBaseV2 这个智能合约,在 VRFConsumerBaseV2 中,有两个函数: fulfillRandomWords:用来让用户写如何存储和使用随机数的逻辑。 rawFulfillRandomWords:用来被 Chainlink VRF 的 VRFCoordinator合约调用。 其中你 override 的是fulfillRandomWords,它并不是直接被 VRF 直接回调

2022-07-18 20:01 回答问题

Chainlink VRF 节点在收到随机数的 request 之后,会通过执行 fulfillRandomWords() 函数来给用户的合约写入随机数。

然而为了避免合约错误,在 fulfillRandomWords() 函数中会有一个 gaslimit 的限制,这个限制主要是为了防止 VRF subscription 中的余额被一个错误的交易消耗光。你最开始遇到的问题大概率是 fulfillment 函数消耗的 gas 费用超过了gaslimit。

如果说在 `fullfillRan