Code Monkey home page Code Monkey logo

chainlinklearningpath's Introduction

Chainlink Learning Path

image

项目介绍

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

本项目的目的是通过 几个简单的任务配套的教程 来帮助开发者了解 Chainlink 预言机,目标人群为想要了解预言机的智能合约开发者。

完成这前 3 个任务以后,将地址提交给 Frank 以获得 SBT 学历证明以及 Chainlink Swag!

❤️ Chainlink degree SBT ❤️ https://polygonscan.com/address/0x5a1805ffd9cfa1f79fb3cfced12e02e342672e2e

练习任务

前期准备:

  1. 安装 git。 brew install git
  2. 安装 nodeJs。 brew install node
  3. Fork 这个 repo。
  4. git clone https://github.com/<YOUR_USERNAME>/ChainlinkLearningPath.git
  5. 运行 npm install 所需要的依赖。
  6. 在测试网部署时,安装浏览器端钱包 Metamask,并且生成自己的账户地址。
  7. 在测试网部署时,通过 Chainlink faucet 获得 Sepolia 测试网的 ETH 以及 Link。

任务 1 - Chainlink Data Feed:

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

任务 2 - Chainlink VRF:

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

任务 3 - Chainlink Automation:

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

🍺 🍺 完成以上 3 个任务后,请提交用来完成任务的测试网地址,将发送 SBT 证明! 🍺 🍺

任务 4(advanced) - Chainlink Any API:

  1. 学习下述学习资料中的 Chainlink AnyApi(任意 API)部分内容。
  2. 完成 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 BUILD。Chainlink 官方会帮助优秀的早期项目方提供包括项目指导,资源对接以及资金的帮助。在这里查看 Chainlink BUILD 的更多信息。

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

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

社区支持

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

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

其他学习资料

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

chainlinklearningpath's People

Contributors

qingyangkong avatar

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.