我是靠谱客的博主 单纯高跟鞋,最近开发中收集的这篇文章主要介绍Windows通过geth搭建区块链(私链)安装部署,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Geth是Go Ethereum开源项目的简称,它是使用Go语言编写且实现了Ethereum(以太坊)协议的客户端软件,也是目前用户最多,使用最广泛的客户端。通过Geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能。

安装部署

1、  下载安装geth

首先下载geth,进入官网https://geth.ethereum.org/downloads/,选择windows版本。但是有些地方因为网络vpn的问题,无法通过官网下载可以去https://ethfans.org/wikis/Ethereum-Geth-Mirror下载,这是国内网站但是相对于官网geth版本更新较慢,如果使用Google Chrome下载的可能会提示文件危险,不用理会,选择保留即可。从官网进直接选择windows版本的geth下载如下图:

下载完成之后,双击下载软件,首先选择 I  agree,然后next,安装路径选择按照默认路径安装即可,点击install(所有信息都会放置在这个路径下,若C盘空间过小,建议更改路径到其他空间较大的磁盘)

等待安装完成,然后点击close,进入安装目录,发现两个文件:

2、 初始化创始区块

首先初始化创世区块,在根目录下创建文本文件,重命名为genesis.json,新建文件夹命名为chain,在genesis.json文件中添加创始区块代码

{
  "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"
}

以管理员身份打开命令行窗口(非管理员身份会失败)。在geth目录下运行命令初始化创世块:

geth -datadir "F:gethchain0" init genesis.json

运行结果:

4、新建账户

 在命令行窗口(管理员模式)输入命令进入控制台:

geth -datadir "F:gethchain0" console

运行结果:(显示Welcome to the Geth JavaScript console!即为成功)

创建新账户,密码自己设置,用来启动私有链的挖矿。创建的第一个账户默认为矿工。创建成功会返回该账户的公钥(注意大小写)。

personal.newAccount("密码")

 运行结果:

输入exit退出控制台。

5、启动私有链

在启动私有链节点时,首次会要求输入账户密码(注意命令里边的ip地址是自己的IP地址,)

geth --identity "TestNode" --rpc --rpcport "8545" --datadir "f:gethchain0" --port "30303" --allow-insecure-unlock --nodiscover console

各选项含义如下:

  • –identity:指定节点 ID;
  • –rpc:表示开启 HTTP-RPC 服务;
  • –rpcport:指定 HTTP-RPC 服务监听端口号(默认为 8545);
  • –datadir:指定区块链数据的存储位置;
  • –port:指定和其他节点连接所用的端口号(默认为 30303);
  • –nodiscover:关闭节点发现机制,防止加入有同样初始配置的陌生节点。

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

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

控制台操作

进入以太坊 Javascript Console 后,就可以使用里面的内置对象做一些操作,这些内置对象提供的功能很丰富,比如查看区块和交易、创建账户、挖矿、发送交易、部署智能合约等。

常用命令有:

  • 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():连接到其他节点;

这些命令支持 Tab 键自动补全,具体用法如下。

上面是创建了一个区块链节点,如果要构成网络,则需要创建多个区块链节点。打开一个新的命令行窗口,定位到geth.exe所在目录,然后输入下面的语句,参考第一个节点建设。

geth --datadir f:gethchain1 init f:gethgenesis.json

初始化后,启动第二个区块链节点

geth --identity "TestNode" --rpc --rpcport "8546" --datadir "f:gethchain1" --port "30304" --allow-insecure-unlock --nodiscover --ipcdisable console

通过admin.nodeInfo.enode获取第二个节点的enode,如图:

将enode内容复制出来,形成admin.addPeer("enode://e8e6fec337a5d7e03a1aabe944175b1d3a2141bf735f181a89ff6bf1f2a1903a8008a465244c0077b461cc70a46751611acf79dfefb50db6d4a4eeca0ea47a4b@localhost:30305?discport=0"),并在第一个区块链窗口中执行即可。

其中IP地址要改成第二个区块链所在机器的IP。

这样最简单的区块链网络就形成了,两个区块链节点的数据是实时同步了,这就是所谓分布式账簿。

最后

以上就是单纯高跟鞋为你收集整理的Windows通过geth搭建区块链(私链)安装部署的全部内容,希望文章能够帮你解决Windows通过geth搭建区块链(私链)安装部署所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部