Ethereum 以太坊区块链在3台不同的计算机上不同步

Ethereum 以太坊区块链在3台不同的计算机上不同步,ethereum,geth,Ethereum,Geth,我对Geth有一个问题,我想编译和部署一个智能合约,为了做到这一点,我在钱包中添加了乙醚。 我们可以在此处验证交易: 我们可以看到交易在4679731街区 在这里,我们可以验证钱包中的乙醚量:即0075乙醚 那么 我已经用香草Ubuntu构建了一个虚拟机,安装了geth(v1.7.0-stable-6c6c7b2a),并尝试从2017年10月29日同步到2017年12月20日。 我使用:geth控制台启动geth 在我的研究中,我发现了两个可以决定同步进度的命令: var sync = web3

我对Geth有一个问题,我想编译和部署一个智能合约,为了做到这一点,我在钱包中添加了乙醚。 我们可以在此处验证交易: 我们可以看到交易在4679731街区

在这里,我们可以验证钱包中的乙醚量:即0075乙醚

那么

我已经用香草Ubuntu构建了一个虚拟机,安装了geth(v1.7.0-stable-6c6c7b2a),并尝试从2017年10月29日同步到2017年12月20日。 我使用:geth控制台启动geth

在我的研究中,我发现了两个可以决定同步进度的命令:

var sync = web3.eth.syncing;sync;
给出:

{ currentBlock:1144835, 最高街区:1720228, 已知状态:33418, 拔出状态:25707, 起始区块:1144067 }

给出:

0

我使用以下命令检查一个帐户有多少以太:

web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")
给出:

0

所以在两个月内,我不同步,我的geth不知道我的帐户上有多少以太。 显然,我已经同步到1144835块,而交易在4679731块,所以我认为这是正常的,但两个月后? 我需要等待8个月才能开始使用Geth吗?这是不能接受的

因此,我在2017年12月29日用同样的香草Ubuntu构建了第二台虚拟机,安装geth(1.7.3-stable-4bb3c89d)并尝试同步。 与第一个不同的是:我使用fast-syncmode:geth--fast--cache=1024控制台启动

现在,命令

var sync = web3.eth.syncing;sync;
var sync = web3.eth.syncing;sync;
给出:

给出:

0

给出:

0

因此,在12天内,我的同步次数增加了4倍,但在最后4天,我收到了以下信息: 警告[01-10 | 01:01:40]回滚头计数=2048头=3894230->3892182快速=3872910->3872910块=0->0 每一次,它不会同步更多

因此,我第三次尝试在我的个人电脑windows 8.1上安装geth(1.7.3-stable-4bb3c89d),并尝试从2018年7月1日开始同步 使用命令行:geth.exe--syncmode“full”控制台

现在,命令

var sync = web3.eth.syncing;sync;
var sync = web3.eth.syncing;sync;
给出:

{当前区块:4881711,最高区块:4884507,已知状态: 34771,拔出状态:26470,起始块:4880214}

给出:

0

给出:

0

所以我在一天内就到达了目标区块(4679731),但geth总是说我的帐户中有0个以太

我的问题是:如何同步以便开始使用SmartContract

当我在网上搜索时,我能读到的唯一信息就是等待。
我不想再读这篇文章了,也不想告诉我一个真正的方法来告诉我真正的进展。

同步可能会非常令人沮丧。然而,您不需要不断地重建虚拟机来获得完全同步的节点。通常,您只需停止并重新启动
geth
,它就会找到新的对等点并从停止的位置继续下载区块链。从一张白纸开始,花将近一天的时间来完全同步mainnet并不罕见


不过,你还有其他选择。如果您只是希望开发智能合约,那么可以使用(以前称为TestRPC)来运行本地私有开发人员区块链。是一个开发工具,可以连接到TestRPC,也可以在它自己的内部VM中执行智能合约。如果你想连接到mainnet或testnet,你可以使用MetaMask插件,它不需要你有一个同步的本地节点(Remix也可以通过MetaMask连接)。最后,您可以尝试使用
geth--light
启用灯光同步模式。

同步可能非常令人沮丧。然而,您不需要不断地重建虚拟机来获得完全同步的节点。通常,您只需停止并重新启动
geth
,它就会找到新的对等点并从停止的位置继续下载区块链。从一张白纸开始,花将近一天的时间来完全同步mainnet并不罕见

不过,你还有其他选择。如果您只是希望开发智能合约,那么可以使用(以前称为TestRPC)来运行本地私有开发人员区块链。是一个开发工具,可以连接到TestRPC,也可以在它自己的内部VM中执行智能合约。如果你想连接到mainnet或testnet,你可以使用MetaMask插件,它不需要你有一个同步的本地节点(Remix也可以通过MetaMask连接)。最后,您可以尝试使用
geth--light
启用灯光同步模式

web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")
var sync = web3.eth.syncing;sync;
eth.getBlock("latest").number
web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")