以太坊是一个区块链,任何人都可以轻松自由地编写和执行智能合约并记录执行结果。编写以太坊智能合约时主要使用的语言是Solidity。本文我将介绍这种Solidity。
以太坊和Solidity
以太坊的高度自由度由以太坊网络上称为EVM(以太坊虚拟机)的执行环境来保障。智能合约在此EVM上运行。当EVM连接到网络上的其他EVM时,该EVM在作为执行环境独立的环境中执行,因此可以安全地执行某些代码,而不会严重影响其他EVM或区块链。
在此EVM上,是否以特殊的数字顺序编写了字节码(机器语言)程序?这样的字节码程序对人类是不可读的或无用的。因此,以太坊开发了几种高级语言,专门用于编写易读性和生产性合同,以及多种编译器,将其转换为EVM字节码。典型的语言是“ Solidity”。用于编写此智能合约的编程语言Solidity是图灵完整的,可以编写任何程序。
根据这些特征,Solidity被表示为“面向合同的语言”,这是一种专门描述合同的高级语言。还有一些用于Solidity开发的集成开发环境,包括Mix,Remix(浏览器-solidity)和Visual Studio Code。
实体代码示例
为了使用Solidity,必须安装作为编译器的“ solc”。用solc编译的字节码是使用EVM执行的。
以下是以Solidity编写的简单智能合约“ Hello World”的示例。
1
2
3
4
5
|
contract HelloWorld {
function get() constant returns (string retVal) {
return "Hello World!!";
}
}
|
在HelloWorld示例中,定义了get()函数,其中定义了返回字符串Hello World的过程。上面代码中的协定是在调用get()函数时返回一个固定的字符串“ Hello World !!”。这样,在Solidity中的Contract子句中声明的Contract是基本组件,并且通过描述此Contract子句中的处理来实现智能合约。
通常,Solidity使用以下语法定义合同:
1
2
3
|
contract Contract名 {
//在这里描述使用智能对比度的处理
}
|
Contract相当于Java或Python之类的面向对象语言中的类,持有与类变量等效的内部状态的存储部分,与方法等效的函数,在该部分有效的局部变量等。有
Solidity用例
在以太坊上运行的应用程序称为Dapp(去中心化应用程序)。而且大部分Dapp都是使用Solidity编写的。当然,在过去的引入詹士昌市和Slock.It还采用密实度。
还有OpenZeppelin作为专门用于使用Solidity开发智能合约的框架。OpenZeppelin是一个安全且可重复使用的智能合约开源库。通过使用这些智能合约库,目标是实现安全,可靠和快速的智能合约的开发。
以太坊的存在是最流行的区块链,可以轻松编写智能合约,这触发了Zeppelin开发Solidity工具的过程。还有一个称为Remix的简单开发环境,可以在浏览器上进行开发并用于简单测试。
2017年9月,KDDI研发实验室和Cougar使用区块链技术Enterprise Ethereum开始了智能合约演示实验。在演示实验中,JP Morgan以OSS发行的“ Quorum”被用作Enterprise Ethereum的实现,但是Enterprise Ethereum可以以与Ethereum相同的方式使用Solidity语言。
在过去的几年中,以太坊不仅扩展到开发人员主导的实验应用程序,而且还扩展到需要保密性和稳定性的公司。这种趋势正在加速,企业用户与以太坊初创公司之间进行了讨论,企业以太坊使用以太坊,但针对企业用途进行了优化,例如私有区块链。
智能合同一词正在逐渐普及,``记录和披露所有过去数据执行历史的技术''的影响有可能扩展到支持社会经济的基础设施,例如合同和注册。 。最好理解Solidity语言在智能合约背后起作用。
本文链接地址:https://www.wwsww.cn/ytf/1992.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。