1、安装curl、git

apt-get update

apt-get install git

apt-get install curl

2、安装go

curl -O https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Unpack it to the /usr/local (might require sudo)

tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

3、配置go的环境变量

mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc

echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc

source ~/.bashrc

验证go :

go version

4、nodejs、npm

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

apt-get install nodejs

验证是否安装成功

node -v

npm -v

5、安装以太坊环境

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo add-apt-repository -y ppa:ethereum/ethereum-dev

sudo apt-get update

sudo apt-get install ethereum

6、安装solc(solidity编译环境)

sudo add-apt-repository ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install solc

7、创建三个账户

连续输入三次命令:geth account new

得到三个公钥地址

8、编辑创世块文件

将三个地址放入"alloc"中,

  1. {
  2. "nonce": "0x0000000000000042",
  3. "difficulty": "0x1",
  4. "alloc": {
  5. "0d2e08a2615d5c46734058f34b307db0eda5ba6e": {
  6. "balance": "20000009800000000000000000000"
  7. },
  8. "1f9035c1ed2802fe7f96e8a28890d8816af14c9c": {
  9. "balance": "20000009800000000000000000000"
  10. },
  11. "59b0a1db6b4de1d303d440da1d02fafd3f4f41af": {
  12. "balance": "20000009800000000000000000000"
  13. }
  14. },
  15. "config": {
  16. "chainId": 15,
  17. "homesteadBlock": 0,
  18. "eip155Block": 0,
  19. "eip158Block": 0
  20. },
  21. "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000",
  22.  
  23. "timestamp": "0x00",
  24.  
  25. "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  26.  
  27. "extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
  28.  
  29. "gasLimit": "0xb2d05e00"
  30. }

注意:划线部分如果不添加,会出现以下错误:

9、配置自动解锁账号的脚本

在./ethereum下创建password文件,在里面输入密码,每个账号一行密码如:

  1. 123456
  2. 123456
  3. 123456

10、配置以太坊启动脚本private_blockchain.sh(名字自取)

  1. geth --rpc --rpcaddr="0.0.0.0" --rpccorsdomain="*" --unlock '0,1,2' --password ~/.ethereum/password --nodiscover --maxpeers '5' --networkid '1234574' --datadir '~/.ethereum' console

每次启动geth节点时,只需要输入一下命令

bash private_blockchain.sh

11、启动后,输入eth.getCompilers(),可能会出现一下情况

这是因为,安装以太坊环境时自动下载了geth客户端是1.6以上版本的,但是1.6版本客户端中没有getCompilers()函数,后续可能会开发别的方法来实现这个功能。

我的解决办法是下载geth1.5.9版本,覆盖掉原来的geth。

之后,输入eth.getCompilers(),会出现,

这是因为没有指定编译器,另开一个终端,输入which solc

之后,在geth终端中输入:

会出现这个是因为我用的ubuntu虚拟机,提示我虚拟机的内存不足,当我把虚拟机内存增加到2G后,这个问题就解决了。

再次输入:

大功告成!

ubuntu系统搭建以太坊私有链的更多相关文章

  1. 区块链--Ubuntu上搭建以太坊私有链

    1.搭建私链所需环境 操作系统:ubuntu16.04,开虚拟机的话要至少4G,否则会影响测试挖矿时的速度 软件: geth客户端 Mist和Ethereum Wallet:https://githu ...

  2. 转:使用 Go-Ethereum 1.7.2搭建以太坊私有链

    使用 Go-Ethereum 1.7.2搭建以太坊私有链 目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底 ...

  3. 使用 Go-Ethereum 1.7.2搭建以太坊私有链

    目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球 ...

  4. Mac环境搭建以太坊私有链

    原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...

  5. docker 搭建以太坊私有链搭建

    最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建 于是我找到了官方的地址 https://github.com/ethereum/go-et ...

  6. Mac搭建以太坊私有链

    记录过程与问题 一.安装 以go版本的ethereum进行安装 brew tap ethereum/ethereum brew install ethereum # 如果希望基于ethereum的de ...

  7. 区块链入门(2):搭建以太坊私有链(private network of ethereum),以及挖矿的操作..

    在做一些测试工作的时候, 为了方便控制以及更快的进入真正的测试工作,可能需要搭建一个私有的以太坊网络. 而以太坊节点之间能够互相链接需要满足1)相同的协议版本2)相同的networkid,所以搭建私有 ...

  8. CentOS7搭建以太坊私有链

    1. 环境准备:Win10 64位安装 VM VirtualBox,操作系统版本: CentOS-7-x86_64-Everything-1611.iso(7.71G). 切换root账号,方便安装程 ...

  9. 区块链学习:Windows下搭建以太坊私有链环境

    一:安装geth客户端 Windows要求必须是64位系统,从官方网站下载编译好的win64客户端,下载解压后只有一个Geth.exe问价,运行安装即可,下载地址如下: https://github. ...

随机推荐

  1. RAC OCR盘故障导致的集群重启恢复

    一.事故说明 最近出现了一次OCR盘的故障导致Oracle集群件宕机的事故,后以独占模式启动集群,并使用ocr备份恢复了OCR文件以及重新设置了vote disk,然后关闭集群,重启成功. 因此在此处 ...

  2. Android使用ADB命令和stetho查看app数据库

    一.使用ADB命令查看 打开命令窗口,进入Android SDK目录下的platform-tools,执行命令: 1.输入:在windows下: adb shell 在linux下: ./adb sh ...

  3. 一名合格的JAVA程序员需要点亮那些技能树?

    这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的. 尽管Struts2漏洞频出,但是由于政府.银行以及传统企业遗留项目 ...

  4. Tcl与Design Compiler (三)——DC综合的流程

    本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 1.基本流程概述 首先 ...

  5. 谈谈在DevOps实践中,感觉最重要的这三个技术……

    从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热: 容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题:它可以加速部署的速度,提高部署的效率:降低部署的成本.容 ...

  6. unity3D插件开发——前篇

    Unity3D(以下简称Unity)是今年来非常流行的游戏开发引擎.他不仅有足够和unreal(虚幻)引擎媲美的渲染效果,足够多的平台输出,更为突出的就是Unity本身的编辑器.unity本身除了使用 ...

  7. C++ 虚函数相关,从头到尾捋一遍

    众所周知,C++虚函数是一大难点,也是面试过程中必考部分.此次,从虚函数的相关概念.虚函数表.纯虚函数.再到虚继承等等跟虚函数相关部分,做一个比较细致的整理和复习. 虚函数 OOP的核心思想是多态性( ...

  8. CSS3学习笔记(2)-CSS盒子模型

    p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...

  9. window.onload与document.ready的区别

    1. window.onload必须等到网页中所有的内容加载完(包含图片)才执行 document.ready网页中所有DOM结构绘制完执行,可能DOM并没有加载完 所有document.ready比 ...

  10. 不忘初心 --- 重读<<The C Programming Language>>

    这篇文章应该发布在好几年前,2011年计算机界大师Dennis Ritchie仙逝,那时对大师的映象还停留在大一刚学编程时:Unix的合作开发者,C语言的发明人.通过网上的纪念文章<<Un ...