主页 > imtoken官方版下载安卓最新版 > Win10以太坊私链多节点部署

Win10以太坊私链多节点部署

Win10以太坊私链多节点部署【前言】我觉得学习一个新东西最难的就是环境部署。 部署完成后,后续的开发工作就是比较简单的语法问题。 所以我的文章主要讲环境部署,部署成功的套路操作很容易找到。 虽然关于以太坊部署的文章很多,但是我发现都不够详细,或者跑不起来,或者写的乱七八糟,所以还是决定写一下。 [摘要] 在学习区块链的时候,我看了很多论文,但几乎没有实践过。 因此,我想从以太坊的部署和智能合约的应用入手,精通以太坊的常规操作,然后开始研究源码,可以包括以太坊和Hyperledger。 因为我觉得不管看多少论文,不管怎么理解其中的道理,都没有阅读源码的体会那么深刻和详尽。 所以这也算是一个新的进度计划。 这篇文章主要阐述了我在部署以太坊时遇到的一些问题以及相应的解决方案。 希望能为这条路上的新手写一篇“踩雷指挥”。 1. 环境和工具

操作系统:Windows10

以太坊开发客户端geth:

版本:我下载的是1.9.1

下载链接

geth:Go Ethereum开源项目的简称,是一个用于连接以太坊网络并进行相关开发的客户端工具。 使用 Geth,您还可以构建自己的以太坊私有链,部署智能合约,挖矿,进行交易等等。 (建好联盟链后再试试)wiki就是文档。

以太坊钱包以太坊钱包:

下载链接:

注意:钱包要匹配geth的版本。 具体版本会在钱包报错的时候知道。

以太坊钱包是以太坊账户的图形化管理工具,用于直观显示节点账户余额,并进行账户创建和转账交易。 钱包所做的所有操作都可以在geth命令行中操作以太坊全球有多少个节点,而且难度不大。 再加上版本兼容问题,所以我觉得不能用。 不过看看长什么样子也无妨。

二、geth和Ethereum Wallet的安装

双击 .exe 文件将 geth 安装到默认位置 C:/Program Files/Geth 或自定义安装。 不同的是,如果安装在C盘,访问Geth文件夹下的文件,比如后文提到的genesis.json,需要管理员权限。 即打开一个cmd终端,“右击开始菜单,选择管理员模式下的Windows Powershell”。 如果自定义安装到非系统盘,直接win+R输入cmd即可。

以太坊钱包解压后可以直接使用。

3. 多节点私链建设

我们以三个节点为例。 三个节点在Ip下属于不同的端口,即都是Localhost(127.0.0.1)。 如图所示:

以太坊有服务器吗_以太坊全球有多少个节点_以太坊官网以太坊

1.准备创建节点配置内容

geth安装位置的geth文件夹下的genesis.json文件如下。 注意后缀必须是json。 某些文件夹不显示文件扩展名。 您可以单击查看以显示文件扩展名。 我一开始没有显示,实际上做了一个genesis.json.txt文件,所以没用。

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

2.创建并启动第一个节点

打开终端:Win+R,输入cmd,回车。 在命令行进入Geth目录,如图:

以太坊全球有多少个节点_以太坊有服务器吗_以太坊官网以太坊

执行两条命令:

(1)初始化创世节点:geth --datadir "node1" init genesis.json

(2)启动node1节点:geth --datadir "node1" --rpccorsdomain "*" --networkid 989898 --rpc console --port 30304 --rpcapi "db,eth,net,web3" --rpcaddr "localhost " --rpcport 8546 --ipcdisable --allow-insecure-unlock

当第一个命令显示如下时,第一步成功:

以太坊有服务器吗_以太坊全球有多少个节点_以太坊官网以太坊

当第二条命令显示如下时,表示第二步成功:

以太坊有服务器吗_以太坊全球有多少个节点_以太坊官网以太坊

两条命令执行成功后,进入Geth文件夹,可以看到多了一个node1文件夹,里面有node1的相关配置。 其中keystore是为后面为节点创建的账户保存信息的地方。 一个节点可以创建多个账户,创建一个账户后,keystore中就会多一条记录。 node1的其他配置放在geth中。 具体情况我还不知道,暂时不需要。 以后启动node1时,cmd进入geth文件目录后,直接执行第二条命令即可。

以太坊官网以太坊_以太坊有服务器吗_以太坊全球有多少个节点

3.创建并启动第二个和第三个节点

为每个节点打开一个 cmd 窗口。 执行与步骤2几乎相同的操作。由于所有三个节点都必须加入同一条私有链,因此所有创世节点都必须通过genesis.json文件进行配置。 指令的关键点是不同的节点:

否则会报错:

启动协议栈时出错:访问被拒绝。

命令中的其他参数,cmd进入Geth目录后,输出geth --help查看详情。 文章后面也会进行分析。

Node2节点创建和启动:

(1) geth --datadir "node2" init genesis.json

(2) geth --datadir "node2" --rpccorsdomain "*" --networkid 989898 --rpc console --port 30303 --rpcapi "db,eth,net,web3" --rpcaddr "localhost" --rpcport 8547 --ipcdisable --allow-insecure-unlock

node3节点创建和启动

(1) geth --datadir "node3" init genesis.json

(2) geth --datadir "node3" --rpccorsdomain "*" --networkid 989898 --rpc console --port 30306 --rpcapi "db,eth,net,web3" --rpcaddr "localhost" --rpcport 8548 --ipcdisable --allow-insecure-unlock

成功后:

以太坊全球有多少个节点_以太坊有服务器吗_以太坊官网以太坊

以太坊全球有多少个节点_以太坊有服务器吗_以太坊官网以太坊

4、之后就可以在节点之间进行如下操作:

多节点以太坊私链搭建成功后,可以做很多事情,这些在网上很容易找到,这里不再赘述。 请注意以太坊全球有多少个节点,所有涉及与私链或节点交互的操作都需要在挖矿后生效。 最好一直用一个节点挖矿。 每次传输都必须解锁。

5. 以太坊钱包的使用

只有当以太坊钱包客户端显示“私网”时,才说明钱包链接的是本地搭建的私链,否则应该链接到以太坊的公链。 我遇到了一个问题。 双击运行钱包软件后,发现无法连接私链。

解决方案:

以管理员模式打开命令行,进入以太坊目录,执行命令./Wallet --rpc”127.0.0.1:30303”(./Wallet --rpc”127.0.0.1”也可以)(前提是你的可执行钱包文件重命名为Wallet,./Wallet命令必须在具有管理员权限的终端上执行,就好像“./”是管理员模式下的命令一样)

但是当我写这篇文章的时候,我发现这个解决方案不再奏效了,尽管我确实成功了。 提示如下图所示。 我猜应该还是因为钱包和geth的版本不匹配。 所以正如我之前提到的,钱包只是图形化的。 如果找不到匹配geth的钱包,建议不要使用该钱包。 因为你换了其他版本,启动节点相关的说明可能会改变(我试过了)。

以太坊官网以太坊_以太坊有服务器吗_以太坊全球有多少个节点

钱包就是这样。 我想一个节点应该运行一个钱包应用程序。 钱包用于显示该节点下的所有账户。 一个节点可以有多个账户。 在钱包或geth命令行中创建账户效果相同。 节点的 keystore 文件夹中有几个记录,用于多个帐户。

事实上,当你发现你的钱包乱七八糟时,它可能保留了以前的信息。 您可以删除钱包保存的信息。 存放位置如下图所示。 当找不到路径中对应的文件夹时,可能是隐藏了。 单击显示并选中显示隐藏文件。

以太坊官网以太坊_以太坊有服务器吗_以太坊全球有多少个节点

6.节点启动命令参数说明

由于大部分参数的作用上面已经讲过,这里不再赘述。 主要解释两个参数:

geth --datadir "node2"  --rpccorsdomain "*"  --networkid 989898  --rpc console --port 30303 --rpcapi "db,eth,net,web3" --rpcaddr "localhost" --rpcport 8547 --ipcdisable  --allow-insecure-unlock

7、提示:命令行前显示“>”:表示geth控制台模式,执行geth相关指令。退出geth,输入exit回车即可

只有在命令行前显示文件目录时,才返回系统命令控制台模式。 例如geth --help不能在geth控制台模式下输入,需要cmd进入Geth目录后输入该命令。

8. 下一节预览:我应该解释一下智能合约的使用。 现在我只是对使用remix部署简单合约并进行测试有一个简单的了解。