我对 Geth 有疑问,我想编译和部署一个智能合约,为了做到这一点,我在我的钱包中添加了以太币。我们可以在这里验证交易:https ://etherscan.io/tx/0x0b3247c2c1d1f26411486ad3ee4fd47e2a8b71de56af0b0fe6759586dd18f6b5 我们可以看到交易在第 4 679 731 个区块中
在这里,我们可以验证钱包中的以太币数量:https : //etherscan.io/address/0x704e2b488674afa69069a165d3c8a80a27c30d6f,即 0,075 以太币。
然后,
我用香草 Ubuntu 构建了一个虚拟机,安装 geth (v1.7.0-stable-6c6c7b2a) 并尝试从 2017 年 10 月 29 日同步到 2017 年 12 月 20 日。我使用以下命令启动 geth:geth 控制台
在我的研究中,我发现了两个可以确定同步进度的命令:
var sync = web3.eth.syncing;sync;
给 :
{ currentBlock:1144835,highestBlock:1720228,knownStates:33418,pullStates:25707,startingBlock:1144067 }
eth.getBlock("latest").number
给 :
0
我使用以下命令来检查一个帐户有多少以太币:
web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")
给 :
0
所以在两个月内,我没有同步,我的 geth 不知道我的账户上有多少以太币。我显然已经同步到第 1 144 835 个区块,并且交易在第 4 679 731 个区块,所以我认为这很正常,但是两个月后呢?我必须等待 8 个月才能开始使用 Geth 吗?这是不可接受的。
因此,我在 2017 年 12 月 29 日使用相同的香草 Ubuntu 构建了第二个虚拟机,安装 geth (1.7.3-stable-4bb3c89d) 并尝试同步。与第一个的区别:我使用快速同步模式启动:geth --fast --cache=1024 控制台。
现在,命令
var sync = web3.eth.syncing;sync;
给 :
{ currentBlock: 3872910, highestBlock: 4884396, knownStates: 3180, pulledStates: 2379, startingBlock: 3865878 }
eth.getBlock("latest").number
给 :
0
和
web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")
给 :
0
所以在 12 天内,我同步了 4 倍以上,但在最后 4 天,我收到消息:WARN [01-10|01:01:40] Rolled back headers count=2048 header=3894230->3892182 fast=3872910 ->3872910 block=0->0 每次都不会同步更多。
所以我在我的个人电脑上第三次尝试,Windows 8.1,安装 geth (1.7.3-stable-4bb3c89d) 并尝试从 01-07-2018 使用命令行同步:geth.exe --syncmode "full"安慰
现在,命令
var sync = web3.eth.syncing;sync;
给 :
{ currentBlock:4881711,highestBlock:4884507,knownStates:34771,pullStates:26470,startingBlock:4880214 }
eth.getBlock("latest").number
给 :
0
和
web3.fromWei(eth.getBalance("0x704e2b488674aFa69069A165D3C8a80A27C30D6f"), "ether")
给 :
0
所以我在一天之内到达了目标区块(4 679 731),但 geth 总是说我的账户里有 0 个以太币?
我的问题是:我如何同步才能开始使用 SmartContract?
当我在网上搜索时,我能读到的唯一答案就是等待。我不想再看这个anwser,或者告诉我一个可以告诉我真正进展的真正方法。