美文网首页Dapp开发
区块链开发(三)以太坊基本概念及工具Geth、Browser-s

区块链开发(三)以太坊基本概念及工具Geth、Browser-s

作者: yuyangray | 来源:发表于2018-02-23 18:57 被阅读242次

    以太坊基本概念

    以太坊,最简单的说法就是:区块链技术+智能合约。

    • 以太坊和区块链技术一样,有Transaction,Block,账户与账户之间的关系需要用Transaction来执行,任何Transaction都需要有通过挖矿的block来产生。

    • 以太坊和原来的比特币技术不同的是

      1. 实现了基于Solidity语言的智能合约,并将智能合约看做一种特殊的账户,从而使得在智能合约上也可以实现具体的方法

      2. 实现了智能合约能落地执行的EVM(以太坊虚拟机),通过以太坊虚拟机,从而将solidity这样的类js的代码变成了可以在去区块链上执行的加密代码。

      3. 不同于比特币技术,在以太坊的transaction都需要用到gas,一份合约或者一次交易的gas是固定的(取决于代码大小和复杂度),而gas的价格则由以太坊中的oracle来决定。

      4. 以太坊同时还构建了较完整的、开源的生态系统,不仅有底层的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 三个工具的介绍,给我们提供了开发、调试和测试我们智能合约的很好的利器。

    原文链接

    相关文章

      网友评论

      • 盎咕:不同于比特币技术,在以太坊的transaction都需要用到gas。这里没说清楚什么不同。我记得在比特币网络上转账也是需要手续费的,相当于以太坊网络的gas费用。
        yuyangray:@lilianwen 没错,不明白原文这样表述的意思是什么

      本文标题:区块链开发(三)以太坊基本概念及工具Geth、Browser-s

      本文链接:https://www.haomeiwen.com/subject/hcaxxftx.html