前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hello World with solidity

Hello World with solidity

作者头像
孟斯特
发布2024-05-17 18:49:25
650
发布2024-05-17 18:49:25
举报
文章被收录于专栏:soliditycode人生solidity

1. Solidity 是什么?

Solidity 是一种面向对象的、静态类型的编程语言,专为在以太坊上编写智能合约而创建。由于以太坊上的智能合约可以处理真实世界的资产(比如加密货币),所以Solidity的设计非常关注安全性。

以下是 Solidity 的一些主要特点:

1.类型安全和静态类型:这可以避免在运行时出现很多类型错误。2.支持复杂的用户定义类型,易于实现复杂的逻辑。3.内建的函数,用于在区块链上进行数组和映射的复杂操作。

在Solidity程序中,你可以创建合约,合约可以包含状态变量、函数、函数修饰符、事件、结构类型和枚举类型。更重要的是,合约可以继承和接口,支持库的创建和使用。

Solidity的开发团队一直在不断改进语言,以保证它在区块链环境下表现优秀。尽管 Solidity 专为以太坊设计,但目前也已被其他区块链平台所使用。以下是一些支持 Solidity 的区块链平台:

1.以太坊(Ethereum):明显地, Solidity 是为了以太坊的智能合约开发而设计的,因此以太坊是最主要的支持 Solidity 的区块链平台。2.Binance Smart Chain:这是一个与以太坊兼容的区块链,也支持使用 Solidity 编写智能合约。3.Polygon(Matic):Polygon 是一个多链平台,旨在将以太坊扩展到多条链。 它支持与以太坊兼容的链(例如 Polygon SDK),也支持 Solidity 语言。4.Tron:为了兼容性和开发者友好,Tron 增设了对 Solidity 的支持。5.Avalanche:Avalanche 是一个开源平台,为去中心化应用、新型金融原型和去中心化资产提供阻塞验证。 它的 C-Chain 是与 Ethereum 完全兼容的,并且支持 Solidity 语言。6.Harmony:这是一个以太坊兼容的平台,他们的智能合约也支持 Solidity。

在这些平台上,开发者能够利用 Solidity 编写智能合约进行各种去中心化应用的开发。

2. Solidity 合约结构

Solidity合约的结构包含数字部分组成,以下是比较标准和常见的组成部分:

1.版本声明(Version Pragma):版本声明是Solidity文件中的第一行,用于指定编译器的版本。例如,pragma solidity ^0.8.0; 就是一条指定编译器版本的语句。2.导入其他Solidity文件(Import Statement):你可以通过import命令来导入其他Solidity文件。例如:import "./AnotherContract.sol";。3.合约声明(Contract Declaration):定义合约是通过 contract 关键词进行的,后面跟着合约的名称。例如,contract MyContract {} 就声明了一个名为 MyContract 的合约。

在合约声明里,可以包括以下部分:

状态变量(State Variables):状态变量是存储在区块链上的值。这些变量都是持久性的,意味着它们的值会在合约的各个函数调用间持久存在。•函数(Functions):函数是用于修改合约状态的可执行代码单元。•函数修饰符(Function Modifiers):函数修饰符可以更改函数的行为。例如,publicprivateinternalexternal等。•事件(Events):事件是合约的一部分,它们会在合约函数被调用时触发,将数据添加到区块链的事务日志中。•结构类型(Struct Types):结构是定义新的类型的方式。•枚举类型(Enum Types):枚举是定义新的类型的另一种方式,它们是在一组预定义值中进行选择。

在使用 Solidity 编写合约时,必须遵循以上的结构,这样才能确保合约获得正确的行为和数据安全性。

3. 使用Remix IDE

Remix IDE是一个强大的开源工具,可以帮助你编写Solidity智能合约、进行测试、调试,以及部署到以太坊网络上。

以下是使用Remix IDE编写、测试智能合约的基本步骤:

3.1 打开Remix

访问它的官方网站:https://remix.ethereum.org/,界面如下:

Remix

3.2 编写智能合约

在代码编写窗口中,你可以编写新的Solidity智能合约。 例如,我们来编写一个简单的智能合约:“Hello, world!”:

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

contract HelloWorld {
    function sayHello() public pure returns (string memory) {
        return "Hello, world!";
    }
}

HelloWorld

3.3 编译合约

在左边的导航栏中,选择‘Solidity编译器’,然后点击‘编译’按钮。如果你的代码无误,编译将成功完成,无需采取进一步的操作。如果有任何错误,它们将在"编译"部分底部的输出窗口中进行展示。

compiler

3.4 部署合约

在左侧的导航栏选择‘部署和运行事务’,在下拉菜单选择合适的以太坊环境,然后点击‘部署’按钮来将你的合约部署到这个环境。你的环境可以是JavaScript VM(一个沙箱环境,只在你的浏览器中运行),也可以是任何连接到的以太坊测试网络。

deploy

3.5 测试合约

测试是,你将看到在部署部分下面有一个新的面板,列出了你的合约和它的函数。如果你选择了上述“HelloWorld”合约,你可以看到'sayHello'函数。点击这个函数,应该会在下方的控制台显示"Hello, world!"。

test

以上就是使用Remix IDE编写、编译、部署和测试一个简单的Solidity智能合约的过程。不过值得注意的是,虽然这是一个基本的演示,但在开发更复杂的智能合约时,这个过程可能会变得更加复杂。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[1]进行许可,使用时请注明出处。 Author: mengbin[2] blog: mengbin[3] Github: mengbin92[4] cnblogs: 恋水无意[5] 腾讯云开发者社区:孟斯特[6]

References

[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/ [6] 孟斯特: https://cloud.tencent.com/developer/user/6649301

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孟斯特 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Solidity 是什么?
  • 2. Solidity 合约结构
  • 3. 使用Remix IDE
    • 3.1 打开Remix
      • 3.2 编写智能合约
        • 3.3 编译合约
          • 3.4 部署合约
            • 3.5 测试合约
              • References
              相关产品与服务
              区块链
              云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档