
如何用Solidity创建一个“Hello World”智能合约
成为专业智能合约开发人员的旅程从迈出第一步开始。
这篇文章将带你学习如何使用智能合约开发语言 Solidity 创建一个名为“Hello World”的智能合约。这篇文章不需要先验知识,初学者也很容易上手。即使你不是开发人员,跟着下面的步骤操作也可以轻松地创建你的第一个智能合约。
什么是智能合约
智能合约(https://chain.link/education/smart-contracts)是在区块链环境中发布和运行的计算机程序。由于它运行在区块链上,所以其运行不需要中心化的组织或服务器。
由于区块链的不变性,智能合约一旦被发布,就无法对其更新或修改。但智能合约中可能编写有具有更改数据功能的函数。信息可以在一个块中记录并在另一个块中删除,其历史记录会被保存并可以对其审核。
Solidity 编程语言
Solidity(https://docs.soliditylang.org/) 是用于实现智能合约的一种面向对象的高级编程语言。它是一种花括号(https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages)语言,即使用字符“{”和“}”定义语句块。
Solidity被设计运行在以太坊虚拟机 (EVM) 上,语法上受 C++、Python 和 JavaScript 的影响。它是一种静态型语言,且支持继承、库和复杂的用户定义类型等。
Remix
Remix 一款基于浏览器的IDE(集成开发环境),它可用于在线编写、编译、部署和调试 Solidity 代码。Remix中有一个在浏览器中运行的区块链模拟器,称为JavaScriptVM 的环境。接下来我们就会使用到它,点击这里:remix.ethereum.org(https://remix.ethereum.org/) 开始。
创建智能合约
点击左侧活动栏第一个按钮:“文件浏览器”(File Explorers)(译者注:由于界面会不时更新,图标顺序可能会变化,点击活动栏按钮会打开对应功能的侧边栏)
点击“创建新文件”(Create New File)按钮(译者注:在打开的侧边栏中,下同)。
将文件命名为:HelloWord.sol。
Solidity 文件的扩展名为“.sol”。
复制并粘贴下面的示例代码:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
contract HelloWorld {
function sayHelloWorld() public pure returns (string memory) {
return "Hello World";
}
}
现在我们看下智能合约中都是有什么内容。
// SPDX-License-Identifier
“//”表示这行是注释,而不是代码。
SPDX 许可证(https://spdx.org/licenses/)列表规范是免费和开放或协作软件中使用的通用许可证列表。
自Solidity 0.6.8 引入了 SPDX 许可证标识符,便于开发人员指定智能合约使用的许可证。
SPDX 许可证标识符应添加到合约代码的顶部,并使用“//”标识。
// SPDX-License-Identifier: MIT
pragma
pragma用于指定 Solidity 版本,使用语义化版本控制。这里(https://docs.soliditylang.org/en/v0.8.13/layout-of-source-files.html)有进一步介绍。
pragma solidity 0.8.13;
Contract HelloWorld
这句代码定义了一个名为“HelloWorld”的合约。
合约是函数和数据(其状态)的集合。
一旦部署,合约将存在于以太坊区块链的某个地址上,这里(https://solidity.readthedocs.io/en/v0.8.13/structure-of-a-contract.html)有进一步介绍。
Function `sayHelloWorld`
这里定义了一个公有函数,该函数的功能是返回字符串“Hello World”。函数声明中的关键字 `pure`表示该函数不读取或不修改区块链状态。
编译智能合约
在Remix活动栏中找到“Solidity 编译器”(Solidity compiler)按钮并点击。
点击“Compile HelloWorld.sol”按钮。
也可以勾选启用自动编译(auto-compile)选项。
检查编译按钮上是否出现绿色标识,若出现绿色标识,鼠标放在按钮上会有编译成功提示信息。
部署智能合约
在活动栏中,点击“部署和运行事务”(Deploy and run transactions)按钮。
因为我们现在只创建了一个智能合约,侧边栏里 “CONTRACT”(合约) 下拉菜单会自动选择该合约。
单击“部署”按钮。
与智能合约交互
当在 Remix 中部署完智能合约后,我们可以在活动栏的 “部署和运行交易”(Deploy and run transactions)里看到它:
1. 在侧边栏中向下滚动鼠标,找到“已部署合约”( “Deployed Contracts”)。
3. 展开“HelloWorld”。
4. 点击按钮“sayHelloWorld”。
5. 它将返回记录在合约中的信息:“Hello World”。
恭喜,你成功创建了一个“Hello World”智能合约!
下一步
现在你已经使用 Solidity 创建了你的“Hello World”智能合约,你还可以做很多其它尝试,比如将合约部署到测试网甚至主网,更改消息,通过创建状态变量来存储消息,通过创建函数来更新消息,或将消息永久保存到区块链!
比推快讯
更多 >>- 恶性通胀下,币安 USDT 成委内瑞拉的事实货币
- 德国政府比特币“卖飞”损失升至 34 亿美元
- Strategy 比特币持仓浮盈超 315 亿美元
- OWAA 成为 2025 新加坡 Veloza 科创产业博览会总冠名合作伙伴
- 加密市场总市值单日暴涨超 1,000 亿美元
- 麻吉3 倍杠杆做多 ASTER,开仓均价 2.06 美元
- Binance Alpha 新一期 CYPR 空投单号收益约 50 美元
- 某鲸鱼做多 BTC 与 PUMP 浮盈近 1500 万美元
- UXLINK 发布社区投票提案详情:提前解锁代币比例拟定 8%-12%,投资者代币不提前解锁
- 数据:期权市场显示比特币下阶段关键价格水平或在 135,000 美元和 140,000 美元
- 数据:过去 1 小时 Trend Research 再次转移 13,765 枚 ETH 至 Binance
- 杜均:基金持有 CRV 流通盘的 7%和 PENDLE 流通盘的 1%
- 数据:过去 7 天超 6.5 万枚 BTC 流入 CEX 平台
- 10x Research,比特币交易所余额降至六年来低点
- 数据:Abracadabra 疑似再次遭遇攻击,损失约 177 万美元
- 分析,机构的大举买入会将比特币推入价格发现阶段
- 10 月 Trend Researh 已累计转移 72481 枚 ETH 至 Binance,价值 3.19 亿美元
- X-Layer 首个协议Xynergy获得首轮 200 万美元融资,将在本月 8 日于 PotatoSwap 上线开启交易
- 某持续做空 BTC 的鲸鱼地址浮亏扩大至 2808 万美元,再次补充 400 万 U 保证金
- Binance:至少拥有 200 分的用户可申领 400 枚 CYPR 代币空投
- 比特币上涨最高触及 125,708 美元,再创历史新高
- 数据:当前加密恐慌贪婪指数为 75,处于贪婪状态
- 币安将调整投资组合保证金及永续合约杠杆
- 受 ETF 资金流入和政府关门推动,渣打银行重申比特币年底目标价 20 万美元
- Trend Research 在 20 分钟前减持 9547 枚 ETH,价值 4347 万美元
- 若比特币突破历史高点,主流 CEX 累计空单清算强度将达 8115 万
- DeAgentAI (AIA) 合约交易量升至全球第四,价格再创 3.76 美元历史新高
- Bitdeer 比特币总持仓量突破 2000 枚,本周挖矿产出 109.7 枚 BTC
- Vitalik 发表算法优化研究文章
- 观点:以太坊在 4555 美元上方几乎没有可见阻力
- RootData:ATH 将于一周后解锁价值约 6763 万美元的代币
- 某以太坊 OG 3 小时前向 Kraken 存入 4500 枚 ETH
- 交易员 Eugene:比特币新高将为市场打开新天花板
- Bitwise 高管:Solana 将成为华尔街首选的稳定币网络
- 数据:Hyperliquid 平台鲸鱼当前持仓 105.17 亿美元,多空持仓比为 0.86
- 数据:过去 24 小时全网爆仓 1.72 亿美元,多单爆仓 1.18 亿美元,空单爆仓 5,464.85 万美元
- NFT 策略代币持续普涨,PunkStrategy 再创历史新高
- 0G Labs 官推被盗,用户需谨防钓鱼链接
- Solana 生态 CS2 皮肤市场 Dupe 已上线公开测试版本
- Stripe CEO:稳定币将迫使银行向用户提供更具竞争力的利率
- 加密意图引擎协议 Enso 开放空投查询和预注册页面
- 因第三方客服遭遇网络攻击,Discord 出现用户数据泄露
- 数据:过去 30 天代币化股票月交易量达到 4.65 亿美元,环比上涨 136%
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0047%
- 某鲸鱼通过新建地址囤积价值 289 万美元 HYPE
- 纳斯达克已向 SEC 提交申请,将贝莱德的比特币溢价收入 ETF 上市
- MetaMask 回应空投积分系统讨论:长期 MetaMask 用户不会被忽视,完整细节几周内公布
- 隐私协议 Voidify 宣布与 Tornado Cash 建立官方合作关系
- 美联储 10 月降息 25 个基点的概率降至 96.2%
- 麻吉加仓 20 万枚 XPL 多单,单币浮亏超 1100 万美元
比推专栏
更多 >>观点
比推热门文章
- 德国政府比特币“卖飞”损失升至 34 亿美元
- Strategy 比特币持仓浮盈超 315 亿美元
- OWAA 成为 2025 新加坡 Veloza 科创产业博览会总冠名合作伙伴
- 加密市场总市值单日暴涨超 1,000 亿美元
- 麻吉3 倍杠杆做多 ASTER,开仓均价 2.06 美元
- Binance Alpha 新一期 CYPR 空投单号收益约 50 美元
- 某鲸鱼做多 BTC 与 PUMP 浮盈近 1500 万美元
- UXLINK 发布社区投票提案详情:提前解锁代币比例拟定 8%-12%,投资者代币不提前解锁
- 数据:期权市场显示比特币下阶段关键价格水平或在 135,000 美元和 140,000 美元
- 数据:过去 1 小时 Trend Research 再次转移 13,765 枚 ETH 至 Binance