以太坊作为区块链的先驱,创建了此平台提供给广大的学习者,因此此篇blog简单介绍以太坊应如何使用。

以太坊是什么

以太坊(Ethereum)是一个建立在区块链技术之上,去中心化应用平台。允许任何在此平台上开发区块链应用。在没有以太坊前,区块链的应用通过copy比特币的源码,修改底层加密算法,共识机制,网络协议等开发,以太坊通过对区块链底层的技术封装,让区块链的应用开发者可以直接在以太坊平台上开发应用。降低开发去中心化应用的成本和难度。

智能合约

以太坊的程序称为智能合约,它是代码和数据(状态)的集合,智能合约可以理解为区块链上可以自动执行的(由消息驱动的),以代码形式编写的合同(特殊的交易)。简单讲,就是把法律条文写成可执行的代码。智能合约非常适合信任、安全、持久性要求较高的应用场景,比如:数字货币,数字资产,投票,保险,金融应用,预测市场,产权所有权管理,物联网,对点交易等。

Solidity编程语言

智能合约的官方推荐的编程语言是Solidity,文件扩展名为.sol结尾 solidity语言和javaScript很像,用它开发合约并编译成以太坊虚拟机字节代码。Browser-Solidity是浏览器Solidity IDE。

EVM运行环境

EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。EVM运行在以太坊节点上,当我们把合约部署到以太坊网络上后,合约就可以在以太坊网络中运行了。

合约的部署

在以太坊开发应用时,常常要使用到以太坊客户端(钱包),平时开发中,不需要接触钱包。

以太坊客户端(钱包)

以太坊客户端,作为一个开发者工具,它提供账户管理,挖矿,转账,智能合约的部署和执行等功能。

EVM由以太坊客户端提供

Geth是典型的以太坊使用客户端,基于go语言开发。Geth提供交互式命令控制台,通过命令控制包含的以太坊的各种功能。相对于geth,mist是图形化戒面的以太坊客户端。

如何部署

智能合约的部署把合约字节码发布到区块链上,并使用一个特定的地址来标示这个合约,这个地址称为合约账户。

以太坊中有两种账户:

  • 外部账户:该类账户被私钥控制(人控制),无任何关联性代码
  • 合约账户:该类账户被它们的合约代码控制且有代码与之关联

与比特币使用的UTXO不同,以太坊使用更为简单的账户概念。两类账户对于EVM都一样。外部账户与合约账户的区别和联系:一个外部账户可以通过创建和用自己的私钥来对交易签名,来发送消息给另外一个外部账户或合约账户。两个外部账户间传递消息是价值转移的过程。外部账户到合约账户会激活合约账户带啊,允许执行各种动作(转移代币,写入内部存储,挖出一个新代币,执行运算,创建一个新合约)。当外部账户发出指令时,合约账户才会执行相应操作。

运行

合约部署后,当调用智能合约的方法是发送消息,通过出发智能合约中的代码在EVM中执行。转账、交易、合约部署等需要缴纳相应费用,在以太坊中用gas计费。智能合约越复杂,需要的Gas越多。

以太坊网络

Truffle

Truffle是Dapp开发框架,可以实现快速开发,简化开发流程。

赞 赏
真诚赞赏 手有余香
用微信请lyton喝杯咖啡?

微信支付

用支付宝请lyton喝杯咖啡?

支付宝