So I stopped geth, deleted all files from ~/Library/Ethereum/geth/chaindata, and restarted geth with --fast --rpc and waited for like 24h, and have like 53GB of ldb files now. I used to run eth.syncing every once in a while to see the progress and it always gave me something like this:

> eth.syncing
  currentBlock: 5097903,
  highestBlock: 5132166,
  knownStates: 4631303,
  pulledStates: 4624883,
  startingBlock: 4410604

Until it started returning false which made me conclude that the sync is done:

> eth.syncing

YET! eth.getBalanace('0xa76ada7b7450b260f7d585556a53168352be8fba') returns 0!

Here is my account on etherscan: https://etherscan.io/address/0xa76ada7b7450b260f7d585556a53168352be8fba

What's more weird is that eth.getTransaction for txs from the last few days returns null. Here's an example of a tx from 4 days ago:

> eth.getTransaction('0xaa4199162f87d2ded2f0a650f8283955dea278a19d964a262c08121bce74a3fd')

It can only get transactions from like 7 days ago.

When will it ever fully sync? Am I doing anything wrong? My all purpose here (this is why I run with --rpc) is to be able to migrate from truffle. Still can't do that because it claims I don't have sufficient funds! Well, eth.getBalance() returns 0 so from its perspective it must be right, though you can see on etherscan the figure is 0.049, not 0!

  • What does eth.blockNumber returns? From some reports here ethereum.stackexchange.com/questions/40041/…, ethereum.stackexchange.com/questions/39784/…, ethereum.stackexchange.com/questions/40070/… it appears with geth v1.8 it takes some time to finish. – Ismael Feb 26 '18 at 3:59
  • it returns 0... btw, now after 10 hours it seems to be syncing again... eth.syncing shows a json. I really don't know if I'm figuring out this process right anymore. to my best understanding, once the sync is done, there should be no more sync, only incremental catchup with the chain that is not refered to as "sync" – shaharsol Feb 26 '18 at 7:11
  • at least now it returns data for the 4 old days transaction – shaharsol Feb 26 '18 at 7:13
  • What is your command line to start geth? From this answer about how fast sync works ethereum.stackexchange.com/a/40193 it doesn't sync to head immediately but slightly behind to avoid chain reorgs, when that is done it will advance further. If for some reason, slow disk io or bad network bandwidth, it is possible that it will need several iterations. Until eth.blockNumber is a recent blocks I'd say it didn't finish syncing. – Ismael Feb 26 '18 at 14:48
  • even if it is, it's not that it is answered there. It is very frustrating as i never get to a state where my chain is synced and I can't deploy any contracts. – shaharsol Feb 27 '18 at 7:05