Commit graph

2272 commits

Author SHA1 Message Date
Chris Stewart
2980e3fc01 Resolve issues with reorgs and syncing filters (#1969)
* Pull over test cases, WIP

* Rework ChainHandler.nextBlockHeaderRange() to use hashes rather than heights to very integrity of header chain, add test case

* Modify test case to make sure we are generating the 'heaviest chain work' header as first in the tuple that is used in reorg test cases

* Refactor to helper method called 'findNextHeader()' to make things simpler

* Add scaladoc to ChainHandler.findNextHeader()

* WIP

* Fix bugs in ChainApi.nextBlockHeaderRange(), now return (startHeight,stopHash) rather than (stopHeight,stopHash)

* Get chain handler tests passing, remove genesis filter header/fitler from default chain project fixture, make it a specialized one to have genesis filter header/filter in the database. Use that specialized fixture in ChainHandlerTest for now

* FilterSync work without having the genesis filter and filter header inserted into the database

* fix bug in DataMessageHandler where we were using sendNextGetCompactFilterHeadersCommand rather than using peerMsgSender.sendGetCompactFilterHeadersMessage

* Refactor ChainHandler.findNextHeader() to centralize where chains are fetched

* Address ben's code review
2020-09-11 12:41:25 -05:00
Chris Stewart
39ef35b9ee Rename parameter names from 'duration' -> 'interval' just like our ActorSystem.schedule() names the parameter (#2005) 2020-09-11 11:10:59 -05:00
Scala Steward
522d80ed2f Update sbt-mdoc to 2.2.8 (#2001) 2020-09-11 08:56:29 -05:00
Ben Carman
2806ac8a95 Throw errors that occurr in startup (#1950)
* Throw errors that occurr in startup

* Add testing ability to runMain
2020-09-10 08:11:46 -05:00
Scala Steward
9bbf669867 Update slick, slick-hikaricp to 3.3.3 (#1987) 2020-09-10 06:47:55 -05:00
Scala Steward
15700b7ff1 Update scodec-bits to 1.1.20 (#1960) 2020-09-10 06:46:04 -05:00
Ben Carman
e2163c99ff Create FeeUnitFactory and functions to calculate tx fee rates (#1990)
* Create FeeUnitFactory and functions to calculate tx fee rates

* Remove useless override, use factory

* doc

* Scaladocs + use vals

* Fix scaleFactor being set as default value
2020-09-10 06:45:25 -05:00
Scala Steward
74807e867b Update play-json to 2.9.1 (#1994) 2020-09-10 06:44:02 -05:00
Scala Steward
fb7212bcd2 Update sbt-mdoc to 2.2.7 (#1995) 2020-09-10 06:43:28 -05:00
Chris Stewart
00480cc391 Use randomized fee rates for wallet tests (#1977)
Co-authored-by: Ben Carman <benthecarman@live.com>
2020-09-09 16:46:33 -05:00
rorp
c62be8b5f6 Update callbacks for LN support (#1938)
Update callbacks for LN support
2020-09-09 11:02:31 -07:00
Chris Stewart
4149271b77 Segregate mainnet chainhandler tests and regtest chainhandler tests (#1988) 2020-09-09 09:50:24 -05:00
Ben Carman
5f7356c526 Fix Two KeyManagers in scope for fundRawTransactionInternal (#1986)
* Fix Two KeyManagers in scope for fundRawTransactionInternal

* Only fetch txs once
2020-09-09 09:40:38 -05:00
Ben Carman
4c0437e352 Optimize findClosestToTime (#1959)
* Optimize findClosestToTime

* Fix Test

* Rename function, change execption type
2020-09-08 09:23:41 -05:00
Ben Carman
ee85f463f5 Fix RoutesSpec to assert results (#1979) 2020-09-07 15:52:23 -05:00
Ben Carman
edc80bf13e Don't spend immature coinbases, fix tests (#1981) 2020-09-07 15:08:41 -05:00
Ben Carman
279d64fafb Add chainHash to ChainParams (#1972)
* Add chainHash to ChainParams

* Rename to genesisHash
2020-09-04 12:15:06 -05:00
Chris Stewart
9dda88ed7b Remove uncessary import (#1968)
* Remove uncessary import

* Attempt to fix compile
2020-09-03 09:00:37 -05:00
Chris Stewart
8b76acd042 Move getBestFilterHeader() use the best chain by chainwork for determining the fitler header (#1964) 2020-09-02 19:41:52 -05:00
Ben Carman
f5fcab9580 Change maxBy and minBys to use maxByOption and minByOption (#1961)
* Change maxBy and minBys to use maxByOption and minByOption

* Fix compile issue
2020-09-02 16:03:57 -05:00
Chris Stewart
98236835a5 Rename ChainApi.nextHeaderBatchRange -> ChainApi.nextBlockHeaderBatchrnage (#1957) 2020-09-02 13:19:20 -05:00
Ben Carman
babab55eac Validate key manager matches account db on wallet startup (#1948) 2020-09-02 07:33:40 -05:00
Ben Carman
1670902e75 Fix max by for getBlockCount (#1951)
* Fix max by for getBlockCount

* Add helper func to package
2020-09-01 19:38:15 -05:00
Ben Carman
cc2a118ff0 Only mark utxos as reserved on successful coin selection (#1944)
* Only mark utxos as reserved on successful coin selection

* Add recoverWith

* Fix compile for 2.12.12
2020-09-01 06:34:46 -05:00
Ben Carman
809ba17891 Fix getBestFilterHeader for headers 2016 or more blocks away from tip (#1943) 2020-08-31 17:00:42 -05:00
Chris Stewart
06a06c500e Clean up imports (#1942) 2020-08-31 14:24:09 -05:00
Ben Carman
a5818fd766 Give gui command line arguments (#1931) 2020-08-31 12:25:56 -05:00
Chris Stewart
e7993890cb Make sure both filter ehaders and filters are empty before sending fi… (#1936)
* Make sure both filter ehaders and filters are empty before sending first filterheader sync message

* Address nit
2020-08-31 06:32:01 -05:00
Chris Stewart
170242812c Fix maxBy() exception in the case of empty Blockchain in ChainHandler… (#1934)
* Fix maxBy() exception in the case of empty Blockchain in ChainHandler.bestFilterHeaderSearch()

* Add another unit test to CompactFilterHeaderDAO for coverage
2020-08-29 15:29:09 -05:00
Chris Stewart
d3af9c2ccb Implement getBestFilterHeader based on a number of block headers that… (#1926)
* Implement getBestFilterHeader based on a number of block headers that can be passed in as a parameter. These headers can be used to indicate what your current best chain is

* Bring back compiler opts

* Fix compiler error for maxByOption as it isn't in the 2.12 std library

* Implement a context free best filter headers search. The basic strategy is to look at headers in the _future_ of our current best filter header

* Fix bug in sql query were we were doing max chainWork too early on block headers, we needed to filter out headers in our set and _then_ we get the max chain work

* Add more unit tests
2020-08-29 08:13:38 -05:00
Chris Stewart
43ba2477b5 Cache DoubleSha256Digest.hex (#1932)
* Cache DoubleSha256Digest.hex

* Cache little endian versino too
2020-08-29 07:35:40 -05:00
Ben Carman
c1d0d66398 Calculate correct TxoState when processing a transaction (#1929)
* Calculate correct TxoState when processing a transaction

* Test balance
2020-08-28 15:31:48 -05:00
Ben Carman
57c92b9e34 docs: Fix broken links in Docs + minor touchups (#1908) 2020-08-27 14:11:24 -05:00
Ben Carman
8d47b68764 Fix rescans that are larger than the batch size (#1916)
* Fix rescans that are larger than the batch size

* Add test
2020-08-27 14:09:25 -05:00
Ben Carman
ef4329d283 Warn if peer does not support services we need (#1921) 2020-08-27 13:57:58 -05:00
Ben Carman
2c3342492c Create DatabaseDriver ADT instead of booleans (#1902) 2020-08-27 12:41:52 -05:00
Chris Stewart
13fbb3f889 Improve logging in DataMessageHandler (#1922)
* Improve logging in DataMessageHandler

* Make hashes in logs big endian

* One more big endian conversion i forgot
2020-08-27 12:39:45 -05:00
Ben Carman
3e1c4e2d33 Fix log to output correct function (#1913) 2020-08-27 07:20:58 -05:00
Chris Stewart
3ab280a12b Remove AppConfig.initialize() in favor of AppConfig.start() (#1907)
* Remove AppConfig.initialize() in favor of AppConfig.start()

* Fix docs
2020-08-26 16:24:38 -05:00
rorp
23685f124e Add an ability to one Postgres database for all sub-projects (#1897)
* Add an ability to one Postgres database for all sub-projects
2020-08-26 12:20:18 -07:00
Ben Carman
581851f22c Clean up calls in Node and Chain (#1896)
* Clean up calls in Node and Chain

* Remove parens on non-modifying call
2020-08-26 13:04:34 -05:00
Ben Carman
f59015bc39 Send get filters message if we haven't cached any yet (#1900) 2020-08-26 12:56:19 -05:00
Chris Stewart
71e3fbabde docs: Remove e2e dlc info from documentation, add some notes about using gui bundled with node (#1905) 2020-08-26 12:31:08 -05:00
Chris Stewart
265716c99d docs: dlc branch -> adaptor-dlc branch (#1903) 2020-08-26 10:48:34 -05:00
Ben Carman
34ef07ef5a Create ADT for NodeType instead of booleans (#1901) 2020-08-26 07:28:35 -05:00
Chris Stewart
955978f635 Apply string factory to a bunch of easy things (#1891)
* Apply string factory to a bunch of easy things

* Refactor HDPath, ExtKey, and LnTagPrefix to use StringFactory

* Implemen StringFactory on LnHumanReadablePart, ScriptType, ServiceIdentifier

* Implement StringFactory on AesCrypt, NodeUri, AddressTag, PSBT, TxoState

* Fix failing tests, fix website compile

* Apply StringFactory to all ScriptOperations, ChannelState, Script Parsing
2020-08-25 10:48:37 -05:00
Chris Stewart
2252dc528e Bump scalatestplus version (#1894) 2020-08-25 10:34:10 -05:00
Nadav Kohen
f975e747ef docs: Updated setup and dlc docs (#1895)
Removed graalvm from cli instructions
2020-08-25 10:33:05 -05:00
Ben Carman
a678230123 Add new hash preimage PSBTInput types (#1893) 2020-08-25 10:23:21 -05:00
Scala Steward
50ea2d5135 Update scalatest to 3.2.2 (#1876) 2020-08-25 07:09:29 -05:00