最近发几篇简略的入门文章,帮忙刚刚进入行业的工程师。
这篇文章将带你学习如何应用智能合约开发语言 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)里看到它:
- 在侧边栏中向下滚动鼠标,找到“已部署合约”(“Deployed Contracts”)。
- 开展“HelloWorld”。
- 点击按钮“sayHelloWorld”。
- 它将返回记录在合约中的信息:“Hello World”。
祝贺,你胜利创立了一个“Hello World”智能合约!
下一步
当初你曾经应用 Solidity 创立了你的“Hello World”智能合约,你还能够做很多其它尝试,比方将合约部署到测试网甚至主网,更改音讯,通过创立状态变量来存储音讯,通过创立函数来更新音讯,或将音讯永恒保留到区块链!
Chainlink 中国开发者社区继续服务开发者,欢送私信退出 Chainlink 开发者社区。