NethermindEth / nethermind

A robust execution client for Ethereum node operators.
https://nethermind.io/nethermind-client
GNU General Public License v3.0
1.28k stars 445 forks source link

Maybe move default storage dir outside nethermind repo folder? #7795

Open obasekiosa opened 3 days ago

obasekiosa commented 3 days ago

Is your feature request related to a problem? Please describe. Deleting an entire repo implies deleting all storage data when nethermind client is ran from source.

Describe the solution you'd like maybe have client use the HOME fould of XDG* paths for creating these directories.

Describe alternatives you've considered Just let it be. it shouldn't be an issue. allows running multiple versions of the code without worrying about data collision.

Additional context None.

Dhir0808 commented 1 day ago

Hi @obasekiosa , I suggest changing the default storage directory to use the HOME directory or XDG paths (e.g., $XDG_DATA_HOME, $XDG_CONFIG_HOME). This would prevent data loss when deleting or updating the repo and avoid conflicts when running multiple client versions. It would also give users more control over where the data is stored.

I would like to take this issue.

obasekiosa commented 1 day ago

@Dhir0808 Sure. it'd be nice if you start a conversation about it first

I'd just link a couple of people. @MarekM25 @LukaszRozmej @damian-orzechowski @rubo

Dhir0808 commented 1 day ago

Hi so what I propose is first we need to define the standard paths following XDGs specs then provide configuration options for custom paths and ensure a backward compatability

so we can create a new class to handle the storage paths then update the db config to use new path and then add migration for the existing data also we will need to update the startup config to handle new paths

obasekiosa commented 4 hours ago

Hi so what I propose is first we need to define the standard paths following XDGs specs then provide configuration options for custom paths and ensure a backward compatability

so we can create a new class to handle the storage paths then update the db config to use new path and then add migration for the existing data also we will need to update the startup config to handle new paths

@Dhir0808 The goal is to change the default location.(i.e the location that is used if none is specified. basically change the location of the storage path to be that specified by the os based on the env variable XDG*

pick the approprained XDG* variable and reasonable fallbacks should they be empty. also consider how the changes would affect release mode/binary.

Dhir0808 commented 2 hours ago

@obasekiosa I have tried to move the folder out can you have a look at it and suggest any changes, it has given me an auth error when I tried to run the app but that maybe because I dont have access to DB ig.