Code Monkey home page Code Monkey logo

chainlinklearningpath's Introduction

Chainlink Learning Path

image

项目介绍

Chainlink,是一个去中心化预言机网络(Decentralized Oracle Network),它可以给区块链上的智能合约提供数据和计算服务。其中数据服务包括 Data FeedAny APIDECO,计算服务包括 VRFAutomation 以及 FSS。不论你开发什么类型的 Web3 应用,比如 DeFi,NFT,GameFi 等等,都有可能用到预言机这项基础服务,所以预言机的服务是 Web3 开发必须要掌握的一项内容。

本项目的目的是通过 几个简单的任务配套的教程 来帮助开发者了解 Chainlink 预言机,目标人群为想要了解预言机的智能合约开发者。完成这几个任务以后,可以联系 Frank 获得 Chainlink 提供奖品!

完成后你将会学会以下知识:

  1. 理解预言机工作原理
  2. 了解 Chainlink 预言机技术文档结构和相关学习资料
  3. 学会如何在合约中集成 Chainlink 预言机的服务包括:
    1. Data feed(喂价)
    2. VRF(可验证随机数)
    3. Automation(合约自动化执行)
    4. AnyAPI(获取任意链下数据)

练习任务

前期准备:

  1. fork ChainlinkLearningPath 这个 Repository 到你的 GitHub。
  2. git clone Repository 到本地: git clone https://github.com/<Your username>/ChainlinkLearningPath.git
  3. 运行 npm install 或者 yarn 安装所需要的依赖。
  4. 在测试网部署时,安装浏览器端钱包 Metamask,并且生成自己的账户地址。
  5. 在测试网部署时,通过 Chainlink faucet 获得 goerli 网络的 goerli ETH 以及 Link。

任务 1 - Chainlink Data Feed:

  1. (30分钟)学习下述学习资料中的 Chainlink Data Feed(喂价)部分内容。
  2. (10分钟)完成 contracts/DataFeedTask.sol 中的任务。

任务 2 - Chainlink VRF:

  1. (30分钟)学习下述学习资料中的 Chainlink VRF(可验证随机数)部分内容。
  2. (30分钟)完成 contracts/VRFTask.sol 中的任务。

任务 3 - Chainlink Automation:

  1. (30分钟)学习下述学习资料中的 Chainlink Automation(合约自动化执行)部分内容。
  2. (20分钟)完成 contracts/AutomationTask.sol 中的任务。

任务 4 - Chainlink Any API:

  1. (30分钟)学习下述学习资料中的 Chainlink AnyApi(任意 API)部分内容。
  2. (10分钟)完成 contracts/ApiConsumerTask.sol 中的任务。

学习资料

1. Chainlink Data Feed(喂价)学习资料

Chainlink Data Feeds 又称喂价,这项服务可以让用户的智能合约以最快的方式获得特定资产标的价格,不论你使用的是链上的智能合约和还是链下应用,都可以通过单一请求,从 Chainlink Data Feeds 获得资产的价格数据。

Data Feed 相关链接


2. Chainlink VRF(可验证随机数)学习资料

Chainlink VRF(Verifiable Random Function)是一个随机数的生成器(Random Number Generator:RNG)。通过 Chainlink VRF 中,智能合约可以在不影响安全性和可用性的条件下获取随机数。

Chainlink VRF 收到随机数的请求以后,会将一个或者多个随机值以及它们对应的密码学证明(cryptographic proof)发送给智能合约。链上智能合约通过密码学证明对随机数验证以后,会将随机数写入用户智能合约。

Chainlink VRF 生成的随机数不能被包括矿工,节点运营商,用户和智能合约开发人员在内的任何一方单方面操纵和修改,因此保证了随机数和可靠性和安全性。

VRF 相关链接


3. Chainlink Automation(合约自动化执行)学习资料

Chainlink Automation(曾经被命名为 Chainlink Keepers) 可以通过链下 Chainlink 去中心化预言机网络,根据条件或者时间触发链上智能合约,实现智能合约执行的自动化。

由于区块链上的智能合约无法自动执行,通常开发人员需要通过链下脚本或者赏金模式来保证合约函数的处罚。Chainlink Automation 可以以去中心化的方式,监控链上合约从而保证合约函数的执行。

Automation 相关链接


4. Chainlink Any API(获取任意链下 API 数据)学习资料

Chainlink Any API 可以让你的智能合约通过 Chainlink 去中心化预言机网络获取任意的外部数据。将智能合约与链下的数据相结合会给你的 DApp 增加很多复杂度,所以 Chainlink 通过 Any API 提供了一个极易使用并且很灵活的框架,可以将任何外部 API 的数据提供给区块链上的智能合约。

这样开发者可以将精力集中在智能合约的功能性上,链上数据的监控,链下数据的输入都可以由 Chainlink 链下预言机网络提供,使得链上合约和链下交互变得更加简单。

除此以外,开发者可以自建节点,在节点中创建任务,获取外部的 API,然后输入给链上的智能合约。通过自建节点,不仅让自身的合约实现数据获取,也可以作为数据提供商向市场上其他的智能合约提供 Any API 服务。

Any API 相关链接


接下来做什么?

  • 尝试在应用中使用 Chainlink 服务,扩展你的 dApp 的边界。

  • 参与 Chainlink 生态中的活动,获得更多资源。比如 Chainlink 黑客松,Chainlink 每年会有举办两届黑客松:4 月开始的春季黑客松和 10 月开始的秋季黑客松

  • 申请 Chainlink Grant。为了鼓励生态发展,给行业做贡献,Chainlink 官方会对有创新性和社会影响力的项目提供 Grant。在这里查看 Chainlink Grant 具体信息以及往期项目介绍。

  • 申请 Chainlink 孵化器 Startup With Chainlink。Chainlink 官方会帮助优秀的早期项目方提供包括项目指导,资源对接的服务。在这里查看 Startup With Chainlink 的更多信息。

  • 成为 Chainlink Contributor。如果想要给 Chainlink 共享代码,请查看 contributor 规则。如果想让团队增加新的特性,或者是提交 bug,请在官方 GitHub 的 Issue 中提交。

  • 赏金猎人。如果发现了任何的 vulnerability 或者 bug,欢迎提交给团队,获得赏金(bounty),请在赏金计划中查看更多的内容。

社区支持

Chainlink **开发者社区会持续性输出 Chainlink 最新信息,并且不定期举办一些分享来学习优秀案例。如果在使用 Chainlink 的时候遇到了任何的问题,可以和熟悉该技术的开发者和社区人员一起交流。

如果想要加入社区,请扫描以下二维码: image

其他学习资料

任务需要使用当前比较主流的 Hardhat 合约框架以及 Goerli 测试网络。

yimning note:

datafeedtask: https://goerli.etherscan.io/tx/0xde107d0a68a883640bbe09fe41d84a689cf93f305cf8b137ce4184434ea7f7fd vrftask: 0x831c6920D0E5A91D91633D1843AB26F3a467Ec79 weathertoken: 0xfb36c21d39ca044Cad07762d554A9062CC5E9F45 atomationtask: 0x8BC05bc0800b7030e559569360a088116AB5d821 anyapitask: 0x0f02CF5424F520256E19Ba0645F8C6F75ff35088

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.