Skip to content

openbuildxyz/solidity_bootcamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenBuild Solidity Bootcamp

OpenBuild 联合 ETHPlanet 打造的 Solidity 课程将从 Web3 的理论基础讲起,到学习 Web3 开发最基础的 Solidity 智能合约开发,为你开启一个充满可能性和机遇的世界。

🔥🔥🔥 黑客松组队持续报名! 🔥🔥🔥

Directory / 目录

Introduction / 项目介绍
Github Discussion / GitHub讨论方式
Chapters / 章节
Missions / 通关任务
Recommended materials / 推荐材料
video material / 视频资料
Foundry

Introduction

为了让更多的 Web2 的开发者和准备入手 Web3 开发的同学丝滑掉进入这个兔子洞。

OpenBuild 联合 ETHPlanet 打造的 Solidity Bootcamp 将从 Web3 的理论基础讲起,到学习 Web3 开发最基础的 Solidity 智能合约开发,通过4周的学习帮助你从 Web2 无缝过渡到 Web3 开发,成为solidity开发,为你开启一个充满可能性和机遇的世界。🚢

Github Discussion 使用方法

Categories Description
🍕Materials 课外资料/课堂笔记(欢迎贡献)
🙏 Q&A 提问 / 答疑
💰Bounty Bounty 任务:课堂作业/课堂笔记/社区贡献etc
💡I've got an idea! 关于一些 Amazing fancy ideas, 用来
1. solidity共学
2. 组队开发
3. 参加黑客松
4. 招聘内推
5. 自娱自乐🎣

Chapters

Chapter1 Blockchain Introduction
Chapter2 Solidity
  1. Solidity Basic Syntax
  2. Remix IDE
  3. ERC Contracts & OpenZeppelin
  4. ERC Contracts and Mini Exchange
Chapter3 Solidity Test & Security
  1. 课程回放
Chapter4 Frontend in Web3
  1. 课程回放
Chapter5 Dev Tools and Ecosystem
  1. 课程回放

Blockchain Introduction

区块链是什么? 区块链解决什么问题? Web2 与 Web3 有什么不同? Web2 开发者的机会? Wallet 是什么? Layers 是什么?

  1. 区块链基本原理介绍
  2. 区块链应用情况介绍
  3. 区块链技术学习路线
  4. 典型 Web2 与 Web3 应用的不同

Solidity

Solidity Basic Syntax, Tools, How to Deploy, etc

1. Solidity Basic Syntax

  • Solidity 智能合约简介
  • Solidity 核心语法

References

  1. Solidity 智能合约开发 - 基础
  2. learn-solidity
  3. Demo Code
  4. foundry-starter-kit
  5. Evangelion Theme

2. Remix IDE

  • Remix 使用
  • 智能合约生命周期

References

3. ERC Contracts & OpenZeppelin

  • ERC/EIP 介绍
  • ERC20/ERC712/ERC1155 概念讲解
  • OpenZepplin 简介及实用库推荐
  • Mini Exchange Demo 讲解

4. Foundry & ERC20 Exchange

使用 Foundry 构建一个 ERC20 Exchange

Solidity Test & Security

Frontend in Web3

Dev Tools and Ecosystem

1. EVM Contract Bytecode and Data Analysis On Chain

2. Oracle

Exercise

大家可以试试几个 Demo:

Functions Lens Eventbrite

通过Functions连接Lens和eventbrite,根据用户在链上的行为发布一些活动的优惠券

Functions: The Graph and Uniswap

通过Functions获取ETH价格然后触发uniswap交易

CCIP Cross Chain NFT

CCIP跨链NFT

One More Thing

Offline Hackerhouse (北京/上海/深圳/成都多地)

🏅️ 通关任务

三个阶段任务达成额外奖励 💰20U (作业截止时间:12/16日) ➕ 专属的NFT结业勋章

阶段一 💰10U

完成以下三个任务 奖金 10U

任务 1 - 区块链开发例子-部署一个ERC20代币

  1. 选择区块链

    • Chainlist.org (RPC 配置)
    • 浏览器,gas代币(水龙头)
    • Meter 简介
    • 代币合约 Github
  2. 合约常用开发环境

    • Node.js
    • npm
    • Hardhat

任务 2 - 发行一个ERC721的NFT合约

  1. 在 sepolia 或其他测试网络发行一个 ERC721 的 NFT 合约,可以参照 https://solidity-by-example.org/app/erc721/

  2. 或使用 https://docs.openzeppelin.com/contracts/5.x/erc721,提交合约地址与对应网络

任务 3 - 使用foundry框架编译和测试

  1. 在 solidity 左侧 Applications 中选取 1 个自己感兴趣的应用,使用 foundry 框架进行编译,并编写测试(至少覆盖一个 Success Case 和 Fail Case),提交 github repo 链接

  2. Solidity by Example

阶段二任务 💰10U

任务 1 - 分析token并对区块进行安全检测

分析链上BNB链上token并Fork高度26793740的区块进行安全测试 0xddc0cff76bcc0ee14c3e73af630c029fe020f907

任务 2 - 自定义编写一个钱包 UI

查看wagmi文档和rainbow源码,根据官方例子自定义编写一个钱包 UI

阶段三任务 💰10U

终极任务🐉

完成 ChainlinkLearningPath 中全部的三个任务

还可以获得Chainlink的 SBT 学历证明以及 Chainlink Swag

🚀🚀🚀

Demoday 优秀项目💰200-500U

奖学金名额每个阶段共计 50 个(副本任务和 Demoday 除外)。为了防止女巫,以上活动参与的人必须注册和完善 OpenBuild https://openbuild.xyz/ 的 Profile,且必须绑定 Github

关于作业的提交说明

如果你对 Git 尚不了解,请先去简单查看 Git 教程,对于我们的作业提交而言,只需要安装好 Git 并且知道最简单的推送代码操作即可。

自己写的代码,一般都是开发者自己维护的仓库,拥有着诸多权限,可以让开发者随意更改。但是别人的开源项目,你并不会拥有直接更改的权限。所以在 Github 上提供了两个操作向开源项目贡献代码。

  1. Fork

fork的定义是指的是将一个开源项目复制到自己的 GitHub 账户下的操作。当你 fork 一个项目时,你就拥有了该项目在你的 GitHub 账户下的一份完整拷贝,可以在此基础上进行修改、测试和实验等。需要说明的是,fork 并不是 Git 自带的功能,而是像 Github 这样的平台提供的协作功能。

  1. Pull request

与fork相对的,当我们完成一些内容后,需要把我们的内容推送至开源项目中,但是我们并没有推送的权限,所以有了PR(Pull Request),Pull Request是指在GitHub或GitLab等代码托管平台上,开发者把自己修改后的代码提交给项目的管理者,请求他们审核并合并自己的代码的过程。

提交任务操作流程

  1. 首先 点击项目右上方的Fork按钮 将项目复制到自己的账户下
  2. 然后进入自己 fork 的项目中,通过 git clone下载到本地,按照作业要求将自己的作业内容放到指定的目录并推送。如果你正在使用 Vscode,这里推荐一个插件 git-commit-plugin 可以规范你的 commit 格式。
  3. 提交完成后回到我们fork 的项目中(指的是已经存在于自己仓库的复制体),点击Pull Request,因为是 fork 过来的项目,源分支(我们自己的 fork)和目标分支(主仓库) Github 会自动帮我们填好。我们只需要填一下PR的标题和描述即可。一般来讲,PR的标题应该简洁明了地概括你所做的修改。而PR的描述则是详细说明你的修改内容和目的,以便审核者更好地理解你的修改内容。需要注意的是,不能与目标仓库当前已有代码产生冲突噢。当我们创建了PR以后,就可以等待目标仓库的管理员审核通过啦~

最后,如果你有任何作业问题,欢迎在我们的学习群 or Discussions 里提出(作业示例代码可参考 GrayJiang 内文件)。

推荐材料

1. 人文基础 🌟🌟🌟🌟🌟

比特币之前的事情:理解组成比特币的核心技术的发展,理解比特币的前前后后,能更好的理解中本聪创造比特币的核心产物。

2. 技术基础 🌟🌟🌟🌟🌟

3. PDFs

4. 官方文档

5. 学习网站

6. 相关资源

7. 大佬博客

8. 其他文章

视频资料

Foundry

ERC 相关:

https://www.coindesk.com/learn/what-are-eip-and-erc-and-how-are-they-connected/ https://ethereum.org/en/developers/docs/standards/tokens/erc-20/ https://ethereum.org/en/developers/docs/standards/tokens/erc-721/ https://celo.academy/t/a-practical-comparison-between-erc-1155-and-erc-721/62

Demo 项目:

https://github.com/pseudoyu/exchange-demo-contracts/

https://github.com/pseudoyu/social-dApp-demo-contracts