文档章节

基于Docker在Ubuntu+Jupyter上运行“以太坊”

openthings
 openthings
发布于 2016/10/08 15:29
字数 898
阅读 122
收藏 1
点赞 0
评论 2

以太坊(https://ethereum.org)是一个开放的开源区块链(技术原理与发展趋势区块链相关术语)软件,可以实现无中心体系架构下的应用开发。

下面我们介绍在Docker中部署以太坊的方法(参见以太坊安装方法),然后使用Jupyter Notebook进行基于浏览器的访问。一旦环境设置完毕,就可以在很多环境下部署Docker容器,使用非常方便。Jupyter Notebook是基于浏览器的编程“笔记本”,非常适合进行数据探索类的研究。

1.安装支持环境

1.1 安装Docker容器支持环境

我用的Mac OS X,现在的Docker已经原生支持了,不用像以前要安装VirtualBox,再使用Vagrant了。
到这里http://www.docker.io下载相应的版本,然后运行安装程序,就可以了。

如果使用Ubuntu,建议使用 http://get.docker.io下载的脚本进行安装,官方的安装方法貌似与Ubuntu内置的lxd有冲突,经常出问题。方法如下:

wget http://get.docker.io -O docker-setup.sh
sudo chmod +x docker-setup.sh
./docker-setup.sh

1.2 安装Jupyter Notebook容器

采用Jupyter的官方Docker技术栈

docker run -it --name GISpark 
    -p 9000:8888 
    --user root -e GRANT_SUDO=yes 
    -v /本地目录/GISpark:/home/jovyan/work/GISpark 
    jupyter/all-spark-notebook

1.3 安装和更新容器内软件

打开浏览器,输入:http://localhost:9000。

在里面打开一个终端窗口,运行升级程序,安装需要的软件:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-dev

2.安装以太坊软件

然后,就可以打开终端窗口,在Ubuntu上直接安装以太坊软件,参见:https://my.oschina.net/u/2306127/blog/750162

3.安装问题解决

由于这个镜像的基础环境是基于Ubuntu 14.04的,因此Nodejs和go的版本比较老,无法安装Ethereum。下面我们手工安装这两个软件的新版本,就可以了。

3.1 安装新版go语言运行时

下载并展开到目录。

wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
tar -vxf go1.6.linux-amd64.tar.gz

然后,修改/etc/profile文件,把这个文件拷贝过来到本地目录,以便于修改:

cp /etc/profile .

修改文件,加入下面几行,设置go语言的环境变量:

export GOROOT=/home/jovyan/work/go
export GOBIN=/home/jovyan/work/go/bin
export PATH=$PATH:$GOBIN

然后把profile文件拷贝回去,运行source使其生效。

cp profile /etc
source profile

然后:

go
go env
go version

如果显示正常的信息,go运行时就设置成功了。

3.2 安装nodejs新版本

sudo apt-get update  
sudo apt-get install -y python-software-properties software-properties-common  

#如果按照一些攻略误安装了chris-lea-node_js,一定要删掉,方法如下:
#sudo rm -f /etc/apt/sources.list.d/chris-lea-node_js-*.list

#获取新的源,可选版本,目前实验可以用:
#curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get update  
sudo apt-get install nodejs

3.3 编译go-ethereum客户端

按照正常的PPA安装,会出现找不到安装源的错误(没有提供Ubuntu14.04-jessie的编译好的源)。 那就自力更生,自己编译。首先获取源代码:

sudo apt-get install -y build-essential libgmp3-dev golang
git clone https://github.com/ethereum/go-ethereum
cd go-ethereum
make geth

然后,按照提示,运行:/build/bin/geth。正常情况下,可以看到运行的结果。

3.4 优化

按照上面的安装,Ethereum的区块链数据会放到Docker容器的内部存储中。我们可以设置将其放到Docker映射的宿主机目录卷,以方便管理和共享。

© 著作权归作者所有

共有 人打赏支持
openthings
粉丝 240
博文 871
码字总数 454086
作品 1
东城
架构师
加载中

评论(2)

openthings
openthings
手动安装Nodejs和go语言,然后自己编译go-ethereum,出来的版本是可以用的。参考上面的方法。
openthings
openthings
jupyter/all-spark-notebook用的Ubuntu14.04,很不幸,Nodejs太老,golang太老,找不到这个版本的安装源了。
用Docker构建⼀个区块链工作和开发环境(下)

上一篇奠定了基础的知识点以后,我们开始区块链之旅了! 我们要做的第一件事是将“geth”节点连接到以太坊生产网络,从而保证我们的本地区块链同步,并为其他工具打开服务端口 - 当然也是在容...

wise2c ⋅ 2016/12/21 ⋅ 0

用Docker构建⼀个区块链工作和开发环境(上)

预读先知 区块链(Blockchain)是一种安全的在线交易方式。区块链是一种分布式数字账目,在全球数以千计的计算机上记录交易,使得注册的交易不能被追溯改变。他们通过集体自利的大规模协作进...

wise2c ⋅ 2016/12/20 ⋅ 0

002 Ubuntu16.04上基于docker搭建以太坊go-ethereum客户端

一、运行环境 Ubuntu16.04、go1.9.2、docker17.12.0-ce 二、安装go 最新的docker17.12.0-ce 需要go1.9.2支持,参考之前文章进行安装地址: http://blog.csdn.net/zxs9999/article/details/7...

<script>alert ⋅ 01/01 ⋅ 0

区块链开发如何选择底层平台和开发语言?

大多数人并不需要自己重新创建一套区块链,而是基于现有的区块链底层平台去开发自己的应用,对于类似加密算法、 P2P技术、共识算法等只需要有个基本了解就可以了,暂时不需要深入研究。在文本...

汇智网教程 ⋅ 05/02 ⋅ 0

以太坊代币2.0开发原生态智能合约数字货币系统

区块链爱好者(QQ:53016353) 1. 整体概览 在以太坊代币 1.0版本中,原0.6版本中的“Membership Service”已经被“以太坊代币 CA”所替代。 以太坊代币 CA是Hyperledger 以太坊代币的证书颁...

jqq53016353 ⋅ 2017/11/18 ⋅ 0

什么是以太坊?什么是智能合约?

以太坊是一个分布式的计算平台。它会生成一个名为Ether的加密货币。程序员可以在以太坊区块链上写下“智能合约”,这些以太坊智能合约会根据代码自动执行。 以太坊是什么? 以太坊经常与比特...

笔阁 ⋅ 05/29 ⋅ 0

Ethereum-Homestead-Guide中文版节选一、以太坊是什么

连载序言: 以太坊(Ethereum)是世界上第一个也是迄今为止最大的基于区块链技术的智能合约平台。这份手册是其第一个生产版本Homestead的技术手册,主要目的是帮助初中级用户和开发者了解以太...

风静縠纹平 ⋅ 2017/11/21 ⋅ 0

10 分钟剖析区块链 2.0 以太坊

以太坊的起源 以太坊诞生的标志是由俄裔加拿大天才小伙Vitalik Buterin在2013发布了以太坊的白皮书《以太坊 (Ethereum ):下一代智能合约和去中心化应用平台》 虽然我们知道比特币已经是一个巨...

雪花又一年 ⋅ 04/17 ⋅ 0

区块链学习 一

基础知识 先了解一下区块链吧,参考区块链开发(六)区块链架构与应用PPT,讲得不能再好了; 比特币是典型应用,必须要了解一下,资料可参考精通比特币,这里最好多花点时间,搞清楚比特币整...

代码坊 ⋅ 2017/09/13 ⋅ 0

以太坊是什么 - 以太坊开发入门指南

很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。 以太坊是什么 以太坊(E...

熊丽兵 ⋅ 2017/11/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试-JVM 内存结构

JVM 内存结构

秋日芒草 ⋅ 3分钟前 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 26分钟前 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 58分钟前 ⋅ 0

Spring JavaConfig 注解

JavaConfig注解允许开发者将Bean的定义和配置放在Java类中。它是除使用XML文件定义和配置Bean外的另一种方案。 配置: 如一个Bean如果在XML文件可以这样配置: <bean id="helloBean" class="...

霍淇滨 ⋅ 今天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 今天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 今天 ⋅ 0

informix的常用SQL语句

1、创建数据库 eg1. 创建不记录日志的库testdb,参考语句如下: CREATE DATABASE testdb; eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解...

wangxuwei ⋅ 今天 ⋅ 0

matplotlib画图

最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 from pylab import *from numpy import *x = linspace(0, 5, 10)y = x ** 2figure()plot(x, y, 'r')...

Dr_hu ⋅ 今天 ⋅ 0

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 今天 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部