好久不见.
那只恐龙有点忙于完成一个关于 .NET Windows Forms 的模块。说实话,这不是我最喜欢的技术栈——我更热衷于 Web 开发——但它确实是工作的一部分.
既然那些任务都完成了,我总算可以回到我最喜欢的项目,以及那种公开学习的氛围.
简介
尝试进入Web3的第八天证明是一次绝佳的体验.
这并不像是又一个"添加功能然后继续前进"的步骤。它更像是一个系统开始真正像系统一样运作的转折点.
从阅读到写作
从区块链读取数据几乎就像调用一个常规API。你请求数据,你获取数据,你渲染它。
写作引入了完全不同的流程.
现在涉及钱包了。用户必须确认操作。交易被发送到网络,包含在一个区块中,然后才在UI中反映出来——而你不再控制那个时间线了。
那时很明显,为Web3构建UI不仅仅是显示数据。它关乎处理不确定性、延迟,以及存在于你的应用程序之外的状态。
奇特的运行环境现实
看来我可能需要一台更现代的笔记本电脑——我的MacBook因为Turbopack几乎要崩溃了。我最初使用它,但它消耗的资源远超预期。
没什么要紧的 — 我又切换回老好的 webpack.
但如果你在老旧机器上工作,这绝对是需要注意的事情.
构建UI的现实
UI不再只是响应式的 — 它变得依赖于外部事件:
- 用户确认交易(或不确认)
- 网络处理它
- 区块被挖出
- 状态变为可用 然后你的 UI 才能反映实际发生的情况.
这引入了一种不同的思维方式。你不仅仅是在更新状态 — 你是在等待系统收敛.
真正重要的事情
有一个时刻,交易显然已经完成 — MetaMask 确认了 — 但 UI 仍然显示 "还没有目标。"
合约状态已更改,但前端没有触发重新获取。从UI的角度来看,什么都没发生。
然后还有更严重的一个问题。
某个时候我意识到我在向错误的合约地址发送交易。
一切看起来都正确。MetaMask确认了交易。没有错误。没有警告。
而这就是问题的所在。
在 Web3 中,如果你将交易发送到了错误的地址——它并不会以一种有益的方式失败。它只是… 成功地发送到了其他地方.
没有后端验证,也没有“错误目的地”的错误提示。交易会继续进行,从系统的角度来看——一切看起来都很好.
但你的资金已经没了。
在我这只是一个测试交易——没什么重要的——但它是一个非常明确的提醒:仔细检查地址。每次都要。
瞬间
然后一切都凑齐了。
第一个目标创建。第一笔捐款发送。DreamPower增加。
余额改变。进度更新。状态反映在UI上。
端到端:
MetaMask → 智能合约 → Sepolia → 前端
到那时,它不再感觉像是由各个独立部分组成的,而是开始感觉像是一个真正的系统.
点击了什么
对我来说最大的转变是理解在这个设置中,区块链不仅仅是一项服务.
它是后端。
没有API层来翻译请求。前端直接与合约通信,这移除了我在.NET系统中习惯的一种抽象层.
这也意味着像延迟、一致性和状态管理这些东西的表现会有所不同——你必须考虑到这一点来设计.
一个更多的问题
在某个时刻我也开始思考限制。
这个能支持多少用户?一份合同能实际存储多少目标?
技术上——很多。实际上——每次写入都会消耗gas,大读取最终会达到限制。这不是目前需要考虑的问题,但肯定会成为后期需要考虑的问题.
阶段:恐龙 🦕 — 第一次完整交互。不只是读取。不只是UI。一个能读取、写入并做出反应的系统.
仓库: github.com/alena-dev-soft/wish-list-chain
在Telegram上关注旅程: t.me/dotnetToWeb3





















