区块链 - 智能合约入门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",则可以读取对应的数,如图:

参考:链接

相关推荐
upper20204 小时前
【炒股学习】集合竞价
学习·区块链
fuzamei88812 小时前
Chain33 Orderbook:去中心化订单簿的创新架构与实现
架构·去中心化·区块链
Biteagle16 小时前
P2MS:比特币的多重签名机制与比特鹰的技术解析
区块链·智能合约
hopsky17 小时前
区块链中数据的完整处理流程
区块链
Biteagle1 天前
P2TR :比特币的「终极脚本方案」与比特鹰的技术解析
区块链
大千AI助手1 天前
程序合约:形式化验证中的规范与实现框架
分布式·区块链·软件开发·形式化验证·大千ai助手·程序合约·contracts
旺仔Sec2 天前
2025年安徽省职业院校技能大赛(高职组)区块链技术应用赛项样题任务书
区块链·智能合约
旺仔Sec2 天前
2025年安徽省职业院校技能大赛(中职组)区块链技术应用与维护赛项样题
区块链·智能合约
飞凌嵌入式2 天前
AIoT出海背景下,嵌入式主控的国际认证之路与价值思考
大数据·人工智能·嵌入式硬件·区块链·嵌入式
币小路2 天前
WOG如何重塑可信数字金融新范式
区块链