在一般的应用场景下,除了大家取挖矿参与之外,还有一种应用场景就是自己创建私有的区块链网路,满足自己特有的业务需求和场景。
官方站点: https://geth.ethereum.org
Github: https://github.com/ethereum/go-ethereum
由于某些未知原因,在尝试官方站点下载geth客户端的时候,下载页面一直在loading状态,基本无法下载相应的安装包,如下图所示:
一般建议大家参照wiki的信息: https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
比如笔者所使用的是Ubuntu系统,可以直接参照wiki的内容进行安装。
安装指南:
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
当然大家也可以选择从源代码中直接编译安装,具体信息可以参照指南上的信息。
大家可以参照以下配置文件,genesis.json:
{
“nonce”: “0x0000000000000042”,
“timestamp”: “0x00”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“extraData”: “0x00”,
“gasLimit”: “0x80000000”,
“difficulty”: “0x400”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“coinbase”: “0x3333333333333333333333333333333333333333”,
“alloc”: { },
“config”:{
“chainId”:15,
“homesteadBlock”:0,
“eip155Block”:0,
“eip158Block”:0
}
}
然后,打开命令行,初始化配置文件.
geth –datadir “/home/bladestone/codebase/blocks/chain” init genesis.json
这里介绍一下上述各个参数的功能描述:
- mixhash
与nonce配合用于挖矿,由上一个区块的一部分生成的hash
- nonce
nonce就是一个64位随机数,用于挖矿
- difficulty
设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
- alloc
用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。
- coinbase
矿工的账号,随便填, 说明: 偶数位,且0x开头
- timestamp
设置创世块的时间戳
- parentHash
上一个区块的hash值,因为是创世块,所以这个值是0
- extraData
附加信息,随便填,可以填你的个性信息
- gasLimit
该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。
sudo geth –identity “myfirstblock” –rpc –rpcport “8078” –rpccorsdomain “*” –datadir=”/home/bladestone/codebase/blocks/chain” –port “30303” –nodiscover –rpcapi “db,eth,net, web3” –networkid 1006 init /home/bladestone/codebase/blocks/genesis.json
如下图所示:
geth –datadir “/home/bladestone/codebase/blocks/chain/” –nodiscover console 2>>geth.log
运行效果图示:
进入geth命令行,创建用户,然后启动mine挖矿
接下来,我们查看日志geth.log:
从这里可以看出, 创建的私有网络已经开始挖矿了….
以太坊是目前业界比较成熟的一种基于区块链技术的一种框架,允许开发者在其上二次开放,定制出纷繁精彩的区块链应用,所以这就要求所有的从业者都要思考区块链技术的本质以及应用场景。