区块链——配置和使用geth

一测试是否安装成功

win+r打开cmd,输出geth help
出现类似以下场景代表安装成功

在这里插入图片描述

二创建创世文件genesis.json

genesis.json是创世区块配置文件,在安装目录下新建一个txt文件,把内容复制进去后保存,最后改名为genesis.json
提供两个文件的内容,选其一即可。

 {
      "config": {
            "chainId": 10,
            "homesteadBlock": 0,
            "eip155Block": 0,
            "eip158Block": 0
        },
      "alloc"      : {},
      "coinbase"   : "0x0000000000000000000000000000000000000000",
      "difficulty" : "0x00000002",
      "extraData"  : "",
      "gasLimit"   : "0x2fefd8",
      "nonce"      : "0x0000000000000042",
      "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
      "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
      "timestamp"  : "0x00"
    }
{

  "difficulty" : "0x20000",

  "extraData"  : "",

  "gasLimit"   : "0x8000000",

  "alloc": {},

  "config": {

        "chainId": 15,

        "homesteadBlock": 0,

        "eip155Block": 0,

        "eip158Block": 0

    }

}
{
“config”: {
“chainId”: 123,
“homesteadBlock”: 0,
“eip150Block”: 0,
“eip155Block”: 0,
“eip158Block”: 0,
“byzantiumBlock”: 0,
“constantinopleBlock”: 0,
“petersburgBlock”: 0,
“istanbulBlock”: 0
},
“alloc”: {},
“coinbase”: “0x0000000000000000000000000000000000000000”,
“difficulty”: “0x2000”,
“extraData”: “”,
“gasLimit”: “0x2fefd8”,
“nonce”: “0x0000000000000042”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“timestamp”: “0x00”
}

在这里插入图片描述

三配置文件,初始化

1.打开cmd
2.进入geth的安装路径,如下图我放在D盘的Geth文件中
3.输入geth --datadir data init genesis.json

在这里插入图片描述
成功则会在安装路径下出现data文件夹用于存放数据。
在这里插入图片描述

启动节点连接私有测试网络

geth --datadir data --networkid 123 --nodiscover console
--networkid 123参数表示区块链网络ID标识,--nodiscover参数表示节点私有,console参数表示进入geth控制台。
连接测试网进入控制台,此时我们已经进入geth测试网的交互式控制台,窗口也显示「Welcome to the Geth JavaScript console」成功提示!

查询账户列表

输入指令:eth.accounts     输出结果:[]
代表账户未创建

在这里插入图片描述

新建账户

输入指令:personal.newAccount("123")
账户新建成功,返回账户地址,123为账户密码。

在这里插入图片描述

查询账户余额

输入指令:eth.getBalance(eth.accounts[0])  数组形式保存账号,所以0代表第一个账户,输出0
这个账户的余额是0,因为还没有开始挖矿。

在这里插入图片描述

启动或停止挖矿

miner.start();admin.sleepBlocks(1);miner.stop()  
启动挖矿程序,当挖到1个区块时停止挖矿,挖矿所得默认进入第一个账户里。成功挖出1个后我们的节点就是矿工节点

在这里插入图片描述
需要注意的一点是开启挖矿后,如果难度过低,挖矿会很快,信息会刷屏,需要你盲打miner.stop()才会停止。
在这里插入图片描述

参考:https://www.cnblogs.com/lvdongjie/p/11207021.html