Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update Task5 #469

Closed
wants to merge 730 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
730 commits
Select commit Hold shift + click to select a range
a092e7d
chore: update readme
smallfu6 Dec 3, 2024
4e5809e
feat: tesk2-1
18671502925 Dec 1, 2024
2441af8
feat: 测试代码提交
18671502925 Dec 3, 2024
25685b2
feat: add task2 reward
smallfu6 Dec 3, 2024
c784a40
feat: update readme
smallfu6 Dec 3, 2024
6d472ff
重新提交task1
amberkitty Dec 3, 2024
c312571
feat: add contest reward
smallfu6 Dec 3, 2024
49bd14c
task2: serencc
serencc Dec 2, 2024
494cd51
feat: add task2 reward
smallfu6 Dec 4, 2024
4e0654a
feat: add chapter3 ppt
smallfu6 Dec 4, 2024
c1d2841
fix: chapter3 ppt
smallfu6 Dec 4, 2024
d5ed3ad
feat: add ama reward tx
smallfu6 Dec 5, 2024
0cf4946
feat: add contest reward tx
smallfu6 Dec 7, 2024
a496819
fix: update link
smallfu6 Dec 7, 2024
0990209
feat: add contest reward tx
smallfu6 Dec 8, 2024
99d2fad
feat: task1
nmsn Nov 18, 2024
405b405
feat: finish task 2
weirdcola Nov 30, 2024
5c8c643
chore: fix git issue
weirdcola Nov 30, 2024
5a41ea0
fix: remove other file except src
weirdcola Dec 3, 2024
626a0e0
fix: remove other file except src
weirdcola Dec 3, 2024
2974fe8
feat: finish task 3
weirdcola Dec 8, 2024
0fcf3b7
feat: shunjun task2
Shunjun Dec 1, 2024
deef4ab
fix: delete package.json
Shunjun Dec 6, 2024
53c1dc1
task2 todo
huangyan0914 Dec 1, 2024
b6941d9
Create program-on-vote.ts
huangyan0914 Dec 5, 2024
33833bf
feat: vote
Dec 1, 2024
62cd711
feat: initialize vote-counter project with TypeScript setup and votin…
pengwon Dec 1, 2024
adf90af
refactor: remove vote-counter project files and configurations
pengwon Dec 5, 2024
8e0fb35
task2
MartinYeung5 Dec 1, 2024
fd0f088
Task2
MartinYeung5 Dec 4, 2024
f2d7b45
task3
MartinYeung5 Dec 8, 2024
3a83e56
feat: xq's task 1
immaixq Dec 2, 2024
4e49d58
feat: add tx hash
immaixq Dec 5, 2024
4d86fca
task3: 众筹合约
xiaxianlin Dec 4, 2024
61df723
update task 3
linghuccc Dec 4, 2024
ff1612a
update task 3
linghuccc Dec 4, 2024
9930cf4
update task 3
linghuccc Dec 5, 2024
577af18
update task 3
linghuccc Dec 5, 2024
6d4e11f
feat: task3
AdamLeeeee Dec 5, 2024
d1de1ec
feat: add task2 reward tx
smallfu6 Dec 9, 2024
35d7649
task2
hello2jie Dec 3, 2024
c148926
task2
hello2jie Dec 3, 2024
fe86484
task3
hello2jie Dec 4, 2024
6647e19
task2
Bystander2 Dec 24, 2024
c3ed0bd
task2
LeonTing1010 Dec 2, 2024
3610f4a
VotingSystem
LeonTing1010 Dec 4, 2024
534a534
task2
LeonTing1010 Dec 4, 2024
6c27c3b
Finish Task3
Dec 3, 2024
20c1c3f
refac: change to block time validation.
Dec 4, 2024
931f520
chore: update report.md
Dec 4, 2024
1aa4de0
feat: add task1
CrafixLQR Dec 4, 2024
13aff6c
feat: task3 pending
CrafixLQR Dec 8, 2024
941f77d
task3: lispking
lispking Dec 6, 2024
4c2afca
add more ut
lispking Dec 6, 2024
7eb08b8
add deploy time
lispking Dec 6, 2024
aaf6551
task3任务
Like-Ming Dec 6, 2024
27e0c7d
添加hash地址
Like-Ming Dec 6, 2024
a545db7
update: task3-complete
Dec 6, 2024
4e421c5
feat: 完成task3
Dec 6, 2024
d156e90
feat: key
Dec 6, 2024
367af10
feat: add unit-test snapshot
Dec 7, 2024
94bbe4e
fix: bug
Dec 7, 2024
37c61c2
feat: add Readme.md
Dec 7, 2024
4ac05d0
task3
tokenlin Dec 6, 2024
6913363
finish task3
vv1133 Dec 6, 2024
77a3e94
woking-tak3提交
wokingGit Dec 7, 2024
aee122f
feat: finish task3
cdt3211 Dec 7, 2024
56495cb
t3
Fortitude-lan Dec 7, 2024
d9a8306
众筹合约实现与测试用例覆盖
Dec 7, 2024
70a8581
fix: 修改一些问题
Dec 7, 2024
6f1b760
chore: txhash
Dec 7, 2024
8f34b3e
feat: task3
Draculabo Dec 7, 2024
06c8898
feat: task3
obiwan90 Dec 8, 2024
11ac754
Create crowdfunding-zkapp.ts
swbwawa Dec 4, 2024
76da4d1
Create crowdfunding-zkapp-local.ts
swbwawa Dec 4, 2024
a511fff
Create crowdfunding-zkapp-devnet.ts
swbwawa Dec 4, 2024
f59826e
Update crowdfunding-zkapp-local.ts
swbwawa Dec 4, 2024
62a4344
Create task3.md
swbwawa Dec 4, 2024
058457d
Update crowdfunding-zkapp.ts
swbwawa Dec 8, 2024
0b613fb
finish task3
StarryDeserts Dec 8, 2024
4d4f2c9
task3
MuyeC Dec 8, 2024
6fd6c23
Create Crowdfunding.test.ts
MackDing Dec 8, 2024
8fdb0ad
Create Crowdfunding.ts
MackDing Dec 8, 2024
bbe13ff
feat: task3 part1
Dec 8, 2024
39ce43f
task3
Dec 8, 2024
cc05240
add task3 Crowdfunding contract
longerd Dec 8, 2024
50c77f4
add task3 deploy hash
longerd Dec 9, 2024
6851e64
add task3 contract
zilong-dai Dec 8, 2024
d0ccc2a
add deploy hash
zilong-dai Dec 9, 2024
ce32b89
tas3
zhangloveyan Dec 8, 2024
9034508
feat: task3
Dec 8, 2024
c3041a2
feat: add tx hash for deploy the contract
weirdcola Dec 9, 2024
7026e26
finish task3
veithly Dec 8, 2024
2fb16b2
task3
WenHaoHub Dec 8, 2024
3ee6909
task3
amberkitty Dec 8, 2024
e10123a
task3
amberkitty Dec 8, 2024
44956d1
fix
amberkitty Dec 9, 2024
486b7b2
Create hash.txt
amberkitty Dec 8, 2024
a69da68
finish
amberkitty Dec 9, 2024
34a54fb
fix
amberkitty Dec 9, 2024
699ad45
task3: serencc
serencc Dec 8, 2024
de54509
feat: task3
Dec 8, 2024
d55328f
feat: task3
Dec 8, 2024
abdba69
task3 update
felix-cjy Dec 8, 2024
7d78c16
upload tx hash
felix-cjy Dec 8, 2024
0120b84
feat: task3
moseyah Dec 8, 2024
dceb58c
init
baidang201 Dec 8, 2024
7ed8d5a
fix test "Cannot start new transaction within another transaction"
baidang201 Dec 8, 2024
88f8160
update devnet deploy hash
baidang201 Dec 9, 2024
e707f3b
add: task3 v1
Dec 9, 2024
9b4bd3c
重写task2
flp511 Dec 3, 2024
8c431f2
未完成,明天继续
flp511 Dec 8, 2024
79431fe
完成task3
flp511 Dec 9, 2024
5701640
删除key
flp511 Dec 9, 2024
71ed3eb
Refund test completed
felix-cjy Dec 10, 2024
167eebb
Refund test completed
felix-cjy Dec 10, 2024
2f85c16
报名
Dec 10, 2024
8c2d758
Create task2.md
DOV-3 Dec 1, 2024
cf811a6
Create vote.ts
DOV-3 Dec 8, 2024
86978be
Create task3.md
DOV-3 Dec 8, 2024
64fa13a
Delete learn/DOV-3/task3 directory
DOV-3 Dec 11, 2024
f686284
feat: task3占位,后续更新
wangyuanzcm Dec 8, 2024
fea89b3
feat: 占位
wangyuanzcm Dec 8, 2024
cd6cf3e
feat: task3(待补充)
justice010 Dec 8, 2024
f211d26
feat: add txHash to the task3
justice010 Dec 10, 2024
b220f1d
task3: 设计一个众筹合约
0xHoGan Dec 8, 2024
cd7adb6
'task3'
Dec 8, 2024
2efa255
task3 update
Dec 8, 2024
563ff89
feat: add task2 reward tx
smallfu6 Dec 11, 2024
7357aec
task3
Dec 8, 2024
da8bbf0
feat: task3 占个位
liaobinbin Dec 8, 2024
39c4aad
feat: task3 补充 tx hash
liaobinbin Dec 10, 2024
74b9214
feat: add contest reward
smallfu6 Dec 11, 2024
313e7a4
fix: update amount
smallfu6 Dec 11, 2024
b597f0d
feat: add contest reward
smallfu6 Dec 11, 2024
76a2607
feat: task3
xtheing Dec 11, 2024
1b5ff64
feat: add task3 reward
smallfu6 Dec 12, 2024
a11f463
feat: update task3 reward
smallfu6 Dec 12, 2024
12225c7
fix: task3 reward amount
smallfu6 Dec 12, 2024
6142566
feat: add contest reward
smallfu6 Dec 12, 2024
95c28c6
feat: add chapter4 info
smallfu6 Dec 12, 2024
34ab3f9
chore: formatting
smallfu6 Dec 12, 2024
2a05383
feat: task4 and task5(todo)
xtheing Dec 15, 2024
81fd566
feat: add chapter5
smallfu6 Dec 16, 2024
730875d
chore: fix task info
smallfu6 Dec 16, 2024
9a198ae
feat: task2
alexmaxpro Dec 1, 2024
47d5e08
fix: remove files
alexmaxpro Dec 1, 2024
1ff7ca0
fix: update vote circuit
alexmaxpro Dec 4, 2024
5ca72f2
fix: task2
alexmaxpro Dec 5, 2024
a4b467a
feat: task3
alexmaxpro Dec 8, 2024
d63e030
feat: task4 & task5
alexmaxpro Dec 15, 2024
19bad19
[init]:提交个人信息
Dec 9, 2024
fa45e6b
[fix]: 补充钱包地址
Dec 10, 2024
c0ec934
[feat]:task1
Dec 10, 2024
ec9a76b
[fix]:删除 .vscode
Dec 11, 2024
258e3e5
task3
LeonTing1010 Dec 4, 2024
118cd10
task3
LeonTing1010 Dec 4, 2024
7a4bcaf
task3
LeonTing1010 Dec 7, 2024
eb759bc
task3
LeonTing1010 Dec 10, 2024
a41dde6
只保留源码和测试脚本
LeonTing1010 Dec 10, 2024
cd1794a
删除无关文件和文件夹,只保留源码和task.md
Bystander2 Dec 24, 2024
5f38279
task 3 pre commit
TinyScript Dec 10, 2024
2da78d9
task 3
TinyScript Dec 12, 2024
b8a809f
task4:lispking
lispking Dec 12, 2024
fabe438
feat: task4
Dec 13, 2024
126758e
feat: task5
xiaxianlin Dec 15, 2024
44b7c62
finish task4
vv1133 Dec 13, 2024
5d1a2be
task5:lispking
lispking Dec 13, 2024
8e87298
task5:update txn
lispking Dec 14, 2024
a4ec5f7
remove used code
lispking Dec 14, 2024
938ae2e
update: task4
Dec 14, 2024
283a5cc
update: task5
Dec 16, 2024
3880798
task4
zhangloveyan Dec 14, 2024
1613cc5
feat:task4
obiwan90 Dec 14, 2024
8f13947
feat: vesting 任务
Dec 8, 2024
b8b946e
feat: 代币归属
Dec 14, 2024
0a4a80c
feat: 更新说明文件
Dec 14, 2024
80ac5d0
Finish Task5
Dec 15, 2024
f39e663
Finish task5
Dec 15, 2024
cc4c0bf
A bewilder bug.
Dec 15, 2024
9b5d794
feat: Add fungible
Dec 16, 2024
c47ba7f
tx hash
Dec 16, 2024
3f7af19
task4-tokenlin
tokenlin Dec 15, 2024
acea1c3
finish task5
vv1133 Dec 15, 2024
6b9cefa
feat:task4任务提交-wokingGit
wokingGit Dec 15, 2024
bb8c3cc
task4 and task5 to do
cdt3211 Dec 15, 2024
b812914
task4
Dec 15, 2024
0c2659b
task5
Dec 15, 2024
0a2347f
feat: task4 and task5
Dec 15, 2024
aeadb45
feat: task5
Dec 15, 2024
a580656
feat: task5
Dec 15, 2024
9b0f0eb
task5
zhangloveyan Dec 15, 2024
404c64d
readme
zhangloveyan Dec 15, 2024
3fee3f8
feat:task4未完成,先提交
flp511 Dec 15, 2024
a40e20b
完成taks4
flp511 Dec 16, 2024
d0f154f
task4: serencc
serencc Dec 16, 2024
f6bb32c
task4 and task5
MartinYeung5 Dec 15, 2024
f7b4b08
add task4
longerd Dec 15, 2024
9a37006
add task deploy hash
longerd Dec 16, 2024
158cade
init task4 task5
baidang201 Dec 15, 2024
8b17c5e
update token funding
baidang201 Dec 16, 2024
f778e16
update task4
baidang201 Dec 16, 2024
67533ef
feat: add task4 reward
smallfu6 Dec 17, 2024
1361fe5
feat: add task5 reward
smallfu6 Dec 17, 2024
62a9c42
chore: update README.md
smallfu6 Dec 17, 2024
96aa2c9
feat: add contest reward
smallfu6 Dec 17, 2024
df6e1bb
feat: task4
xtheing Dec 17, 2024
3e5dd9d
delete task4
xtheing Dec 17, 2024
40a6683
task6:lispking
lispking Dec 14, 2024
3f3b815
remove task5
Bystander2 Dec 24, 2024
77a73e4
feat: task4, task5 (#458)
StarCoderLn Dec 19, 2024
b1b034e
feat: task4 and task5 (#462)
zilong-dai Dec 19, 2024
56ac9a9
Task5:missop (#442)
missop Dec 19, 2024
6ffcf1b
task4: completed; task5: completed (#463)
felix-cjy Dec 19, 2024
6d44644
task4,task5 (#451)
StarryDeserts Dec 23, 2024
662d7a2
task5: serencc (#457)
serencc Dec 23, 2024
08f6d85
feat: add task4 reward
smallfu6 Dec 23, 2024
4c1bd98
feat: add task5 reward
smallfu6 Dec 23, 2024
44c09a0
finish task4 (#464)
amberkitty Dec 23, 2024
4d98208
task6 (#465)
zhangloveyan Dec 23, 2024
0ffe768
feat: task4 (#468)
AdamLeeeee Dec 23, 2024
a4aedb4
task4 complete (#470)
justice010 Dec 23, 2024
f7f3636
feat: Task5任务-wokingGit (#471)
wokingGit Dec 23, 2024
8fa0364
finish task6 (#473)
vv1133 Dec 23, 2024
3e3835f
update task5 and person readme (#477)
baidang201 Dec 23, 2024
03e553b
feat: task6 (#478)
longerd Dec 23, 2024
62b5c5a
task5-tokenlin (#476)
tokenlin Dec 23, 2024
f86be52
feat: finish task6 (#481)
cdt3211 Dec 23, 2024
61d56dc
finish Task5 (#482)
amberkitty Dec 23, 2024
ac92794
feat: task6 (#483)
StarCoderLn Dec 23, 2024
370ac1a
task4 and task5 and task6 (#484)
xtheing Dec 23, 2024
12e4aaa
update: task6 (#485)
xfz1987 Dec 23, 2024
9b13364
update task6 (#486)
Bystander2 Dec 23, 2024
392d868
Task6:missop (#487)
missop Dec 23, 2024
87ee99b
update (#488)
MartinYeung5 Dec 23, 2024
5307d90
feat: task6 (#490)
xiaxianlin Dec 23, 2024
88a6121
task6 completed (#491)
felix-cjy Dec 23, 2024
1a51480
feat: task6 (#492)
zilong-dai Dec 23, 2024
1d6247c
Smith task6 (#493)
baidang201 Dec 23, 2024
6b5f5d5
task6: serencc (#494)
serencc Dec 23, 2024
7eded4d
feat: task6 (#496)
maxli111 Dec 23, 2024
c489b42
feat: task6 (#497)
alexmaxpro Dec 23, 2024
09d10f9
feat: add task6 reward
smallfu6 Dec 23, 2024
070ea13
feat: add missing accounts for reward
smallfu6 Dec 23, 2024
13a0bb2
chore: update README
smallfu6 Dec 23, 2024
92363bb
feat: add new task4/5 reward
smallfu6 Dec 23, 2024
b029768
justice010: 处理 task6 冲突 (#499)
justice010 Dec 23, 2024
49564d6
justice010: 处理 Task5 冲突 (#500)
justice010 Dec 23, 2024
d7b59f5
feat: add new task4/5/6 reward
smallfu6 Dec 23, 2024
8d3314b
update task5
Bystander2 Dec 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
93 changes: 63 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@

完成报名后联系小助手微信 `hahalzr0118` 加入交流群。课程不需要具备 ZK 知识就可以学习,只需要有一定的 `TypeScript` 基础,可以参考[学习资源](#学习资源)进行学习,有其他问题请联系小助手或在交流群沟通。

Auro Wallet 下载:https://www.aurowallet.com/download/

Mina 水龙头:https://faucet.minaprotocol.com/

Mina 区块链浏览器:https://minascan.io/devnet/home

<br>


Expand All @@ -31,58 +37,85 @@
本次课程以一周学习一章的进度进行,一章对应1-2个任务,任务列表看[这里](#任务);以提交 `task1` 为例:

1. 在 `learn/YourName` 文件夹中创建 `task1` 文件夹
2. 在 `task1` 文件夹中存放任务文件
2. 在 `task1` 文件夹中存放任务文件,可以新建 `readme.md` 整理任务内容。(鼓励提交学习笔记和心得)
3. 提交 `PR` 到本仓库,等待合并后完成 `task1`。

⚠️ 每个**Task**单独提交,一个 `PR` 包含多个**Task**会直接关闭。

<br>


### 课程大纲

**第一章:Mina 协议基础**
**第一章:Mina 协议基础** | [课件PPT](https://file-cdn.openbuild.xyz/course/2051400317/Mina_bootcamp_chapter1.pptx)
1. 《开篇介绍 Mina 和开发者 Grant 计划》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1731576740)
2. 《零知识证明入门》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1731576760)
3. 《Mina 22kb 原理》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1731576916)
4. 《Mina 开发者资源》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1731577075)

**第二章:o1JS 开发框架**
1. 《o1JS 简介》
2. 《使用 zkapp-cli 初始化工程》
3. 《DSL 语法讲解》
4. 《Demo 案例讲解》
**第二章:o1JS 开发框架** | [课件PPT](https://file-cdn.openbuild.xyz/course/2051400317/Mina_bootcamp_chapter2.pptx)
1. 《o1JS 简介》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732289285)
2. 《使用 zkapp-cli 初始化工程》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732289385)
3. 《DSL 语法讲解》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732289429)
4. 《Demo 案例讲解》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732289481)

**第三章:zkApp 基础开发**
1. 《zkApp 基础概念与实操》
2. 《本地测试》
3. 《部署到 DevNet》
4. 《解析交易细节》
**第三章:zkApp 基础开发** | [课件PPT](https://file-cdn.openbuild.xyz/course/2051400317/Mina_bootcamp_chapter3.pptx)
1. 《zkApp 基础概念与实操》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732934453)
2. 《本地测试》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732934453)
3. 《部署到 DevNet》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732934576)
4. 《解析交易细节》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1732934593)

**第四章:zkApp 高阶应用**
1. 《Event 合约日志分析》
2. 《Actions & Reducer 机制》
3. 《Time-Locked Accounts 机制》
4. 《自定义代币机制》
5. 《Fungible Token Standard源码讲解》
**第四章:zkApp 高阶应用** | [课件PPT](https://file-cdn.openbuild.xyz/course/2051400317/Mina_bootcamp_chapter4.pptx)
1. 《Event 合约日志分析》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1733741832)
2. 《Actions & Reducer 机制》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1733741845)
3. 《Time-Locked Accounts 机制》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1733741857)
4. 《自定义代币机制》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1733742537)
5. 《Fungible Token Standard源码讲解》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1733742551)


**第五章:Protokit 框架探索**
1. 《Protokit 基础概念讲解》
2. 《Protokit 实操案例》
**第五章:Protokit 框架探索** | [课件PPT](https://file-cdn.openbuild.xyz/course/2051400317/Mina_bootcamp_chapter5.pptx)
1. 《Protokit 基础概念讲解》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1734323187)
2. 《Protokit 实操案例》 | [课程](https://openbuild.xyz/learn/challenges/2051400317/1734323198)

<br>

### 任务

任务奖励以 RMB 等值的 `$MINA` 发放到你提交的 Mina 钱包地址中。
任务奖励以 RMB 等值的 `$MINA` 发放到你提交的 Mina 钱包地址中。 🎉 奖励发放情况看[这里](./reward)。

| 任务 | 阶段 | 名称 | 奖励 | 状态 |
|-------|-------|-------|-------|-------|
| [task1](./task/task1.md) | 第一周 | 创建Auro wallet账户,完成水龙头领水 | ¥15 | 已结束([奖励🎉](./reward/task1.md)) |
| [task2](./task/task2.md) | 第二周 | 设计一个简单的投票统计器 | ¥35 | 已结束([AMA](https://youtu.be/xw4epbB9k9c) \| [奖励🎉](./reward/task2.md)) |
| [task3](./task/task3.md) | 第三周 | 设计一个众筹合约,时间窗口关闭后被投资人方可提款 | ¥15 | 已结束([奖励🎉](./reward/task3.md)) |
| [task4](./task/task4.md) | 第四周 | 设计一个众筹合约,众筹资金逐步释放 | ¥15 | 已结束([奖励🎉](./reward/task4.md)) |
| [task5](./task/task5.md) | 第四周 | 发行你自己的 token,然后设计一个众筹合约 | ¥35 | 已结束([奖励🎉](./reward/task5.md)) |
| [task6](./task/task6.md) | 第五周 | 运行一个 appchain | ¥21 | 已结束([奖励🎉](./reward/task6.md)) |

<br>

### 📢 Mina 学习激励活动!

参与技术讨论和分享、撰写技术文章、社交分享,即有机会赢取 MINA 奖励!🎉 [立即参与](https://github.com/openbuildxyz/mina-zkapp-bootcamp/discussions/154) | [查看奖励](./reward/contest.md)


| 用户名 | 奖励类型 | 链接 | 奖励 |
|---------------|--------------|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| MartinYeung5 | 发表技术文章 | [探索Mina的獨特架構和zkApp應用例子](https://learnblockchain.cn/article/10009) | [1.5 MINA](https://minascan.io/mainnet/tx/5Ju9kL8RD53QfyUG7T31yhd1vEfrcDfwY7g5ZNSupmtjZnFY2do3) |
| tianhuihui1 | 发表技术文章 | [零基础开始学 Mina(一)](https://learnblockchain.cn/article/9990) | [1.5 MINA](https://minascan.io/mainnet/tx/5JubrFYmsmNcCoeK1xtxoSAbnd1P3u4PsuCiGwu5tLnzidEXnbfa) |
| lispking | 发表技术文章 | [Kimchi:Mina 证明系统的最新更新](https://learnblockchain.cn/article/10013) | [1.3 MINA](https://minascan.io/mainnet/tx/5JuZN4QWTrtxQxY66sEjQrD6ZJcMhnsvvuYWX3aasBG2ABovUsqX) |
| lispking | 发表技术文章 | [重新介绍 Mina:利用“万物证明”构建(真实)物联网](https://learnblockchain.cn/article/10031) | [1.3 MINA](https://minascan.io/mainnet/tx/5JupvnywULNVrmAanLE5yL4Qo8jsgaFnth5pLgonT93d3XwLkYU8) |
| lispking | 发表技术文章 | [Mina协议上的零知识机器学习](https://mp.weixin.qq.com/s/vAaYppVCfg19mj5w86NCuA) | [1.4 MINA](https://minascan.io/mainnet/tx/5JtiynKbPqh34UxQCueYgzgRVNcUQtaWY4bsJHZrkNbgpiLpS3uf) |
| longerd | 发表技术文章 | [Mina Learning - Mina Protocol 中文翻译](https://learnblockchain.cn/article/10075) | [1.4 MINA](https://minascan.io/mainnet/tx/5JuCZaKreuir6dqSwn1QKQzkz3oGdJPFNzFpB1wjanNpbEx7uWsZ) |
| lispking | 发表技术文章 | [Mina 白板会议 TL;DR](https://learnblockchain.cn/article/10079) | [1.4 MINA](https://minascan.io/mainnet/tx/5JvEt2Dxab2K1jAHUYQhqAVg18pKijeqrwXX8R9ktSLRMo7Xo3Xx) |
| longerd | 发表技术文章 | [Mina Learning - Address](https://learnblockchain.cn/article/10083) | [1.4 MINA](https://minascan.io/mainnet/tx/5JuS4PvnXGM8WvREh4oJjqW2RWWpWLAQ7HgnjAakLpfmKTZEjbQn) |
| ...... | ....... | ...... | ...... |

<br>

### AMA 活动

| 任务 | 阶段 | 名称 | 奖励 |
|-------|-------|-------|-------|
| [task1](./task/task1.md) | 第一周 | 创建Auro wallet账户,完成水龙头领水 | ¥15 |
| [task2](./task/task2.md) | 第二周 | 设计一个简单的投票统计器 | ¥35 |
| [task3](./task/task3.md) | 第三周 | 设计一个众筹合约,时间窗口关闭后被投资人方可提款 | ¥15 |
| [task4](./task/task4.md) | 第四周 | 设计一个众筹合约,众筹资金逐步释放 | ¥15 |
| [task5](./task/task5.md) | 第四周 | 发行你自己的 token,然后设计一个众筹合约 | ¥35 |
| [task6](./task/task6.md) | 第五周 | 运行一个 appchain | ¥21 |
- [Mina Bootcamp Community AMA(task2)](https://youtu.be/xw4epbB9k9c)

<br>

Expand Down
11 changes: 11 additions & 0 deletions learn/0xHoGan/0xHoGan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Mina zkApp 训练营


#### 个人信息

- github 用户名:0xHoGan
- OpenBuild 注册邮箱:[email protected]
- Mina 钱包地址:B62qmWgnatsvVwkL1iGHuE2BhNF8piikGz6zssM3espTZaaAKqnVvCU

#### 自我介绍

Binary file added learn/0xHoGan/task1/AuroWallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions learn/0xHoGan/task1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

## 1.ZKP(Zero knowledge Proof-零知识证明)
* 由 S.Goldwasser、S.Micali 及 C.Rackoff 在 20 世纪 80 年代初提出的。
* 它指的是证明者(prover)能够在不向验证者(verifier)提供任何有用的信息的情况下,使验证者相信某个论断是正确的,即它使证明者能够说服验证者相信他拥有某些信息(或符合指定条件、门槛),而无需透露实际信息(或数据)本身。
* 特点
* 私密(Private)
* 无需信任(Trustless)
* 高效(Efficient)
* 去中心化(Decentralized)
* 应用场景:隐私保护(验资、匿名投票、隐私交易)、计算压缩(区块链扩容)
* ZKP属于 概率性证明, 而非数学上的严谨证明
* 交互式零知识证明
* 证明者和验证者需要同时在线。证明者面对每个验证者都要证明一次数据的真实性。
* 非交互式零知识证明
* 证明者和验证者无需同时在线。证明者创建一份证明,任何使用这份证明的人都可以进行验证。

## 2.零知识证明步骤
1. 将问题转换成描述
2. 编译电路,并生成ProverKey和VerificationKey
* 可能需要可信设置(Trusted Setup)
3. 证明者使用Prove函数(需结合ProverKey)生成证明(Proof)
4. 验证者使用Verify函数(需结合VerificationKey)验证Proof真假

## 3.Kimchi -Based的Mina’s zkApp的开发流程:
1. 将问题转换成电路描述(用o1js写电路代码)。
2. 将电路编译 (complie) 成plonkish格式, 同时生成PK (proving key),VK(verifying key)。
3. 证明者使用函数 Prove 函数生成证明(Proof)。
4. 验证者使用 Verify 函数,验证proof的真假。

## 4.Mina Kimchi
* 大小只有22Kb,账本会一直保持在22kb,之所以能这么小是因为递归 zkSNARK。递归 zkSNARK的每一个电路生成的证明会作为参数,传到另外的电路中,并且进行验证,另外的电路会生成第二个证明。另外生成的证明会被传到第三个电路中。

## 5.Pos-china共识的步骤
1. 选择见证人(Choose Block Producer)
2. 构建新区块(Construct a new Block)
1. 验证一组交易(Validate a set of Tx)
2. 根据验证的交易集和前一个区块的哈希值构建新区块(Construct a new Block based on the validated Tx set & Previous Block’s hash)
* Mina为以上步骤分别写零知识电路,并生成对应的证明
3. 广播新区块(Broadcast the new block)
4. 其他验证者验证新区块(Other validators validate the new block)

## 6.Mina学习资源
1. [Mina官网](https://minaprotocol.com)
2. [Mina Github](https://github.com/minaProtocol)
3. [Mina开发者文档](https://docs.minaprotocol.com)
4. [o1lab官网](https://www.o1labs.org)
5. [o1lab Github](https://github.com/o1-labs)
6. [Mina Chain Explorer](https://minascan.io/mainnet/home)
7. [Auro Wallet](https://www.aurowallet.com/)
8. [Pallad Wallet](https://pallad.co/)
9. [Mina DevNet Faucet](https://faucet.minaprotocol.com/)
19 changes: 19 additions & 0 deletions learn/0xHoGan/task1/task1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# task1:创建 auro wallet 账户,完成水龙头领水
## 1.概述Mina所采用的证明系统(包括名称、特点)
* Mina所采用的证明系统
* 基于zkSNARK(zero-knowledge Succinct Non-interactive ARgument on Knowledge 零知识简洁的非交互式知识论证)的PLONK及其变种
* 特点
* 简化的可信设置(simplified trusted setup):PLONK算法只需要一次初始设置(Universal Trusted Setup);Mina’s Kimchi无需Trusted Setup!
* 递归 zkSNARK(recursion zkSNARK):生成的证明可以被入参
* 通用 ZKP(general-purpose zkp):更加灵活
* 较小的证明(small proof size):

## 2.概述递归零知识证明在 Mina 共识过程中的应用
1. validate a batch of Tx; -> generate TxBatchProof
2. construct new Block_i based on Tx Batch & lastBlock’s hash -> generate BlockProof_i (including verify TxBatchProof internally)
3. generate ChainProof_i based on ChainProof_i -1 & BlockProof_i
* Each ChainProof_i means : The Whole Chain History from GenesisBlock to Block_i is Valid.

## 3.下载安装 Auro wallet,创建账户,并完成领水
* ![AuroWallet截图](./AuroWallet.png)
* Tx Hash: 5Jtpx5WSdGrb4d2kaqPPHrMTF3fmvVKs7a1DtT5WNwWi6uT6sHc7
Binary file added learn/0xHoGan/task2/1.编写零知识电路.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added learn/0xHoGan/task2/2.生成证明.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added learn/0xHoGan/task2/3.验证者验证证明.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
132 changes: 132 additions & 0 deletions learn/0xHoGan/task2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
## 1.o1js
* o1js 是一个 TypeScript 库,用于:
* 编写通用零知识(zk)程序
* 为 Mina 编写 zk 智能合约
* o1js是启动zk应用程序的最快方法.

## 2.zkApp CLI
* 通过 zkapp-cli 命令行工具可以快速初始化工程脚手架,以及应用最佳实践
* 必备条件
* NodeJS v18 及更高版本
* NPM v10 及更高版本
* git v2 及更高版本
* 安装zkApp CLI
```
npm install -g zkapp-cli
```

* 确认安装成功
```
zk --version
```

* 更新zkApp CLI
```
npm update -g zkapp-cli
```

* 创建项目
```
zk project <project-name>
# Create an accompanying UI project too? · nuxt
Which package manager would you like to use? · npm
```

## 3.DSL语法
1. Field
* Field是ZK编程中的基本数据单位
```
const sum = new Field(1).add(new Field(3))
# 等同于典型的编程中 const sum = 1 + 3
# 简化为 const sum = new Field(1).add(3)
```

2. 数据类型

| 数据类型 | 描述 |
| --- | --- |
| Bool(x) | true or false |
| Field(x) | 整数 |
| UInt64(x) | 64位无符号整数 |
| UInt32(x) | 32位无符号整数 |
| PrivateKey, PublicKey, Signature | 适用于账户和签名 |
| Group(x, y) | 椭圆曲线 |
| Scalar | 标量字段 |
| CircuitString.from('some string') | 最大长度为 128 的字符串 |
| Poseidon | 哈希函数 |

```
let x = new Field(4); // x = 4
x = x.add(3); // x = 7
x = x.sub(1); // x = 6
x = x.mul(3); // x = 18
x = x.div(2); // x = 9
x = x.square(); // x = 81
x = x.sqrt(); // x = -9

let b = x.equals(8); // b = Bool(false)
b = x.greaterThan(8); // b = Bool(true)
b = b.not().or(b).and(b); // b = Bool(true)
b.toBoolean(); // true

let hash = Poseidon.hash([x]); // takes array of Fields, returns Field

let privKey = PrivateKey.random(); // create a private key
let pubKey = PublicKey.fromPrivateKey(privKey); // derive public key
let msg = [hash];
let sig = Signature.create(privKey, msg); // sign a message
sig.verify(pubKey, msg); // Bool(true)
```

3. o1js 不支持传统的条件语句(If-else),支持三元运算符
```
const x = Circuit.if(new Bool(foo), a, b); // behaves like `foo ? a : b`
```

## 4.Demo
* Case:如何在不泄露原文的情况下证明你知道下面的哈希值的原文? targetHash0 = '7316390958668495944925151659350747554661900395277588947710114819309740684320'
* step 1: 编写零知识电路:
![编写零知识电路](1.编写零知识电路.png)
* step 2: Prover编译电路生成PK & VK,执行电路并传入preImage和targetHash参数,生成证明proof,
![生成证明](2.生成证明.png)
* step 3: 验证者验证proof,
![验证者证明](3.验证者验证证明.png)

* Proof 对象的结构:
```
{
"publicInput": Feild[], // 电路method的公开入参
"publicOutput": Field[], // 电路method的返回值
"maxProofsVerified": Integer, // 电路method中验证的proof的个数,在当前版本最大为2个
"proof": binary type, // proof本身,二进制形式
}
```

* 一个完整的zkProgram的结构:
```
{
"name": string,
"publicInput": AnyType, // 电路method的公开入参, 可选, only one
"publicOutput": AnyType, // 电路method的返回值, 可选, only one
"methods": {
customeMethodName0: {
privateInputs: AnyType[], // 当前method的私有入参,必选,允许是空数组
async method(publicInputType, ...privateInputs){
// ...constraints...
// return, if "publicOutput" is defined.
}
},
customeMethodName1: {
privateInputs: AnyType[], // 当前method的私有入参,必选,允许是空数组
async method(publicInputType, ...privateInputs){
// ...constraints...
// return, if “publicOutput” is defined.
}
}
}
}
```

## 5.学习资源
1. [zkapp-cli 文档](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/install-zkapp-cli)
2. [Demo](https://github.com/coldstar1993/mina-sz)
4 changes: 4 additions & 0 deletions learn/0xHoGan/task2/task2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# task2 :设计一个简单的投票统计器

## 1.设计一个简单的投票统计器用于小团队内部投票,要求能累积统计出赞成票和反对票的票数
* 考虑检查投票者属于团队成员,假设队员不会重复投票
Loading