/Dapp-Learning

Primary LanguageSolidityMIT LicenseMIT

中文 / English

区块链 Dapp 开发教程

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

序 - Preface

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

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

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

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

项目由来可以阅读Rebase公众号文章《Dapp-Learning 欢迎您的加入》

技术栈:

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

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

此教程仍在开发中,适合各阶段的开发者,欢迎提 PR 来创建更多的教程项目或完善已有的教程项目🤗,另外,我们会成立研究小组讨论和研究DEFI和DAO项目源码,新人如何参与以及项目治理规则

准备工作 - Preparatory Work

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

开发工具:

推荐阅读

国外大学加密课程

其他加密课程

国内区块链公开课

欢迎大家添加推荐书籍,请在此文档--好书推荐中录入;

基础任务 - Basic Tasks

通过以下基础任务,了解开发 Dapp 的基本工具和开发知识。完成20个task,可以升级关注项目任务。

  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. Quadratic vote
  27. Arbitrum
  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. snapshot
  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
  55. PBFT
  56. IDO
  57. Liquity

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

项目任务

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

DeFi 进阶

建议先阅读DEFI经典书籍:
How to DeFi
How to DeFi:Advanced

  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 进阶

请先阅读书籍: 《图解密码技术》 项目列表:

如何参与

新人如何参与到我们项目,请参考链接如何参与

DAO组织管理项目

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

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

实操演示项目列表

开发群定期分享经典项目实操演示,欢迎添加你想实操演示的项目,请参考文档

常见问题

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

社区捐助

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

捐助地址:

捐助资金管理:
其他网络资金我们都会汇集到polygon网络的多签钱包去管理。

多签钱包查看(polygon上的gnosis safe wallet):
https://polygon.gnosis-safe.io/app/#/safes/0x2A6D09B3b11E5455a37F907f2ec885E0Be704779

我们会议DAO形式治理项目,定期按 PR 提交记录分配资金给开发者,同时项目会给PR贡献者发放nft作为纪念奖品。