## Vara Network 开发者入门课程大纲 [draft] ![image](https://hackmd.io/_uploads/rJ9SAdSZR.png) https://academy.gear.foundation/courses/basic_course ## 目标 你将学习的内容: 掌握Vara网络开发的基础知识。 学习在Vara网络上进行测试。 熟悉Gear-JS库进行客户端交互。 使用合约和前端开发实际应用程序。 在Vara网络上部署并与程序进行交互。 --- ## 课程大纲 内容分为六节 第一节:Vara Network 基础知识 1. Vara Network 简介 2. 核心概念 (1.1.2, 1.1.3) 3. 地址格式 & 钱包使用 (1.1.1) 4. 开发环境搭建 5. 使用 Gear IDEA 部署合约 (1.2.3, 1.4.1, 1.4.2) 第二节:合约结构 1. Metadata (1.3.2) 2. 状态变量与入口函数 (1.1.4, 1.2.1, 1.3.1, 2.2.1) 3. 合约间的消息通信 (1.2.2) 第三节:调试与测试 1. debug 合约 2. gtest 单元测试 (1.5.1, 1.5.2, 1.6.1 编程题) 3. gclient 集成测试 第四节:异步逻辑 1. wait 与 wake (2.3.1, 2.3.2, 2.3.3) 2. async/await 语法 第五节:合约自动化 1. Gas 预留 2. 延迟消息 (2.4.1, 2.5.1 编程题) 第六节:Gear JS 前端交互 1. 读取状态 2. 钱包交互 3. 合约调用 ## 知识点与quiz列表 ### [Basic Course] 1.1.1 What is the most important information associated with an account? ![image](https://hackmd.io/_uploads/rkcLXxLE0.png) 1.1.2 What point is not related to the actor model? ![image](https://hackmd.io/_uploads/Sk2x4g8VA.png) 1.1.3 What is the main function of the message queue in Vara protocol? ![image](https://hackmd.io/_uploads/Sy5XVxINA.png) 1.1.4 What point about program state is wrong? ![image](https://hackmd.io/_uploads/Bk9S4gLEC.png) 1.2.1 What entrypoint usually contains the main business logic of the program? ![image](https://hackmd.io/_uploads/rkSoVg8V0.png) 1.2.2 How can a program get incoming message details? ![image](https://hackmd.io/_uploads/H1nA4lI4R.png) 1.2.3 What is the extension of the program’s binary? ![image](https://hackmd.io/_uploads/SktbBx84R.png) 1.3.1 What is the purpose of the “state” entrypoint in a program? ![image](https://hackmd.io/_uploads/rk0wreINA.png) 1.3.2 What is the information kept in Gear program metadata? ![image](https://hackmd.io/_uploads/ByUqrlL4R.png) 1.4.1 What is the right program uploading workflow? ![image](https://hackmd.io/_uploads/B1_0BxU4R.png) 1.4.2 Who can execute the program? ![image](https://hackmd.io/_uploads/rkEVIxLEA.png) 1.5.1 Which statement about testing is true? ![image](https://hackmd.io/_uploads/SkDuUeLV0.png) 1.5.2 What is the main “gtest” purpose? ![image](https://hackmd.io/_uploads/HyYcIxLN0.png) 1.6.1 Programming task: Pebbles game ![image](https://hackmd.io/_uploads/rkYnxVI4R.png) ### [Intermediate Course] 2.2.1 Choose the correct statement ![image](https://hackmd.io/_uploads/SyVQf4UER.png) 2.3.1 Choose the correct statement ![image](https://hackmd.io/_uploads/S1BOQVUVC.png) 2.3.2 Choose the correct statement if a message is sent to the program ![image](https://hackmd.io/_uploads/H1vfIVIVC.png) 2.3.3 Choose the WRONG statement ![image](https://hackmd.io/_uploads/SJXCLVL40.png) 2.4.1 Choose the correct statement ![image](https://hackmd.io/_uploads/SJyVwVI4A.png) 2.5.1 Coding task: wordle game ![image](https://hackmd.io/_uploads/H1onvELEC.png) ### 1. Hello world Vara Network & Gear Protocol 介绍 主要特性 (见 https://whitepaper.gear.foundation) - 基于 WASM 的智能合约 - Actor Model 类微服务架构 - 消息队列 - 支持并行计算 - 延时交易与自动化 - 免 gas 交易 生态集成 交易所 技术特点 签名算法 地址格式 钱包支持 区块浏览器 开发者工具: Gear Idea 开发环境搭建 Hello world ### 2. 合约结构 高级 Hello world 入口函数 - Init - Handle gstd 消息 API 作业: Tamagotchi 电子宠物 ### 3. 状态查询 - State Metadata 单元测试 作业: Escrow 合约 ### 4. 代币标准 - FT - NFT 作业: Tamagotchi 商店 ### 5. 合约自动化 - 延迟执行 - 预留Gas 作业: 拍卖 ### 6 合约交互 Gear.js 的使用 作业: Tamagotchi Battles ## Vara Network 开发者中级课程大纲 [draft] ![image](https://hackmd.io/_uploads/S1LCxtrW0.png) https://academy.gear.foundation/courses/intermediate-course 异步逻辑 代理模式 系统信号 ## 附录: Gear Academy 大纲 https://academy.gear.rs/ 1. **区块链开发简介** - 区块链技术机制概述。 - 智能合约及其重要性简介。 2. **Gear学院入门** - 熟悉Gear的界面和工具。 - 基本的“Hello World!”示例,启动实际学习。 3. **Tamagotchi智能合约基础** - 了解Tamagotchi合约结构。 - 构建基本的Tamagotchi合约。 4. **渐进式Tamagotchi开发** - 通过分步教程提高Tamagotchi的能力。 - 实施独立状态检查和通信功能。 5. **Tamagotchi特征商店合约** - 介绍特征商店合约。 - 为Tamagotchi装备独特的特征,用于战斗。 6. **Tamagotchi战斗准备** - 专门的课程,准备Tamagotchi参与战斗。 - 成功Tamagotchi战斗的策略和功能。 7. **有效的智能合约测试** - 测试智能合约以确保可靠性和安全性的艺术。 - 进行深入的智能合约测试的实际练习。 8. **与客户端的无缝交互** - 了解并实现智能合约与客户端之间的顺畅交互。 - 实际例子强化概念。 9. **探索Gear强大的功能** - 深入探讨Gear的高级功能。 - 重点关注延迟消息、系统信号和系统/燃气预留。 10. **课程结论和回顾** - 总结整个课程学到的关键概念。 - 回顾实际应用和现实场景。 11. **学习成果和下一步** - 讨论实现的学习成果。 - 指导区块链开发的进一步步骤。 12. **问答和互动环节** - 学生提问的开放论坛。 - 互动环节,解决任何问题&疑问。