选择以太坊客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择以太坊客户端相关的知识,希望对你有一定的参考价值。

参考技术A

有很多以太坊客户端供我们选择。我们推荐在开发和部署时使用不同的客户端。

我们推荐 Ganache ,它是一个运行在你个人电脑上的私有连客户端。它是 truffle 套种中的一部分,
Ganache 将智能合约和交易放在前台并且中心化,从而简化了dapp的开发。使用 Ganache 你可以
快速查看你们的应用是如何影响区块链的,并且对账户,余额,智能合约创建以及燃料消费进行自省。

Ganache 运行在 http://127.0.0.1:7545 。默认会创建是个账户,重启后账户依然不会变,
当然也可以手动随机账户,你也可以用你自己的账户。

我们同样也推荐使用 truffle develop ,它是 truffle 内置的开发链工具。不需要任何的额外安装,
你要使用它只需要一条命令行即可:

Truffle Develop 运行在 http://127.0.0.1:9545 上。

当你的开发机没有图形界面时就无法直接使用 Ganache ,而 Ganache CLI 就提供了没有图形界面系统的能力。

有很多官方和非官网的以太坊客户端你可以选择。以下是部分:

以太坊连载:以太坊GoJavaPythonRubyJS客户端介绍

go-ethereum

go-ethereum客户端通常被称为geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。通过安装和运行geth,可以参与到以太坊前台实时网络并进行以下操作:

  • 挖掘真的以太币

  • 创建合约,发送交易

  • 探索区块历史

  • 及很多其他

链接:

  • 网站: http://ethereum.github.io/go-ethereum/

  • Github: https://github.com/ethereum/go-ethereum

  • 维基百科: https://github.com/ethereum/go-ethereum/wiki/geth

  • Gitter: https://gitter.im/ethereum/go-ethereum

pyethapp

Pyethapp是以python为基础的客户端,实现以太坊加密经济状态机。python实现旨在提供一个更容易删节和扩展的代码库。Pyethapp利用两个以太坊核心组成部分来实现客户端:

  • pyethereum —— 核心库,以区块链、以太坊模拟机和挖矿为特征

  • pydevp2p —— 点对点网络库,以节点发现和运输多码复用和加密连接为特征

链接:

  • Github: https://github.com/ethereum/pyethapp

  • 维基百科: https://github.com/ethereum/pyethapp/wiki/Getting-Started

  • Gitter聊天: https://gitter.im/ethereum/pyethapp

ethereumjs-lib

正如黄皮书中所说,ethereumjs-lib是核心以太坊功能的javascript库。这是个简单的元模块,提供以下模块。大部分JS模块都在ethereumjs上有跟踪。

  • 虚拟机 – 以太坊虚拟机和状态处理功能

  • 区块链 – 区块链管理

  • 区块 – 区块模式定义和验证

  • 交易 – 交易模式定义和验证

  • 账户 – 账户模式定义和验证

  • rlp – 循环长度前缀序列化

  • Trie – 改良的Merkle Patricia树

  • Ethash – 以太坊工作量证明算法

  • utils – 多样辅助功能

  • devp2p – 网络协议

  • devp2p-dpt – 有争议的对等端表

链接:

  • Github: https://github.com/ethereumjs/ethereumjs-lib

  • 加入Gitter聊天: https://gitter.im/ethereum/ethereumjs-lib

Ethereum(J)

Ethereum(J) 是以太坊协议的纯Java实现。它作为可以嵌入任何Java/Scala项目的库提供,并为以太坊协议及附属服务提供完全支持。Ethereum(J)最开始由Roman Mandeleil开发,现在受 <ether.camp>资助。

Ethereum(J)支持CPU挖矿。目前它由纯Java实现,可用于私人和测试网络。你甚至可以在实时以太坊网络上挖矿,但是这样从经济角度来说不划算。

链接:

  • 博客: http://ethereumj.io/

  • Github: https://github.com/ethereum/ethereumj

  • Gitter聊天: https://gitter.im/ethereum/ethereumj

ethereumH

这个程序包提供了写在Haskell上的工具,能使你连接到以太坊区块链。

链接:

  • Github: https://github.com/blockapps/ethereumH

  • BlockApps: http://www.blockapps.net/

Parity

Parity 声称是世界上最快速最轻便的客户端。它用Rust语言写成,可靠性、性能和代码清晰度都有所增强。Parity由Ethcore开发。Ethcore由以太坊基金会的几个会员创建。

  • 网站: https://ethcore.io/parity.html

  • Github: https://github.com/ethcore/parity

  • Gitter聊天: https://gitter.im/ethcore/parity

Arch Linux 程序包由Afri Schoedon和quininer进行社群维护。

  • https://aur.archlinux.org/packages/parity/ (稳定,最新版本)

  • https://aur.archlinux.org/packages/parity-git/ (不稳定,最新开发)

已经有人报告在树莓派2上成功运行了Parity。

ruby-ethereum

ruby-ethereum是以太坊虚拟机上的一个实现,用Ruby语言写成。

链接:

  • Github: https://github.com/janx/ruby-ethereum

  • Gem: https://rubygems.org/gems/ruby-ethereum

相关:

  • ruby-serpent: 捆绑在以太坊 Serpent编译器上的Ruby语言.

  • ethereum-ruby: 一个pure-Ruby JSON-RPC包装,用于和以太坊节点交流。要使用这个库,你需要有运行的以太坊节点和可行的IPC支持(默认)。目前支持go-ethereum 客户端。

参考资料:

文章中的列表对应的链接可以参考《Ethereum Homestead Documentation》第41页1.2.4 go-ethereum

下一篇文章我们将会介绍《以太坊连载(11):以太坊账户管理》

感谢朝夕团队Azure, Bob参与《Ethereum Homestead Documentation》的翻译和校验。

原文:http://wangxiaoming.com/blog/2016/06/19/ethereum-10/


以上是关于选择以太坊客户端的主要内容,如果未能解决你的问题,请参考以下文章

区块链2

以太坊 数据规模 大小

以太坊 数据规模 大小

初始以太坊

怎么在windows下启动以太坊java客户端ethereumj

以太坊连载:以太坊GoJavaPythonRubyJS客户端介绍