4

I'm trying to trace some transactions and I'm getting the "Missing trie node" warning only on some specific blocks, but not on others

I've read a solution that suggests to delete the chaindata folder but I wouldn't want to do that as it took forever to download in the first place.

Is there a way, though a low level API, to force the resync / re-download ONLY of the specific blocks that cause the Missing trie node problem?

  • i got the error repeatedly twice ..on third time it started syncing. I had the node shut down for 4/5 days so it missed to sync during that period, may be thats that cause the problem? – kahmed Jun 1 '17 at 4:00
  • If you have a NEW question, please ask it by clicking the Ask Question button. If you have sufficient reputation, you may upvote the question. Alternatively, "star" it as a favorite and you will be notified of any new answers. – Waqar Lim Jun 1 '17 at 10:08
  • does my reply looks like a question to you? that was another answer and that worked for me . – kahmed Jun 2 '17 at 18:07
2

You may be able to export and import your blocks as explained in after --fast sync in geth is there a way to rebuild the old states?:

PS: You don't necessarily need to redownload the chain, you could export it with geth export chain.dat and then geth --datadir=somehwere-else import chain.dat. But in general sync time is limited currently by import/processing time, not download bandwidth, so it won't make much of a difference.

  • thanks. will try that out. What is unclear is that I should import again the chain.dat that I've exported in the first step, or should I import another chain.dat? what good is it to export and reimport it? does it force the resync process? – b25 Aug 6 '16 at 10:11
  • also, I've seen these 2 apis admin.importChain(file) and admin.exportChain(file), but I'm unsure of what's the difference. github.com/ethereum/go-ethereum/wiki/… – b25 Aug 6 '16 at 10:15
  • also how big should the chain.dat file be and how long should the process take? It's been running for an hour and the file is only 256 Mb, if it has to reach the 16Gb of the full chain that is going to take forever like downloading a full new chain – b25 Aug 6 '16 at 11:43
  • My full chain is 32G at the moment. 256 Mb in 1 hour is not right. It will take quite a while with the import as it will be replaying the transactions. It may be faster to run a geth removedb, geth --fast --cache=1024 (ethereum.stackexchange.com/a/7568/1268) but you will lose the ability to use debug.traceTransactions(...) on the fast downloaded blocks - if you intend to trace the transaction. – Bokky WeAreAllAssange PooBah Aug 6 '16 at 12:54
  • yes the --fast-- option probably was the problem that happened when I first imported the chain through the ethereum wallet. I've discovered that you can export and import even specific blocks github.com/ethereum/go-ethereum/wiki/Backup-&-restore geth export <filename> 0 29999 but I still don't understand the need to export some blocks if you don't actually have them "full" like I need. If I import them once again will they still be "fast synced blocks" or will that prompt an update of those blocks? – b25 Aug 6 '16 at 13:35
2

SOLUTION

unfortunately the export and import option did not work for me. try it anyways to see if it does work for you.

I had to download the blockchain again, on another machine.

  • If you don't have another computer, you can run it in an aws instance.
  • once installed on the other machine, don't start the wallet (which will automatically download the blockchain with the --fast, lighter option) and run geth through the command line with these options to download it faster:

$ geth --cache=1024 --jitvm

  • you can push up the cache if you have RAM. I had 8Gb of Ram so I pushed the cache to2Gb (2048) (higher values didn't seem to work)

$ geth --cache=2048 --jitvm

  • whatever you do, DON'T use the the --fast option, that yes will download the blockchain faster, but you won't have the ability to trace the transactions. So if you are a developer and want to parse the whole blockchain, it's better for you to download a full (non --fast) version of it

you can follow these benchmarks for the options to download the full blockchain faster

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.