Wilmer Paulino
39f81c630b
chain: add IsCurrent method to chain.Interface
...
IsCurrent allows us to determine if the chain backend considers itself
"current" with the chain.
2019-06-13 18:08:59 -07:00
Wilmer Paulino
eedd5ce1b6
chain: prevent deadlock while notifying RescanFinished for NeutrinoClient
2019-06-07 13:00:09 -07:00
Wilmer Paulino
e0f82255c7
chain: prevent panic if onBlockConnected is called before onFilteredBlockConnected
2019-04-19 12:27:33 -07:00
Wilmer Paulino
b3643ed7a9
chain: dispatch RescanFinished notification after BlockConnected
...
In this commit, we address a bug within the wallet when running with
Neutrino where it wouldn't be able to mark it as synced with the chain
due to not receiving a RescanFinished notification if it was a block
behind the chain. This happened because of the order in which the
notifications are delivered within the underlying Neutrino ChainService,
FilteredBlockConnected gets dispatched before BlockConnected. This
doesn't always work however because there is an implicit dependency
between them in which BlockConnected must occur first.
To address it, rather than switching the order in which the
notifications are dispatched, we just check if we can dispatch the final
RescanFinished notification after dispatching BlockConnected.
Co-Authored-By: Roei Erez <roeierez@gmail.com>
2019-04-18 19:32:37 -07:00
Wilmer Paulino
767a7a95cf
chain: extract RescanFinished notification dispatch into method
...
Co-Authored-By: Roei Erez <roeierez@gmail.com>
2019-04-18 19:30:40 -07:00
Wilmer Paulino
8f25b8b4ef
chain: keep track of lastFilteredBlockHeader within NeutrinoClient
...
Co-Authored-By: Roei Erez <roeierez@gmail.com>
2019-04-18 19:23:05 -07:00
Olaoluwa Osuntokun
d9a9f4176b
build+chain: update to latest version of neutrino
...
The latest version also includes a change to the way we need to
initialize the rescan object.
2019-03-12 21:05:42 -07:00
Johan T. Halseth
060361939b
chain/neutrino: use new neutrino API
2018-10-16 18:18:46 -07:00
Olaoluwa Osuntokun
caab9f91f0
chain: update neutrino client due to recent API changes
2018-08-22 20:20:31 -07:00
Olaoluwa Osuntokun
b24714270a
chain: update neutrino interface impl to use new InputWithScript
2018-07-16 19:47:17 -07:00
Olaoluwa Osuntokun
64b5b448f5
chain: update neutrino API usage
2018-07-13 16:53:17 -07:00
Olaoluwa Osuntokun
e9b145c524
multi: run goimports
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
7770cac383
multi: switch import paths back to upstream
2018-05-23 19:38:56 -07:00
Conner Fromknecht
9b0831cd65
chain/neutrino: impl FilterBlocks via filters + rescan
2018-05-23 19:38:56 -07:00
Alex
a16bfd7775
chain/neutrino: fix data races due to not using pointer for rescan
2018-05-23 19:38:56 -07:00
Alex
78a69b4802
chain/neutrino: fix deadlock
2018-05-23 19:38:56 -07:00
Alex
73dbcf3943
multi: add bitcoind back-end (only for API use for now)
2018-05-23 19:38:56 -07:00
Alex
d7ad221ee0
chain: ensure clientMtx is never locked while waiting on channel
2018-05-23 19:38:56 -07:00
Alex
1b6d7a7ee3
chain: add GetBlockHeader support
...
This commit allows neutrino to simulate the GetBlockHeader RPC, and
allows chain client code to use the call with both btcd/RPC back end
and the neutrino back end.
2018-05-23 19:38:56 -07:00
Alex
e06434ed75
chain: add StartTime support to neutrino client
...
This commit adds support for using StartTime in a rescan in
neutrino. The NeutrinoClient instance can have a birthday set
such that all underlying neutrino rescans are called with that
start time.
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
a0abd3632c
multi: update to new upstream btcsuite/btcd API's
2018-05-23 19:38:56 -07:00
Alex
081f7b0dce
chain: fix issue where mutex can be unlocked twice
2018-05-23 19:38:56 -07:00
Alex Akselrod
c85893de1a
chain+waddrmgr+wallet: store all hashes for better reorg handling ( #5 )
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
4ac75773d7
chain: wait for rescan exit before re-creating, ensure thread safety
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
3dc7a8529c
multi: switch all imports to roasbeef's forks
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
7acc49dddb
chain: also register blockConnected for NotigyReceived calls
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
772fbd4726
chain: dispatch BlockConnected notifications for NeutrinoClient
2018-05-23 19:38:56 -07:00
Olaoluwa Osuntokun
dbe472edd6
build: update neutrino glide.lock hash, API usage
2018-05-23 19:38:56 -07:00
Alex
3f12fa3c6c
chain+wallet: rename SPVChain to NeutrinoClient
2018-05-23 19:38:56 -07:00
Alex
4598742465
chain: stop SPV rescan immediately when wallet is already caught up
2018-05-23 19:38:56 -07:00
Alex
3601b2fa14
chain: fix RescanFinished notification
2018-05-23 19:38:56 -07:00
Alex
d6bcab4912
chain: make ChainService public member of SPVChain struct
2018-05-23 19:38:56 -07:00
Alex
0e7e8404e5
chain: fix Neutrino driver bugs
2018-05-23 19:38:56 -07:00
Alex
b5873a5b2c
Finish integration of Neutrino; still untested.
2018-05-23 19:38:56 -07:00
Alex
9e5250e6d7
More neutrino integration into btcwallet.
2018-05-23 19:38:56 -07:00
Alex
3d81f856fd
Move spvchain into neutrino and start integration w/btcwallet
2018-05-23 19:38:56 -07:00