Skip to content

mousewu/Dapp-Learning

 
 

Repository files navigation

中文 / English

区块链 Dapp 开发教程

通过实际项目一步一步学习区块链 Dapp 开发。

序 - Preface

本项目适合有一定语言基础的开发者入门区块链 DAPP 开发,由浅到深了解和开发 DeFi, NFT, DAO, CRYPTO 项目。

项目愿景是给初级开发者一个可执行且最简的区块链 Dapp 学习路线图,给进阶开发者一个可以交流和协作的平台。

项目跟Rebase大学深度结合,成立学习小组进行任务分工然后一起研究主流dapp项目,每周进行技术分享,输出成果会作为视频上传B站的Rebase账号

项目秉持 开源大学 的理念,会以DAO治理形式管理此开源项目,贡献三次高质量PR即可成为PR审核者,并参与决议项目走向。后续会给所有PR贡献者发放nft作为纪念奖品。欢迎参与gitcoin捐赠。

技术栈:

  • web3.js
  • ethers.js (hardhat)
  • web3.py (Brownie)
  • Java (可选)
  • rust (可选)

教程分为 基础任务项目任务 两部分,基础任务是熟悉和集成区块链开发所必需的基本工具组件(如ERC标准,oracle,graph),项目任务是研究主流 DeFi, NFT, DAO 的典型项目让开发者深入真实项目开发。

此教程仍在开发中,欢迎创建 PR 来创建更多的教程项目或完善已有的教程项目🤗。

准备工作 - Preparatory Work

阅读《精通以太坊》理解 以太坊 和 智能合约 的基本原理

开发工具:

推荐阅读

国外大学加密课程

基础任务 - Basic Tasks

通过以下基础任务,了解开发 Dapp 的基本工具和开发知识。

  1. use web3.js deploy contract

  2. use web3.js create transaction

  3. use web3.js call ERC20 contract

  4. use truffle

  5. use ethers.js call ERC20 contract

  6. use waffle and ethers.js test contract

  7. use hardhat

  8. graph

  9. react(metamask)

  10. ERC721+ ERC1155 + ipfs

  11. react + express + hardhat

  12. Crowdfund

  13. decentralized exchange

  14. chainlink-api

  15. nft-blindbox-chainlink-vrf

  16. nft auction & exchange

  17. wallet develop

  18. web3.py

  19. brownie

  20. flash-loan

  21. scaffold-Lender

  22. scaffold-zk

  23. ERC865 & ERC875

  24. Upgradeable-contract

  25. multi-sig-wallet

  26. snapshot

  27. Quadratic vote

  28. optimism layer2

  29. matic layer2

  30. zksync layer2

  31. duneanalytics & nansen

  32. chainlink-keeper

  33. pooltogether

  34. subgraph

  35. Merkel-Patricia Tree(MPT)

  36. NFT Filecoin

  37. Charm.fi

  38. Flashbots provider for ethers.js

  39. Ethlend

  40. Arbitrum

  41. NFT farming

  42. merkle-distributor airdrop

  43. front running

  44. JavaScript Cryptography

  45. proxy contract

  46. vyper

  47. TWAMM: Time-Weighted Average Market Maker

  48. state channel

  49. sniper

  50. solidity security

  51. alchemix

  52. Governace

  53. Freelancer's Smart Contract

  54. Cryptovoxels

欢迎提交 PR,添加新的基础任务或者更新上面的任务

进阶任务

准备工作: 阅读DEFI经典书籍:
How to DeFi
How to DeFi:Advanced
此部分针对有一定基础开发者,选取主流优质项目进行源码剖析和 code review。
可采用小组协作方式将项目部署至测试网,以此为基础在 Rebase 社区进行分享。大型defi项目新颖且内容庞大,我们建议分工协作方式进行,如一人看白皮书,一人负责前端,一人负责合约,一人负责数据展示。 开发者可以在开发群里发起项目研究倡议,建立小组,进行协作。此部分建议以 submoudle 方式引入。

DeFi 进阶

  1. UniswapV2
  2. UniswapV3
  3. Compound 👉 认领这个 Task
  4. Aave 👉 认领这个 Task
  5. SNX 👉 认领这个 Task
  6. Curve 👉 认领这个 Task
  7. 0x-protocol 👉 认领这个 Task
  8. Bancor 👉 认领这个 Task
  9. YFI 👉 认领这个 Task
  10. AMPL 👉 认领这个 Task
  11. Perpetual Protocol 👉 认领这个 Task
  12. DYDX👉 认领这个 Task
  13. OPYN
  14. INDEX👉 认领这个 Task
  15. DODO 👉 认领这个 Task

NFT 进阶

DAO 进阶

Crypto 进阶

如何参与

  • 提交一次PR或 关注公众号 「Rebase社区」并贡献一次技术分享,然后添加Maintainer微信yanyanho126申请入群,或直接联系Harry(微信号:ljyxxzj)进群。
  • 原则上每周一次开发者沟通会议
  • 采用集市开发方式,任何人都可以提交PR,一个链接,一个文档修改均可,无须task完成100%再提交,开发者会一起帮忙完善项目
  • script脚本目录下测试案例保证能在kovan网调试成功,test目录下测试案例连本地节点调试成功
  • 每个项目readme请加上参考链接这一目录,附上任务的相关参考资料
  • solidity 建议0.6以上版本

刚入手项目,可以有四种方式切入:

  1. 可以优化之前的项目代码和readme
  2. 可以认领未完成任务卡(下方有链接的都是未完成任务卡,完成的任务卡请将参考链接放入对应项目readme下)
  3. 可以自由新增任务卡(需附上参考链接)
  4. 进阶项目(DEFI,DAO,NFT,CRYPTO)可以在群里发起开发倡议,小组一起研究

DAO组织管理项目

  1. 贡献过1次PR(或技术分享)以上可以进入开发者群;
  2. 贡献过3次高质量PR(或参与3个task的完成)即可给予PR审核者的权限;
  3. PR审核者可以发起学习小组;
  4. PR审核者可以发起提案,决定项目发展规划,获取多数PR审核者同意即可通过提案;
  5. PR审核者须两周内至少一次PR,否则移除PR审核者权限,降为普通开发者,可以提PR重新加入。

小组学习

进阶任务如defi,dao, nft项目研究,采用小组学习模式,有以下要求。

  1. 提交1次PR以上的开发者方可参与小组学习;
  2. 小组组员需分工明确,每周周例会进行成果分享;
  3. 原则上小组的子任务研究不超过3个人。

小组学习输出成果(参考):
白皮书/合约/前端/graph: 部署,文档和rebase视频分享

常见问题

测试币申请,安装和使用问题,请参考链接常见问题

合约参考库及致敬相关项目

社区捐助

欢迎感兴趣的小伙伴参与共建,开源项目维护不易,我们欢迎捐助。
gitcoin grant: grant

捐助地址:

捐助资金管理:我们会用多签钱包管理资金(会将资金从主网转入matic网络,在matic网络实现多签钱包管理),并定期按 PR 提交记录分配资金给开发者。同时项目会给PR贡献者发放nft作为纪念奖品,以DAO治理形式管理此开源项目。

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 78.7%
  • JavaScript 17.2%
  • Python 3.4%
  • TypeScript 0.5%
  • HTML 0.2%
  • Shell 0.0%