I'm trying to obtain up-to-date database of the UTXO and keep updating it as new block is added.

And for this, I want to use chainstate as a starting point of synching.
I parsed chainstate to obtain remaining utxo at 784468th block, and put them in DB.

The problem I have right now is this.
I checked the transactions' vin at the next block (784469th), and checked whether utxos used in the next block are present in my DB. However, there are about about 50 missing utxos in DB that were definately created before 784468th block and used at 784469th block.

I really want to know why this happens.

The parse tool that I'm using is here. https://github.com/in3rsha/bitcoin-utxo-dump

  • 2
    Can you be more specific? Like pointing out what data is supposed to be missing?
    – sr_gi
    May 30, 2023 at 13:30
  • 1
    Did your node follow a reorg?
    – Murch
    May 30, 2023 at 16:57
  • @sr_gi For example, vin of transaction at the next block should be present in the chainstate of the current block. However, some vin are missing in the csv file that I got from parsing the chainstate.
    – Jin
    May 31, 2023 at 2:29

1 Answer 1


I found this comment in one of the issues:

Sorry that I was too concise. dumptxoutset output is just binary, but I thought it could be used as a first step of bitcoin-utxo-dumo instead of reading the chainstate and avoiding the issue "This tool may corrupt your chainstate database"

It suggests to me that this tool corrupted your DB because it was not using the suggested binary method included in core.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.