主页 > imtoken > 区块链:为以太坊智能合约开发做准备

区块链:为以太坊智能合约开发做准备

imtoken 2023-03-30 06:13:42

智能合约开发准备

编辑的选择

理论上,任何编辑器都可以编写Solidity合约代码,例如:WebStorm、VSCode、Sublime等。

我们选择 Atom,它轻巧漂亮的界面

Atmo->首选项->安装

这里写图片描述

中国以太坊币官网下载_以太坊官网上_以太坊官网

什么是以太坊?

以太坊官网

以太坊是一个运行智能合约的去中心化平台:应用程序完全按照编程运行,没有任何停机、审查、欺诈或第三方干扰的可能性。 这是官网上的文字说明。 以太坊是近几年才发展起来的一种新的底层区块链技术。 以太币(Ether)是在以太坊公链上产生的一种加密货币。 除了像比特币一样可以交易之外,它还有实际用途。

在以太坊上开发的 DApp

以太坊官网上_中国以太坊币官网下载_以太坊官网

以太坊在每个运行节点上运行一个以太坊虚拟机(Ethereum Virtual Machlne,EVM),可以用来执行一个完整的程序。 这些程序在以太坊中称为智能合约。 除了数据处理之外,智能合约还内置了转账功能,可以方便地通过智能合约进行加密货币交易。

以太坊还开发了web3.js,让开发者可以使用web技术编写智能合约的操作界面。 这样的网页操作界面也称为分布式应用程序(DAPP)。 要使用 DAPP,必须在支持 DAPP 的浏览器中使用(例如:Mist 或 Party 或 MetaMask)。

我们可以把以太坊理解为App Store,基于以太坊开发的DAPP发布在以太坊上。 相对于比特币的单一性,我们也称之为以太坊区块链2.0

使用智能合约技术提供的服务也构成了以太坊生态系统的一部分。 例如,以太坊名称服务(ENS)为用户提供了一种更容易找到转账对象、智能合约和 DAPP 的方法。

中国以太坊币官网下载_以太坊官网上_以太坊官网

这里写图片描述

以太的实际用途

一般在电脑上执行的代码,写的时候可能会循环执行,搬到区块链上也是一样。 所以为了解决这个问题,以太坊让执行的代码有价值。 EVM 支持的所有指令(OPCODE)都有明确标价,智能合约的执行需要消耗与执行指令数等值的以太币。 在智能合约术语中,这些用于消耗的以太币被称为gas(燃料)。 在向区块链部署合约时,需要附加一定数量的燃料。 当gas用完,程序还没有执行完以太坊官网上,就会出现out of Gas错误。 智能合约使用这种方法来避免死循环等情况。

以太坊的缺点

中国以太坊币官网下载_以太坊官网_以太坊官网上

目前以太坊区块链的速度无法与计算机的执行速度相提并论,不适合快速交易或需要存储大数据的情况。

什么是智能合约(Smart Contract)

运行在区块链上的程序通常被称为智能合约(Smart Contract)。 因此,编写区块链程序通常更名为编写智能合约。 虽然比特币上也可以写智能合约,但是比特币支持的语法只和交易有关,能做的事情比较有限。 因此,说到编写智能合约,通常指的是支持执行图灵完备程序的以太坊(Ethereum)区块链。

智能合约与普通程序的区别

以太坊官网上_中国以太坊币官网下载_以太坊官网

如何编写智能合约?

以太坊上的智能合约需要用 solidity 语言编写。 之前还有其他语言可以用来写智能合约,比如Serpent(像Python),LLL(像Fortran),但是目前所有公开的智能合约都是用solidity写的。 官方宣传说solidity是一种类似JavaScript的语言,使用NPM提供围绕JavaScript的各种开发工具链,属于Javascript生态。

将智能合约部署到区块链的过程

编写好solidity代码(.sol)后,需要将程序代码编译(compile)成EVM(Ethereum Virtual Machine)可以理解的二进制Contract ByteCode,然后再部署到以太坊区块链上执行。 部署在区块链上的合约都会有一个合约地址(Contract Address),其格式与钱包地址(address)相同。

这里写图片描述

智能合约可以在部署后自动执行。 后续调用智能合约时,用户可以使用部署合约的钱包地址(owner account)以太坊官网上,也可以根据书面智能合约的条件,允许其他钱包地址调用智能合约。 调用智能合约其实就是向这个合约地址发起交易,但交易的不仅仅是代币,而是智能合约提供的调用方式。

这里写图片描述