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
pedro martelletto
6e5f650be9
CBFilter -> CFilter, discussed with davec@
2018-05-23 16:46:15 -07:00
pedro martelletto
a77b1e00d5
FilterByBlockHash(), pointed out by davec@
2018-05-23 16:46:15 -07:00
pedro martelletto
9f02951b0e
CloneBytes() -> [:], pointed out by davec@
2018-05-23 16:46:15 -07:00
pedro martelletto
8b8c7bcf05
Implement DisconnectBlock() for the CBF Indexer
2018-05-23 16:46:15 -07:00
pedro martelletto
618306116b
Return filter in handleGetCBFilter()
2018-05-23 16:46:15 -07:00
pedro martelletto
cd7857b883
GetCBFilter RPC returns a string, not a []byte
2018-05-23 16:46:15 -07:00
pedro martelletto
f6dff40733
Instrument GetCBFilter RPC
2018-05-23 16:46:15 -07:00
pedro martelletto
76378e7167
Add a GetCBFilter RPC command
2018-05-23 16:46:15 -07:00
pedro martelletto
43bf8db793
Look up filters from p2p GetCBF message
2018-05-23 16:46:15 -07:00
pedro martelletto
76926f8904
Roll in a dbFetchCBFIndexEntry()
2018-05-23 16:46:15 -07:00
pedro martelletto
3b0038093a
Hook CBF indexer to server code
2018-05-23 16:46:15 -07:00
pedro martelletto
9809f4ffdd
Instrument basic logging
2018-05-23 16:46:15 -07:00
pedro martelletto
cf74c8c3ca
Abstract filter generation to a separate function
2018-05-23 16:46:15 -07:00
pedro martelletto
05d2fdeb11
Rename a variable in CBF's ConnectBlock()
2018-05-23 16:46:15 -07:00
pedro martelletto
620ad5b6fb
Store filter in a db block index
2018-05-23 16:46:15 -07:00
pedro martelletto
b2990e7999
Move filter generating code to CBF indexer
2018-05-23 16:46:15 -07:00
pedro martelletto
95cbe2a911
Add the skeleton of a CBF indexer
2018-05-23 16:46:15 -07:00
pedro martelletto
c8627cbee4
Use a harcoded key to generate filters
...
Pointed out by alex@. Using a dummy key for now.
2018-05-23 16:46:15 -07:00
pedro martelletto
dc25da8296
Generate a filter for a given block
2018-05-23 16:46:15 -07:00
pedro martelletto
e9298934b9
Add a stub GetCBFilter message.
...
Actual semantic and payload format yet to be defined.
2018-05-23 16:46:15 -07:00
pedro martelletto
333af136ef
Create a knob to switch CBFs off.
...
While having them on by default. We may want to revisit this and
make no CBFs the default.
2018-05-23 16:46:15 -07:00
pedro martelletto
d82e76cec9
Introduce a service flag for CBFs.
...
Add a service flag for CBFs in the wire protocol.
2018-05-23 16:46:15 -07:00
Olaoluwa Osuntokun
1432d294a5
build: update glide to point to latest btcutil
...
In this commit, we update the glide.lock file to be pinned against the
latest btcutil commit hash. btcutil has recently been updated to pull in
all changes from roasbeef's fork. Notably, it now includes the code
necessary for creating GCS filters (BIP 158).
2018-05-15 21:01:05 -07:00
Olaoluwa Osuntokun
4b968f7e18
btcec: remove obsolete test
2018-05-15 20:47:29 -07:00
Olaoluwa Osuntokun
2842f933bb
server: fix linter error
2018-05-15 20:47:29 -07:00
Olaoluwa Osuntokun
04f0b5338a
build: switch to stable version of gometalinter
2018-05-15 20:47:29 -07:00
Olaoluwa Osuntokun
253b37c17f
btcec: format btcec_test.go with gofmt -s
2018-05-15 20:47:29 -07:00
Olaoluwa Osuntokun
7580169cb6
build: update build to use go 1.9.5 and 1.10.1
2018-05-15 20:47:29 -07:00
Vadym Popov
675abc5df3
chaincfg: change hrp prefix for regtest network
2018-04-17 20:01:12 -07:00
Dave Collins
2be2f12b35
rpcclient: Update for go1.10 breaking changes.
...
Go 1.10 made some changes such that json.Unmarshal can no longer
unmarshal into exported fields that are themselves embedded via an
uninitialized unexported pointer.
Since rpcclient previously relied on this behavior, this updates the
client to create the pointers before unmarshalling into the struct.
2018-02-19 18:56:35 -06:00
Josh Rickmar
1cd648d784
Require atomic swap contracts to specify the secret size.
...
This allows redeeming parties to audit the secret size and ensure it
will be usable once revealed.
2018-02-16 16:18:43 -05:00
Kai
9866016012
Fix sub packages links
2018-02-13 13:36:48 -06:00
benma
99a26bf7e0
wire: typo in BlockHeader PrevBlock comment
2018-02-13 13:04:12 -06:00
Jim Posen
0ef0d8c59b
blockchain: Initialize database with genesis block.
...
This fixes a bug introduced by #1066 .
2018-02-09 11:34:30 -05:00
Alex Manuskin
50de9da05b
blockchain: Fix typo in example_test.go.
2018-01-31 02:40:46 -06:00
Jim Posen
9aa9e79ebf
blockchain: Enhance migration to v2 block index bucket.
...
This updates the block index migration to also store entries with
valid status bytes.
2018-01-28 23:34:56 -06:00
Jim Posen
52cddc19cd
blockchain: Persist block status changes to disk.
...
The block index now tracks the set of dirty block nodes with status
changes that haven't been persisted and flushes the changes to the DB
at the appropriate times.
2018-01-28 23:34:56 -06:00
Jim Posen
31444f5890
blockchain: Add parent to blockNode constructor.
2018-01-28 23:34:56 -06:00
Jim Posen
a4d22d8384
blockchain: Delete block headers from old block index bucket.
...
As part of the migration to the new block index bucket, also delete
the redundant data from the old bucket.
2018-01-28 23:34:56 -06:00
Jim Posen
ad00e7ff82
database: Stop writing block header data to LevelDB.
...
Now that all headers are stored in the in-memory index, the database
bucket managed by blockchain, and in the flat files, it makes sense to
drop the redundant data from the block index bucket in ffldb.
To avoid modifying the database interface, this reimplements
FetchBlockHeader(s) to use header data stored in flat files. This can
be trivially implemented by delegating to FetchBlockRegion.
2018-01-28 23:34:56 -06:00
Jim Posen
74fb6e56da
blockchain: Database migration to populate block index bucket.
...
This creates a migration function that populates the block index
bucket using data from the ffldb block index bucket if it does not
exist.
2018-01-28 23:34:56 -06:00
Jim Posen
6315cea70c
blockchain: Load all block headers into block index on init.
...
Currently only the blocks in the active chain are loaded into the
block index on initialization. This instead iterates over the entire
block index bucket in LevelDB and loads all nodes.
2018-01-28 23:34:56 -06:00
Jim Posen
175fd940bb
blockchain: Store block headers in bucket managed by chainio.
...
The bucket contains block headers keyed by the block height encoded as
big-endian concatenated with the block hash. This allows block headers
to be fetched from the DB in height order with a cursor.
2018-01-28 23:34:56 -06:00
Cédric Félizard
358aed20b7
sampleconfig: Remove duplicate setting.
...
`addrindex` was present twice.
2018-01-28 23:25:43 -06:00
Jeremiah Goyette
fe786c93b6
rpcclient: implement addwitnessaddress
2018-01-26 01:20:40 -06:00