以太坊C++客户端:cpp-ethereum

快速入门

  • 以太坊C++客户端的Github项目是 webthree-umbrella。
  • 我们将恢复到 cpp-ethereum-github 作为项目重启的一部分。
  • 如果你只想安装二进制,直接前往安装二进制。
  • 如果你想从源创建,请前往从源创建。
  • 你可以在 cpp-ethereum-gitter 与社区和开发者聊天。
  • 开发者在 cpp-ethereum-development-gitter 上有深度的交流。
  • 请用Github事件跟踪器记录所有事件。
  • cpp-ethereum十分便于移植,被运用在广阔的平台上。

详细说明

项目重启

项目正在新的领导下经历重新启动。在写的时候,我们有很多活动的部分。请对我们有一点耐心。

我们在Homestead简化了项目命名,尽管一些过去命名的影子还在,2016年5月从Christian有个深入的C++开发更新。

接下来关键的一步是即将进行的git库重组,这将会把我们的编码恢复到cpp-ethereum库。

我们也正在致力于将编码库重新许可为Apache 2.0,这将成为一个放宽核心的长期计划的高潮。2015年开始了一个将cpp-ethereum核心重新许可为MIT的活动,但一直未完成。这次是对活动的重新激活,尤其是看到了与Linux基金会Hyperledger项目合作的可能性。

现状(方形是应用,圆形是库)

目标重构:

编码的历史

C++以太坊项目在2013年12月由以太坊基金会的前CTO GavinWood发起。它是第二大受欢迎的客户端,远落后于同样由以太坊基金会建立的、居于主导地位的geth客户端。

许多原来的C++开发者在2015年末和2016年初转移到Slock.it 和Ethcore项目,紧接着C++开发的资金支持被削减了75%。这些资金削减是为控制基金会成本所做的一部分努力,刚好它们的发生又先于ETH价值最近达到的尖峰,这将基金会置于一个更健康的财务状况。

查看参与了编码工作的贡献者的完整列表

可移植性

以太坊C++客户端编码十分便于移植,被成功运用在一系列不同的操作系统和设备上。 我们继续拓展范围,对pull请求保持开放,给额外的操作系统、编译器和设备增加了支持。

经验证适用的操作系统

  • Linux

– Alpine Linux – Arch Linux – Debian 8 (Jessie) – Fedora 20 – Fedora 21 – Fedora 22 – openSUSE Leap 42.1 – Raspbian – Sailfish OS 2.0 – Ubuntu 14.04 (Trusty) – Ubuntu 14.10 (Utopic) – Ubuntu 15.04 (Vivid) – Ubuntu 15.10 (Wily) – Ubuntu 16.04 (Xenial) – Ubuntu Touch – Ubuntu 15.04 MATE

  • BSD

– FreeBSD

  • OS X

– OS X Yosemite (10.10) – OS X El Capitan (10.11) – OS X 10.10 (Yosemite Server 4.0) – OS X 10.11 (Yosemite Server 5.0) – OS X 10.11 (Yosemite Server 5.1)

  • Windows

– Windows 7 – Windows 8 – Windows 8.1 – Windows 10 – Windows Server 2012 R2

操作系统——工作正在进行

  • Linux

– Maemo – MeeGo – Tizen

  • BSD

– iOS – tvOS – WatchOS • Android

经验证适用的设备

  • 各种台式机和笔记本电脑设备(Windows, OS X, Desktop Linux)

– 64位(重新组装的二进制) – 32比特(非官方支持,但可以用)

  • 智能手机

– Linux Jolla Phone Meizu MX4 Ubuntu Edition * Nexus 5 (SailfishOS 2.0)

  • SBCs

– Linux BeagleBone Black Odroid XU3 Project C.H.I.P. Raspberry Pi Model A Raspberry Pi Model B+ Raspberry Pi Zero Raspberry Pi 2 Raspberry Pi 3 * Wandboard Quad

设备——工作正在进行

  • 智能手表

– Linux * Samsung Gear S2

– BSD * Apple Watch

  • 智能手机

– Linux Nokia N9 (MeeGo) Nokia N900 (Meemo) Samsung Z1 Samsung Z3

– Android Samsung Galaxy S3 Samsung Galaxy S4

– BSD iPhone 3GS iPhone 5

  • 开发者手机

– Linux Samsung RD-210 Samsung RD-PQ * Samsung TM1

  • 平板电脑

– Android Samsung Galaxy Tab S 10.5 Nexus 7

– BSD * iPad Air 2

  • SBCs

– Linux DragonBoard 410c Intel Curie Intel Edison Intel NUC * Minnowboard Max

  • Odroid XU4

二进制安装

cpp-ethereum开发团队和更广阔的以太坊社群为各种平台发布了很多不同形式的二进制版本。本章旨在提供那些版本的完整列表。

如果你知道其他第三方所做的程序包努力, 请在cpp-ethereum gitter频道告诉我们,我们会添加到这个列表中。

Ubuntu PPA (Personal Package Archive)
我们为下面的 Ubuntu版本设置了 PPA实例。
图片描述

我们只支持64位架构。通过从源建立和禁用VMJIT及其他特征,也能够让客户端适用于32位Ubuntu。我们可能会接受pull请求来增加这样的支持,但不会投入任何时间来专门开发支持Ubuntu 32位架构。

安装 “eth”命令行工具警告: The ethereum-qt PPA will upgrade your system-wide Qt5 installation, from 5.2 on Trusty and 5.3 on Utopic, to 5.5.

最新的稳定版本:
图片描述

如果你想用前沿的开发者版本:
图片描述

安装 Mix IDE Mix IDE

装载在 Ubuntu上作为开发者 PPA(见上)。直接按照以上步骤操作,然后再操作:
图片描述

Windows安装程序
我们对每个版本 都生成了Windows 安装程序。

可以在 Windows 7, Windows 8/8.1, Windows 10 and Windows Server 2012 R2 上运行,尽管我们的自动编译是基于Windows 8.1主机。

如果发生运行时错误,报告丢失msvcr120.dll或msvcp120.dll 文件,请从Microsoft安装Visual C++ Redistributable Packages for Visual Studio 2013。

我们只支持64位架构。

通过从源建立和禁用VMJIT及其他特征,也能够让客户端适用于32位Windows。我们可能会接受pull请求来增加这样的支持,但不会投入任何时间来专门开发支持Windows 32位架构。

大部分使用Windows 的个体现在都有64位硬件。

Windows Chocolatey NuGet程序包
尽管以前做过,但是写这篇文件的时候我们没有再生成Chocolatey程序包。

给不熟悉这个技术的人解释,它的本质是Windows的apt-get—— 一个全球性的无声的工具安装程序。

我们想在不久的将来再次支持Chocolatey,和我们在OS X上支持Homebrew以及给Ubuntu安装PPA的原因一样。对于有技术能力的用户,这样操作命令行会很方便:
图片描述

OS X DMG(磁盘映像)
我们为每个版本都生成了OS X磁盘映像。 我们只支持最新的两个OS X版本: • OS X Yosemite (10.10) • OS X El Capitan (10.11)

我们只支持64-比特架构。

如果你的系统这两个OS X版本都不支持,那么很抱歉你不走运啦!

OS X Homebrew程序包
我们在自动架构系统里生成了Homebrew程序包。 我们只支持最新的两个OS X版本: • OS X Yosemite (10.10) • OS X El Capitan (10.11)

我们只支持64-比特架构。 如果你的系统这两个OS X版本都不支持,那么很抱歉你不走运啦!

所有的OS X架构都需要你事先安装Homebrew程序包管理器。如果你想从头开始,这是卸载Homebrew的方法。

要从Homebrew安装以太坊C++组件,请执行以下指令:
图片描述

或者……如果你也想创建AlethZero和Mix IDE,请执行:
图片描述

要开启应用,在终端窗口输入其中一个指令:
图片描述

这是Homebrew公式,详细描述了所有支持的命令行选项。

Raspberry Pi, Odroid, BeagleBone Black, Wandboard
EthEmbedded的John Gerryts在主要的里程碑为各种SBC创建了二进制镜像,此外为这些设备检测和维护架构描述语言。EthEmbedded是2015年5月的devgrant接收者。他给eth和geth都创建了二进制。

这是来自EthEmbedded的Homestead二进制。

手机的Linux ARM交叉结构, 可穿戴设备, SBCs
doublethinkco的Bob Summerwill交叉架构了ARM二进制,对很多种类的硬件都有效,从手机到可穿戴的Linux发行版(Sailfish OS, Tizen OS, Ubuntu Touch)到EthEmbedded针对的同样的SBC。Doublethinkco是2016年2月的BlockGrantX接收者。

查看cpp-ethereum-cross README文件,了解平台和已知状态的全矩阵。

这是来自doublethinkco的交叉建构二进制:已发布——Homestead的交叉建构eth二进制

ArchLinux 用户库 (AUR)
Arch Linux程序包是Afri Schoedon维护的社群。

在aur.archlinux.org上查看以下程序包。

  • ethereum (稳定,最新版本)
  • ethereum-git (不稳定,最新版本)

要创建和安装这个程序包,按照AUR安装程序包说明:

  • 获取含有PKGBUILD的原始码
  • 提取原始码
  • 作为简单用户运行所储存文件目录里的makepkg –sri
  • 作为超级用户用pacman –U安装生成的程序包

你也可以用AUR助手比如yaourt或 pacaur直接在你的系统里安装程序包。

参考资料:
文章中的列表对应的链接可以参考《Ethereum Homestead Documentation》第18页1.2.3 cpp-ethereum

下一篇文章我们将会介绍《以太坊连载(八):C++客户端的安装与定制(二)》

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

汪晓明
HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。

汪晓明
7 声望6 粉丝

HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南...