• 如何使用家庭网络运行Aleo Prover


    目前ALEO三测第二阶段太卷了,虽然现阶段没有激-励,但是仍然有不少人卷进去,导致现在8核的云服务器一天才只能跑出三四个scores,可见大家的热情还是非常高的,但是这对于之前购买云服务器的用户来说,就比较难受了,如果继续卷下去,那么基本有没法玩了,不少人想着要是家用主机能运行prover就好了,但是国内网络不行,导致出现4133连接不上,这里暴躁兔通过尝试,目前已经可以顺利连接跑通,并挖出了几个scores,这里为大家分享一下方法。

    251368518a75eedc40a7a63f0a9f4f26.jpeg

    关于aleo prover

    关于第二阶段,我们可以得知主要进行coinbase puzzle计算,首先我们的程序连接到节点,然后从节点获取最新的区块高度和coinbase puzzle,然后调用cpu进行本地计算,计算出结果后进行提交,这样可以获取相应的scores,从区块浏览器中可以看到,一个区块中可以有多个结果,然后根据target来获取分数scores。

    170c1c07021ec9dd5fd5895945efa7e1.jpeg

    这种方式比较类似于挖币的形式,官方将其称之为posw,从字面意思看,是pos和pow的结合,也就是说,运行节点的是pos,然后节点将prover任务下发到我们每个运行prover程序的服务器中,接着我们通过计算来获取scores。

    同样这种方式和你接入池子也比较类似,不需要同步所有区块,只要连上节点就可以进行。因此第三阶段如果是POS的话,那么也可以认为是通过这种方式来使用cpu/gpu来参与。

    网络的问题

    明白了前面所说的,暴躁兔接下来主要讨论网络的问题,不少人虽然本地主机打开了4133和3033端口,但是通过家庭网络尝试仍然无法连接4133端口,主要是没有一个公网的ip和节点进行通讯,因为节点主要是通过这两个端口来与prover进行通讯,内网的话是无法进行通讯的。

    国内公网ip以及大内网在某些方面的限制,因此导致连接节点的时候受阻,因为区块链节点是peer to peer的,因此你的节点需要获取别人节点的最新区块信息,同时将自己本地cpu计算的结果公开让别人节点进行验证,也就是说,如果国内网络不允许或者国内没有稳定的全节点,那么prover计算是没法进行的(有的项目国内可以跑全节点,有的不行大致就是这个原因)。

    因此我们需要做的是突破国内网络限制,如果你使用的是国外的云服务器的话,自然没有这种限制,直接就可以通过云服务器打开端口进行prover计算,同时云服务器一般还配置一个公网ip,因此你的云服务器可以和其他节点进行相互通讯。

    互联网(公网)——电信公司公网服务器——电信内网(局域网)——家庭光猫路由器(局域网)

    如果将路由模式改为桥接模式,这样可以使用电信公司分配的公网ip了,当然这个ip也是有一定限制的。

    解决方案

    目前的解决方案思路有两个:

    第一个是申请公网ip(这种方案没有尝试,仅作为一种思路)

    当然这个公网也是在国内网络环境下,这里由于条件受限我们没有进行尝试。一般申请国内公网ip主要是联系电信运营商,并告知要申请公网ip,这种一般客服都会同意,接着会有电信宽带的人上门将光猫设置里将路由模式改为桥接模式,此时你就拥有公网ip了,当然前提是要得知宽带的用户名和密码,如果不知道就问装宽带的人。

    桥接完成后关闭光猫的DHCP服务,然后用软路由进行拨号,设置虚拟服务器进行端口映射即可尝试。

    第二种内网端口映射 端口转发以及SSR酸酸乳

    当网络不方便设置桥接模式时,可以尝试采用这种方式,也就是光猫路由器仍然是路由模式,不用改设置,我们连接一个新的路由器作为二级路由,然后我们想着在二级路由上做好端口映射和转发就可以实现节点通讯,但是实际操作中仍然不行。

    而当我们尝试在路由器中额外配置了SSR酸酸乳时,则可以使得prover正常运行。由于我们的操作是在二级路由下操作的,因此对原有网络的影响也最小,不用更改光猫的任何设置。

    同时还进行了只在二级路由中设置了酸酸乳,关闭端口映射和端口转发,原有正常运行的prover程序在不到十分钟内连接失败,因此只能在开启SSR的同时,打开端口映射和端口转发。

    这里暴躁兔的光猫的网络(路由模式)是192.168.0.1,没有更改设置。二级路由开启DHCP,设置为192.168.4.1,二级路由开启端口映射,手动配置端口映射列表,路由器用的是刷的padavan,当然也可以使用定制的系统比如openwrt、梅林等,刷机有风险,需要自己找教程,一般嫌麻烦也可以考虑去某多多上买商家已经刷好系统的便宜路由器。

    5a346af2b1e6a75e11a1c8695f9414b5.jpeg

    如图,内网ip地址为192.168.4.212,这是我们虚拟机中Ubuntu系统的IP地址,该主机名字为pc001,网络在vmware中设置的是桥接模式,它的ip是通过查看路由器连接设备来得到的。

    端口转发DMZ可以将内网主机端口暴露在外网,这里设置为我们在vmware中的Ubuntu主机ip,192.168.4.212

    9d73980251992e02f700c534eb854077.jpeg

    接着设置酸酸乳,添加节点或者订阅

    运行模式这里我没有设置全局,主要是该路由器下连接的设备太多,全局的话容易引起负载增加。

    当然使用这种方法主要是我们尝试过在win系统中酸酸乳打开全局模式,然后虚拟机共享主机ip设置下的linux可以访问YouTube和twitter,但是prover却没法正常连接,因此才考虑在路由器上进行设置尝试。

    虚拟机安装prover注意事项

    如果你的机器是专用的,可以考虑直接安装Ubuntu系统来直接运行,当然我自己的是win办公,linux只能安装在vmware上,安装过程不再详述,网上教程很多,版本我选择的是Ubuntu 22.10 server版,没有带桌面环境。

    虚拟机设置这一块,暴躁兔需要给虚拟机分配多一些处理器资源,当然如果你运行两个虚拟机的话,一般另一个有时候不会正常连接(有时断开有时正常),只能保证连接一个是正常的(偶尔也会断开,但是相对次数会比较少)。

    另外实际使用到的处理器资源可能是分配资源的一半,比如我们主机是双路2680v2,设置了虚拟机为处理器数量2,每个处理器内核数量8,也就是总内核为16,那么我们实际上cpu资源占用了24%左右,而实际主机的内核要20个,这里如果不知道设置多少合适的话,可以一步步进行增加数量测试,直到cpu资源占用尽可能大,物理主机直接安装linux可以略过。

    ff42e37e653da517acc156c1917a7e2e.jpeg

    在虚拟机安装软件时我们可以选择使用putty软件进行远程登录,因为虚拟机里无法进行指令复制(需要安装vmware工具,比较麻烦),只能一个个字母敲进去,因此使用putty进行登录即可实现复制粘贴等操作,特别是当我们保存生成的私钥和地址的时候特别有用。

    aeafbd9f54d867605ffb94a5b24f87b5.jpeg

    最后家用网络下正常进行prover运算,当然这种也不是十分稳定,偶尔也会出现连不上节点的情况,但是会自动进行尝试连接,一般过一会儿就又好了。

    72ed23c1701fd5d72e68634cd4d7c6e3.jpeg

  • 相关阅读:
    Java全栈开发第一阶段--01.Java基础编程(基本语法-进制)
    【OS】进程通信
    Revel框架基本使用和搭建教程
    年薪百万的人怎么做好工作复盘和总结
    PDF如何转word文档
    SpringBoot开启异步多线程
    河北工业大学计算机考研资料汇总
    selenium webDriver的运用
    windows远程连接服务器并映射端口访问目标服务
    Mongoose【node.js的优雅mongodb对象建模】
  • 原文地址:https://blog.csdn.net/u013756743/article/details/127927893