Windows通过geth同步以太坊区块数据
前言:为了便于测试,我决定在自己电脑同步eth区块数据,虽然中途遇到一些问题,但最终还是同步好了。记录一下,希望能帮到有需要的人~
一 下载geth客户端
既然是通过geth同步,那么肯定是需要下载geth客户端
的,同时,geth依赖于go语言环境,所以需要先安装go语言
。
安装go语言
,具体操作我就不说了,和安装jdk差不多,下载->安装->配置环境变量;下载geth
,点击这里下载geth,但是这个链接需要翻墙,不然好慢好慢,甚至打不开。怎么办?没事儿,我为大家准备好了,点我下载geth,提取码:qe2y
二 安装geth开始数据同步
第一步完成之后,安装到想要安装的目录,会生成一个geth.exe
程序。请不要直接执行该程序,因为这样的话,默认会把区块数据存放到C盘(系统盘),235G左右,显然不是我们希望看到的。
此外,就算你直接运行geth.exe程序,几乎不会同步数据,因为找不到节点进行数据同步,会一直Looking for peers
,但是这个问题在Linux服务器以及mac电脑不会发生,就windows系统会这样,本人亲测,也不知道为什么,这是歧视windos系统吗…
好了,废话不多说了,那么我们应该怎么做呢?
-
通过
cmd
进入到geth.exe程序所在目录,win10的快捷键是:按住shift
,然后单击鼠标右键
,然后点击在此处打开 Powershell窗口 (S)
。如下图所示:
关于启动命令,待会儿会做介绍。 -
通过以上命令启动的话,可以指定很多信息,但是还是没有解决我们的找不到节点进行数据同步问题。对于这个问题,我们需要
手动添加可用的以太坊节点
让我们的geth程序进行连接。
具体做法是新建一个static-nodes.json
文件,并设置为ANSI
格式,文件内容具就是可用的eth节点,这些节点从哪儿找呢?点我即可(我是官方节点),我已经帮大家找好了:
多说一句题外话,什么星火节点那些,都是不可用的,坑死人。我这个可用,我是从人家官网找来的。
["enode://424a7c4928abd10ebe806da151dd9ed4cdb0fb488e75897372a83c82cf93a94aa733cefbae81d3e983b2ca8479ae5385aa606098daf8cfbc97595888e5005761@68.185.171.253:30303",
"enode://2806db39202b7f345924d9a9f2e2d8561b8b8a6dec6ffadbfaf0a0a641051a9932fad4eb40628741c71ead5fa4969b154e496b9739702ddc3c534a691c32bfb0@52.220.200.137:30303",
"enode://494e031c90928d37b5949d6239d16a34a40af70e1bda3320f7c5fc21eb6b1532741fdd3eecf389cf738f8f3ea08b2be29e50777f4a57d4555a1546c5040ebc1a@51.107.0.221:30303",
"enode://440816b7671cae0eb83157d6c383f801f0810763562640a278df0fb0ae7382397883e452db23e7bd27b3a1e998faa6dcd4c0e5232b104ea77fac5722c9b3549d@40.67.144.128:30303",
"enode://c414216c4df5860800bafd83d003a9481a26244656b19f069b36d6a4f562e239c0f70c0094a81e122485f249f1f3b805af049fcf6b5c9f66af41b8d2b0206874@47.75.96.111:30303",
"enode://07fa090098a57a6a8ba03bb8ac6536cef105062eb1b53787089620cd605048e75abbb48e9332c398db4683bcf9a853fd17b9ddbeb4ec357d8e41b3a57110b08b@39.96.71.129:30303"