Skip to content

kfxiaoxia/Dapp-Learning

 
 

Repository files navigation

中文 / English

区块链 Dapp 开发教程

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

序 - Preface

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

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

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

项目秉持 开源大学 的理念,会以DAO治理形式管理此开源项目。项目由来可以阅读Rebase公众号文章《Dapp-Learning 欢迎您的加入》

此项目仍在开发中,适合各阶段的开发者加入,欢迎提 PR 来创建更多的教程项目或完善已有的教程项目🤗。提交一次PR或者在Rebase大学进行一次分享即可加入我们开发者交流群,贡献三次高质量PR即可成为PR审核者,并参与决议项目走向。项目管理细则请参看新人如何参与以及项目治理规则,欢迎理念相同的小伙伴加入。

技术栈:

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

项目结构

项目分为 基础任务项目任务 两部分

  • 基础任务
    是熟悉和集成区块链开发所必需的基本工具组件(如ERC标准,oracle,graph)
  • 项目任务
    是研究主流 DeFi, NFT, DAO 的经典项目让开发者深入真实项目开发,我们会成立学习小组进行任务分工,一起讨论和研究项目源码。

准备工作 - Preparatory Work

基础知识预备

  • 进入正式的 Dapp 开发学习前, 建议新手开发者学习 以太坊 及 Solidity 相关的基本知识, 为后续的进阶、深入学习打下扎实的基础。 我们整理了 基础知识预备 供各位新手小伙伴学习参考。

开发工具

  • 工欲善其事, 必先利其器。 好的开发工具可以很好的辅助开发者学习, 同时大幅提升开发效率.
    可参考 开发工具推荐 查看当下主流的区块链开发工具。

推荐阅读

我们整理了区块链相关的经典书籍,帮助各位开发者深入了解当下区块链背后的人文思潮。

同时欢迎大家添加推荐书籍,请在此文档 书籍推荐 中录入

加密课程
我们会推荐一些国外顶尖大学和以太坊社区的加密课程,帮助开发者系统性的了解区块链和加密货币。

其他优质的课程也欢迎提 PR 在此文档加密课程推荐 中录入。

基础任务 - Basic Tasks

通过以下基础任务,了解开发 Dapp 的基本工具和开发知识。 DAPP架构请参考文章--从架构维度看Web2.0与Web3.0应用之别
学习并本地运行 前20 个task,可以升级关注项目任务。 欢迎提 PR 来创建更多的教程项目或完善已有的教程项目🤗

⬜ 表示任务未开始
⌛ 表示任务正在进行中
✅ 表示任务已完成

  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
  58. Auto trigger smart contract
  59. NFT Floor Perps

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

项目任务

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

DeFi 进阶

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

  1. UniswapV2
  2. UniswapV3
  3. Compound 👉 认领这个 Task
  4. Aave
  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
  16. MakerDao👉 Claim this task

NFT 进阶

DAO 进阶

Crypto 进阶

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

智能合约安全

  1. 常用安全工具
  1. CTF 训练营
  1. 安全开发实践

如何参与以及DAO治理

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

项目生态

Dapp-Learning 有系列衍生项目及共同维护项目, 参考 相关项目 详细了解 Dapp-Learning 项目生态.

常见问题

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

社区捐助

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

捐助地址:

  • 以太坊主网/zkSync/Arbitrum: 0x1F7b953113f4dFcBF56a1688529CC812865840e1

  • Polygon多签钱包: 0x2A6D09B3b11E5455a37F907f2ec885E0Be704779 polygon网络上我们已生成多签钱包,由核心贡献者管理

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

感谢 Dapp Learning 的贡献者们

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 77.6%
  • JavaScript 16.8%
  • Python 2.8%
  • Jupyter Notebook 1.9%
  • TypeScript 0.6%
  • HTML 0.1%
  • Other 0.2%