Commit Graph

278 Commits

Author SHA1 Message Date
rorp
ee3ee53191
RPC password authentication (#3961)
* RPC password authentication

* fix compiler error

* add more unit tests

* change default behavior

* Cleanup and add unit test for sad path for rpc authentication

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-01-13 05:55:33 -06:00
Chris Stewart
bf8b165fe9
Implement recovery for when we cannot receive a fee rate from a FeeRateApi (#3975)
* Implement recovery for when we cannot receive a fee rate from a FeeRateApi. Now we return -1 sats/vbyte if we cannot get the fee rate from a fee provider rather than throwing an internal server error

* Fix compile
2022-01-12 14:09:15 -06:00
Chris Stewart
e24efd65ae
2022 01 12 docker ws (#3976)
* Add port 19999 to bitcoin-s-server exposed ports, Add port 19999 to documentation

* Get docker containers working correctly with websockets

Co-authored-by: Ivan <erickson.ivan@gmail.com>
2022-01-12 14:07:11 -06:00
Chris Stewart
9dd126bb9f
Modify estimatefee endpoint to return a number rather than a string (#3973)
* Modify estimatefee endpoint to return a number rather than a string

* Fix compile

* Fix infinite loop on converting to sats/vb, add tests
2022-01-12 12:17:04 -06:00
Chris Stewart
66e23b61a8
2021 01 11 issue 3938 (#3971)
* WIP

* Remove blocking on Future that wont complete until the websocket is disconnected

* Add Sink.ignore to drain webscoket queue if no one is connected
2022-01-12 09:04:40 -06:00
Shreyansh
a58ef1cd02
Storing peers in database (#3773)
* rebase

* fix

* fix

* remove unwanted diffs

* fix

* formatting

* changes from comments

* Revert "changes from comments"

This reverts commit eb8a795718dc590802a19c7ce4cce4501bd2de1f.

* changes from comments

* add PeerManager

* add sha3-256

* add NetworkUtilTest

* formatting
2022-01-09 07:21:59 -06:00
Chris Stewart
eeeecb00c5
Reduce polling log to trace when we try to poll bitcoind (#3964) 2022-01-06 09:24:35 -06:00
rorp
5de325e7de
Exclude seeds from backup (#3950) 2022-01-04 09:04:14 -06:00
Chris Stewart
d06b064b6b
2021 12 28 blockprocessed callback (#3946)
* WIP

* Get appServerTest passing with chain notifications

* Reorder where SourceQueue gets initialized so that we can use it to construct the wallet's callbacks

* DRY

* Fix missing callback for neutrino chaincallbacks

* Bump timeout

* Bump timeout

* When wallet is empty call doSync() with the last blockheader bitcoind has seen

* Revert skipping compact filters on IBD for bitcoind

* Revert logging
2021-12-30 13:41:17 -06:00
Chris Stewart
7527388be5
2021 12 20 ws dlc callbacks (#3926)
* Implement DLC wallet callbacks

Add callbacks and tests for Claimed/RemoteClaimed

Add unit test for confirmed state

Propogate DLC callbacks over the websocket

* move buildDLCWalletCallbacks to WebsocketUtil
2021-12-28 10:24:51 -06:00
Chris Stewart
50bec2abc6
2021 12 14 websockets (#3906)
* WIP

* Get basic websocket working (sort of)

* Push websocket fixes

* WIP: Implementing SpendingInfoDb json serializer

* Implement onreserved callbacks, add json serializers for SpendingInfoDb

* Get first unit test working for websockets when a address is generated

* Rework WalletNotification to have case classes, get unit test working for receiving addresses over the websocket

* WIP

* Add websocket callback for when a wallet processes a block

* Cleanup

* basic updates to unit test

* Fix compile

* Fix submodule

* Fix compile

* Get both unit tests passing when run by themselves

* Fix so both test cases can be run

* Implement unit tests for blockpressed and reservedutxos websockets

* Fix RoutesSpec get a block header test

* Implement configuration for wsbind and wsport via bitcoin-s.conf

* Add some nonblocking sleeps on all WebsocketTests

* Add documentation

* Properly close the server with .terminate() rather than .unbind()

* Add BitcoinSServerMainBitcoindFixture.afterAll()

* Add println

* Add more println

* Try to downgrade bitcoind version

* Fix datadir bug

* Cleanup callbacks so they don't have nested futures

* Fix SpendingInfoDb.apply() pattern match

* Add spendingInfoDb json serializer test, does not pass

* Fix SpendingInfoDb json serializer

* Make small refactors

* Fix compile

* Add maxBufferSize, change overflow strategy to OverflowStrategy.dropHead

* Address Nadav's code review

* Address ben's code review
2021-12-25 11:11:04 -06:00
rorp
41b96c4c7e
Add rescan field to walletinfo response (#3933) 2021-12-23 14:30:26 -08:00
rorp
4b07629d56
Add getmediantimepast RPC call (#3921)
* Add `getmediantimepast` RPC call

* update docs

* respond to the PR comments
2021-12-22 16:15:30 -06:00
Chris Stewart
4646ef6e19
Remove BitcoinSServerMain.startedFP (#3928) 2021-12-20 14:29:03 -06:00
Chris Stewart
3cd57d37f5
Remove backupwallet / backup oracle (#3920)
* Remove backupwallet / backup oracle

* Add zipdatadir documentation

* Fix submodule
2021-12-20 08:19:46 -06:00
rorp
f8f5a8e8dc
Update docker-application.conf (#3905) 2021-12-14 17:34:23 -06:00
rorp
7e214da601
Improve BitcoinSAppConfig.zipDatadir (#3903) 2021-12-14 17:23:18 -06:00
Chris Stewart
6c67e83d3f
2021 12 10 issue 3891 (#3894)
* Add some logs to indicate how long startup time is

* Parallelize submodule configuration startup between modules dependent on tor and modules not dependent on tor

* Start tor dependent modules in parallel too

* Make Wallet.initialize() use DBIOAction

* Scalafmt

* Make Wallet.initialize() use .transasctionally
2021-12-13 14:20:51 -06:00
rorp
41585a18ca
Make Bitcoin Core RPC backend to retry on Error -28: Verifying blocks (#3896) 2021-12-12 15:46:22 -06:00
Chris Stewart
a38309bed1
Add range of block heights to the error message (#3886) 2021-12-09 09:01:01 -06:00
Chris Stewart
d393848cc2
2021 11 30 issue 3847 (#3862)
* Start pulling over accept serializers from dlc message spec PR

* Get sign tlv json serialization working

* Implement decodeaccept,decodesign in CoreRoutes

* Move messages to DLCTestUtil, add documentation
2021-12-01 13:30:18 -06:00
Chris Stewart
8765c2f845
Disjoint union dlc (#3839)
* Implemented Disjoint Union DLC related data structures with dlcTest passing

Broke DLCClientTest up into multiple test files

Optimized DLC execution unit tests by checking all outcomes on a single setup DLC

Refactored DLCTest to allow for Disjoint Union DLC construction and validation, added tests

Responded to review

Fixed after cherry-pick

Fixed docs

* Fixed things after rebase

* Rebase

* Fix json serializer

* Finish fixing compile

* Start trying to make APIs better for multi oracle contract infos

* Clean things up in the GUI, try to make failures on disjoint union contracts as explicit as possible

* Use less numDigits as optimization for non secp CI test cases

* Fix compile

* Refactor BroadcastDLCDialog

* Fix test case optimization

* Clean up comment

Co-authored-by: nkohen <nadavk25@gmail.com>
2021-11-29 19:26:00 -06:00
rorp
41cb26a3bb
Make DLC node's external IP configurable (#3838)
* Make DLC node's external IP configurable

* docs

* some more changes
2021-11-19 14:51:23 -06:00
Chris Stewart
1d7529236f
2021 11 13 scan bitcoind witspkv1 mempool (#3825)
* Add script to count witness spk v1 txs

* more fixes and information

* Clean up
2021-11-16 13:06:51 -06:00
Chris Stewart
a40ef1ab21
Break existing api to get new address to remove the requirement for null label (#3818) 2021-11-12 09:58:50 -06:00
rorp
21fab4ee70
Improve app server validation error handling (#3796) 2021-11-05 10:03:16 -05:00
rorp
e02c9bba12
Overridable Tor config (#3780) 2021-10-27 12:57:10 -05:00
rorp
403c78fd8f
Server Docker config (#3775) 2021-10-25 06:35:02 -05:00
Chris Stewart
7a3497ab9c
2021 10 15 createcontractinfo numeric (#3758)
* Implement payout function reader and tlv points reader/writer

* Add support for numeric contract infos in the createcontractinfo rpc

* Adjust logging level

* Remove unused endpoint

* Add new format to site
2021-10-15 19:56:00 -05:00
Chris Stewart
80d498d288
Fix bug where getbalances was always retruning sats (#3750) 2021-10-13 14:51:13 -05:00
Chris Stewart
94e219befd
Update getbalance rpcs to return a number rather than a string (#3746)
* Update getbalance rpcs to return a number rather than a string

* Make sure serialized number returned is a javascript number, not string
2021-10-12 15:43:54 -05:00
Chris Stewart
6cbbd8825d
2021 10 02 create contract info (#3713)
* WIP createcontractinfo

* Fix ordering issue

* Use existing contract descriptor serializer, begin fixing test case

* Get DLCRoutesSpec createcontrafctinfo passing again

* Finish implementing createcontractinfo

* Add doc

* Fix native image build by adding hard coded static private key for OracleAnnouncementV0TLV.dummy
2021-10-05 06:24:25 -05:00
Chris Stewart
781e77844f
Implement ability to get proper version of BitcoindRpcClient from BitcoindRpcApConfig.clientF (#3699) 2021-09-29 06:43:15 -05:00
Chris Stewart
4e56fb7901
Make it so bitcoind backend exceptions don't get swallowed (#3697)
* Make it so bitcoind backend exceptions don't get swallowed when doing IBD against bitcoind

* Move zmq polling into syncWalletWithBitcoindAndStartPolling() method
2021-09-28 17:55:47 -05:00
rorp
698fe9e800
Add backupwallet and backuporacle endpoints (#3694)
* Add backupwallet and backuporacle endpoints

* respond to the PR comments
2021-09-28 07:46:33 -05:00
Chris Stewart
2191eb2049
Add 'getversion' endpoint to fetch the version from the backend (#3689)
* Add 'getversion' endpoint to fetch the version from the backend

* Use EnvUtil.getversion
2021-09-27 07:42:21 -05:00
Chris Stewart
4a5265801c
Allow for enternal entropy to be passed into a docker container for the appServer and oracleServer (#3679) 2021-09-20 13:27:20 -07:00
Chris Stewart
132479d271
Implement ability to provide external entropy to bitcoin-s (#3672)
* Encapsulate initialization of DLCOracle.start() method

* Use internal WalletAppConfig.kmConf rather than passing in custom key manager parameters

* Add KeyManagerAppConfig.defaultAccountType

* Get all tests passing besides TrezorAddressTest

* Get TrezorAddressTest passing with provided entropy

* Add unit test to make sure we can always derive the seed

* Get docs compiling

* Fix dlcWalletTest test cases

* Add more test cases to keymanager

* Add the new configuration to the example configuration

* Add more test cases

* Remove coverage on 2.12 as it isn't accurate

* Rework DLCOracleAppConfig.start() to call kmConf.start() so the oracle can use entropy provided via bitcoin-s.conf
2021-09-18 09:49:11 -05:00
Chris Stewart
0fb2cd0149
Remove implicit conversions from BitcoinSAppConfig -> {WalletAppConfig,ChainAppConfig,NodeAppConfig} etc (#3652) 2021-09-08 13:54:18 -05:00
benthecarman
515e85b1c5
Decode DLC messages cli commands (#3636)
* Decode DLC messages cli commands

* Move decoding to picklers, add contractInfo decoder

* Add decoding examples
2021-09-03 09:46:09 -05:00
Chris Stewart
0746b14331
Move BitcoindRpcAppConfig into the bitcoind-rpc project (#3610) 2021-08-27 06:43:31 -05:00
Chris Stewart
a5f4f9663c
Add BitcoinSServerMain test to connect to bitcoind (#3591)
* Add BitcoinSServerMain test to connect to bitcoind

* Add tor tests

* Fix compile

* Remove println

* Allow to reset BitcoinSServer promise

* Remove println

Co-authored-by: benthecarman <benthecarman@live.com>
2021-08-26 09:08:38 -05:00
benthecarman
479f8e249c
Remove unneeded CoreApi (#3599) 2021-08-24 14:17:04 -05:00
Chris Stewart
b980f4894d
Implement BitcoinSAppConfig with ActorSystem (#3596) 2021-08-24 07:41:05 -05:00
Chris Stewart
75bbda66dd
Add AppConfigActorSystem (#3590) 2021-08-23 14:49:13 -05:00
Chris Stewart
e62615dc5e
Add guard to not allow us to check the network configuration on bitcoind (#3582)
* Add guard to not allow us to check the network configuration on bitcoind if we are using tor because tor isn't started yet

* Remove unecessary logs, revert config
2021-08-20 14:49:37 -05:00
Chris Stewart
9ef27e4d7e
Turn on bitcoin-s.node.relay=true by default on bundle/appServer (#3580) 2021-08-19 17:37:55 -05:00
benthecarman
0a31d6a4e2
Have wallet broadcast transaction for sendrawtransaction (#3578) 2021-08-19 17:24:17 -05:00
rorp
c915711908
Make Tor setup Docker compatible (#3552) 2021-08-19 08:13:23 -07:00
Chris Stewart
b7d85264a0
Implement TorAppConfig.start(), use tor logs to detect when the tor is fully started (#3549)
* Implement TorAppConfig.start(), use tor logs to detect when the tor binary is fully started

* Clean up comments

* take ben's suggestion and only start the binary when tor is enabled

* Add cases for when binary is alreayd started

* Actually set the stop flag correctly

* Scalafmt
2021-08-15 14:01:12 -05:00