总结一下以太坊私有链搭建的过程,已经遇到的问题。

我们使用了LINUX,MAC OSX,WINDOWS三种平台,运行go-ethereum。

一、go语言安装

LINUX

命令行输入sudo gedit ~/.bashrc

在打开的文件最后加上两行代码:

export GOPATH=/usr/local/go

export PATH=$GOPATH/bin:$PATH

命令行输入 source ~/.bashr 使配置生效

命令行输入 go version 验证配置是否成功

二、go-ethereum安装

MAC OSX

首先确保已安装 homebrew,没有安装过的可以在命令行下执

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 进行安装

brew tap ethereum/ethereum

brew install ethereum

WINDOWS

访问 https://geth.ethereum.org/downloads/

下载并安装 Geth for Windows

LINUX

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

sudo apt-get install -y build-essential golang

cd go-ethereum

make geth

下面以linux为例:

在环境变量中添加

export PATH=$PATH:/usr/local/ethernum/go-ethereum/build/bin:$PATH

在命令行下输入 geth -h , 有如下显示表示成功

1521012260(1).png

三、创建节点和创世区块

以linux为例

编辑一个区块链文件 genesis.json

{

"config": {

"chainId": 109,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

},

"alloc" : {},

"coinbase" : "0x0000000000000000000000000000000000000000",

"difficulty" : "0x10000",

"extraData" : "",

"gasLimit" : "0xffffff",

"nonce" : "0x0000000000000077",

"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"timestamp" : "0x00"

}

创建节点

任意创建一个文件夹ethereumNode,在其中创建文件data1和data2

在ethereumNode文件下打开两个终端A,B

终端A中

对创世区块进行初始化,输入:

geth -datadir data1 init genesis.json

启动节点 端口号自行设定

参数说明

networkid 网络标识符

datadir 设置当前区块链网络数据存放的位置

console 启动命令行模式,可以在Geth中执行命令

ipcdisable 禁用IPC-RPC服务器

geth --networkid 123 --datadir data1 --ipcdisable --port 61910 --rpcport 8200 console

终端B中

对创世区块进行初始化,输入:

geth -datadir data1 init genesis.json

启动节点 修改文件夹data2 端口号修改

geth --networkid 123 --datadir data2 --ipcdisable --port 61911 --rpcport 8201 console

进入>命令行即为启动成功

四、连接节点

终端A的命令行中查看节点enode

>admin.nodeInfo.enode

"enode://2700fee9b8575b3a6df5146b192c74cc0a4eb832a8a3b95a80cc2a9aa73c7abb1a4cf2e734bb0228789611f86c95bcfe2654a187f3fa5ea58b49d245cf014e35@[::]:61910"

终端B的命令行中添加邻居

>admin.addPeer("enode://2700fee9b8575b3a6df5146b192c74cc0a4eb832a8a3b95a80cc2a9aa73c7abb1a4cf2e734bb0228789611f86c95bcfe2654a187f3fa5ea58b49d245cf014e35@[::]:61910")

在这里如果是多台机器之间的链接添加,需要将[::]改为对应机器的ip地址

终端A的命令行中查看邻居

admin.peers

1521013925(1).png

可以看到这里的id与终端B节点的的ip是相同的

同样,也可以在终端B中查看邻居,会得到节点B的信息

至此,两个节点就在一个区块链上连接成功

五、挖矿与交易

挖矿前要创建账户

创建新账号

personal.newAccount()

或者 personal.newAccount("123456")

挖矿

开始挖矿 miner.start(1)

停止挖矿 miner.stop()

挖矿一些时间我们可以查看产生了多少区块等信息

eth.blockNumber 查看区块数量

eth.getBlock(1) 通过区块号查看区块

eth.getTransaction("0x0c59f431068937cbe9e230483bc79f59bd7146edc8ff5ec37fea6710adcab825")

挖矿成功也会得到token

查看账户余额

eth.getBalance(eth.accounts[0])

或者 web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")

发起交易前要解锁账户

解锁账号

personal.unlockAccount(eth.accounts[0])

使用账户资金前都需要先解锁账号

查看终端B的账户信息

eth.accounts[0]

"0xe4be4471c30c2552e14d1e26e8384db67b6d7e62"

在终端A中查看余额并转账

查看余额 单位是wei

> eth.getBalance(eth.accounts[0])

1000000000000000000

转账 0.5个ether

eth.sendTransaction({from:eth.accounts[0],to:"0xe4be4471c30c2552e14d1e26e8384db67b6d7e62",value:web3.toWei(0.5,"ether")})

使用 txpool.status 可以看到交易状态

挖矿确认交易

miner.start()

当有新的区块产生时停止挖矿

miner.stop()

查看节点B的余额,转账成功

eth.getBalance(eth.accounts[0])

500000000000000000

查看节点A的余额,数量反而变多,因为使用节点A进行了挖矿

eth.getBalance(eth.accounts[0])

25500000000000000000

转载请注明出处

geth 转账_以太坊1 - 私有链部署、挖矿、转账相关推荐

  1. Windows搭建以太坊的私有链环境

    Windows搭建以太坊的私有链环境 1.下载Geth.exe 运行文件,并安装 https://github.com/ethereum/go-ethereum/releases/ 下载后,只有一个G ...

  2. 以太坊《私有链和联盟链的机会与挑战》报告

    以太坊平台评估 私有链和联盟链的机会与挑战 作者:Vitalik Buterin  翻译:万向区块链实验室/ChinaLedger 联盟  排版/校对:区块链铅笔(ChainB.com) (注:本文属 ...

  3. Ethereum Bootstrap 以太坊本地私有链开发环境搭建

    通过本文所述方法和项目中的脚本,我们可以快速的搭建好自己的私链进行开发测试. 仓库中包含的工具有: 一个测试账户导入脚本,在首次部署时将五个测试账户私钥导入以太坊节点. 一个genesis.json配 ...

  4. 【以太坊】私有链和测试网的区别

    一.概述 我们想要学习一门新技术,那么一般都是先网上查查相关概念,然后下载下来demo进行测试,本地跑通之后就可以尝试在项目中使用.那么学习以太坊该如何学习呢? 博主也是一位初学者,这里和大家一起学习 ...

  5. 如何在geth中创建genesis.json_基于以太坊的私有链搭建,mist+geth实现

    以前让学生做毕业设计,今天有人问起来,就写一个小教程,说一说基于eth的私有链如何搭建.非常简单. 一.geth,mist 客户端下载 1.这里我给大家介绍下,以太坊客户端,以太坊客户端主要分成两类. ...

  6. (二)以太坊——在私有链进行转账操作

    一.以太坊钱包客户端界面展示 二.创建账户流程 1. 输入密码,之后在重复一次,点击ok 2.提示让备份私钥,点击确定 3.新账户创建成功 三.转账操作 1. 复制新账户的地址,之后点击send按钮 ...

  7. 以太坊搭建私有链(非常详细!!!)(一)

    我的系统:CentOS7 64位 环境需要:Go 1.9以上版本 geth工具 WARN [11-04|09:34:47.411] System clock seems off by -10h15m4 ...

  8. 如何搭建socks5和ss节点_以太坊区块链搭建与使用(三)-联盟链

    首先对以下概念说明下: 一.以太坊大家都知道比特币使用的技术是区块链技术,比特币也是区块链技术的代表. 即比特币=区块链1.0随着区块链技术的发展以太坊也诞生了,也就是我们说的 区块链2.0.为什么说 ...

  9. 以太坊区块链也拥堵_以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启?...

    原标题:以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启? DappVision|7月16日 星期一 [行情] BTC 现价 ¥¥42,594.44 涨跌幅 1.57% ETH 现价 ...

最新文章

  1. 使用纯C++实现SQL Server2005 数据库读写操作详细步骤
  2. Unity 引擎UGUI之自定义树形菜单(TreeView)
  3. SSH生成rsa密钥对
  4. 4月22日(牛马不对嘴)
  5. c语言让数组地址对齐,C语言实现比特位数组在目标空间左右居中对齐三种方式...
  6. 什么是Python中的map,reduce和filter?
  7. 华为“方舟编译器”到底是啥?一文看懂TA如何让手机性能再突破
  8. python无缘无故不执行/跳过某个函数,无报错无警告
  9. 初识exe程序反汇编小感
  10. python方法测试怀孕_在Python中测试私有方法(例外)
  11. 如何从QC中导出测试用例及其测试步骤
  12. 20191109每日一句
  13. python什么字体好看_玩转python字体
  14. 网站视频倍速播放和进度自定义调整
  15. Apache DolphinScheduler 3.1.0 版本发布,覆盖机器学习工作流全流程!
  16. python斐波拉契数列(Fibonacci)
  17. C语言__bitwise宏定义
  18. 计算机应用素描色彩,美术统考素描、色彩、速写考场技巧全攻略
  19. 宝贝怎么查询历史价格?有何意义?
  20. maters鸿蒙系统,【华为MateRS保时捷版评测】系统:多元素化集合EMUI 8.1体验很棒-中关村在线...

热门文章

  1. pythonrequest得替代_Python爬虫通过替换http request header来欺骗浏览器实现登录功能...
  2. php面向接口编程思想,面向接口编程 - Laravel 实践
  3. HBase数据迁移到Kafka实战
  4. Can you answer these queries V SPOJ - GSS5 (分类讨论+线段树维护区间最大子段和)
  5. Keepalived+nginx实现高可用负载均衡
  6. Asp.net操作数据库方法
  7. MapReduce实例(数据去重)
  8. avcodec_decode_video2()解码视频后丢帧的问题解决
  9. dynamic和匿名对象
  10. c# 访问修饰符的访问权限