你知道Ethereum、Solidity的智能合约吗?

126 阅读3分钟

阅读时间: 2 分钟

Solidity是一种面向对象的编程语言,用于在各种区块链平台上编写智能合约,最引人注目的是以太坊。

以太坊

以太坊是一个开源的、基于区块链的软件平台。它有自己的加密货币,叫做以太币。它能够创建智能合约和去中心化的应用程序,被称为dapps。此外,以太坊也是一种编程语言,在EVM上执行。

简单地说,以太坊是 "编纂、去中心化、安全和交易几乎任何东西"。

围绕以太坊的一个大项目是微软与ConsenSys的合作。它在微软 Azure上提供了以太坊区块链作为一种服务**(EBaaS**)。因此,企业客户和开发人员可以拥有一个一键式的云端区块链开发环境。

什么是以太坊虚拟机(EVM)?

EVM允许程序员执行一般用高级语言编写的智能合约,如Solidity。此外,我们还有更多的语言,如Vyper和Bamboo。

EVM不能直接执行高级语言的代码。它们需要首先转换为低级语言的操作码。

此外,有140个独特的操作码使EVM成为 "图灵完全"。这意味着EVM能够解决任何计算问题。由于每个操作码的大小为1字节,这意味着最多可以有256个操作码。

智能合约

"智能合约是一种让全球各地的人互相做生意的方式,即使他们不说同一种语言或使用同一种货币。"

米海-阿利西

智能合约是买家和卖家之间的交易直接写在代码行中。而这是通过一个分布式的、去中心化的区块链网络来实现的。导致消除法律或外部执行机制的影响。

例如,它遵循if and then逻辑的概念,即如果x发生,则y发生。

Solidity:编程语言

Solidity是由Gavin Wood, Yoichi Hirai, Christian Reitweissner开发的。最重要的是,它是被Mutan、LLL和Serpent取代的高度使用的面向契约的编程语言之一。

  1. Solidity是一种静态类型的、面向对象的编程语言。

  2. 围绕ECMAScript语法的思想而开发,这使得它更容易被开发者所适应。

  3. 它支持继承,也包括多重继承。此外,它还支持复杂的用户定义类型和更多。因此,它为你提供了开发自动化区块链应用程序的所有功能。

注意:请记住,在部署合同时,请使用最新发布的solidity版本,因为任何新版本都会引入新的更新和错误修复。

// My First Smart Contract 
pragma solidity >=0.5.0 <0.7.0;
contract HelloWorld {
    function get()public pure returns (string memory){
        return 'Hello Contracts';
    }
}

最重要的是,在solidity中,第一条语句总是pragma,声明代码应该使用的编译器的版本。

注意:如果版本早于0.4.0或者编译器从0.5.0开始,源文件将无法编译。

总结

在这篇文章中,我们了解了一个全新的世界计算机世界,以太坊,EVM。此外,我们还介绍了如何用一小段代码在Solidity中编写智能合约。

祝你学习愉快!

参考资料

wp.me/p1D2XH-mu1

consensys.net/knowledge-b…

www.investopedia.com/terms/e/eth…

分享Knol。

相关信息