Increase nMinDiskSpace to make wallet.dat corruption less likely
#84
Closed
opened 3 years ago by duke
·
5 comments
No Branch/Tag Specified
arm
asyncnotedecryption
danger
dev
dev-aarch64
dev-mac
dev-old-randomx
divzaddrs
dragonx
duke
freebsd
getfilterednotes
hip39
insync
jahway603
master
mvstuff
onryo
p2p_privacy
ramhash
relaytx
rx-largepages
setbestchain
warmup
witness_cache
wolfssl
wolfssl_win
z_createrawtransaction
z_importwallet
z_signmessage
v0.11.2.z0
v0.11.2.z1
v0.11.2.z2
v0.11.2.z3
v0.11.2.z4
v0.11.2.z5
v0.11.2.z6
v0.11.2.z7
v0.11.2.z8
v0.11.2.z9
v1.0.0
v1.0.0-beta1
v1.0.0-beta2
v1.0.0-rc1
v1.0.0-rc2
v1.0.0-rc3
v1.0.0-rc4
v1.0.1
v1.0.10
v1.0.10-1
v1.0.11
v1.0.11-rc1
v1.0.12
v1.0.12-rc1
v1.0.13
v1.0.13-rc1
v1.0.13-rc2
v1.0.14
v1.0.14-rc1
v1.0.15
v1.0.15-rc1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.0.7-1
v1.0.8
v1.0.8-1
v1.0.9
v1.1.0
v1.1.0-rc1
v1.1.1
v1.1.1-rc1
v1.1.1-rc2
v1.1.2
v1.1.2-rc1
v2.0.0
v2.0.0-rc1
v2.0.1
v3.0.0
v3.1.0
v3.1.1
v3.10.0
v3.10.1
v3.10.2
v3.2.0
v3.2.1
v3.2.1-alpha
v3.2.1-beta
v3.2.2
v3.2.3
v3.3.0
v3.3.1
v3.3.2
v3.4.0
v3.4.1
v3.5.0
v3.5.1
v3.5.2
v3.6.0
v3.6.1
v3.6.2
v3.6.3
v3.7.0
v3.7.1
v3.8.0
v3.9.0
v3.9.1
v3.9.2
v3.9.3
v3.9.4
Labels
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
Apply labels
Clear labels
0-500 bounty
bounty up to 500 HUSH 2001-5000 bounty
bounty between 2001 and 5000 HUSH 501-2000 bounty
bounty between 501 and 2000 HUSH arm
something doesn't work on arm beginners
for new developers bug
may or may not be a bug build
problems building documentation
not enough information feature
new feature high priority
high priority i2p
related to i2p low priority
low priority medium priority
medium priority question
something is not clear release
release label or issue related to it testing
related to testing tor
related to tor wontfix
this won't be fixed
No Label
0-500 bounty
2001-5000 bounty
501-2000 bounty
arm
beginners
bug
build
documentation
feature
high priority
i2p
low priority
medium priority
question
release
testing
tor
wontfix
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Recently I saw a new failure mode that we very much want to avoid users experiencing: A node ran out of disk space and corrupted a very large (620MB) wallet.dat in such a way that even
-salvagewallet
cannot recover it. The-salvagewallet
argument fails even before printing anything to debug.log, even with-debug=1
.cannot recover the wallet.dat and doesn't even print anything useful to debug.log before exiting. The wallet may be recoverable via external tools like wack: https://git.hush.is/duke/wack (which is why I wrote that, for similar problems long ago) but most users will not be able to use CLI tools to fix things like this.
We inherited a minimum free space limit of 50MB from BTC, but that is not sufficient for us:
I propose increasing the minimum free disk space to either 500MB (10x larger) or 1GB (20x larger) to make this problem much less likely to occur.
@onryo @odinzu @jahway603 what are your thoughts?
Increase nMinDiskSpace to prevent wallet.dat corruptionto Increase nMinDiskSpace to make wallet.dat corruption less likely 3 years agoFor most users it won't be a problem, storage is cheap and I never heard someone run out of disk space, it can be easily increased to 1GB.
This line? https://git.hush.is/hush/hush3/src/branch/master/src/main.cpp#L3732
I think this is a good change and I think either 500MB or 1GB is fine for space.
@onryo yes, that is the function which uses the the
nMinDiskSpace
variable which is defined inmain.h
, it is called from 5 different places. The optional argument it gets is how much extra space abovenMinDiskSpace
it should require, as a safety buffer for when it's not known exactly how much space will be usednMinDiskSpace has been increased to 1GB on
dev
branchthis was done a while ago