搭建测试用区块链(Ubuntu环境)
参考链接:http://www.360bchain.com/article/151.html#启动geth进程https://github.com/ethereum/go-ethereum/wiki/Private-networkhttps://github.com/ethereum/go-ethereum/wiki/Private-network建议给虚拟机分配个3G或者4G的内存吧,其次还要看电脑配置好不好,初始化挖矿线程生成DAG实在太慢了,我4G内存初始化了半个小时…加上这是内存困难型(PoW共识机制)挖矿,内存不够,挖矿也非常慢啊!!!
前提首先需要安装好geth和go:
各种安装方法的链接: go安装代码如下:
查看go是否安装成功:
geth安装代码如下
查看geth的版本、查看geth是否安装成功:
1、配置初始状态
首先配置私有区块链的初始状态,新建文件genesis.json,内容如下:
chainId指定了独立的区块链的网络ID,不同ID网络节点无法互相连接。配置文件还对当前挖矿难度difficulty、区块Gas消耗限制gasLimit等参数进行了设置
2、启动区块链
用一下命令初始化区块链,生成创世区块和初始状态:
/nychain/data指定了存放数据的位置
生成的目录结构如下:
–datadir指定区块链数据的存储位置
接下来用一下命令启动节点,并进入Geth命令行界面:
98是当初的chainId
–identity:指定节点ID
–rpc:表示开启HTTP-RPC服务
–rpcport:指定HTTP-RPC服务监听端口号(默认为8545)
–datadir:指定区块链数据的存储位置
–port:指定和其他节点连接所用的端口号(默认为30303)
–nodiscover:关闭节点发现机制,防止加入有同样初始配置的陌生节点
nodiscover告诉geth最初不要找peers。这一点在这个案例中确实很重要。这是一个私有网络。不希望节点在没有指定的情况下尝试连接到其它节点,不希望这些节点在没有告诉它们的情况下被发现。
下次再进入geth控制台输入:
代码解释:
–datadir /mychain/data:–datadir是指定目录,/mychain/data是你当初创建区块链的位置,如何不指定就好像是会去/home/wuyou/e-ethereum云云的文件里去了,然后你当初创建的账号都没有了,又要重新创建过。。。。。。。唉!~~新手入门,没人带,摸了很多坑才知道的
–nodiscover:单词意思就是不被发现,也就是我们的私有区块链了,否则单纯一个geth就是进入以太坊的公链,然后一直下载以前的交易区块了。。。。。(而且8G内存的电脑要下载一周呢,以后你每次进入geth,它都自动帮你下载,你想阻止都阻止不了…)
console:当然就是控制台了~
3、创建账号
用上述geth console命令进入的命令行采用JavaScript语法,用一下命令新建一个账号
Passphrase输入密码,Repeat passphrase再次确认密码
之后才显示出账号的哈希后的结果是0x19f24e1401ba93b1a13b63aa97e594746ed17c96
查看账户余额:
再创第二个账号;
查看所有账户:
查看各账户余额:
开始挖矿
其中start的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。
一定要一套流程一起做完,否则你退出去再进入挖矿好像是在公有链上进行初始化挖矿,然后下载好多好多下不完的区块(以太坊的所有区块,一个8G内存的电脑要下载一周)
start 的参数表示挖矿使用的线程数,block reached canonical chain表示区块已经上链
停止挖矿
另一种挖矿的语句(这是网课上的。。。)
开始在自己的私链上挖矿:
在自己单节点的私链上挖矿需要生成DAG(也就是生成挖矿的初始化线程,这个过程大约需要20~30分钟,视电脑性能而定)
再次挖矿的结果(Successfully sealed new block表示挖矿成功,这个过程我电脑给虚拟机分配了2G内存挖了十分钟…和比特币的TPS有的一拼):
修改保存挖矿收益的账户:
退出以太坊客户端:
查看coinbase地址:
默认是eth.accounts[0]的地址,如果eth.acocunts为空则报错
设置coinbase地址,设置地址之后,挖矿所得将存入这个地址: