Coder Social home page Coder Social logo

dapp-learning-dao / dapp-learning Goto Github PK

View Code? Open in Web Editor NEW
4.7K 112.0 1.2K 207.39 MB

Dapp learning project for developers at all stages. Becoming and cultivating sovereign individuals. Nonprofit organization.

Home Page: https://dapplearning.org

License: MIT License

Solidity 75.14% JavaScript 17.68% TypeScript 2.92% HTML 0.25% CSS 0.08% Python 2.19% Shell 0.09% Less 0.01% Jupyter Notebook 1.16% Dockerfile 0.02% Cairo 0.10% Rust 0.33% Circom 0.04%
dapp ethereum blockchain

dapp-learning's Introduction

Definitive Guide for Decentralized-app(Dapp) Development on Blockchain

Step-by-step Dapp practice through classical projects.


Wechat group helper Twitter Follow YouTube Channel Subscribers Discord server Telegram group

中文 / English

Preface

We are designed for developers to step into blockchain DAPP development, where they can learn DeFi, NFT, DAO, CRYPTO projects. We hope we could not only give junior developers a feasible and easy-to-use blockchain DAPP learning roadmap, but also present advanced developers with a platform for communication and cooperation.

We are a decentralized learning group to study the mainstream DAPP projects together and share thoughts every week. The weekly sharing will be recorded and uploaded to Youtube.

We adhere to the concept of open source university and follow DAO's governance. Currently, we are sponsored by Ethereum foundation, and accept grants in Gitcoin. All the funds will be awarded to whoever makes valuable contributions to us. Please follow us on Twitter @Dapp_Learning or WeChat Official Account Welcome to Dapp-Learning to keep track of our latest progress.

We need more builders to help make our community grow -- contributors are welcomed from all backgrounds! Feel free to send us pull requests to set up new tutorials or improve our current tutorial projects. Correcting spelling errors is also helpful to us 🤗.

Join our developer community by submitting PR or sharing at dapp learning university. Once you submit three PRs, you will be promoted to be a pull request reviewer who could participate in our Dao's governance. Join our Discord or Telegram if you want to communicate any technical issues with us. For more project management rules, please see how new members participate and project governance rules. Welcome to join us if you share the same value.

Official links
Technology Stack:
  • web3.js
  • ethers.js (Hardhat)
  • web3.py (Brownie)
  • Java (Optional)
  • Rust (Optional)
  • Go (Optional)

Project structure

The project is divided into two parts: Basic task and Project task

  • Basic task Basic tools to familiarize and integrate blockchain development (e.g. ERC standard, Oracle, GRAPH, IPFS)
  • Project task Case studies of the mainstream DeFi, NFT, Dao and other crypto projects to enlighten developers to deep dive into dapp development. We will organize study groups to discuss and study project together.

Preparatory Work

Ramp up

  • Developers new to dapp development are strongly encouraged to learn the basics of Ethereum and Solidity before embarking on formal development. You can refer to basic knowledge preparation to ramp up.

Development tool

  • Sharp tools make good work. Familiarize yourself with basic development tools. Refer to recommended development tools to view the current mainstream blockchain development tools.

Recommended reading We have collected a list of classic blockchain-related books to help developers know underlying philosophy behind blockchain.

At the same time, feel free to keep expanding this book list.

Cryptographic course

We have collected some crypto courses from top universities and the Ethereum community to help developers systematically understand blockchain and cryptocurrencies.

We have also organized a translation group to translate MIT course 'blockchain and money' into Chinese, and upload all the chinese note-taking on our WeChat Official Account Welcome to Dapp-Learning

If you have other high-quality course recommendations, we hope you can make a suggestion and add it in our course repo: Recommendations for cryptographic courses.

Basic Tasks

Understand the basic tools and development knowledge of developing DAPP through the following basic tasks. For DAPP architecture, please refer to the article--the difference between Web2.0 and Web3.0 applications from the architectural dimension. Learn and run the first 20 tasks locally and upgrade to focus on project tasks You are welcome to PR improvements to existing tutorial projects or to create more tutorial projects

⬜ Task Not Start ⌛ Task Processing ✅ Task Finish

  1. deploy contract with web3.js
  2. create transaction with web3.js
  3. call ERC20 contract with web3.js
  4. truffle
  5. call ERC20 contract with ethers.js
  6. test contract with waffle and ethers.js
  7. 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 development
  18. web3.py
  19. brownie
  20. flash-loan
  21. aave-uni-lender
  22. zk-snarkjs
  23. ERC865 & ERC875
  24. Upgradeable-contract
  25. multi-sig-wallet
  26. Quadratic vote & Gitcoin
  27. Arbitrum layer2
  28. Optimism layer2
  29. Polygon(matic) layer2
  30. zksync layer2
  31. StarkNet
  32. chainlink-keeper
  33. pooltogether
  34. subgraph
  35. duneanalytics & nansen
  36. zk-rollup
  37. Charm.fi
  38. ether-Rust
  39. Multicall
  40. Flashbots provider with ethers.js
  41. Foundry
  42. Merkle-distributor airdrop
  43. Ethereum Virtual Machine Opcodes
  44. JavaScript Cryptography
  45. Ethereum2.0
  46. NFT Floor Perps
  47. TWAMM: Time-Weighted Average Market Maker
  48. ZK Voting
  49. solidity security
  50. sniper
  51. Governance
  52. Freelancer's Smart Contract
  53. Cryptovoxels
  54. PBFT
  55. IDO
  56. Orbit model
  57. snapshot
  58. wagmi and nextjs
  59. Referral Code
  60. ENS
  61. Tenderly
  62. HTLC-crosschain
  63. state channel
  64. ZK-NFT
  65. Kleros
  66. Go-Ethereum Code Analysis
  67. Config discord with Collab.land
  68. Decentralized OTC
  69. Arweave file upload with Bundlr Client
  70. NYM
  71. Unlock protocol
  72. onchainNFT
  73. erc20-meta-token
  74. golang-dapp
  75. Push Protocol
  76. orbit
  77. wallet connect
  78. hardhat-foundry
  79. Circle CCTP

Welcome to submit pull request, Add a new basic task or update the above task

Advanced task

The preparatory work: For developers with a certain foundation, this part selects mainstream high-quality projects for source code analysis and code review.

The project can be deployed to the test network and shared with the community as a basis. Large DEFI projects are complicated so we suggest to establish a study group to cooperate, ie. one for white paper, one for the front end, one for the contract, and one for data presentation.

Developers can initiate project research topic, form groups, and collaborate within the development community. This section is recommended as a submodule.

DeFi advanced tasks

The DEFI bibles will set you up with a good fundamental understanding of the DEFI system. How to DeFi How to DeFi:Advanced

DEFI Learning roadmap: Trading -> Lending -> Derivatives

You can refer to our study group's learning roadmap, which is better with the video.

  • Trading: uniV1(task13) -> uniV2 -> uniV3 -> CurveV1 -> CurveV2
  • Lending: Aave -> Compound -> Liquity -> Euler
  • Derivatives: SNX -> YFI -> Perpetual -> Opyn
  1. UniswapV2
  2. UniswapV3
  3. CurveV1
  4. CurveV2
  5. Compound
  6. Aave
  7. Liquity
  8. Euler
  9. SNX 👉 Pick up this Task
  10. YFI
  11. Perpetual Protocol
  12. Sushi
  13. OPYN
  14. Alchemix
  15. AMPL 👉 Pick up this Task
  16. RAI
  17. DYDX👉 Pick up this Task
  18. INDEX👉 Pick up this Task
  19. DODO Trading API 👉 Pick up this Task
  20. MakerDao
  21. 0x-protocol 👉 Pick up this Task
  22. Bancor
  23. Set
  24. Dhedge
  25. Element

Defi-Roadmap

NFT advanced tasks

DAO advanced tasks

Crypto advanced tasks

Please read the book first: 《Graphic encryption technology》 Item list:

Smart Contract Security

  1. Common safety tools
  1. CTF Training camp
  1. Safe development practices
  1. Integration of learning resources

Cryptocurrency Jobs Websites

Feel like a career in the crypto industry? The following websites fyi:

Hackathons

Participating in hackathons increases practical experience, you can participate in:

Project Ecology

Dapp-learning has a series of derivative projects and joint maintenance projects. Refer to related projects. Learn more about the ecology of the Dapp-Learning project.

Guide to Contribution

Interested in participating? Check out this doc and find out how you can be a member of us: How to contribute.

Frequently Asked Questions (FAQ)

Please refer to this link to get some answers on how to set up dev environment, how to use the project, and how to get tokens for testing, etc.

Donation Wanted

Open-sourced projects are not easy to maintain so we'd love all kinds of donations. Dapp Learning team follows DAO's governance and all donations would be allocated to our community members as crypto rewards and/or NFTs based on their quality of contributions.

We have a Gitcoin campaign to sustain the Dapp-Learning efforts:

Direct donation to our dev team's fund is also appreciated:

  • Ethereum main network/zkSync/Arbitrum: 0x1F7b953113f4dFcBF56a1688529CC812865840e1

We also have created multi-signature wallets on Polygon, managed by our core contributors

Sponsorship grants are managed under a multi-signature wallet by core contributor team; the fund is available to all contributors for their stellar additions to the project. We look forward to see your contributions soon.

Cooperative partner


                                

                 


Sponsor partner

Shout out to the following organizations for their unconditional donations to us/the open-source project (in no particular order).


                          
                 
        
        

Contributors

Thanks to the contributors of Dapp Learning


Disclaimer: DappLearning is a non-profit learning organization and not involved in any commercial events or endorsements for commercial projects.

dapp-learning's People

Contributors

0x-stan avatar 6gunner avatar alex992y avatar ankazen avatar arc0035 avatar ben46 avatar bixia avatar bobjiang avatar dependabot[bot] avatar gongtao245 avatar hotaplayer avatar jasonandjay avatar jhfnetboy avatar jiangwenqi avatar johnhush avatar laukkw avatar liberhe avatar liushooter avatar longdacao avatar luckyyang avatar oneforalone avatar phenix3443 avatar pythonberg1997 avatar riverman123 avatar sansx avatar xrdavies avatar y1cunhui avatar yanyanho avatar yilugit avatar yingjingyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dapp-learning's Issues

Re-order the tasks' sequence of the basic part

Title:
Re-order the tasks' sequence of the basic part.

Description:
The tasks are randomly added by contributors, while the current list is not suitable for fresh guys. We need to pay some effort to re-order those tasks to make sure these courses can be helpful to learners.

understandV3Witepaper 提到 V2 会摊薄手续费,这块又一些疑问

image

V2 虽然没有考虑做市时长,但是入场时间点不同,就算是同样价格的情况下,提供同样的流动性,获得的 LP 数量不同(意味着权重不同),之前的手续费也已经在新人入场前返还到池子中了,也就意味着已经按照权重完成分配了。

所以新入场人员是否并不会摊薄手续费呢?

Snapshoot

clone了snapshot,打算山寨个snapshoot。。。。给我们自己和别人用。。。比较不喜欢必须有eth域名
MIT,开源开放,服务器费用靠捐赠
有想法的加入,一起做
另外未来要介入chainlink,为链上提供后续推动

认领opensea

  • 当前从事NFT平台开发,会去研究opensea的相关实现
  • 分享内容如下(持续补充):
    • Wyvern源码解析
    • opensea 平台逻辑

【建议】搭建文档站点

文档站点

建议搭建我们项目的文档站点,原因有以下两点:

  • 随着项目教程任务的不断增多,所有的入门都展示在Dapp-Learning项目的Readme文件中,内容过多,不够清晰直观,单靠一个Readme内容将无法承载说明我们项目的所有内容;

  • 教程项目均在各个项目的文件目录下,用户一般需要在本地查看每个项目教程的Readme文档内容,阅读学习还是不够便利。是否可以把每个项目的教程说明内容,统一移至教程文档站点中,方便用户查看教程类别和各任务的指导教程。

文档站点的实现方式:使用 GitBook 搭建(快速简单)或调研其他更自定义、更健壮的方式

风格参考:
image

认领DaoHaus task

个人在DAO方面做过一些分析,期待自己后面的学习过程和大家分享

Use Local Memory Type Variable Instead of Global Storage Type Variable in Event to Save Gas

Hi, we recently have conducted a systematic study about Solidity event usage, evolution, and impact, and we are attempting to build a tool to improve the practice of Solidity event use based on our findings. We have tried our prototype tool on some of the most popular GitHub Solidity repositories, and for your repository, we find a potential optimization of gas consumption arisen from event use.

The point is that when we use emit operation to store the value of a certain variable, local memory type variable would be preferable to global storage type (state) variable if they hold the same value. The reason is that an extra SLOAD operation would be needed to access the variable if it is storage type, and the SLOAD operation costs 800 gas.

For your repository, we find that the following event use can be improved:

  • Transmuter.sol
    function name:setTransmutationPeriod
    event name:  TransmuterPeriodUpdated
    variable:    TRANSMUTATION_PERIOD->newTransmutationPeriod
    function setTransmutationPeriod(uint256 newTransmutationPeriod) public onlyGov() {
        TRANSMUTATION_PERIOD = newTransmutationPeriod;
        emit TransmuterPeriodUpdated(TRANSMUTATION_PERIOD);
    }
  • TransmuterB.sol
    function name:setTransmutationPeriod
    event name:  TransmuterPeriodUpdated
    variable:    transmutationPeriod->newTransmutationPeriod
    function setTransmutationPeriod(uint256 newTransmutationPeriod) public onlyGov() {
        transmutationPeriod = newTransmutationPeriod;
        emit TransmuterPeriodUpdated(transmutationPeriod);
    }
  • TransmuterEth.sol
    function name:setTransmutationPeriod
    event name:  TransmuterPeriodUpdated
    variable:    transmutationPeriod->newTransmutationPeriod
    function setTransmutationPeriod(uint256 newTransmutationPeriod) public onlyGov() {
        transmutationPeriod = newTransmutationPeriod;
        emit TransmuterPeriodUpdated(transmutationPeriod);
    }

Do you find our results useful? Your reply and invaluable suggestions would be greatly appreciated, and are vital for improving our tool. Thanks a lot for your time!

Dapp-Learning DAO

1:社区委员会根据社区成员贡献,分配三种类型的NFT:金牌NFT、银牌NFT和铜牌NFT,拿到这些NFT的用户,即拥有了抽取三国英雄卡牌的权利,我们称此类NFT为“权利NFT”(RightNFT)。
2:分配到RightNFT的用户可以去抽取三国英雄NFT(HeroNFT),不同级别的RightNFT可以抽取不同排名的HeroNFT,譬如金牌RightNFT可以抽取排名1~10的HeroNFT,抽取后,RightNFT将被销毁。另外,RightNFT带有时间属性,超过这个时间便会失效。
3:当社区需要进行治理的时候,持有HeroNFT的用户便可参与投票,排名越高的人物,投票权重就越大,每张HeroNFT最多只能投三次票

1: The Community Committee allocates three types of NFT according to the contribution of community members: Gold NFT, Silver NFT and Bronze NFT, users who get these NFT which we call RightNFT, they have the right to mint the Three Kingdoms Heroes cards.
2: Users assigned to RightNFT can go to mint the Three Kingdoms Heroes NFT (HeroNFT), different type of RightNFT can mint different ranking HeroNFT, such as Gold RightNFT can mint the ranking 1 ~ 10 HeroNFT, when HeroNFT is minted, RightNFT will be destroyed. In addition, RightNFT with time attributes, beyond the time the RightNFT will be invalid.
3: When the community needs to be governed, the user holding HeroNFT can participate in the vote, the higher the ranking of the character, the greater the voting weight, each HeroNFT can only vote a maximum of three times!

整个openzeppelin的源码分析小组?

现在已经有了不少defi的源码分析,不过openzeppelin很多库日常开发都用得上。代码也相对独立,分析起来比较简单,大家认领一下,说不定过几天就多了一份开发宝典。
每个分析分三部分:1. 介绍下这是什么东西,用在什么地方;2. 分析代码怎么实现的;3. 用法示例:整个小例子说明用法。

认领UniswapV2 Task

发起人:Keegan小钢
发起时间:2020年8月11日
子任务:白皮书和原理剖析、前端interface、前端sdk、core合约、外围合约、质押挖矿、DAO治理

README.md

npm install --save @magic-sdk/admin ```

const { Magic } = require('@magic-sdk/admin');

const mAdmin = new Magic('SECRET_API_KEY'); // ✨

申请认领 0x-protocol

有一定的智能合约基础,希望能认领0x-protocol协议解析,为开源社区奉献力量

基本结构为:
0x-protocol设计思路
0x-protocol源码解析
...

Security Scan of your project

We have scanned your project on https://scanmycode.io for Web2 & Web 3 and Infractructure Cloudnative issues. Including: PHP, Java, Scala, Python, Ruby, Javascript, Typescript, GO, Solidity, DeFi Security, Infrastructure as a Code Best Practice and Security (Docker, Kubernetes (k8s), Terraform AWS, GCP, Azure), Secret Scanning, Dependency Confusion, Trojan Source, Open Source and Proprietary Checks. Feel free to go to https://www.scanmycode.io/defiscan/Dapp-Learning-DAO/Dapp-Learning/ to check your report. If you have any questions or need support on the report please contact us directly. Thank you!

添加 Source

我是 un.Block 的主编 Glaze。和你们一样,我们也努力的让更多人了解区块链。

与你们的形式不同,我们以周报的形式进行知识分享。每一期我们会介绍一个技术加上一个名词的科普。

由于我们的目标一致,我们或许有合作的可能,例如我们可以为你们提供一些教程文章。

欢迎在 Issue 下留言,或者邮件联系我们

建议优化任务链接

现在的链接是连接到任务目录的 README.md 文件,建议直接链接到任务目录,这样跳转过后既能显示 README,又能方便看到任务目录的文件。

01 deploy contract with web3.js 任务为例,原始链接 basic/01-web3js-deploy/README.md 的效果为
image

若将链接修改为 basic/01-web3js-deploy 的效果为
image

修改之后可以方便结合 README 查看对应的文件。

认领34-aa

34-aa illustrates how to develop an AA account

是否考虑创建论坛

如题,是否有考虑创建一个论坛来让更多的人一起参与学习,如 OpenZeppelin 和其他大部分都有个论坛提供交流记录,个人的观点是论坛能降低学习者的学习成本,也可以将一些新手的常见的问题记录下来。

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.