Roy Lee
6f5311d7c6
[lbry] rename btcd to lbcd
...
Co-authored-by: Brannon King <countprimes@gmail.com>
2021-10-19 21:42:12 -07:00
Olaoluwa Osuntokun
298efd8359
blockchain/indexers: ensure the cfindex gets inputs
2018-07-06 16:15:24 -07:00
Olaoluwa Osuntokun
102ca293f6
blockchain: pass in prevScript for constructing the basic filter
2018-07-06 16:15:24 -07:00
Olaoluwa Osuntokun
576800a99e
blockchain/indexer: remove extended filter
2018-07-06 16:15:23 -07:00
Olaoluwa Osuntokun
a26e2634fa
blockchain/indexers: update indexing to use stxos instead of utxo view for blocks
...
In this commit, we update all the indexers to use the stxo set for a
particular block rather than the utxo view for the block. We do this as
we can eliminate a large number of random reads for each block, and can
instead deserialize a single instance of all the outputs spent in that
block and feed in the prev input scripts to each indexer.
2018-05-30 20:47:40 -07:00
Olaoluwa Osuntokun
2b7326ae52
blockchain/indexers: use latest API for cf indexing
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
b72e16f0d6
multi: correct all import paths
2018-05-23 16:46:15 -07:00
Jim Posen
3425d33506
blockchain/indexers: Add methods on CfIndex for batch retrieval.
...
Fetching all items in one db transaction will save time when
responding to getcfilters or getcfheaders requests.
2018-05-23 16:46:15 -07:00
Jim Posen
e617483b44
blockchain/indexers: Store filter hashes with cfindex.
2018-05-23 16:46:15 -07:00
Jim Posen
d07fd2f333
blockchain/indexers: Reduce duplication in cfindex.
...
The index will hold three types of entries for each filter type, block
pair: filter, header, and hash. Since they all have similar methods
and implementations, refactor to reduce duplication.
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
10432160d5
multi: rebase to upstream, update API's
2018-05-23 16:46:15 -07:00
Alex
f4060b107c
blockchain/indexers: check for ErrNoData
in extended filters
...
Since the tx hash has moved to the basic filter, generating an extended filter
can result in `ErrNoData`. This is handled by writing a nil filter and giving
it a zero hash.
2018-05-23 16:46:15 -07:00
Alex
c7e7acc7fd
multi: use hidden varint for cftypes count; make filter type enum, not uint8
2018-05-23 16:46:15 -07:00
Alex
621c73dad1
multi: change cfilter Extended
bool to FilterType
uint8
...
The cfilter BIP specifies that the filter type is a uint8. The
current code encodes it correctly on the wire, but everywhere else,
it's treated as a boolean (false for basic filter, true for
extended). This commit corrects that to account for possible
additional filter types in the future. All package changes are
done in one commit as they're all interdependent. The following
packages are updated:
* blockchain/indexers
* btcjson
* peer
* wire
* main (server.go and rpcserver.go)
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
9b9ef42f8a
blockchain/indexers: proper handling of empty filters
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
e0943a84bd
blockchain/indexers: add a bit more line spacing to cfindex.go
2018-05-23 16:46:15 -07:00
Alex
1c5f25bbf2
blockchain/cfindex: Factor out filter/header calc.
2018-05-23 16:46:15 -07:00
Alex
860100019f
blockchain: fix --dropcfindex
2018-05-23 16:46:15 -07:00
Alex
ba7b5f3308
Use NBytes() instead of Bytes() in CFIndex
2018-05-23 16:46:15 -07:00
Alex
9780ef5997
Skip TxIn on coinbase transaction when indexing
2018-05-23 16:46:15 -07:00
Alex
6102e129c5
Fixed a couple of bugs and added --dropcfindex option
2018-05-23 16:46:15 -07:00
pedro martelletto
a5bf8941d5
Define FilterHeaderByBlockHash()
2018-05-23 16:46:15 -07:00
pedro martelletto
e620538343
Generate and store filter headers
2018-05-23 16:46:15 -07:00
pedro martelletto
b53c42f5dc
Define dbFetch{Basic,Extended}Header()
2018-05-23 16:46:15 -07:00
pedro martelletto
7673859108
Create db buckets for committed filter hashes
2018-05-23 16:46:15 -07:00
pedro martelletto
ddfaed7f6f
Delete extended filters in DisconnectBlock()
2018-05-23 16:46:15 -07:00
pedro martelletto
0a841fefcf
Generate and store extended filters in ConnectBlock()
2018-05-23 16:46:15 -07:00
pedro martelletto
71c421db66
Differentiate between basic/extended filters in p2p/RPC
2018-05-23 16:46:15 -07:00
pedro martelletto
f703e18652
Populate filter #1 (extended)
2018-05-23 16:46:15 -07:00
pedro martelletto
f16da156c9
Include data pushes from pkscripts
2018-05-23 16:46:15 -07:00
pedro martelletto
396d28955c
better separation between filters; comments
2018-05-23 16:46:15 -07:00
pedro martelletto
57995fd111
Start preparing the ground for layer {0,1} filters
2018-05-23 16:46:15 -07:00
pedro martelletto
472141f88d
Switch to new GCS builder interface
2018-05-23 16:46:15 -07:00
pedro martelletto
6d6677b797
zap errCFEntry
2018-05-23 16:46:15 -07:00
pedro martelletto
92c8ec4094
cbfindex.go -> cfindex.go
2018-05-23 16:46:15 -07:00