以太坊github文档地址: https://geth.ethereum.org/docs/rpc/server

1. Geth下载与安装

1.1 Geth下载

https://geth.ethereum.org/downloads/

  • (下面是我下载的版本)在这里插入图片描述

1.2 Geth安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里是引用

  • 设置系统环境变量 /刚刚安装选择的路径
    电脑/计算机 ——> 属性 ——> 高级系统设置 ——> 环境变量 ——> 系统变量 ——> path
    在这里插入图片描述
  • 安装成功校验
    在这里插入图片描述

2. 搭建私有链

2.1 创世区块配置

  • 文件结构

这里是引用

  • genesis.json 文件内容
{
  "config": {
        "chainId": 8, 
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x1",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000066",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

2.2 创世区块初始化

在这里插入图片描述

  • geth … init …,表示初始化区块链

  • –datadir选项后面跟一个目录名 , 指定数据存放目录为 data0

  • genesis.json是init命令的参数。

  • 运行上面的命令,会读取genesis.json文件,并将创世区块写入到区块链中。

  • 查看log:Successfully wrote genesis state,说明初始化成功。(我们的私链也就搭建成功咯,可以启动自己的私链为所欲为。)

  • 在文件牡目录中查看初始化的结果在这里插入图片描述

3 启动私链节点 / 进入geth控制台

geth --datadir data0 --networkid 7788 console

  • geth console : 启动节点并进入交互式控制台
  • –datadir选项指定使用data0作为数据目录
  • –networkid选项后面跟一个数字,指定这个私有链的网络id为7788。
  • note : 网络id在连接到其他节点的时候会用到,以太坊公网的网络id是1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络id

在这里插入图片描述

这是一个交互式的Javascript执行环境,在这里面可以执行Javascript代码,其中>是命令提示符。在这个环境里也内置了一些用来操作以太坊的Javascript对象,可以直接使用这些对象。这些对象主要包括:

  • eth:包含一些跟操作区块链相关的方法
  • net:包含以下查看p2p网络状态的方法
  • admin:包含一些与管理节点相关的方法
  • miner:包含启动&停止挖矿的一些方法
  • personal:主要包含一些管理账户的方法
  • txpool:包含一些查看交易内存池的方法
  • web3:包含了以上对象,还包含一些单位换算的方法

4 创建账户

在这里插入图片描述

5 挖矿挖矿

开始挖矿: miner.start()

  • start的参数表示给挖矿分配的线程数。
  • 第一次启动挖矿会先生成挖矿所需的DAG文件,需要较长时间,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。
    在这里插入图片描述

停止挖矿: miner.stop()
(等进度走完就停止了)在这里插入图片描述

查看余额:eth.getBalance(eth.accounts[i])
(i : 第i个账户, 账户在accouts中用数组保存)
在这里插入图片描述

6 geth控制台常用命令

geth控制台操作教程: https://www.jianshu.com/p/9fa31e4cdf4d

personal.newAccount():创建账户;
personal.unlockAccount():解锁账户;
eth.accounts:枚举系统中的账户;
eth.getBalance():查看账户余额,返回值的单位是 Wei(Wei 是以太坊中最小货币面额单位,类似比特币中的聪,1 ether = 10^18 Wei);
eth.blockNumber:列出区块总数;
eth.getTransaction():获取交易;
eth.getBlock():获取区块;
miner.start():开始挖矿;
miner.stop():停止挖矿;
web3.fromWei():Wei 换算成以太币;
web3.toWei():以太币换算成 Wei;
txpool.status:交易池中的状态;
admin.addPeer():连接到其他节点;

更多推荐