/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捐赠。

技术栈:

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

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

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

准备工作 - 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
  55. PBFT

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

进阶任务

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

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

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

如何参与

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

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

常见问题

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

社区捐助

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

捐助地址:

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