区块链研究(二)搭建基于以太坊的Windows私有链
2018-02-13 20:07
295 查看
1.准备创世块文件
配置自己的创世块是为了区分公有链,同一个网络中,创世块必须是一样的,否则无法联通。
新建文件fflngenesis.json,输入如下内容并保存,路径随意。
我的路径是: F:\app\Ethereum\Blockchain Env\
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "FFLN GenesisBlock",
"gasLimit":"0xffffffff"
}
解释一下各个参数的作用:
2.创建创世区块命令行进入fflngenesis.json存放地址目录,输入命令geth --datadir "./" init fflngenesis.json
出现错误“Fatal: invalid genesis file: json: cannot unmarshal hex string without 0x prefix
into Go struct field Genesis.extraData of type hexutil.Bytes”
百度翻译结果:“致命错误:无效的成因:JSON数据文件:不能没有0x前缀字符串
去hexutil型结构genesis.extradata字节领域。”
修改fflngenesis.json的extraData域为"0x00000000",保存后重新输入命令,又报错
Fatal: Failed to write genesis block: genesis has no chain configuration
这是版本问题。Geth1.6(含)以上需要配置config域
保存后再次输入命令,结果又报错,崩溃。
再看错误日志,原来是忘记加逗号,无语...
Fatal: invalid genesis file: invalid character '"' after object key:value pair加入逗号后再次执行
接着报错:
Fatal: invalid genesis file: invalid character '}' looking for beginning of object key string
嗯,config大括号后面的逗号,不需要的。
删除最后一个多余的逗号,继续执行,终于成功!
3.创建私有链输入命令:geth --datadir "./" --nodiscover console 2>>geth.log
当看到Welcome to the Geth JavaScript console!的提示,说明已经启动成功
4.在私有链上创建账户输入命令:personal.newAccount("123456")
"123456"表示此账号的密码.
输入命令eth.accounts可以查看新账户
这样,通过这两个命令可以创建出多个用户出来
若输入命令:personal.newAccount()
则系统会提示你输入账号密码,并确认,最后会显示一个新生成的账号
5.挖矿
输入命令:miner.start() 或者miner.start(1)
后者表示只使用一个线程工作,这样系统不会太卡
出现null是因为在第3步:创建私有链时设置了结果输出到日志,所以无法显示。这时可以退出重来,不设置输出到日志
输入命令:exit
然后再输入:geth --datadir "./" --nodiscover console 2
再输入:miner.start() 进行挖矿
注意点:1. 挖矿挖到的ether币会默认保在第一个账户中,即eth.acccounts[0]中。2. 挖矿是执行智能合约的基础。如果停止挖矿的话,不仅以太币会停止生成,所有智能合约的调用也会不起作用。3. 如果真的要停止挖矿,可以执行命令miner.stop()来停止挖矿4. 按上面的命令,应该是可以实现以太坊挖矿的。如果不行的话,有可能就是之前有存在的链,此时应该删除之前的数据。即删除~/.ethash文件夹和里面的文件即可。当使用输入日志的方式时,可以输入命令tail -f geth.log 来跟踪挖矿进度如何
如果tail -f 命令无效,出现错误
则可查看此文解决:http://www.cnblogs.com/hantianwei/archive/2012/03/14/2395634.html
6.查看主账户中以太币的数量
输入命令: eth.getBalance(eth.accounts[0]) 结果不为0,说明挖矿成功
7.启动windows下私有链图形节点
打开安装好的Ethereum Wallet.exe,这时会有一段漫长的Downloading new node...
如果一直down不下来,推荐查看此文,或许有所收获。
地址:http://blog.csdn.net/fengmm521/article/details/78446520
主页面如下:
可以看到,主账户有了5620个以太币。上方红色的字体“PRIVATE-NET”即表示你区块链网络是正常的
配置自己的创世块是为了区分公有链,同一个网络中,创世块必须是一样的,否则无法联通。
新建文件fflngenesis.json,输入如下内容并保存,路径随意。
我的路径是: F:\app\Ethereum\Blockchain Env\
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "FFLN GenesisBlock",
"gasLimit":"0xffffffff"
}
解释一下各个参数的作用:
2.创建创世区块命令行进入fflngenesis.json存放地址目录,输入命令geth --datadir "./" init fflngenesis.json
出现错误“Fatal: invalid genesis file: json: cannot unmarshal hex string without 0x prefix
into Go struct field Genesis.extraData of type hexutil.Bytes”
百度翻译结果:“致命错误:无效的成因:JSON数据文件:不能没有0x前缀字符串
去hexutil型结构genesis.extradata字节领域。”
修改fflngenesis.json的extraData域为"0x00000000",保存后重新输入命令,又报错
Fatal: Failed to write genesis block: genesis has no chain configuration
这是版本问题。Geth1.6(含)以上需要配置config域
保存后再次输入命令,结果又报错,崩溃。
再看错误日志,原来是忘记加逗号,无语...
Fatal: invalid genesis file: invalid character '"' after object key:value pair加入逗号后再次执行
接着报错:
Fatal: invalid genesis file: invalid character '}' looking for beginning of object key string
嗯,config大括号后面的逗号,不需要的。
删除最后一个多余的逗号,继续执行,终于成功!
3.创建私有链输入命令:geth --datadir "./" --nodiscover console 2>>geth.log
当看到Welcome to the Geth JavaScript console!的提示,说明已经启动成功
4.在私有链上创建账户输入命令:personal.newAccount("123456")
"123456"表示此账号的密码.
输入命令eth.accounts可以查看新账户
这样,通过这两个命令可以创建出多个用户出来
若输入命令:personal.newAccount()
则系统会提示你输入账号密码,并确认,最后会显示一个新生成的账号
5.挖矿
输入命令:miner.start() 或者miner.start(1)
后者表示只使用一个线程工作,这样系统不会太卡
出现null是因为在第3步:创建私有链时设置了结果输出到日志,所以无法显示。这时可以退出重来,不设置输出到日志
输入命令:exit
然后再输入:geth --datadir "./" --nodiscover console 2
再输入:miner.start() 进行挖矿
注意点:1. 挖矿挖到的ether币会默认保在第一个账户中,即eth.acccounts[0]中。2. 挖矿是执行智能合约的基础。如果停止挖矿的话,不仅以太币会停止生成,所有智能合约的调用也会不起作用。3. 如果真的要停止挖矿,可以执行命令miner.stop()来停止挖矿4. 按上面的命令,应该是可以实现以太坊挖矿的。如果不行的话,有可能就是之前有存在的链,此时应该删除之前的数据。即删除~/.ethash文件夹和里面的文件即可。当使用输入日志的方式时,可以输入命令tail -f geth.log 来跟踪挖矿进度如何
如果tail -f 命令无效,出现错误
则可查看此文解决:http://www.cnblogs.com/hantianwei/archive/2012/03/14/2395634.html
6.查看主账户中以太币的数量
输入命令: eth.getBalance(eth.accounts[0]) 结果不为0,说明挖矿成功
7.启动windows下私有链图形节点
打开安装好的Ethereum Wallet.exe,这时会有一段漫长的Downloading new node...
如果一直down不下来,推荐查看此文,或许有所收获。
地址:http://blog.csdn.net/fengmm521/article/details/78446520
主页面如下:
可以看到,主账户有了5620个以太币。上方红色的字体“PRIVATE-NET”即表示你区块链网络是正常的
相关文章推荐
- 区块链开发(一)Windows平台搭建基于以太坊的区块链开发环境
- 区块链开发(一)搭建基于以太坊的私有链环境
- 基于以太坊的区块链浏览器搭建
- 区块链开发(一)搭建基于以太坊的私有链环境
- 区块链开发(二)Mac平台搭建基于以太坊的区块链开发环境
- 区块链开发(一)基于以太坊的私有链环境搭建介绍
- 基于以太坊的区块链浏览器搭建
- 搭建基于以太坊的私有链环境
- 区块链开发:(1)Ubuntu 搭建以太坊客户端geth
- 基于Docker的以太坊私有环境搭建
- 如何搭建基于以太坊的私有链
- 以太坊区块链学习之搭建私链
- 搭建基于以太坊的私有链环境
- 区块链开发(二)基于以太坊的Mist 客户端安装
- 区块链学堂(第三课):以太坊生产网络/测试网络/私有网络+Geth 搭建私有网络实战
- 【行业】软银集团研究小组测试基于区块链的跨运营商电信支付
- Mac下基于testrpc和truffle的以太坊智能合约开发环境搭建
- 干货|破解遗传算法——CryptoPups旺财,基于以太坊的区块链游戏(分享实录)
- 基于以太坊的区块链浏览器(java web开发)
- 以太坊开发入门,如何搭建一个区块链DApp投票系统