以太坊(英语:Ethereum)是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。

以下以centos7系统来搭建Ethereum环境,已便学习区块链知识

1.   下载依赖工具

安装好虚机后,更新centos服务器并下载git、wget、vim、gcc-c++、ntp组件、nodejs以及添加epel第三方安装源。本步骤非常重要,可以节约大家在后续安装Ethereum以及开放框架时经常出错而到处摸索的时间。简要介绍下各个工具的说明:

git、wget:安装相关的组件,下载安装各类开源代码与工具的利器;

vim:文本编辑工具,取代vi;

gcc-c++:c/c++编译工具,用于golang下部分c库的编译以及truffle组件的编译

ntp:网络时钟同步组件;Ethereum的rpc网络需要时间同步;

nodejs:ethereum前端开发JavaScript包管理软件

epel:网络第三方的linux安装包源

yum update -y && yum install git wget bzip2 vim gcc-c++ ntp epel-release nodejs cmake -y

2.   下载golang版本为

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

解压golang并将工作目录移动到/usr/local/go

tar zxvf go1.9.linux-amd64.tar.gz

mv go /usr/local/

配置GOROOT和PATH

echo "export GOROOT=/usr/local/go" >> /etc/profile

echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile

source /etc/profile

验证

go version

3.   克隆并编译go-ethereum

git clone https://github.com/ethereum/go-ethereum.git

cd go-ethereum

make all

如果make all报如下错误:

到go-ethereum/vendor/gopkg.in/olebedev/go-duktape.v3/api.go修改第
976行 int64 改成 uint64。

然后再重新执行

创建完毕后在path中入geth路径

echo "export PATH=$PATH:/root/go-ethereum/build/bin" >> /etc/profile

source /etc/profile

验证:

geth version

4.   安装cmake:智能合约编译solc需cmake编译

本来要用yum一起安装cmake的,但yum与epel源中只有2.8.x版本的cmake,而智能合约编译器solc的安装需要3.0.x以上的cmake版本。故只能去官网独立安装。

下载cmake最新版本,登录https://cmake.org/download/,找到最新版本下载地址

cd && wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

解压并编译并安装

tar -xzvf cmake-3.9.2.tar.gz

cd cmake-3.9.2

./bootstrap && make && makeinstall

5.   启动网络时间同步

systemctl enable ntpd

systemctl start ntpd

另外geth会用到8078和30303端口,放开防火墙端口 8078与30303

6.   开启防火墙

systemctl start firewalld

7.   放开端口

firewall-cmd --zone=public --add-port=8087/tcp --permanent

firewall-cmd --zone=public --add-port=30303/tcp --permanent

8.   配置geth私有的创世纪的配置文件:genesis.json,该文件描述了如何初始化一个私有的gethereum

1. cd

2. vim genesis.json

cd

vim genesis.json

# 输入以下内容,然后存盘退出

{

"nonce":"0x0000000000000042",

"timestamp": "0x00",

"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x00",

"gasLimit":"0x80000000",

"difficulty":"0x400",

"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"coinbase": "0xa0B9171F2a60Bd1812fb0806ece01198Bd8e4A35",

"alloc": {},

"config": {

"chainId": 15,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

}

}

创建私有网络的gethereum

1. cd root & geth --datadir "/home/ethbase/chain" init genesis.json

9.   启动geth

更常用的是开发环境下的测试,可直接启动默认的geth开发环境,注意:双减号、2与>>之间没有空格

geth --dev console 2>> geth_dev_log

进入到console下其实就进入了Ethereum的JavaScript环境。

注,如果执行geth --dev console 2会报如下错误,原因是以太坊执行miner.start返回null

解决方案:geth --identity "TestNode" --rpc --rpcport"8545" --datadir /opt/data/ --port "30303" --nodiscover--dev --dev.period 1 console>> geth_dev_log

如果想关注在操作过程中的日志,可以另起一个SSH通过tail观察

1. tail -f geth_dev_log

(一)、centos7系统搭建Ethereum相关推荐

  1. 一、使用两台Centos7系统搭建Hadoop-3.1.4完全分布式集群

    上面这张思维导图喜欢就拿走,2021年,决定写大数据了. 文章目录 大数据常用技术词汇 Hadoop集群 Hadoop介绍 集群搭建前的准备 设置静态ip 配置阿里云yum源 安装JDK 克隆一个虚拟 ...

  2. 基于Centos7系统搭建Redis集群之主从复制(新手教程)

    最近没多少事,就想着搭建个redis集群玩玩,毕竟听起来也是很高大上的东西,但是经过自己的断断续续的搭建,也感觉不是那么难,肯定也只是刚刚入门,搭建的东西也比较简单,并没有触及到里面更深入的内容: 因 ...

  3. 以Windows系统搭建基于Ethereum(以太坊)的区块链开发环境(具体操作与截图)

    以Windows系统搭建基于Ethereum(以太坊)的区块链开发环境(具体操作与截图) 区块链设计开发小组     2019/04/01 借鉴博客:https://blog.csdn.net/cui ...

  4. 基于CentOS7.6系统搭建远程GIT服务器

    基于CentOS7.6系统搭建远程GIT服务器 0 背景 0.0 GIT是什么 0.1 为什么搭建远程GIT服务器 1. 功课 2. 过程 3. 总结 4. 参考资料 0 背景 0.0 GIT是什么 ...

  5. Linux系统:Centos7下搭建PostgreSQL关系型数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...

  6. KVM详细介绍及搭建KVM虚拟化平台构建Centos7系统

    目录 一.KVM简介 1.发展历程 2.原理简介 3.虚拟化类型 4.虚拟化技术的优劣 5.KVM实际应用 二.KVM 运行时的三种模式 三.kvm部署过程 1.安装KVM前的环境部署 2.cento ...

  7. ftp部署一个可供centos6、centos7系统使用的yum网络仓库

    今天我们讲一个小项目:使用centos6 ftp部署一个可供centos6.centos7系统使用的yum网络仓库 我们来分析一下这个项目:首先我们要先安装ftp包,开启并配置ftp服务.接着关闭并配 ...

  8. Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站

    Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站 Linux 常用命令ls -l 以长格式显示-a 显示.. 和 .-A 不显示 . 和 ..-d ...

  9. 快速搭建ELK7.5版本的日志分析系统--搭建篇

    一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide ...

最新文章

  1. 【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工
  2. 用单片机测量流体流速的_曹阳等:钻井用节流阀抗冲蚀性能的实验评价
  3. zabbix专题:第三章 Zabbix Agent客户端安装详解
  4. Hibernate配置文件,省的到处找了
  5. 垂直梯形校正画质损失多少_投影仪梯形校正会影响画质吗?投影仪梯形校正调不正怎么办?...
  6. Lua语言学习-垃圾回收
  7. Spotify是如何调整CDN服务来实现闪电般的快速流媒体体验
  8. 基于指数平滑对心电信号进行PQRST模拟(第二种方案)
  9. 适合 Kubernetes 初学者的一些实战练习 (三)
  10. B1.Java基础部分二
  11. (摘要)100个伟大的商业理念:理念35:引爆流行
  12. c语言宠物管理系统,请用C语言编出一个简单的宠物管理系统。
  13. linux dstat,dstat 用法详解
  14. Wireshark 用户使用手册 ———— 文件处理
  15. 建立良好人际关系的原则
  16. JDF bean模块想法交流
  17. 计算机二级access上机,计算机二级Access上机考点
  18. [弹幕词云姬]硬核b站up主一周撸出来的小工具,根据b站弹幕生成词云(一)
  19. oss文档存储类型:低频、标准、归档、冷归档
  20. 【机器学习】K-Means 聚类是特殊的矩阵分解问题

热门文章

  1. Eclipse+git中merge代码时出现conflict(冲突)的问题解决方案
  2. 黎曼猜想(一) 欧拉乘积式
  3. 德语语法笔记——虚拟式
  4. 鸟叔的linux私房菜+大数据(Hardoop/Spark/Hive) 电子书分享
  5. byte数组转blob类型_Jfinal 存byte[] 到mysql数据库中blob类型
  6. [免费]织梦xml地图生成插件
  7. div背景图片等比例缩小如何居中
  8. 惊呆了!手机上居然能安装Win10电脑系统?效果炸裂....附方法!这波操作我服气!
  9. 【taichi】用最少的修改将太极的pbf2d(基于位置的流体模拟)改为pbf3d
  10. 10-200 C2-2修改特定职工的订单运费