ethereum / go-ethereum

Go implementation of the Ethereum protocol
https://geth.ethereum.org
GNU Lesser General Public License v3.0
47.53k stars 20.13k forks source link

Feature Request: Health check cli using "geth doctor" #23935

Closed mohamedmansour closed 2 months ago

mohamedmansour commented 2 years ago

Rationale

Many node owners on discord are having problems with syncing or peer checking, and the answer is almost the same thing. Doing something like geth doctor would print out if:

This is inspired by Flutter, many people had problems running / installing it in the initial releases, and the devs created a beautiful plan called flutter doctor that makes sure the users system is good. Later, many companies, like Microsoft (Chromium) adopted this for internal devs too.

Implementation

Do you have ideas regarding the implementation of this feature? I believe there are many go-lang libs for system profiling that we can use, I don't know from the top of my head.

Are you willing to implement this feature? Maybe ....

holiman commented 2 years ago

Something like this maybe? https://github.com/ethereum/go-ethereum/pull/21453

mohamedmansour commented 2 years ago

Something like this maybe?

https://github.com/ethereum/go-ethereum/pull/21453

That is a great start, if that is behind a flag like "geth doctor", then we can determine if that machine is good enough for it to sync before we actually start syncing.

Need doctor checks for cpu, disk speed, disk space, memory bw. This will help so many users who onboard geth

holiman commented 2 months ago

This feature request is old, and not picked up. I'll close it, if something like this is still wanted, then someone can open a new request.

mohamedmansour commented 2 months ago

old but still nice to have to be added as "checkup" if your system can support Geth. Because the main issue with Geth running on VMs is that IOPS is low, and this could like help figure out that the system is slow and not suitable for Geth, for example.