In particular, when a new block arrives:
-
Is the block written to disk in an atomic fashion, so a new block either exists, or it doesn’t? (reader can never see a partially written state)
-
Are the summary databases (eg chainstate, block-index) written to, and flushed to disk in an atomic fashion along with the new block, such that the blockchain filestore will never be out-of-sync with the levelDB filestore(s)?
-
More generally, can the bitcoin datastores be said to exhibit ACID properties?
-
Are there any plans to change the datastore behavior in this regard?
(I believe the answers to 1-3 are: no, no, and no. But I’d like to hear more details, and also rationale for the status quo).