本文章是在windows7下以太坊的私链搭建实现,私链主要是开发做测试而搭建的一个在本地的环境, 该产生的账号,数据都只是本地的数据。

要下载的两个客户端

1.geth ( 发音guess) 


 
geth的全称是go-ethereum,是一个以太坊客户端,用go语言编写,应该是目前最常用的客户端。当然以太坊客户端还有用C++,Ruby,Python,Java等其他多种语言编写的,不同类型的客户端是为了满足不同的需求场景。


2.Ethereum Wallet 钱包



Ethereum Wallet客户端对应的是Mist项目,现在此客户端大多都称为Ethereum
Wallet,也有称作Mist客户端的,知道它们两个指的是通一个客户端即可。此客户端使用JavaScript进行开发,支持windows、linux和OSX三类操作系统,是一个图形化操作界面的客户端。介绍到这里,大家可能就明白了,如果你想通过API来调用以太坊的接口,选择此方式是行不通的。
Ethereum Wallet客户端主要是为用户提供可视化操作的客户端,下载安装之后通过相应的图形化界面即可进行创建账户、转账、查询余额等操作

一. 使用Geth

下载64位或32位Geth安装程序,然后进行安装。

安装完毕后打开该安装的目录d:\blockchain,有geth.exe的目录,
(注意,文件路径中不能出现中文。也可以安装在其他目录,不要放在c盘,后期运行的时候,因为系统对c盘的保护,会有一些访问权限的问题。)



然后在该文件夹下创建创世块的初始化文件genesis.json
内容如下

{
  "config": {
        "chainId": 16,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc": {
  "0x83fd95f8e41f6afedd08dd6ae11db607a7a3c60c": {"balance": "666666666"},
  "0x0000000000000000000000000000000000000002": {"balance": "222222222"}
    },
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    :
"0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" :
"0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}
解释一下各个参数的作用:





mixhash

与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow paper, 4.3.4. Block
Header Validity, (44)章节所描述的条件。.


nonce

nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header
Validity, (44)章节所描述的条件。


difficulty

设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度


alloc

用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。


coinbase

矿工的账号,随便填


timestamp

设置创世块的时间戳


parentHash

上一个区块的hash值,因为是创世块,所以这个值是0


extraData

附加信息,随便填,可以填你的个性信息


gasLimit

该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。
完成了创世块配置文件,开始部署节点!

 win键 + r 进入cmd命令行
键入 d: 是命令行进入d盘
键入 cd blockchain 进入d盘的blockchain目录


键入 geth –datadir “%cd%\chain” init genesis.json 将创世块信息初始化


初始化成功后, 进去D盘blockchain目录查看是否有生成文件夹。

之后就可以启动geth的私链 (下面是启动私链的命令)


geth.exe  --datadir “%cd%\chain” --syncmode=fast --rpc --rpcaddr 10.0.0.76
-rpcport 9335 --rpccorsdomain '"*"'  --rpcapi "personal,db,eth,net,web3"
--networkid 95518 console  console

datadir 这是你私链的地址 这里就是D盘blockchain下面

targetgaslimit –每个区块能承载gas上限,这里可以暂时理解为容量

rpc –启动rpc通信,可以进行智能合约的部署和调试
rpcaddr –rpc接口的地址
rpcport –rpc接口的端口号
port –网络监听端口,用于节点之间通信
rpcapi –设置rpc的范围,暂时开启eth,web3,personal足够
networkid –设置当前区块链的网络ID,是一个数字,可以随便写(尽可能大于10)
mine 允许挖矿
minerthreads 挖矿启动的线程数量,默认是4个。
console –启动命令行模式*


当启动后 就可以进行操一系列的业务,列如 查询余额,转账等。

我这里就举例几个业务创建账号,和查询余额,以及挖矿

1.创建账号命令

personal.newAccount("输入密码")




这个时候我们可以看到除了第一个账户0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f之外,还新增了另一个账户
0xb8b12a801b610176935a15321f77b48dd5c0c448, 此时输入eth.accounts,
就可以很轻松的看到有两个账户的公钥地址。

2.余额查询


eth.getBalance("输入账号")


3.挖矿

miner.start()

输入即可挖矿, 如果未指定账号挖到的默认值向第一个账号。


二 .使用Ethereum Wallet 钱包

打开Ethereum Wallet 钱包 默认会先连本地的geth数据私有链,
当启动了geth私有链的时候打开钱包应该会在右上角显示私有网络PRIVATE-NET





之后启动进入钱包主页面 
如下



这个就是对geth 的可视化操作,默认是链接公链,同步公链需要挺长的时间。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信