1. 下载以太坊代码:
https://github.com/ethereum/go-ethereum/releases
2. 编译生成geth命令行工具。
执行cmd/geth/main.go进行编译。
注意:
第一次通过git客户端下载go-etherenum的master代码,编译不过,没有查出原因。
第二次重新下载release的代码,顺利编译通过。
go编译器的版本也尽量新一些,之前用的1.4的编译器编译不过,查看资料提示是老版本缺少一些库。
3. 创建一个genesis.json文件,内容如下:
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x2000",
"extraData" : "",
"gasLimit" : "0x8000000",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": {}
}
这块是直接拷贝网上其他人的,将生成的genesis.json文件放在geth.exe同一目录下
4. 创建创世区块
geth --datadir "./" init genesis.json
--datadir "./"指定私链数据存放的文件夹位置,init初始化genesis.json,创建创世区块。
5. 创建私链
geth --datadir "./" console 2>>geth.log
console 2>>geth.log 将私链的日志打印到geth.log中,在你的存放私链的文件夹里你会找到该文件。
至此,私链已经搭建完成
6. 创建账户
回到之前创建私链的那个终端,可以看到,此时的终端处于待输入状态。
输入:eth.accounts,将会返回[],此时的私链还没有账户。
输入: personal.newAccount("123456"),回车后会返回一串hash,返回的hash代表创建账户的地址,这条命令中的password代表该账户的密码,可以随意指定。
再输入:eth.accounts将会返回刚刚创建的账户的地址,根据返回值我们可以知道,账户以数组形式存在,因此我们输入eth.accounts[0],也会返回刚刚创建账户的地址。
7. 查询账户余额
输入:eth.getBalance(eth.accounts[0]),返回值为账户余额,此时账户余额为0。
8. 挖矿
输入:miner.start(1),返回值会为true或者null,这都是正常的。
命令中的参数1代表只用当前机器的一块处理器进行挖矿,如果不输入参数,默认是“全力挖矿”,这样电脑会很容易发热
9. 停止挖矿
输入: miner.stop(),返回true,挖矿停止。
输入:eth.getBalance(eth.accounts[0]),此时可以看到最近挖到的以太币。
注意:我这边只有停止挖矿,账户余额才不会为0,否则一直都显示为0,跟wa网上一些wen'文章显示的不太一样。