第一步、准备工作
先创建一个privatechain的文件夹,进入privatechain文件夹创建一个genesis.json文件(用来存放创世区块的信息)和一个data0文件夹(主要是用来存放区块链数据)以太坊官方文档中对创世区块有明确的定义的,直接将下面的代码复制进genesis.json中就好。
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x4",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
第二步、初始化、写入创世区块
$ cd privatechain
$ geth --datadir data0 init genesis.json
上述命令主要是init
,讲创世区块信息写入私有链中,保存在data0
文件夹里面,这时可以发现data0里面多了geth
和keystore
文件
第三步、启动私有链节点
输入geth --datadir "./data0" --nodiscover console 2>>geth.log --dev.period 1
在之前的版本中是不需要加--dev.period 1命令就可以自动挖矿,在后面的版本中period值默认为0,只有发送交易才会自动挖矿,所以这里我们改下默认值让它在没有交易发生时也可以挖矿。可以参考https://blog.csdn.net/wo541075754/article/details/79260040
进入命令行模式,其中参数
–datadir 代表文件夹地址(data0),
–nodiscover 代表该链条不希望被其他节点发现,
console >> geth.log 代表将控制台输出到文件geth.log中去
当然从命令行模式退出,也很简单,只要打入exit, 即可退出
...
Welcome to the Geth JavaScript console!
出现上述代码即成功进入控制台
探索Javascript Console
进入以太坊Javascript Console后,就可以使用里面的内置对象做一些操作,这些内置对象提供的功能很丰富,比如查看区块和交易、创建账户、挖矿、发送交易、部署智能合约等。接下来介绍几个常用功能,下面的操作中,前面带>的表示在Javascript Console中执行的命令。
一、创建账户
前面只是搭建了私有链,并没有自己的账户,可以在js console中输入eth.accounts来验证:
> eth.accounts
[]
> personal.newAccount()
Passphrase:
Repeat passphrase:
"0x0416f04c403099184689990674f5b4259dc46bd8"
二、查看账户余额
eth对象提供了查看账户余额的方法:
> eth.getBalance(eth.accounts[0])
0
三、启动&停止挖矿
通过miner.start()来启动挖矿:
>eth.blockNumber
>miner.start()
null
>>eth.blockNumber
>miner.stop()
这里miner.start()返回值为null不代表没有挖矿,我们可以通过eth.blockNumber来查看前后的区块数量才判断是否挖了矿(tip:挖矿速度与电脑性能相关,如果没有挖矿成功可以试着多等一小会儿再试试)(可以用下面的命令使他挖到一个区块就退出挖矿miner.start(1);admin.sleepBlocks(1);miner.stop();
)
本文参考了//www.greatytc.com/p/235c24aee284
https://blog.csdn.net/hpp24/article/details/79401298