New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address indexing #89

Closed
wants to merge 70 commits into
base: AddressIndexing
from

Conversation

Projects
None yet
6 participants
@tarrenj
Member

tarrenj commented Jun 22, 2018

No description provided.

laanwj and others added some commits Feb 9, 2016

tests: Make proxy_test work on travis servers without IPv6
Github-Pull: #7489
Rebased-From: 7539f1aae3b41279dc5d49e09f448a78a071e114
Cherry-picked-From: 9ca957bcd401de69c4c03904b9ee8b8b41052905
main: start of address index
Adds a configuration option for addressindex to search for txids by address. Includes
an additional rpc method for getting the txids for an address.

Zcash: Backport to previous txdb format
main: serialize height in BE for address index key
fixes a sorting issue when iterating over keys
rpc: only sort when combining multiple results
It's only necessary to sort when combining results for several addresses
as the results are already in order from the database.
main: add block timestamp index
Zcash: Backport to previous txdb format
main: fixed bug with overlapping address index keys
There was a bug where the spending address index could have the same key
as the receiving address index if the input and output indexes matched. This lead
to the output always overwriting the input index leading to incorrect balances
with missing spent amounts. This patch separates the two so that they have unique
keys so balances will be correctly calculated.
main: index unspent outputs by address
Zcash: Backport to previous txdb format
main: mempool address index
Zcash: Integrated into older mempool code

braydonf and others added some commits Apr 21, 2016

rpc: add blockindex to getaddressdeltas method
for the purposes of secondary sorting by block order
rpcclient: add params to be parsed as JSON
There was an issue where getblockhashes wouldn't work from bitcoin-cli
as the two params would be strings instead of integers. This fixes that
issue, and will parse the first param as JSON for other addressindex
related rpc methods.
main: spentindex for the mempool
Zcash: Adapted to older mempool code
mempool: fix bug with mempool address index iteration
fixes a minor bug where iteration would not end when there are matching
hashes for a p2sh and p2pkh address, and would return results for
both addresses
mempool: same address and index for an input and output bug
fixes a bug that would happen when an output would match an input with
the same address and index, and would lead to the outputs not appearing
in results.
wallet-utility: extract addresses and private keys
usage: ./wallet-utility -datadir=<directory>
help: ./wallet-utility -h

Zcash: Backported to older chainparams code, added Zcash libs to LDADD
rpc: minimize locking in getrawtransaction
since there is i/o that can happen when retrieving extended input
and output information, limiting the duration of the lock in getrawtransaction
can help improve concurrency

Zcash: Use older script ASM function
db: add options to configure block index database
There was a previous assumption that blockindex would be quite small. With addressindex
and spentindex enabled the blockindex is much larger and the amount of cache allocated for
it should also increase. Furthermore, enabling compression should decrease the amount of
disk space required and less data to write/read. The default leveldb max_open_files is set to
1000, for the blockindex the default is set to 1000 with compression. The 64 value that is
current is kept for the utxo database and does not enable compression. Two additional options
are added here to be able to configure the values for leveldb and the block index:

- `-dbmaxopenfiles` A number of files for leveldb to keep open
- `-dbcompression` Boolean 0 or 1 to enable snappy leveldb compression

Zcash: Migrated to the older leveldbwrapper.*
logical timestamp indexing of block hashes
Zcash: Migrated to old txdb code

@tarrenj tarrenj closed this Jun 22, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment