目录
一、Geth介绍
二、Geth安装
1.下载安装
2.配置环境变量
三、Geth私有链搭建
1.创建创世块文件
2.初始化区块链
3.启动私有节点
四、账户交易
1.创建账户
2.挖矿操作
3.查看区块和奖励
4.转账交易
一、Geth介绍
Geth 又名Go Ethereum.是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目。Geth可以被安装在很多操作系统上,包括Windows、Linux、Mac的OSX、Android或者IOS系统。
Geth的作用:Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等
二、Geth安装
1.下载安装
Windows系统进入官网下载,下载地址:Downloads | Go Ethereum
紧接着进行“傻瓜式安装”,一直点击next,修改安装路径后点击install,geth完成安装。
2.配置环境变量
右键我的电脑,点击电脑属性,进入高级系统设置——环境变量——新建系统变量
启动命令管理器检查geth是否安装成功
geth version
geth help
三、Geth私有链搭建
1.创建创世块文件
新建genesis.json文件,放在所安装geth的根目录下
{ "config": { "chainId": XXX, "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"}
2.初始化区块链
要创建使用此创世块的区块链节点,首先使用geth init
导入并设置新链的规范创世块。这需要将路径genesis.json
作为参数传递。在命令行输入以下任意一个命令执行,当log信息中显示了Successfully wrote genesis state,说明geth初始化完成。
geth init --datadir xxxx genesis.json //"xxxx"是指定数据存放的目录,例如datageth --datadir xxxx init genesis.json
3.启动私有节点
初始化完成后,创世区块已经产生,启动私有节点就可以对其进行操作。当界面显示Welcome to the Geth JavaScript console!就成功进入了。
geth --datadir "xxxx" --networkid " />node1.log
–networkid后面跟数字,表示指定这个私有链的网络id。以太坊公网的网络id是1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络id并且不能为1;
–nodiscover是让控制台启动以后不去同步节点;
2>node1.log就是将日志信息输出到当前目录下的output.log的文件里;
四、账户交易
1.创建账户
使用personal对象,在客户端创建一个账户
personal.newAccount("xxx") //新建账户eth.accounts //查询当前节点下所有账户
2.挖矿操作
输入以下命令进行挖矿操作。start中的参数X代表用于挖矿的线程数量,空值默认为全部。该命令将自动执行挖矿程序。
开始挖矿:miner.start()或者miner.start(X)确认挖矿状态:eth.mining停止挖矿:miner.stop()设置挖矿账户miner.setEtherbase(account[" /> 3.查看区块和奖励
输入以下命令进行查看
eth.blockNumbereth.getBalance(eth.accounts[0])//这里的accounts[0]就是我们创建的第一个账户
4.转账交易
转账之前需要先对账户执行解锁操作。要使交易被处理,必须要挖矿,启动挖矿后,等待挖到一个区块之后就可以停止挖矿了。完成交易操作后去查询转账账户和收款账户,金额都会有变化。
解锁账户:personal.unlockAccount(eth.accounts[" />