以太坊之Geth的安装使用(Geth介绍,安装,搭建私有网络,挖矿)

1.Geth介绍

Geth 又名Go Ethereum.是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目。Geth可以被安装在很多操作系统上,包括Windows、Linux、Mac的OSX、Android或者IOS系统.
Geth官网:https://geth.ethereum.org/
Geth的Github地址:https://github.com/ethereum/go-ethereum
geth的作用:Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等

2.Geth的安装

首先在官网下载

第一步,下载安装geth

在这里插入图片描述
点进去等待一会
在这里插入图片描述
然后开始我们的“傻瓜式安装”
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二步,配置环境变量

在这里插入图片描述
可以通过cmd检查一下是否安装成功

geth help 

在这里插入图片描述

第三步,新建 genesis.json

新建 genesis.json在geth所在文件夹中

{
    
    
  "config": {
    
    
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {
    
    }
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    
     },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
 

在这里插入图片描述

第四步,初始化

打开cmd进入geth所在文件夹,执行初始化命令

geth --datadir data init genesis.json

然后会自动生成data文件夹
在这里插入图片描述

第五步,搭建私有网络

完成上一步后,创世区块已经产生,geth启动时,默认使用IPC协议,为确保geth节点可以通过RPC协议访问,命令中需要带上RPC参数。
命令窗口执行命令

geth --datadir "E:\Geth\data" --rpc -rpcapi "eth,web3,miner,admin,personal,net" --rpccorsdomain "*" --nodiscover --networkid 15

命令以服务的形式持续运行,因此执行其他命令需要打开一个新的命令行窗口。

在这里插入图片描述

1.IPC协议接入

IPC协议接入,打开另一个窗口输入下面命令,可以使用IPC协议接入到节点上

命令

geth attach ipc:\\.\pipe\geth.ipc

结果
在这里插入图片描述

2.RPC协议接入

RPC协议接入,打开另一个窗口输入下面命令,可以使用RPC协议接入到节点上
命令

geth attach ipc:http://127.0.0.1:8545

结果
在这里插入图片描述

第六步,创建新账户

使用 personal.newAccount()命令,根据提示输入密码,执行结果如下:

personal.newAccount()

在这里插入图片描述
. 账户创建后,需要确定使用coinbase账户或者etherbase账户。更改原有的coinbase账户地址,可以通过address.miner对象的setEtherBase函数进行操作。这个操作将使用新的账户替换原有的coinbase账户。更改结果将显示为ture或false。

miner.setEtherbase()

在这里插入图片描述
执行查询命令,查看地址是否已经更改生效。
在这里插入图片描述

第七步,开始挖矿

miner.start()

或者

miner.start(4)

start中的参数代表用于挖矿的线程数量。该命令将自动执行挖矿程序。
在第一个窗口里可以看到挖矿记录。
在这里插入图片描述
停止挖矿

miner.stop()

ps:创建新账户的补充

相关参考博客

1.使用geth account new

geth account new

geth是以太坊的go语言客户端。创建账户只需要执行geth account new命令。
在这里插入图片描述
查询账户

geth account list

在这里插入图片描述
keyfiles存储在~/.ethereum/keystore路径下,一般按照创建时间顺序排列,格式如下:

$ cd .ethereum/keystore
$ ls
UTC–2018-07-08T21-07-05.374654217Z–df90109c1497bc6f3a0cd98cdc114ec89481447e
UTC–2018-07-08T21-27-48.567366972Z–0ad31ccaf888cf8499de4cdfa18f8d746a1d27e7

keyfile的文件内容如下:

{
    
    
    "address":"c9a9b585d1b524867d4f3a6441b1bc46257393be",
    "crypto":{
    
    
        "cipher":"aes-128-ctr",
        "ciphertext":"41f06179f48158091dcf0d03d8b1c3e18470633753ca41bc539c5282fd0ee9f5",
        "cipherparams":{
    
    
            "iv":"2354704e5a7ef350aedb24dccfe7b975"
        },
        "kdf":"scrypt",
        "kdfparams":{
    
    
            "dklen":32,
            "n":262144,
            "p":1,
            "r":8,
            "salt":"5b188d2fe19bc786cec6eac97f2e20eef44884a7d4270dc915f05be99e66a7c5"
        },
        "mac":"156e6b733a217b9fc8d51f98acc8d37b7d07de753cc8daf3c2ecd313f86f05de"
    },
    "id":"9ad16a5a-8bbb-4d82-891c-15279aa40553",
    "version":3
}

2.使用geth控制台

使用geth控制台创建新账户,需要在控制台模式下开启geth交互模式。
执行命令

geth console 2>> file_to_log_output

在这里插入图片描述
创建账户
执行命令

personal.newAccount()

使用 personal.newAccount()命令,根据提示输入密码,执行结果如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46526828/article/details/113779366