以太坊基本概念
以太坊,最简单的说法就是:区块链技术+智能合约。
-
以太坊和区块链技术一样,有Transaction,Block,账户与账户之间的关系需要用Transaction来执行,任何Transaction都需要有通过挖矿的block来产生。
-
以太坊和原来的比特币技术不同的是
-
实现了基于Solidity语言的智能合约,并将智能合约看做一种特殊的账户,从而使得在智能合约上也可以实现具体的方法
-
实现了智能合约能落地执行的EVM(以太坊虚拟机),通过以太坊虚拟机,从而将solidity这样的类js的代码变成了可以在去区块链上执行的加密代码。
-
不同于比特币技术,在以太坊的transaction都需要用到gas,一份合约或者一次交易的gas是固定的(取决于代码大小和复杂度),而gas的价格则由以太坊中的oracle来决定。
-
以太坊同时还构建了较完整的、开源的生态系统,不仅有底层的geth、编程的solidity、合约在线浏览器browser-solidity、合约钱包Mist/wallet、以太坊的前端开发框架Truffle、各种各样的开源DApp等等,方便大家快速上手,并开发出适合落地的区块链应用。
-
Geth工具介绍
-
Geth工具是Go Ethereum, 是以太坊的官方客户端(Go语言实现)。
-
通过Geth的一些基本命令,可以很方便的创建出一个以太坊的私有链条。
geth --datadir "./" init genesis.json
geth --datadir "./" --nodiscover console 2>>geth.log
-
Geth的命令行中包含了大多数的以太坊的命令,包括账户新建,账户之间的以太币转移,挖矿,获取余额,部署以太坊合约等。
-
当然Geth的缺点也很明显,Geth还是偏底层的内容,很多操作需要较多较复杂的输入。因此我们将会介绍Browser-solidity。
Browser-Solidity
-
这是以太坊智能合约的浏览器编译器,直接访问网站即可,当然如果觉得速度太慢不稳定,也可以自己搭建。
-
Browser-solidity 因为运行在内存中,因此速度很快,对于一些简单的功能,例如四则运算等,开发调试变得非常容易。
-
Browser-solidity 中一些基本的概念,如transaction,gas,account等。
-
Browser-solidity的缺点也很明显,那就是因为运行在内存中,所以对于涉及账户的合约开发、调试&测试,相当的无力。因此接下来向大家介绍了Mist这个官方钱包工具。
Mist
-
Mist是以太坊的官方钱包,他既可以连接生产网络、测试网络,更加可以通过设置参数的方式,连接我们自己的私有网络。
-
Mist在通过geth.ipc文件连接后,就和Geth所建立的网络完全契合在一起了,在Mist上部署的合约,实际上也就是部署在了geth网络上。geth网络上新建账号,也可以在Mist这个工具上看到。
-
通过Mist,可以更详细的讲解了以太坊的核心概念,包括:区块、Transaction、Gas、账户、合约、合约中的构造函数,变量以及方法。
-
通过Geth、Browser-solidity、Mist 三个工具的介绍,给我们提供了开发、调试和测试我们智能合约的很好的利器。
网友评论