在编程学习的起点,“Hello, World!”是每个程序员必写的第一个程序——它简单、直观,却能让我们快速理解代码如何与系统交互,并收获“成功运行”的正向反馈,对于区块链开发来说,以太坊上的“Hello, World”同样意义非凡:它不仅是智能合约的“入门仪式”,更是连接传统编程与去中心化世界的桥梁,通过部署一个能存储和返回“Hello, World!”字符串的智能合约,我们可以直观地理解以太坊的核心概念——智能合约、区块链交互、Gas机制,以及如何从“代码”到“链上部署”的全流程。
以太坊的“Hello, World”本质是一个智能合约——一段部署在区块链上、自动执行的代码,它定义了规则和逻辑,并能被网络中的节点调用,与传统程序不同,智能合约的代码和数据存储在以太坊的分布式账本上,不可篡改,且由整个网络共同维护。
我们选择Solidity语言编写合约,因为它是以太坊最主流的智能合约开发语言,语法类似JavaScript,上手门槛较低,一个简单的“Hello, World”合约通常包含两个核心功能:

在写代码前,我们需要搭建开发环境:

打开Remix IDE,新建一个文件(如HelloWorld.sol),输入以下代码:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
// 定义状态变量,存储字符串
string public greeting = "Hello, World!";
// 函数:修改greeting的值(可选)
function setGreeting(string memory _newGreeting) public {
greeting = _newGreeting;
}
// 函数:获取当前的greeting值
function getGreeting() public view returns (string memory) {
return greeting;
}
}
SPDX-License-Identifier: MIT:开源协议标识,符合以太坊规范。 pragma solidity ^0.8.0;:指定Solidity编译器版本(^0.8.0表示0.8.0及以上,但低于0.9.0)。 contract HelloWorld { ... }:定义名为HelloWorld的合约。 string public greeting = "Hello, World!";:声明一个状态变量greeting,类型为string(字符串),初始值为"Hello, World!",public关键字会自动生成一个getGreeting()函数,无需手动编写。 function setGreeting(string memory _newGreeting) public { ... }:修改greeting的函数,memory表示参数存储在内存中(临时变量),public表示任何账户均可调用。 function getGreeting() public view returns (string memory) { ... }:获取greeting的函数,view表示只读(不修改链上状态),returns (string memory)返回字符串类型。 在Remix IDE左侧“Solidity编译器”选项卡中,选择8.20(或其他兼容版本),点击“编译HelloWorld.sol”,若无报错,右侧会出现一个绿色的√图标,表示编译成功。
HelloWorld合约地址,并自动生成getGreeting和setGreeting按钮。 getGreeting按钮,控制台会返回"Hello, World!"——这是调用view函数,无需Gas,仅读取链上数据。 "Hello, Ethereum!",点击setGreeting,MetaMask确认交易(测试网络中Gas免费),再次调用getGreeting,返回值已更新为"Hello, Ethereum!"——这是修改链上状态,需要消耗Gas(由交易发起者支付)。 通过“Hello, World”的部署与交互,我们可以初步理解以太坊的底层逻辑:
这个简单的合约虽然功能基础,但它涵盖了智能合约开发的核心流程:编写代码→编译→部署→交互,对于初学者而言,下一步可以尝试:
uint public count); 正如“Hello, World”开启了传统编程的大门,以太坊上的“Hello, World”也为你打开了去中心化世界的大门——代码即法律,数据即共识,每一个简单的交互都在参与构建下一代互联网。