【问题标题】:Local Node (Geth) failed to sync from TestNet本地节点 (Geth) 无法从 TestNet 同步
【发布时间】:2017-10-16 08:21:53
【问题描述】:

尊敬的所有区块链专家,

我已经使用Geth创建了一个本地节点,这是启动命令。

  • geth --testnet --rpc --rpcaddr "localhost" --rpcport "8545" --rpcapi "web3,eth,net,personal" --rpccorsdomain "*" --datadir "./data" --身份“localnode”--fast

在本地节点启动并运行时。我立即创建了两个个人帐户并将其存储到 Keystore 文件夹中。

然后,我通过 MetaMasks 将以太币从我的测试网账户转移到本地节点的账户。这里真正奇怪的是我仍然可以看到本地节点的帐户以太币值为零。

我什至删除了chaindata文件夹并重新启动了geth客户端控制台。

请多多指教,不胜感激。

谢谢。

【问题讨论】:

    标签: blockchain solidity get-headers blockchain.info-api


    【解决方案1】:

    不幸的是,您已成功同步本地 GEth,但与您检查 Ether 的网络不同!

    出现这种混乱是因为 对 Ropesten 网络的攻击已被一些节点纠正,但其他节点仍然拥有旧数据。当你运行你的命令时:

    geth --testnet --rpc --rpcaddr "localhost" --rpcport "8545" --rpcapi "web3,eth,net,personal" --rpccorsdomain "*" --datadir "./data" --身份“本地节点”--fast

    您没有在命令中指定要连接的任何特定节点。并且错误地连接到仍在旧的已弃用的过时网络区块链数据上运行的节点!

    并且删除“chaindata”文件夹,不会通知 GEth 与其他节点一起尝试。因为,它会从“nodes”文件夹中选择相同的节点。

    要选择要同步的新节点,您必须:

    • 删除“nodes”文件夹并指定一个更新的节点 GEth 使用“--bootnodes”选项使用。
    • 或者,即使在同步之后也可以使用以下命令添加节点:“admin.addPeer('enode://ADDRESS@IP:PORT')”。这是在您使用“geth attach ipc:/home/developer/.ethereum/testnet/geth.ipc”在终端中附加到 Geth 之后

    但是,由于没有明确列出哪些节点已被分叉和更新以纠正黑客攻击,并且由于许多其他问题,例如完整网络节点的大尺寸,我建议使用 Parity 连接到正确的 Ropsten节点的网络。

    要使用奇偶校验,我建议点击以下链接之一:

    所以,感谢 Parity!您可以通过运行以下命令轻松地使用“--chain”指定所需的网络:"parity --chain ropsten"

    【讨论】:

    • 感谢您提供的信息,我将尝试使用 Parity。但是,我更熟悉Geth。我认为 Geth 是最适合客户的语言?@Muhammad Altabba
    • 不客气。实际上,Geth 不是一种语言。它是用 GO 语言实现的以太坊,具有命令行工具。如果您喜欢或需要我们 Geth,您仍然可以使用它。但是,在您的情况下,因为您没有真正与 Ropsten 网络同步,您必须执行上述选项之一:删除“nodes”文件夹并使用带有“--bootnodes”选项的 GEth。或者,使用以下命令添加节点:“admin.addPeer('enode://ADDRESS@IP:PORT')”。最重要的是要有一个健康的节点地址,你必须明确指定。
    • 我可以私下联系你吗,我想问你一些关于区块链和以太坊的问题。你可以吗?
    • 请将您的问题添加到 StackOverflow 或 StackExchange,如果可以,请联系我。
    猜你喜欢
    • 2018-05-15
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多