Alex
c7e7acc7fd
multi: use hidden varint for cftypes count; make filter type enum, not uint8
2018-05-23 16:46:15 -07:00
Alex
8d2ce855eb
wire: update service bits for xthin, bit 5, cfilters, and segwit2x
2018-05-23 16:46:15 -07:00
Alex
5772bdde86
server: add OnGetCFTypes callback to serverPeer
2018-05-23 16:46:15 -07:00
Alex
2b7ebfd698
peer: add OnCFTypes and OnGetCFTypes callbacks
2018-05-23 16:46:15 -07:00
Alex
5c93ca639a
rpcclient: change "bool" to "uint8" for cfilter/cfheader type
2018-05-23 16:46:15 -07:00
Alex
5fb5acd643
btcjson: fix cfilter tests
2018-05-23 16:46:15 -07:00
Alex
1aa7a6166d
wire: update messages to conform to BIP and fix comments
2018-05-23 16:46:15 -07:00
Alex
89d6696560
wire: add getcftypes and cftypes messages
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
Alex
e2f65acf02
integration/rpctest: check quit
in solveBlock()
's solver()
closure
2018-05-23 16:46:15 -07:00
Alex
6cea610774
integration/rpctest: queue block disconnected ntfns in memwallet
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
8aeb8c3ef2
peer: temporarily disable stall detection
2018-05-23 16:46:15 -07:00
Alex
c5c392c5c5
server: init rpcserver with cfindex
2018-05-23 16:46:15 -07:00
Alex
ac109cfb86
rpcserver: return correct error when --nocfilters is enabled
2018-05-23 16:46:15 -07:00
Alex
09723f4800
btcjson: add ErrRPCNoCFIndex for cases when cfindex is disabled
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
5ab49ca22c
rpc: add indexers.CfIndex to config, utilize
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
c8fdf8bf59
rpcclient: add GetCFilterHeader and GetCFilter
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
7c2f7be2ea
wire: update compact filter messages to match wire.Message interface
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
3d1caa2f83
multi: update to point to roasbeef forks
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
9a30e95d83
peer: don't inv trickle new blocks
2018-05-23 16:46:15 -07:00
Josh Rickmar
a741b4366b
all: Remove seelog logger.
...
The btclog package has been changed to defining its own logging
interface (rather than seelog's) and provides a default implementation
for callers to use.
There are two primary advantages to the new logger implementation.
First, all log messages are created before the call returns. Compared
to seelog, this prevents data races when mutable variables are logged.
Second, the new logger does not implement any kind of artifical rate
limiting (what seelog refers to as "adaptive logging"). Log messages
are outputted as soon as possible and the application will appear to
perform much better when watching standard output.
Because log rotation is not a feature of the btclog logging
implementation, it is handled by the main package by importing a file
rotation package that provides an io.Reader interface for creating
output to a rotating file output. The rotator has been configured
with the same defaults that btcd previously used in the seelog config
(10MB file limits with maximum of 3 rolls) but now compresses newly
created roll files. Due to the high compressibility of log text, the
compressed files typically reduce to around 15-30% of the original
10MB file.
2018-05-23 16:46:15 -07:00
Alex
6589cffb19
server: change logging in OnGetCFilter to be less verbose
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
ac4bd31ba0
peer: disable peer stalling for get blocks messages
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
4a6dc67067
txscript: add exported sighash calc func
2018-05-23 16:46:15 -07:00
Alex
7647f884a9
rpcserver: Return 0-length headers via RPC as they're now valid.
2018-05-23 16:46:15 -07:00
Alex
ec228f9ff9
rpctest: Add GenerateAndSubmitBlockWithCustomCoinbaseOutputs
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
f11e87c957
rpcserver: Fix getcfilterheader RPC method's hex encoding for hash.
2018-05-23 16:46:15 -07:00
Alex
92f1de6dd9
Fix case where 0 headers are retrieved.
2018-05-23 16:46:15 -07:00
Alex
dabb8000fb
Add Extended flag to cfilter and cfheaders messages
2018-05-23 16:46:15 -07:00
Alex
936caad9c2
Add last blockhash to cfheaders and blockhash to cfilter messages
2018-05-23 16:46:15 -07:00
Alex
ba4a2f77a5
wire/server: allocate hash once per loop to prevent overwriting
2018-05-23 16:46:15 -07:00
Alex
71ccc95502
wire: Fix MsgCFHeaders.Decode()
2018-05-23 16:46:15 -07:00
Alex
29b5ece196
Changed getcfheaders/cfheaders messages to get multiple headers.
2018-05-23 16:46:15 -07:00
Alex
860100019f
blockchain: fix --dropcfindex
2018-05-23 16:46:15 -07:00
Alex
8ad7aa5d5d
Rename CFilterHeader to CFHeader on P2P side; fix some bugs/tests
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
pedro martelletto
0c08ba2786
define MsgCFilterHeader.Deserialize(), required by btcrpcclient
2018-05-23 16:46:15 -07:00
pedro martelletto
b5de49aa73
define MsgCFilter.Deserialize(), required by btcrpcclient
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
pedro martelletto
b8c3be740f
Add CFilterHeader p2p counterparts
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
763842329b
Implement a GetCFilterHeader RPC command
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