区块链 - 智能合约入门solidity

目录

一、代码

二、解释

三、实战

1.打开网站

2.编译合约

3.部署合约

4.交互

这是ETH以太坊中智能合约版hello word。

一、代码

javascript 复制代码
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}

二、解释

复制代码
// SPDX-License-Identifier: GPL-3.0

声明本合约使用 GPL-3.0 开源许可证,属于规范写法。

复制代码
pragma solidity >=0.4.16 <0.9.0;

指定编译器版本:使用 0.4.16 到 0.8.XX 的任何 Solidity 编译器都可以编译(不包括 0.9.0)。

复制代码
contract SimpleStorage {

定义一个名为 SimpleStorage 的合约,相当于其他语言里的"类"。

复制代码
    uint storedData;

声明一个状态变量 storedData,类型是 uint(即 uint256,无符号整数,0~2²⁵⁶-1)。

这个变量会被永久存储在区块链上,初始值是 0。

复制代码
    function set(uint x) public {
        storedData = x;
    }

定义一个公开的函数 set,接收一个 uint 类型的参数 x。

调用这个函数时,会把传入的 x 值赋值给状态变量 storedData,从而修改链上存储的数据。

每次调用都需要支付 gas,因为它修改了区块链状态。

复制代码
    function get() public view returns (uint) {
        return storedData;
    }

定义一个公开的只读函数 get,不带参数,返回一个 uint 类型的值。

view 关键字表示这个函数只读取数据,不会修改区块链状态。

它直接返回当前存储在链上的 storedData 值。总结(一句话功能)这个合约实现了区块链上最简单的"可读写变量":

  • 用 set(520) 可以把链上数字改成 520
  • 用 get() 可以读取当前链上存的数字是多少

三、实战

1.打开网站

打开Remix网站,然后如下:

2.编译合约

点击左边的编译按钮。

如果编译成功,会出现一个绿色的勾:

3.部署合约

如图,Environment 选 "Remix VM (Cancun)",点橙色的 【Deploy】 按钮 。

4.交互

部署完后,左侧往下拉,展开 就可以看到如图了。

先输入set右边的数字,然后点击"set";再点击"get",则可以读取对应的数,如图:

参考:链接

相关推荐
Web3_Daisy17 小时前
Token 分红机制详解:实现逻辑、激励结构与风险分析
大数据·人工智能·物联网·web3·区块链
软件工程小施同学20 小时前
区块链论文速读 CCF A--CCS 2025 (1) 附pdf下载
pdf·区块链
程序员cxuan1 天前
token 与比特币
区块链
MicroTech20252 天前
微算法科技(NASDAQ :MLGO)抗量子区块链技术:筑牢量子时代的数字安全防线
科技·算法·区块链
TechubNews2 天前
春寒未散,巨头收帆:Kraken 按停 IPO,蓄力待时
区块链
CryptoPP2 天前
使用API对接BSE交易所数据:完整技术实现指南
区块链
Black_mario3 天前
Plutus:Berachain 上的「Pendle + Convex」?
区块链
Web3VentureView3 天前
倒计时 12 小时,SYNBO 主网即将上线!
大数据·人工智能·金融·web3·区块链
搞IT的锋3 天前
区块链BaaS是什么
区块链
财迅通Ai3 天前
莎普爱思高溢价收购上海勤礼100%股权:转型关键落子与多重风险交织
大数据·人工智能·区块链·莎普爱思