乐趣区

关于区块链:如何用-Solidity-创建一个Hello-World智能合约

最近发几篇简略的入门文章,帮忙刚刚进入行业的工程师。

这篇文章将带你学习如何应用智能合约开发语言 Solidity 创立一个名为“Hello World”的智能合约。这篇文章不须要先验常识,初学者也很容易上手,跟着上面的步骤操作也能够轻松地的创立你的第一个智能合约。

什么是智能合约

智能合约是在区块链环境中公布和运行的计算机程序。因为它运行在区块链上,所以其运行不须要中心化的组织或服务器。

因为区块链的不变性,智能合约一旦被公布,就无奈对其更新或批改。但智能合约中可能编写有具备更改数据性能的函数。信息能够在一个块中记录并在另一个块中删除,其历史记录会被保留并能够对其审核。

Solidity 编程语言

Solidity 是用于实现智能合约的一种面向对象的高级编程语言。它是一种 [花括号] 编程语言,即应用字符“{”和“}”定义语句块。

Solidity 被设计运行在以太坊虚拟机 (EVM) 上,语法上受 C++、Python 和 JavaScript 的影响。它是一种动态型语言,且反对继承、库和简单的用户定义类型等。

Remix

Remix 一款基于浏览器的 IDE(集成开发环境),它可用于在线编写、编译、部署和调试 Solidity 代码。Remix 中有一个在浏览器中运行的区块链模拟器,称为 JavaScriptVM 的环境。接下来咱们就会应用到它。

创立智能合约

点击左侧流动栏第一个按钮:“文件浏览器”(File Explorers)(译者注:因为界面会不断更新,图标程序可能会变动,点击流动栏按钮会关上对应性能的侧边栏)

点击“创立新文件”(Create New File)按钮(译者注:在关上的侧边栏中,下同)。

将文件命名为:HelloWord.sol。

Solidity 文件的扩大名为“.sol”。

复制并粘贴上面的示例代码:


// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
contract HelloWorld {function sayHelloWorld() public pure returns (string memory) {return "Hello World";}
}

当初咱们看下智能合约中都是有什么内容。

// SPDX-License-Identifier

“//”示意这行是正文,而不是代码。

SPDX 许可证列表标准是收费和凋谢或合作软件中应用的通用许可证列表。

自 Solidity 0.6.8 引入了 SPDX 许可证标识符,便于开发人员指定智能合约应用的许可证。

SPDX 许可证标识符应增加到合约代码的顶部,并应用“//”标识。

pragma

pragma 用于指定 Solidity 版本,应用语义化版本控制。Solidity 官网有进一步介绍。

pragma solidity 0.8.13;

HelloWorld 合约

这句代码定义了一个名为“HelloWorld”的合约。

合约是函数和数据(其状态)的汇合。

一旦部署,合约将存在于以太坊区块链的某个地址上,以太坊官网有进一步介绍。

sayHelloWorld 函数

这里定义了一个私有函数,该函数的性能是返回字符串“Hello World”。函数申明中的关键字 pure示意该函数不读取或不批改区块链状态。

编译智能合约

在 Remix 流动栏中找到“Solidity 编译器”(Solidity compiler)按钮并点击。

点击“Compile HelloWorld.sol”按钮。

也能够勾选启用主动编译(auto-compile)选项。

查看编译按钮上是否呈现绿色标识,若呈现绿色标识,鼠标放在按钮上会有编译胜利提示信息。

部署智能合约

在流动栏中,点击“部署和运行事务”(Deploy and run transactions)按钮。

因为咱们当初只创立了一个智能合约,侧边栏里“CONTRACT”(合约) 下拉菜单会主动抉择该合约。

单击“部署”按钮。

与智能合约交互

当在 Remix 中部署完智能合约后,咱们能够在流动栏的“部署和运行交易”(Deploy and run transactions)里看到它:

  1. 在侧边栏中向下滚动鼠标,找到“已部署合约”(“Deployed Contracts”)。
  2. 开展“HelloWorld”。
  3. 点击按钮“sayHelloWorld”。
  4. 它将返回记录在合约中的信息:“Hello World”。

祝贺,你胜利创立了一个“Hello World”智能合约!

下一步

当初你曾经应用 Solidity 创立了你的“Hello World”智能合约,你还能够做很多其它尝试,比方将合约部署到测试网甚至主网,更改音讯,通过创立状态变量来存储音讯,通过创立函数来更新音讯,或将音讯永恒保留到区块链!

Chainlink 中国开发者社区继续服务开发者,欢送私信退出 Chainlink 开发者社区。

退出移动版