Geth私链的多节点运行「建议收藏」

Geth私链的多节点运行「建议收藏」前一阵分别介绍了在Ubuntu和CentOS下搭建基于Geth的以太坊私链,这篇文章介绍如何搭建Geth多节点的运行。提示:在Ubuntu和CentOS下搭建以太坊私链,请参考《在Ubuntu下使用Geth搭建自己的以太坊私有链》和《CentOS7下安装Geth,搭建以太坊私有链》一、在Windows下安装Geth为了方便测试,我在Windows下搭建了一个套Geth环境。安装方…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前一阵分别介绍了在Ubuntu和CentOS下搭建基于Geth的以太坊私链,这篇文章介绍如何搭建Geth多节点的运行。

提示:在Ubuntu和CentOS下搭建以太坊私链,请参考《在Ubuntu下使用Geth搭建自己的以太坊私有链》和《CentOS7下安装Geth,搭建以太坊私有链

一、在Windows下安装Geth

 为了方便测试,我在Windows下搭建了一个套Geth环境。安装方法比较简单,在官网 https://geth.ethereum.org/downloads/ 下载相应的安装文件,格式为exe,直接安装就可以了。我的操作系统是Windows 10专业版,安装的Geth版本为1.9.2。安装过程中如果杀毒软件报毒,请忽略。

安装完后执行cmd,打开控制台窗口,执行如下命令:

geth version

返回如下结果,表示安装成功:

Geth私链的多节点运行「建议收藏」

二、使用remix验证私链

我们自己创建的私链是否能用呢?可以使用remix验证一下。

  • 准备工作

首先使用RPC通信方式启动私链,并在私链上创建一个用户,挖矿,确认新建的账户下有余额。

Geth私链的多节点运行「建议收藏」

提示:具体启动私链,创建账户以及挖矿等操作,请参考《在Ubuntu下使用Geth搭建自己的以太坊私有链

  •  验证私链

在浏览器输入http://remix.ethereum.org,打开remix IDE。在左侧工具栏选择 Deploy & run transactions

Geth私链的多节点运行「建议收藏」

然后在 Environment 中选择 Web3 Provider

Geth私链的多节点运行「建议收藏」

在弹出框上点击OK,然后在输入框中输入本机的IP地址,通常使用默认的localhost和8545即可。

Geth私链的多节点运行「建议收藏」

点击OK后,在左侧就可以看到私链上的账号以及账号对应的余额了。

Geth私链的多节点运行「建议收藏」

三、多节点运行

这一节,我利用以前在Linux下创建的Geth节点和刚创建的Windows节点建立连接,实现多节点运行。

多节点运行需要注意以下几点:

  • 多节点运行要使用rpc通信方式启动私链。同时启动参数中的 nodiscover 参数很重要,它可以避免后启动的节点被先启动的节点自动扫描到,而必须由我们手动去添加节点
  • 必须使用相同的JSON配置文件初始化创始区块
  • rpcport 和 port参数必须和第一个不同
  •  启动节点

首先,分别启动两个节点,然后查看两个节点下的连接节点信息。

Linux连接节点信息如下:

Geth私链的多节点运行「建议收藏」

Windows连接节点信息如下:

Geth私链的多节点运行「建议收藏」

  • 添加节点

在Linux下添加Windows节点。两个节点只要有一个节点主动建立连接关系即可,另一个节点会自动获取连接关系。首先在Windows执行查看节点信息命令:

> admin.nodeInfo.enode

 然后将返回结果的字符串复制下来,在Linux下添加节点时会用到:

Geth私链的多节点运行「建议收藏」

在Linux节点上执行添加节点命令:

> admin.addPeer()

返回true,表示添加成功

Geth私链的多节点运行「建议收藏」

需要注意的是,由于两个节点不在同一台机子,所以执行addPeer函数时,参数字符串最后的IP地址和端口号必须是另一个节点的IP和启动端口。因为我的Linux节点安装在虚拟机上,这里我的IP是局域网地址 192.168.0.122,端口是节点启动的 port 参数指定端口 30305。

这时再分别查看两个节点下的连接节点信息,就会看到发生了变化。

Linux下的连接节点信息:

Geth私链的多节点运行「建议收藏」

Windows下的连接节点信息:

Geth私链的多节点运行「建议收藏」

这时,Windows节点启动挖矿,Linux节点的Log文件会有输出:

Geth私链的多节点运行「建议收藏」

提示:需要注意的是,我的Windows节点在挖矿时,Linux节点会出现无法同步的错误,且会自动删除连接节点的信息,待Windows节点停止挖矿后,过一会自动恢复。排查后发现是由于两个系统时间不同步引起的。这个问题不知道在物理机上创建多节点环境会不会出现,大家可以注意下。

四、不同节点进行转账

这时我们可以参考《在Ubuntu下使用Geth搭建自己的以太坊私有链》文章中转账一节的方法,从Windows节点转账给Linux节点下的某个账户。我这里是从Windows节点下的第一个账户转账给Linux节点下的第二个账户。

执行转账操作并启动挖矿后,我们可以看到Linux节点下第二个账户的余额发生了变化:

Geth私链的多节点运行「建议收藏」

Geth私链的多节点运行「建议收藏」

提示:在Windows下转账时,需要先解锁账户。新版本的Geth出于安全考虑,默认禁止了HTTP通道解锁账户,相关issue:https://github.com/ethereum/go-ethereum/pull/17037。要解决此问题,可在启动参数中增加 –allow-insecure-unlock 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184618.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++ 虚函数表解析[通俗易懂]

    C++ 虚函数表解析[通俗易懂]C++虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

    2022年4月19日
    49
  • idea 查看已经填写的激活码_最新在线免费激活[通俗易懂]

    (idea 查看已经填写的激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
    64
  • 五种经典网页布局设计方法_网页布局类型及实例

    五种经典网页布局设计方法_网页布局类型及实例不得不说,网页设计绝对是有套路的!网页布局虽然千变万化,但是如果你仔细观察,会发现有一些布局适用范畴相当广,经久不衰。今天的文章,我们就来聊一下5种经典的网页布局。在开始一个新的网页设计项目的时候,不知道你会不会有那么一瞬间的犹豫:“这个项目要从哪里着手呢?”伴随着这种犹豫的,是“做点前所未有的作品”的冲动。不过,很多时候,这些冲动和犹豫都在需求的磨合、设计的细化中,逐步淡化。相比大家也都发现了,…

    2025年6月8日
    2
  • android酒店点餐系统设计,基于安卓Android酒店点餐系统APP的设计与实现(MySQL)(含录像)…

    android酒店点餐系统设计,基于安卓Android酒店点餐系统APP的设计与实现(MySQL)(含录像)…基于安卓Android酒店点餐系统APP的设计与实现(MySQL)(含录像)(毕业论文9900字,程序代码,Android客户端和JAVA服务端,MySQL数据库)系统需求分析手机端:1.用户注册、登录、修改密码、修改个人信息2.查看菜单、加入菜单列表,选择日期,模拟在线支付或者餐后付款3.查看个人订单,用餐评论后台管理端:1.管理员登录、修改密码2.酒店菜…

    2022年6月19日
    40
  • QUOTENAME函数的用法

    QUOTENAME函数的用法quotename函数的语法为:quotename('expression1','expression2')expression1:指的是需要被特殊处理的字符expre

    2022年7月3日
    36
  • 为 PHPer 准备的 Go 入门知识

    为 PHPer 准备的 Go 入门知识

    2022年2月17日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号