diff --git a/notes/Camino-sec.md b/notes/Camino-sec.md index 329f07c06..d1fd7db6c 100644 --- a/notes/Camino-sec.md +++ b/notes/Camino-sec.md @@ -181,4 +181,340 @@ EPF 是以太坊基金会的协议层研究奖学金,入选者会参与以太 - 准备 Mini Demo 0 - + + + + +**📝 2026年7月6日 | Web3 暑期实习 Day 1 打卡笔记** + +第一个最有成就感的事情:我 开辟新的版图了😁 + +![image.png](https://raw.githubusercontent.com/IntensiveCoLearning/monad-builder-camp/main/assets/Camino-sec/images/2026-07-06-1783351946035-image.png) + + + +**✅ 今日完成的任务** + +**1\. 创建课程专用钱包 + 配置 Monad Testnet** + +\- **钱包工具:** MetaMask +\- **网络配置:** Monad Testnet(Chain ID: 10143) +\- **课程钱包地址:** 0x--(账户4) + +**操作步骤:** +1\. 安装 MetaMask 浏览器插件(已安装,跳过) +2\. 创建新钱包(非主力钱包) +3\. 通过 [chainlist.org](http://chainlist.org) 一键添加 Monad Testnet +4\. 确认网络切换成功 + +\--- + +**2\. 完成第一笔链上交易** + +\- **交易哈希:** `0xe7ce1abef2d6309b3eaeb92adac17edbcc675ad5c562d9bc580ebf56450b76c3` +\- **区块浏览器链接:** [https://testnet.monadvision.com/tx/0xe7ce1abef2d6309b3eaeb92adac17edbcc675ad5c562d9bc580ebf56450b76c3](https://testnet.monadvision.com/tx/0xe7ce1abef2d6309b3eaeb92adac17edbcc675ad5c562d9bc580ebf56450b76c3) +\- **转账金额:** 2 MON(测试币) +\- **交易状态:** ✅ Success +\- **Gas 费用:** 约 0.002 MON + +**交易详情:** + +``` +From(发送方): 0x1cc9b...65563(我的账户4) + ↓ + 2 MON + ↓ +To(接收方): 0x7f1a8...524db(我的账户1) +``` + + + +**关键概念理解:** +\- **Transaction Hash** = 交易的唯一ID,像快递单号 +\- **Gas** = 支付给矿工的手续费,像搬家费 +\- **区块确认数** = 交易被后续区块确认的次数,越多越安全 +\- **即使交易失败,Gas 也不会退还**(矿工确实尝试处理了) + +\--- + +**3\. 线上活动:DevRel 的成长之路** + +**讲座主题:** 从 Builder 到生态连接者 + +**核心收获:** + +**DevRel(Developer Relations)是什么?** + +> 技术项目的"外交官",连接公司与外部开发者社区,关注人与社区。 + + +**生活类比:** + +> DevRel 像餐厅的**品牌大使**——不进厨房做菜,但会去美食节推广餐厅、收集食客反馈、写菜谱教程,让更多人知道并爱上这家餐厅。 + + +**DevRel vs Ops 核心区别:** + +**定位** + +• 维度: 定位 + +• DevRel(开发者关系): 对外开发者社区的桥梁 + +• Ops(运维/运营): 内部系统稳定运行的守护者 + +**工作重心** + +• 维度: 工作重心 + +• DevRel(开发者关系): 开发者体验(DX) + +• Ops(运维/运营): 系统稳定性与交付效率 + +**主要受众** + +• 维度: 主要受众 + +• DevRel(开发者关系): 外部开发者、开源社区 + +• Ops(运维/运营): 内部开发团队、业务系统 + +**DevRel 的日常任务:** +\- ✍️ 编写技术博客、教程和示例代码 +\- 🎤 技术会议演讲(技术布道) +\- 💬 维护开发者社区(Discord、GitHub) +\- 🏁 组织黑客松、Meetup +\- 📖 编写和优化 API 文档 + +**和我选择的 Ops Track 的关系:** +\- DevRel 需要沟通、内容创作、社区运营能力 +\- 这些能力在 Ops 方向同样重要 +\- 了解 DevRel 帮我理解"技术社区"如何运作 + +\--- + +**4\. AI 辅助 Solidity 合约开发** + +**任务:** 用 AI 生成一个最小 Solidity 合约,并完成人工检查 + +**选择方向:** 留言板合约(逻辑最简单,适合零基础) + +**第1步:写 Prompt** + +``` +请帮我写一个最简单的 Solidity 智能合约,功能是链上留言板。 + +要求: +1. 用户可以发送一条留言(存储在链上) +2. 每条留言包含:留言内容、留言者地址、留言时间 +3. 可以查询所有留言 +4. 可以查询某个人的留言 +5. 代码要简洁,适合初学者理解 +6. 添加详细的中文注释 +7. 使用 Solidity 0.8.x 版本 +``` + + + +**第2步:阅读 AI 生成的代码** +\- 合约包含 4 个主要函数 +\- 使用 struct 定义数据结构 +\- 有事件(Event)机制 +\- 代码注释详细,适合学习 + +**第3步:理解合约结构** + +用生活化比喻理解: + +``` +合约 = 一面墙 + 规则 +├── 数据结构(Message)= 便利贴的格式 +├── 状态变量(messages数组)= 墙上的便利贴集合 +├── 事件(NewMessage)= 有人贴了新便利贴时的广播 +└── 函数 = 你可以做的操作 + ├── postMessage() = 贴便利贴 + ├── getMessagesCount() = 数一数有几张 + ├── getMessage() = 看某张便利贴 + └── getUserMessageCount() = 看某人贴了几张 +``` + + + +**第4步:人工检查(6个关键点)** + +**1\. 合约能否编译?** + +• 检查项: 1. 合约能否编译? + +• 我的判断: ✅ 语法正确,没有明显错误 + +**2\. 函数是否符合预期?** + +• 检查项: 2. 函数是否符合预期? + +• 我的判断: ✅ postMessage 和 getMessage 逻辑清晰 + +**3\. 权限问题?** + +• 检查项: 3. 权限问题? + +• 我的判断: ✅ 没有 delete 函数,没人能删除别人的留言 + +**4\. 是否有复杂逻辑?** + +• 检查项: 4. 是否有复杂逻辑? + +• 我的判断: ✅ 代码简洁,适合初学者 + +**5\. 安全风险?** + +• 检查项: 5. 安全风险? + +• 我的判断: ✅ 有 require 检查,没有明显漏洞 + +**6\. 命名是否清晰?** + +• 检查项: 6. 命名是否清晰? + +• 我的判断: ✅ messages、sender、content 都很直观 + +**第5步:记录修改和判断** + +1\. **保留了事件(Event)** +\- AI 建议添加事件,我判断这是好的做法 +\- 事件帮助前端监听新留言 + +2\. **接受了 require 检查** +\- 检查留言不为空,这是合理的业务逻辑 +\- 防止有人发送空留言 + +3\. **没有添加删除功能** +\- AI 没有生成删除函数,我认为这是正确的 +\- 留言板应该是不可篡改的(区块链特性) + +4\. **接受了简单的数据结构** +\- 只有 content、sender、timestamp 三个字段 +\- 对于初学者来说足够简单 + +\--- + +**💡 核心收获** + +**1\. 链上产品 vs 普通互联网产品** + + +> **普通互联网产品:** 数据存公司服务器,平台能改能删,用手机号注册。 +> **链上产品:** 数据存全球节点网络,不可篡改,用钱包地址掌控身份和资产。 + + +**核心区别:** 控制权——互联网是"平台说了算",区块链是"代码和共识说了算"。 + +**2\. 交易的生命周期** + + +``` +发起交易 → 网络验证 → 打包上链 → 永久记录 +``` + + + +每一步都有对应的 Gas 费用,即使失败也不退还。 + +**3\. AI 辅助开发的正确姿势** + +\- AI 生成初稿,人来做最终判断 +\- 需要检查:权限、逻辑、安全、命名 +\- 保留好的设计,拒绝不合理的地方 +\- **重点不是让 AI 替你做,而是用 AI 辅助你理解** + +**4\. DevRel 与 Ops 的关系** + +\- DevRel 需要沟通、内容创作、社区运营能力 +\- Ops 需要系统、自动化、稳定性保障能力 +\- 两者有交集:平台工程(Platform Engineering)用 DevRel 思维对待内部开发者 + +\--- + +**🔗 链上交易理解** + +**这笔交易发生了什么:** + +**From** + +• 字段: From +• 值: 0x1cc9...65563 +• 含义: 发送方(我的账户4) + +**To** + +• 字段: To +• 值: 0x7f1a...524db +• 含义: 接收方(我的账户1) + +**Value** + +• 字段: Value +• 值: 2 MON +• 含义: 转账金额 + +**Gas** + +• 字段: Gas +• 值: 0.002 MON +• 含义: 手续费(付给矿工) + +**Status** + +• 字段: Status +• 值: Success +• 含义: 交易成功 + +**Block** + +• 字段: Block +• 值: #42746392 +• 含义: 打包在第42746392个区块 + +**Confirmations** + +• 字段: Confirmations +• 值: 137 +• 含义: 已有137个区块确认,不可逆 + +\--- + +**📅 明天计划** + +\- \[ \] 部署第一个 Monad 合约 +\- \[ \] 理解为什么 Monad 体验不同 +\- \[ \] 整理 Build Log +\- \[ \] 确认选择 Ops Track +\- \[ \] 完成每日打卡(40分) + +\--- + +**🏷️ 今日状态** + +\- **学习时长:** 约 4 小时 +\- **难度感受:** ⭐⭐⭐☆☆(中等) +\- **掌握程度:** ⭐⭐⭐⭐☆(基本理解,已能独立操作) +\- **明日信心:** ⭐⭐⭐⭐☆(有信心继续) + +\--- + +**✨ 一句话总结** + +> **今天从"Web3 是什么"到"完成链上交易",再到"用 AI 写智能合约",又迈出了进入链上世界的一步。理解了 DevRel 和 Ops 的区别,确认了自己选择 Ops Track 的方向。虽然还有很多不懂,但已经知道该往哪个方向努力了。** + +**📸 提交材料清单** + +1\. ✅ 钱包地址 +2\. ✅ Transaction Hash +3\. ✅ 区块浏览器链接/截图 +4\. ✅ 交易说明(100字) +5\. ✅ Solidity 合约 Prompt +6\. ✅ AI 生成的合约代码 +7\. ✅ 人工检查记录(6项) +8\. ✅ 修改和判断说明 + + \ No newline at end of file