跳到主要内容

1. 什么是 Solidity?

Solidity 是一种面向智能合约的高级编程语言,专为以太坊虚拟机(EVM)设计。它支持静态类型、继承、库等特性,是开发去中心化应用(DApp)的核心工具。


2. 合约结构解析

一个最简单的 Solidity 合约包含以下核心部分:

// SPDX-License-Identifier: MIT  // 许可证声明(必填)
pragma solidity ^0.8.20; // 编译器版本声明

contract HelloWorld { // 合约定义
string public greeting = "Hello, World!"; // 状态变量
}

代码解释:

  • SPDX-License-Identifier 声明合约的开源许可证(如 MIT),避免法律风险。
  • pragma solidity 指定编译器版本(如 ^0.8.20 表示兼容 0.8.20 及以上版本)。
  • contract 关键字 定义一个智能合约,类似于面向对象编程中的“类”。 ​状态变量 greeting 存储合约数据的全局变量,public 修饰符会自动生成一个同名 getter 函数

3. 使用 Foundry 编译与部署

步骤 1:安装 Foundry

curl -L https://foundry.paradigm.xyz | bash  # 安装 foundryup
foundryup # 安装最新版 Foundry

步骤 2:初始化项目

forge init hello_world   # 创建项目目录
cd hello_world # 进入项目

项目结构如下:

hello_world/
├── src/
│ └── HelloWorld.sol # 合约文件
├── script/
├── test/
├── foundry.toml
├── .gitignore
├── .git/
└── README.md

步骤 3:编写合约

将上述 HelloWorld 代码保存至 src/HelloWorld.sol

步骤 4:编译合约

forge build  # 编译合约,生成 ABI 和字节码

步骤 5:部署到本地测试链

forge create --rpc-url http://localhost:8545 \
--private-key <你的私钥> src/HelloWorld.sol:HelloWorld

4. 核心概念总结(附示意图)

关键点:

  • ​数据类型:包括布尔值(bool)、整数(uint/int)、地址(address)、字符串(string)等。
  • ​可见性修饰符
    • public: 允许外部和内部调用
    • private: 仅限合约内部访问

5. 扩展练习

尝试修改 greeting 变量并重新部署,观察链上数据的变化。例如:

string public greeting = "Welcome to Web3!";