diff --git a/README.md b/README.md index 46ad0880b..435cc4af6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### Mina x OpenBuild zkApp 训练营 -**Mina Protocol** 携手 **OpenBuild** 推出为零知识证明开发者设计的 Bootcamp,让开发者可以从零开始学习在 Mina Protocol 构建 ZK 驱动的应用(zkApp)。无论你是否接触过 ZK 技术,只要具备前端基础知识,便能在指导下顺利掌握 zkApp 开发要领,成为区块链领域中最新创新的见证者和实践者! +**Mina Protocol** 携手 **OpenBuild** 推出为零知识证明开发者设计的 Bootcamp,**助力开发者可以从零开始学习在 Mina Protocol 构建 ZK 驱动的应用(zkApp)**。无论你是否接触过 ZK 技术,只要具备前端基础知识,便能在指导下顺利掌握 zkApp 开发要领,成为区块链领域中最新创新的见证者和实践者! 本次训练营采用“Learn to Earn”模式,提供全免费的优质课程和丰富的实战任务,**由 Mina 和 OpenBuild 支持 2000U 的学习激励,帮助更多的 web2 开发者进入 web3,同时从零开始一步步学习掌握 zkApp 的开发。学习结束后可以组队参与 Mina 生态黑客松,赢取 3000U 的黑客松奖励。** @@ -50,6 +50,18 @@ 2. 《Protokit 实操案例》 +### 任务 + +| 任务 | 名称 | 奖励 | +|-------|-------|-------| +| [task1](./task/task1.md) | 创建Auro wallet账户,完成水龙头领水 | 2u | +| [task2](./task/task2.md) | 设计一个简单的投票统计器 | 5u | +| [task3](./task/task3.md) | 设计一个众筹合约,时间窗口关闭后被投资人方可提款 | 5u | +| [task4](./task/task4.md) | 设计一个众筹合约,众筹资金逐步释放 | 2u | +| [task5](./task/task5.md) | 发行你自己的 token,然后设计一个众筹合约 | 5u | +| [task6](./task/task6.md) | 运行一个 appchain | 3u | + + ### 学习资源 #### TypeScript 学习资料 diff --git a/task/task1.md b/task/task1.md new file mode 100644 index 000000000..3c2093e05 --- /dev/null +++ b/task/task1.md @@ -0,0 +1,10 @@ + +### task1:创建 auro wallet账户,完成水龙头领水 + +1. 概述Mina所采用的证明系统(包括名称、特点) +2. 概述递归零知识证明在Mina共识过程中的应用 +3. 下载安装 Auro wallet,创建账户,并完成领水 + +请提交回答,钱包账户截图和领水 `tx hash`。 + + diff --git a/task/task2.md b/task/task2.md new file mode 100644 index 000000000..cd06d6584 --- /dev/null +++ b/task/task2.md @@ -0,0 +1,7 @@ + +### task2: 设计一个简单的投票统计器 + +1. 设计一个简单的投票统计器用于小团队内部投票,要求能累积统计出赞成票和反对票的票数 +2. 考虑检查投票者属于团队成员,假设队员不会重复投票 + +请提交测试执行脚本。 diff --git a/task/task3.md b/task/task3.md new file mode 100644 index 000000000..72087e505 --- /dev/null +++ b/task/task3.md @@ -0,0 +1,8 @@ + +### task3: 设计一个众筹合约, 时间窗口关闭后被投资人方可提款 + +1. 运用 `zkapp-cli` 命令行工具初始化工程 +2. 使用 `o1js` 设计一个众筹合约,在指定时间窗口间允许任何人投入 MINA,有硬顶 +3. 时间窗口关闭后被投资人方可提款 + +请提交提供 `Jest` 本地测试的交互脚本,以及部署到 `DevNet` 的 `tx hash`。 diff --git a/task/task4.md b/task/task4.md new file mode 100644 index 000000000..0b5cc606e --- /dev/null +++ b/task/task4.md @@ -0,0 +1,8 @@ + +### task4: 设计一个众筹合约,众筹资金逐步释放 + +1. 运用 `zkapp-cli` 命令行工具初始化工程 +2. 使用 `o1js` 设计一个众筹合约,在指定时间窗口间允许任何人投入MINA,有硬顶 +3. 时间窗口关闭后众筹资金须按照以下 `vesting` 计划逐步释放: 提款人可以立即提走20%,而后每200个区块释放10%直至释放完毕 + +请提交 `Jest` 本地测试交互脚本,以及部署到 `DevNet` 的 `tx hash`。 diff --git a/task/task5.md b/task/task5.md new file mode 100644 index 000000000..7f7b66881 --- /dev/null +++ b/task/task5.md @@ -0,0 +1,7 @@ + +### task5:发行你自己的token,然后设计一个众筹合约 + +1. 发行你自己的 `token` +2. 设计一个众筹合约,在指定时间窗口间允许任何人以固定的价格购买,有硬顶 + +请提交 `token` 地址,`Jest` 本地测试交互脚本,以及部署到 `DevNet` 的 `tx hash`。 diff --git a/task/task6.md b/task/task6.md new file mode 100644 index 000000000..d4e1c3409 --- /dev/null +++ b/task/task6.md @@ -0,0 +1,6 @@ + +### task6:运行一个 appchain + +1. 参考[文档](https://protokit.dev/docs/quickstart),启动一个 `appchain` + +请提交运行结果截图。