前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以太坊go-ethereum客户端docker安装(一)

以太坊go-ethereum客户端docker安装(一)

作者头像
程序新视界
发布2022-05-06 09:44:57
1.1K0
发布2022-05-06 09:44:57
举报
文章被收录于专栏:丑胖侠丑胖侠

最近一段时间忙于工作,就没来得及发表博客,但一直没有停止对区块链的研究。周末抽时间分享一下近期比较重大的收获之一——使用docker来搭建和使用以太坊的节点。本人已经顺利搭建出,开发环境,测试环境,Full node环境。后续会逐个以博客的形式分析出来,希望大家多多关注,共同探讨进步。

环境

第一次尝试是在云服务器的centos 6.5上面安装。由于docker要求centos必须6以上,而且kernel 版本必须2.6.32-431或更高。尝试将centos内核进行升级,但中间遇到一些问题,没有顺利解决,索性就将云服务器升级到centos 7.2版本。 如果有朋友基于centos6.5且暂时无法直接升级系统,可参考以下文章进行升级操作。 http://blog.csdn.net/taiyang1987912/article/details/42744019

安装docker

以下环境基于centos7.2 其他环境应该差距不大,大家可自行尝试。

安装

如果依赖核心版本支持,直接执行一下命令,即可下载安装docker。

代码语言:javascript
复制
yum install docker 

执行以下命令,如果现实出具体版本,则安装成功。

代码语言:javascript
复制
docker version 

启动

代码语言:javascript
复制
service docker start

查看镜像

使用以下命令,可查看本地已经安装的镜像。

代码语言:javascript
复制
docker images

以上简单介绍了docker的安装,不同版本可能会遇到不同的问题,大家自行搜索解决。下面将主要介绍一下docker下ethereum的安装使用。

ethereum docker环境安装

首选,以太坊客户端是推荐使用docker来启动服务的。

pull镜像

安装以太坊客户端镜像,只需执行简单的命令即可:

代码语言:javascript
复制
docker pull ethereum/client-go

安装完成之后,执行一下命令验证是否安装成功,如果能看到列表中有ethereum/client-go则表示安装成功:

代码语言:javascript
复制
docker images
这里写图片描述
这里写图片描述

启动节点

启动一个节点

代码语言:javascript
复制
docker run -it -p 30303:30303 ethereum/client-go

这样,一个节点就成功启动了。在这个环节遇到可能会遇到一个问题。docker是不负责管理网络防火墙策略配置的,我这边为了外网能访问到,进行了具体的防火墙策略配置。 以下是本人在防火墙策略中针对docker的配置,仅供参考。对应策略下面添加了不同的配置项。

代码语言:javascript
复制
*nat

:PREROUTING ACCEPT [27:11935]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [598:57368]
:POSTROUTING ACCEPT [591:57092]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 192.168.0.0/16 ! -o docker0 -j MASQUERADE

COMMIT 
*filter
:INPUT ACCEPT [139291:461018923]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [127386:5251162]
:DOCKER - [0:0]
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
COMMIT 

上面已经正常启动了一个节点,此节点是一个连接真实网络的全节点。如果想通过rpc接口调用对应的api,还需要在启动参数中添加对应的配置参数:

代码语言:javascript
复制
docker run -it -p 8545:8545 -p 30303:30303 ethereum/client-go --rpc --rpcaddr "0.0.0.0"

“0.0.0.0”参数会在8545接口上接收所有主机发送的请求,公共网络慎用!

如果想使用javascript控制台进行交互操作,可使用以下命令启动节点:

代码语言:javascript
复制
docker run -it -p 30303:30303 ethereum/client-go console

指定区块链数据存储位置

我们都知道,以太坊的区块链数据已经达到几十个G,如果磁盘不够docker安装的磁盘空间不够,那不就麻烦了。本人在使用时就是重新挂载了一个磁盘来专门存储区块数据。通过一下命令,可在启动的时候指定区块数据存储位置。

代码语言:javascript
复制
docker run -it -p 30303:30303 -v /path/on/host:/root/.ethereum ethereum/client-go

其中,-v参数是用来指定存储路径的。这条命令的基本作用就是将/root/.ethereum挂载到本地路径/path/on/host下面。这样,当容器启动时,文件的实际存储的就在/path/on/host目录下了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 安装docker
    • 安装
      • 启动
        • 查看镜像
        • ethereum docker环境安装
          • pull镜像
            • 启动节点
              • 指定区块链数据存储位置
              相关产品与服务
              容器镜像服务
              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档