我是如何从在谷歌搜索“什么是Solidity?”到编写智能合约自娱自乐的

作者分享了自己构建智能合约的个人经历,包括选择以太坊和Solidity工具,以及遇到的挑战和解决方案。作者强调了在智能合约开发中安全性的重要性,并分享了如何通过测试和优化来提高合约的安全性和效率。最后,总结了通过实际操作获得的技能和知识,以及对区块链技术在金融系统中应用的理解。

Photo by The Average Tech Guy on Unsplash

一次关于区块链、智能合约的个人冒险,以及为什么保护它们比安排我的周末计划更难。

介绍:意外的区块链爱好者

老实说——当我第一次听说区块链时,我的第一反应是:

“那是不是比特币崩盘时,新闻里一直在说的那玩意儿?”

但好奇心(以及对错失恐惧症的健康剂量)战胜了我。

在深夜沉迷于 YouTube,以及意识到金融的未来正朝着去中心化方向发展之间的某个时刻,我决定:

“我要从头开始构建一个智能合约。像个成年人一样。”

于是,我开始了进入 以太坊Solidity 的奇妙世界的个人旅程,并努力避免意外地创建下一个 DAO 黑客攻击 ;-)

最终,我获得了区块链技术专业的研究生文凭**。

完成文凭后,

我对分布式系统、共识算法和智能合约基础知识有了扎实的理论理解。

但说实话——教科书上的再多图表也无法真正让你为部署你的第一个智能合约的那一刻做好准备……以及不小心因为一个简单的拼写错误而花光你所有的测试以太币。

这个项目是我将理论变为现实的方式。 一次超越纸上谈兵的实践之旅——并真正构建一些可以工作的东西(并在沿途克服一些错误)。

计划:使其真实(但不要冒险)

由于我在银行业工作并且热爱安全系统,我希望我的 POC 不仅能工作——

而且要安全可扩展,并且不会不小心将想象中的数百万美元发送给陌生人

我的个人使命:

构建一个用于简单资产代币化的智能合约——安全地。

奖励任务:

真正了解我在做什么,而不仅仅是从 Stack Overflow 复制粘贴。

我使用的工具(以及大量谷歌搜索)

  • Solidity(以太坊的神奇编程语言)
  • Remix IDE(因为一开始设置本地开发链感觉像是在与 Kraken 战斗)
  • Ganache(用于我的个人假以太坊游乐场)
  • Truffle(在不哭太多的情况下测试智能合约)
  • MetaMask(这个钱包给我的测试以太币比我的真实银行账户还多)

我是如何构建它的(以及我是如何几乎放弃的)

步骤 1:编写智能合约

起初,我的代码看起来像这样(在课程期间):

pragma solidity ^0.8.0;

contract AssetToken {
    string public assetName;
    address public owner;

    constructor(string memory _name) {
        assetName = _name;
        owner = msg.sender;
    }
}

翻译:

我基本上为区块链做了一个 Hello World。

胜利之舞?还没到时候。

步骤 2:保护合约(以防它爆炸)

一旦我编写了更多的函数(转移所有权、查看详细信息等),

我开始阅读关于 重入攻击溢出比我更聪明的黑客的恐怖故事。

我使用 SafeMath 来避免溢出问题。

我添加了像 onlyOwner 这样的 修饰器 到敏感函数。

我像在网络安全期末考试周一样练习 防御性编程

步骤 3:测试、测试……以及更多测试

  • 部署到 Ganache(本地假区块链)。
  • 使用 Truffle 运行单元测试。
  • 发现了一些有趣的错误,例如:

a. “如果他们倒着拼写自己的名字,任何人都可以转移所有权。”

b. “合约认为 0 是一个有效的新所有者。”

故事的寓意:

永远不要相信你的第一次部署。或者你的第二次。

主要挑战(又名谦逊课程)

理解 Gas 优化:

我不小心编写了一个非常昂贵的函数,运行它的成本会超过我的 Netflix 订阅费用。

管理钱包和私钥:

丢失了一个测试钱包。仍然在为它默哀。

部署到真实测试网:

事实证明,测试网是真实的网络,有真实的延迟,以及关于耐心的真实教训。

我最终构建的东西

a. 一个可工作的、相对安全的 资产代币化智能合约

b. 对 区块链安全原则 的更深入理解

c. 强烈希望在接触任何实际环境之前 始终审计你的合约

[User Interface (MetaMask Wallet)]
    ⬇️
Smart Contract (Deployed on Testnet)
    ⬇️
Blockchain Ledger (Ethereum Public Chain)

结论:为什么这次旅程很重要

我不只是构建了一个智能合约——

我构建了一套新的技能:

  • 安全优先的编码思维
  • 区块链架构基础知识
  • 敢于毫不畏惧地投入到复杂的新兴技术中

今天,我可以自信地说,我了解区块链如何融入 现实世界的金融系统 ——将我在区块链技术方面的正规研究生文凭与真实的实践学习相结合,以及小错误如何成为价值百万美元的新闻头条。

最棒的部分是?

这一切都始于一个在深夜作出的学习新东西的随机决定。

  • 原文链接: coinsbench.com/how-i-wen...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
CoinsBench
CoinsBench
https://coinsbench.com/