Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
338 changes: 337 additions & 1 deletion notes/Camino-sec.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,340 @@ EPF 是以太坊基金会的协议层研究奖学金,入选者会参与以太

- 准备 Mini Demo 0
<!-- DAILY_CHECKIN_2026-07-07_END -->
<!-- Content_END -->

<!-- DAILY_CHECKIN_2026-07-06_START -->


**📝 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\. ✅ 修改和判断说明
<!-- DAILY_CHECKIN_2026-07-06_END -->
<!-- Content_END -->