0

I'm running a node of an Ethereum side-chain. I started only getting "peer connected on snap without compatible eth support" error messages in the log a few days ago. It would not download any new blocks. The last block in my local chain was 5 days old. I thought maybe it has something to do with the merge.

The node runs inside a docker container and I don't know how to do anything with docker. My only options are interacting with the node.

First I tried using debug_setHead over RPC. I set the head back approx. 100k blocks before the last block in my chain. But when it reached that same block I would again only get those error messages. What's weird is the log message that came right before in both times (when it first happened and after setting back the head) was "Deep froze chain segment" and after that I only got "peer connected on snap without compatible eth support".

Because setting back the head didn't work, the next thing I tried was pruning the node. According to the documentation pruning should only take 1 to 2 hours for this side-chain (It's on an SSD). But even after running it overnight I would never get the log message "State pruning successful".

Not knowing what to do, I started my node and read the log. The end of the log says:

    WARNING!
    
    The clean trie cache is not found. Please delete it by yourself after the  pruning. Remember don't start the Geth without deleting the clean trie cache otherwise the entire database may be damaged!
    Check the command description "geth snapshot prune-state --help" for more details.   
    INFO [09-16|18:14:45.182] Pruning state data           nodes=1 size=115.00B elapsed=13m3.752s eta=14m13.881s 
    INFO [09-16|18:14:53.188] Pruning state data           nodes=2,264,671 size=676.51MiB elapsed=13m11.758s eta=14m7.433s 
    INFO [09-16|18:15:01.198] Pruning state data           nodes=4,284,801 size=1.25GiB   elapsed=13m19.768s eta=14m2.59s

After that it would just stop logging. It never attempts to connect to the chain and download any blocks. I'm not sure if starting the node could have damaged the chain, because after all it never downloaded any new chain data. Also I have no idea how to delete the clean trie cache.

The last thing I tried was removing all docker containers. I ran docker system prune and it removed all containers, images and volumes. But after reinstalling the node nothing changed. I still get the same log as shown above (without downloading any blocks), because apparently it didn't delete any chain data.

Also the RPC endpoint does not work anymore when starting the node.

I'm completely lost. I don't know what caused this problem in the first place or how to fix it. What can I do to get my node up and running again?

UPDATE:

I have now also tried deleting chain data with geth removedb but I still get the exact same log warning and nothing happens after that. Maybe deleting the clean cache can help getting at least one step further, but I don't know how to do that in a docker container.

UPDATE 2:

While geth removedb did not delete the database, it must have deleted something, because after starting the node, the pruning was successfully completed. But as expected, it did not solve my original problem. I still get an endless stream of

ERROR[09-16|20:50:27.777] Snapshot extension registration failed   peer=eec7c316 err="peer connected on snap without compatible eth support"

error logs. And my node is still stuck on the same old block. Mind you that this error stream only starts at a certain block and is not a general problem with my node. If I set the head to a prior block with debug_setHead, the node will successfully sync up to the block I'm stuck at.

uzumaki
  • 1,743
  • 17
  • 32

1 Answers1

1

You can try to run the command like this:

sudo -u eth1 geth --datadir /path/to/chaindata removedb

This makes the command run under the user "eth1" assigned to geth. Depending on your setup that is the only user that can access the chaindata.

The command then asks which data to remove. You can keep the ancient data. Then start geth again and it should be syncing now.

akarub
  • 11
  • 2