Questions tagged [leveldb]
LevelDB is an embedded key-value storage developed by Google that is used in Bitcoin Core for block index storage and quick access to the UTXO set (unspent transaction outputs).
69 questions
2
votes
1
answer
51
views
Unable to parse blocks from blk*.dat for testnet (3 and 4)
For the Bitcoin mainnet, I can easily fetch one block by following steps:
Open the LevelDB database at <bitcoind-dir>/data/blocks/index
Get by key: ...
1
vote
1
answer
67
views
levelDB : How does the key/values pairs work for datadir/blocks/index/
I'm trying to understand the format of key/value pairs in LevelDB for Bitcoin data storage.
Given the following raw key and value:
Raw Key: ...
1
vote
0
answers
75
views
Repeated corruption issue with bitcoind
I'm trying to index the entire chain for spent P2PK inputs for this program I'm writing, and whenever I get to this transaction - 7a8394fd438d9fbe6b36ce38e5b0ca65037f864d1007236775ac3532b886ebe1 - I ...
0
votes
0
answers
38
views
How to decode bitcoin node's chainstate data stored in LevelDB?
I am trying to decode the data available in the chainstate. After doing some research, I see that Google's LevelDB is mentioned (like in this post). However, I am still not sure how to effectively and ...
1
vote
1
answer
73
views
I can't parse the UTXO from the chainstate
I have a problem with reading tx out from the Bitcoin Core LevelDB chainstate storage. I know that the structure of the current version of the chainstate is key => value where the key is a prefix (...
2
votes
1
answer
56
views
Transaction incorrect when reading a block from `blk*.dat` files
The problem occurs with block 1,669,774 on testnet (https://blockstream.info/testnet/block/0000000010001cebd3e4f2fe5f2e2cbbe35ba6457554d9e0e6eb100b6f91eaee).
To obtain a block I retrieve the file and ...
4
votes
1
answer
118
views
Does Bitcoin Core write blockchain and chainstate data atomically?
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 ...
2
votes
1
answer
114
views
When does chainstate get updated?
What i'm trying to do now is reading LevelDB at chainstate folder to save all utxos at my own DB, and keep tracking the changes of utxos by looking at chainstate folder frequently.
However, what i ...
2
votes
1
answer
147
views
LevelDB error after power outage
After a power outage, starting bitcoind I recieved this errors (circled in the image). Reading online some users suggest to do a reindex and i did it but after 11 hours my node isn't reindex yet... ...
2
votes
1
answer
388
views
Number of transactions per blk.dat files
I am working on a parser for the blk.dat files being returned by the Bitcoin Core node. It seems to slow down considerably after a point and I am pretty sure it's because the number of transactions is ...
0
votes
1
answer
82
views
Regarding the chainstate level db (UXTO)
Already found many useful information regarding the chainstats db.
such as:
What are the keys used in the blockchain levelDB (ie what are the key:value pairs)?
But what is the meanning of the last ...
0
votes
1
answer
61
views
Getting wrong version number of block from block index of Bitcoin Core
I am reading block index using plyvel python package.
Following is the location of block indexes:
export BLOCK_INDEX_DB=$BITCOIN_HOME/blocks/index
Following is the method to decode b128 varint:
def ...
0
votes
1
answer
146
views
Are the block headers kept in memory?
Bitcoin Core keeps block data as files in the file system and blocks indexes in a LevelDB database to make the search process of transactions and blocks faster. But Bitcoin Core also stores block ...
1
vote
0
answers
98
views
Cannot unserialize chainstate transaction outputs after de-obfuscation
I was able to read chainstate database.
Getting the key and de-obfuscating to get a valid last block.
However, when it comes to transactions that follow after that,
I cannot de-serialize them no ...
0
votes
1
answer
245
views
Bitcoin - Level DB - Block Index - Parsing value for block hash
I am trying to read the value against block hash in level DB of Bitcoin node database - Block/index. For Genesis block, I get 88 bytes which I want to parse. I tried to follow instructions in https://...
0
votes
1
answer
241
views
Bitcoin - Read transaction details from LevelDB
I am new to LevelDB and the way BTC keeps everything in the database. I went through article How does Bitcoin read from/write to LevelDB but was not able to get to the first step -
Transaction
...
1
vote
0
answers
54
views
What is the relationship between LevelDB's cache (default 8MB) and Bitcoin's UTXO cache?
Please correct me if I am wrong.
Bitcoin uses levelDB to store UTXO set. LevelDB has a default 8MB block cache, and the Bitcoin also has a dbcache(default 450MB).
What is the relationship between the ...
6
votes
1
answer
418
views
When the UTXO in the cache is full, what strategy is used to replace one UTXO with another in the cache?
The UTXO set is stored on the disk, but some UTXOs are also stored in the cache. When validating a transaction, you need to query the UTXO pointed to by the input of the transaction. First, you go to ...
0
votes
1
answer
118
views
How does bitcoin find the block locator hashes in the leveldb database?
I am trying to understand how bitcoin core builds the list of block locator hashes needed for sendheaders and getheaders messages. I have looked on the wiki and I have seen that after the 10 most ...
3
votes
1
answer
1k
views
What is in the Bitcoin Core LevelDB dbcache? Is it full records or metadata?
What is in the Bitcoin Core LevelDB dbcache? Is it full records or metadata?
This question was asked on IRC by Anonymous.
0
votes
0
answers
2k
views
Error opening block database Full node
For some reason my node shutdown and now I get when restart it
Error opening block database
here my bitcoin.conf
txindex=1
reindex=1
reindex-chainstate=1
# Accept command line and JSON-RPC ...
1
vote
0
answers
269
views
What can cause the chainstate database to become corrupted?
I have written a tool that accesses the chainstate LevelDB database to get a list of UTXOs.
https://github.com/in3rsha/bitcoin-utxo-dump/blob/master/utxodump.go
The tool would originally corrupt the ...
1
vote
0
answers
136
views
why is bitcoind daemon occasionally stuck at `Opening LevelDB in .../.bitcoin/chainstate`despite clean shutdown
My bitcoind daemon sometimes takes an hour to go past Opening LevelDB in .../.bitcoin/chainstate
After googling a bit, i thought it was simply an unclean daemon stop causing a leveldb corruption. But ...
2
votes
1
answer
175
views
How Does Bitcoin Core Client Keep Track of Longest Chain/Strongest PoW Chains?
Bitcoin Core stores blocks in files in local disk. And it uses LevelDb to form an index on top of block storage to make it faster to retrieve a block (basically a simple key-value pair db). See this ...
2
votes
1
answer
4k
views
Bitcoind Node crashes after using -dbcache option
I've been trying to speed up my node sync by increasing the dbcache. However my node tends to crash overnight. My system is running ubuntu 18.04, 4GM of ram bitcoin core v0.18.
I've tried bitcoind -...
0
votes
1
answer
29
views
CDiskBlockIndex: NFile and NDataPos not defined
This is the source code snippet that is used for the serialization of block indexes (found in leveldb).
Block 478573 index is (as of my node's leveldb) ...
0
votes
2
answers
456
views
How to get the block hash in the chainstate leveldb?
From this link What are the keys used in the blockchain levelDB (ie what are the key:value pairs)?,
to get the block hash I use the obfuscation key and xor it with the result I get from the db. So I ...
1
vote
1
answer
1k
views
How exactly do I decode the block file info in leveldb?
Base on the links
https://github.com/bitcoin/bitcoin/blob/fcbc8bfa6d10cac4f16699d6e6e68fb6eb98acd0/src/main.h#L392 and
What are the keys used in the blockchain levelDB (ie what are the key:value ...
2
votes
1
answer
374
views
How to parse values in block index leveldb?
So I'm trying to read the block files with Python.
From this link,
What are the keys used in the blockchain levelDB (ie what are the key:value pairs)?, it tells you how to access the files with ...
4
votes
1
answer
352
views
Does the chainstate leveldb only contain "addresses" for P2PKH and P2SH?
I'm writing a small script that will dump the utxo database to a text file. As far as I'm aware, these are the most common script patterns indicated by the type field inside each value:
e.g. value: ...
0
votes
1
answer
217
views
How does Bitcoin use its communication protocol and its database model?
In terms of Bitcoin's communication protocol, how does Bitcoin allow nodes to communicate between each other?
Is Bitcoin's communication protocol the same as IPFS(InterPlanetary File System) and if ...
1
vote
2
answers
649
views
Python - Querying bitcoin's block header using leveldb
I am facing a stupid problem. I am trying to read bitcoin/blocks/index leveldb using plyvel. I've set up a regtest and i know there is a block with the hash :
...
2
votes
1
answer
710
views
EXCEPTION: 15dbwrapper_error
I'm running Bitcoind 0.17 on a raspberry Pi 3. Everything ran smoothly until I did something wrong (I guess) but can't figure out what happened. Now I got this error. Has someone experience with this ...
1
vote
1
answer
152
views
why is bitcoin leveldb separated in so many small pieces?
Currently I could see 1418 ldb files on my box, from 210040.ldb to 215423.ldb (some missing).
Why are they separated in this way?
I want to read the leveldb using golang, but I don't know which one ...
0
votes
1
answer
158
views
How can I get the key of blockindex
According to this post: What are the keys used in the blockchain levelDB (ie what are the key:value pairs)?
One type of the keys in leveldb of bitcoin is formed in the following way
'b' + 32-byte ...
0
votes
0
answers
346
views
Get value from leveldb bitcoin using node.js?
I request information about the block 100001 using leveldb and node js.
Below is my code example.
var level = require('level');
var db = level('E:/download/blockchain/block');
var str = '...
3
votes
2
answers
423
views
Why was Bitcoin Core in need of a fork of LevelDB?
Why did Bitcoin Core fork LevelDB? What special needs does Bitcoin Core have, which require a specialized version of LevelDB?
2
votes
1
answer
436
views
Why is wallet.dat BerkeleyDB instead of LevelDB?
Why wasn't wallet.dat migrated to LevelDB?
Is it because
BerkeleyDB is better at [something]
Backwards compatibility
2
votes
1
answer
479
views
bitcoin chainstate database parsing in python giving wrong value
I am trying to decode chainstate db for a specific out index for a transaction in python just for learning.
Transaction ID: 4d4a4c6ca4f3c91e69563199943336d3279fad71c9e8d9c1708ef9dc6ac16000
out index = ...
1
vote
2
answers
320
views
Very hard to sync Core Client from scratch
Recently I started running a Core 15.1 node with the blockchain on an external hard drive, and found it very hard to fully sync the blockchain.
The problem I keep running into is that (in about 90% of ...
0
votes
1
answer
112
views
Trojans detected in ldb bitcoin database?
I started regular scan and clamscan found lots of trojans in bitcon.lfb blocks.
What is it? A mistake?
sudo clamscan --infected --recursive --exclude-dir="^/sys" /
/root/.bitcoin/data/blocks/index/...
0
votes
1
answer
847
views
Bitcoin blockchain in mongodb
How bad would it be to use MongoDB as a Bitcoin database instead of LevelDB? I know that LevelDB is faster but I've also read that MongoDB is better for doing queries.
It seems cleaner to store the ...
5
votes
3
answers
1k
views
Format of a block key's contents in bitcoind's LevelDB?
I am trying to use bitcoind's LevelDB block index files (that are stored in blocks/index) to find the file (e.g. blk00029.dat) and byte position of specfic blocks.
Thanks to questions What is the ...
2
votes
0
answers
557
views
How to delete last n blocks / roll back to specific block number in Bitcoin Core? (Like `monero-blockchain-import --pop-blocks n`)
I have Bitcoin Core's bitcoind running and synced in a VM. Now I want to clone the VM and run one of the various hard forks (such as Bitcoin Cash) in the clone. The plan is to roll back my copy of the ...
0
votes
2
answers
460
views
How does bitcoind store blocks?
I want to parse blockchain manually and extract the UTXO set (for various reasons). Is there any way to understand how the blocks are stored without going through the C++ code?
Some specs will be ...
1
vote
2
answers
289
views
Non-obfuscated chainstate data
I'm wondering if there is a flag that allows running bitcoind without using an obfuscation key for the chainstate. I haven't been able to find it.
2
votes
1
answer
287
views
Chainstate Bitcoin Core 0.15
Recently updated my LevelDB parser to work with the new LevelDB 0.15 internal structure. However, I'm wondering about two small changes I found:
The prefix for transactions was changed from b'c' to b'...
-2
votes
1
answer
645
views
how to build altcoin in mingw?
OS : Windows 10
Installed Dependencies:
-qt4.8.6
gcc 6.3.0
boost 1_55_0
berkeleyDB 4.8.30NC
openssl 1.0.2l
I tried compiling with the following commands:
qmake "USE_UPNP=1" coin-pt.pro
mingw32-...
2
votes
1
answer
346
views
What will happen when the blockchain size will reach 1 Tb? Or 10 Tb?
My question is more about bitcoin client (bitcoind). Will it still be working fine or maybe something will go wrong? I mean, maybe LevelDB can't handle this amount of data correctly?
2
votes
1
answer
241
views
Bcoin - Database backend not found
/root/BCoin/node_modules/bcoin/lib/db/backends.js:16
throw new Error('Database backend "' + name + '" not found.');
^
Error: Database backend "leveldown" not found.
at Object.get (/root/...