Commit Graph

227 Commits

Author SHA1 Message Date
Braydon Fuller c63e98f061 bitcoind: limit tx history range 2016-04-22 16:51:56 -04:00
Braydon Fuller c6e543c2a1 bitcoind: fix noTxList caching issue 2016-04-22 16:13:57 -04:00
Braydon Fuller 5e6600162a test: add unit test for getaddressunspentoutputs with mempool 2016-04-22 12:48:16 -04:00
Braydon Fuller 7f17dd4a4c bitcoind: fixed issue with cache mempool updates 2016-04-22 12:09:57 -04:00
Braydon Fuller b901e10c9d bitcoind: update unspentoutputs with mempool 2016-04-21 17:13:24 -04:00
Braydon Fuller d1cf9deef0 bitcoind: parse ints for pagination 2016-04-20 15:35:43 -04:00
Braydon Fuller 587602d080 bitcoind: stop failsafe timeout 2016-04-20 13:03:18 -04:00
Braydon Fuller 019bc2a58c bitcoind: load network bitcoin.conf and set defaults 2016-04-20 11:41:02 -04:00
Braydon Fuller c3dab07b30 bitcoind: fix clearInterval issue with Node.js 0.12 2016-04-19 20:27:52 -04:00
Braydon Fuller 7d878adcf0 bitcoind: immediately subscribe with connect option 2016-04-19 17:23:27 -04:00
Braydon Fuller 458fe2f2b6 bitcoind: emit block events while polling before subscribing to zmq events 2016-04-19 16:53:00 -04:00
Braydon Fuller b092adcc21 bitcoind: subscribe to zmq events without interval if already synced 2016-04-19 16:40:54 -04:00
Braydon Fuller 2b38f08175 bitcoind: subscribe to zmq events once synced
prevents flooding tx and and block events that can cause issues
2016-04-19 16:00:17 -04:00
Braydon Fuller 2975f27a8d bitcoind: add uacomment option to default config 2016-04-18 18:34:54 -04:00
Braydon Fuller feb8038da6 bitcoind: fix check reindex interval 2016-04-18 16:05:09 -04:00
Braydon Fuller bf67b932de bitcoind: fix check reindex method not found 2016-04-18 15:52:35 -04:00
Braydon Fuller afda35962b test: mempool helper method unit tests 2016-04-18 13:37:37 -04:00
Braydon Fuller 7c37eba91e test: unit tests for connect and spawn processes 2016-04-18 13:24:47 -04:00
Braydon Fuller a4f5a6fa82 test: getblock unit tests 2016-04-18 10:37:33 -04:00
Braydon Fuller 24ca5ce053 web: option to enable/disable socket rpc handling 2016-04-15 11:20:38 -04:00
Braydon Fuller 69ff5423c2 bitcoind: rename exported events to rawtransaction and hashblock 2016-04-15 11:20:38 -04:00
Braydon Fuller 890b38744d test: update unit tests, refactoring and cleanup 2016-04-15 11:20:33 -04:00
Braydon Fuller c2eda9b3c2 bitcoin: address history by height range 2016-04-12 20:51:58 -04:00
Braydon Fuller c36b0777d4 bitcoind: add checkstate for spentindex 2016-04-12 15:36:59 -04:00
Braydon Fuller cdfe572344 bitcoind: include height in spentinfo 2016-04-12 15:30:17 -04:00
Braydon Fuller 37f31fdb19 bitcoind: added getspentinfo method 2016-04-12 15:07:16 -04:00
Braydon Fuller 52f05f3027 bitcoind: emit block events 2016-04-11 10:47:52 -04:00
Braydon Fuller d0937fea55 bitcoind: try to get transaction from all bitcoind nodes 2016-04-11 10:47:44 -04:00
Braydon Fuller 019626ba15 bitcoind: prevent rapid tip updates for all networks 2016-04-11 10:47:37 -04:00
Braydon Fuller 5bea36edc6 bitcoind: try querying all bitcoind nodes 2016-04-11 10:47:30 -04:00
Braydon Fuller d7f49cc192 test: add regtest for multiple bitcoind connections 2016-04-08 22:17:45 -04:00
Braydon Fuller 8102761b55 bitcoind: normalize address arguments 2016-04-08 16:04:27 -04:00
Braydon Fuller f3f2f59615 node: add getNetworkName method 2016-04-08 16:00:33 -04:00
Braydon Fuller 90e354093c bitcoind: increase reindex interval to 10s 2016-04-08 15:54:04 -04:00
Braydon Fuller 3713c6ac1e bitcoind: sendTransaction second arg as object 2016-04-08 15:52:57 -04:00
Braydon Fuller b4b560aa45 bitcoind: get blocks and transactions as buffers 2016-04-08 15:49:18 -04:00
Braydon Fuller 9bf6941fdf test: update node regtest 2016-04-08 14:44:24 -04:00
Braydon Fuller 4662ca0850 bitcoind: update jsdocs and cleanup 2016-04-08 12:00:10 -04:00
Braydon Fuller 88872734de bitcoind: add missing api methods to export 2016-04-08 12:00:10 -04:00
Braydon Fuller 82232c0f55 bitcoind: wrap rpc errors as instances of error 2016-04-08 12:00:10 -04:00
Braydon Fuller 962e7b87f8 test: update regtest 2016-04-08 12:00:10 -04:00
Braydon Fuller c4649c9b13 test: mark last zmq block before rpc calls 2016-04-08 12:00:10 -04:00
Braydon Fuller 31da32ecfd test: updated p2p integration test 2016-04-08 12:00:09 -04:00
Braydon Fuller 7c6e5cf7b1 bitcoind: only cache transaction with height if confirmations >= 6 2016-04-08 11:59:26 -04:00
Braydon Fuller 0f24dd5f49 config: update configuration options for exec path
- config options for bitcoind to specify exec path of bitcoind
- config options to connect to multiple bitcoind processes
- systemd and upstart preferred methods to daemonize
2016-04-08 11:59:26 -04:00
Braydon Fuller 5932b34a1f bitcoind: set height when starting 2016-04-08 11:59:26 -04:00
Braydon Fuller 9409374fbe bitcoind: fix multiple addresses for address history 2016-04-08 11:59:26 -04:00
Braydon Fuller b473b65207 bitcoind: fix tx event to include tx buffer 2016-04-08 11:59:26 -04:00
Braydon Fuller 60333bcb0e bitcoind: add mempool to address txid results 2016-04-08 11:59:26 -04:00
Braydon Fuller ab70aa666e bitcoind: add address utxos 2016-04-08 11:59:26 -04:00
Braydon Fuller 7d7dfe329d bitcoind: variable name fixes 2016-04-08 11:59:26 -04:00
Braydon Fuller af573b765b bitcoind: fix txid pagination 2016-04-08 11:59:26 -04:00
Braydon Fuller b69d848352 bitcoind: add lru caching for results 2016-04-08 11:59:26 -04:00
Braydon Fuller 7e70bbfa7d bitcoind: bitcoind service using rpc and zmq with address index 2016-04-08 11:59:26 -04:00
Jan Pochyla b55ecf3044 clamp tx pagination to 0 2016-04-01 18:11:49 +02:00
Braydon Fuller 462e4e3cdd Merge pull request #407 from bitpay/opt/multiple-address-history
Opt/multiple address history
2016-02-11 12:15:15 -05:00
Matias Alejo Garcia e36cdb717a rm empty keys 2016-02-11 10:42:30 -05:00
Matias Alejo Garcia 1a68ca4fae add tests to _updateAddressIndex 2016-02-10 15:38:02 -05:00
Matias Alejo Garcia 3bb3d82aac add counter for address mempool index 2016-02-10 15:03:34 -05:00
Matias Alejo Garcia e7895b4b34 use key as binary 2016-02-09 15:30:40 -05:00
Matias Alejo Garcia d0c2fa61d8 fix tests 2016-02-09 10:57:40 -05:00
Matias Alejo Garcia 9f87156adc fix format 2016-02-09 10:26:09 -05:00
Matias Alejo Garcia dae5c9d3d5 fix regtests 2016-02-08 15:07:32 -05:00
Matias Alejo Garcia c1d3f351f2 add address index to mempool + noBalance options 2016-02-08 13:21:53 -05:00
Matias Alejo Garcia e7e33313cf add noBalance options + mempoolAddressIndex 2016-02-08 12:50:32 -05:00
Braydon Fuller 6e8f3ee917 Add regtest from bitcore-lib 2016-02-03 18:29:33 -05:00
Braydon Fuller f473ddeddd Lower and include new concurrency limits 2016-02-03 12:28:32 -05:00
Braydon Fuller 93e5dbfc34 Address Service: Limit the number of simultaneous requests 2016-02-02 13:27:45 -05:00
Braydon Fuller 995b4b57d4 DB: Include docs on how to recreate the database 2016-01-28 13:47:26 -05:00
Braydon Fuller 98bd8ee560 DB Service: Include a version number for upgrading purposes 2016-01-28 12:08:05 -05:00
Braydon Fuller 3d7fb6f234 Address Service: End stream without pausing first
There was an issue where streams would still be held open if "pause" was
called before "end", this would lead to http requests from the insight-api
not being returned with an error status as soon as possible but would
instead stay open.
2016-01-26 13:25:53 -05:00
Braydon Fuller 39f8355cd9 Address Service: Bump maximum number of addresses default 2016-01-19 14:07:28 -05:00
Braydon Fuller 45029030f1 Address Service: Sort after unconfirmed and confirmed 2016-01-18 16:16:53 -05:00
Braydon Fuller e498e0fac2 Address Service: Include default callback earlier 2016-01-18 16:03:37 -05:00
Braydon Fuller d4f2df5c51 Address Service: Sort mempool txids 2016-01-18 15:56:05 -05:00
Braydon Fuller a166b6af23 Address Service: Removed nolonger used constant for cache 2016-01-18 15:06:18 -05:00
Braydon Fuller 62934b4b66 Address Service: Removed event listeners prior to stopping 2016-01-18 15:00:55 -05:00
Braydon Fuller 3d9b6d5532 Address Service: More tests for history 2016-01-18 12:59:49 -05:00
Braydon Fuller e79c00db10 Address Service: Updated tests and fixed various bugs 2016-01-15 18:04:32 -05:00
Braydon Fuller ead6c2f45f Address Service: Removed caching and added max query limits
Querying addresses that have millions of transactions is supported however
takes hundreds of seconds to fully calculate the balance. Creating a cache of
previous results wasn't currently working because the `isSpent` query is always
based on the current bitcoind tip. Thus the balance of the outputs would be included
however wouldn't be removed when spent as the output wouldn't be checked again
when querying for blocks past the last checkpoint. Including the satoshis in the
inputs address index would make it possible to subtract the spent amount,
however this degrades optimizations elsewhere. The syncing times or querying
for addresses with 10,000 transactions per address.

It may preferrable to have an additional address service that handles high-volume
addresses be on an opt-in basis so that a custom running client could select
high volume addresses to create optimizations for querying balances and history.
The strategies for creating indexes differs on these use cases.
2016-01-14 17:17:04 -05:00
Braydon Fuller 4fcec8755c Address Service: Fixed many bugs from tests
- Refactored getAddressSummary and added several tests
- Fixed bugs revealed from the integration regtests
- Updated many unit tests
2016-01-13 17:15:14 -05:00
Braydon Fuller 188ff28ec7 Address Service: Fixed HASH_TYPES_MAP naming issue 2016-01-11 16:51:00 -05:00
Braydon Fuller 8d2f69c5fd Address Service: Restored multi-address history queries
- Restored functionality to be able to query the history of multiple addresses in one query
- Sorted mempool transactions by timestamp in txid lists
2016-01-11 16:17:55 -05:00
Braydon Fuller 5c4f3c4453 Address Service: Use address summary cache for pagination 2016-01-11 16:17:55 -05:00
Braydon Fuller 8298e380ed Address Service: Use streams to combine inputs and outputs 2016-01-11 16:17:55 -05:00
Braydon Fuller cef2f7686d Address Service: Limit the length of outputs that can be queried at a time 2016-01-11 16:17:55 -05:00
Braydon Fuller 40eb4f50ae Address Service: Start to cache `getAddressSummary` based on range of block heights 2016-01-11 16:17:55 -05:00
Braydon Fuller cab25cf397 Address Service: Start to use streams for memory optimization with large queries 2016-01-11 16:17:55 -05:00
Samuel Reed 3214390d4c
Fix #377; db must contain hash type, not just hash.
Prevents erroneous crediting of all transactions to both the
p2pkh and the corresponding p2sh address.
2016-01-11 09:47:00 -06:00
Patrick Nagurny 02620a5b47 Merge pull request #352 from braydonf/mem
Optimized address service mempool index size
2015-11-03 17:23:28 -05:00
Braydon Fuller 0ea035c4f0 Address: Fixed race condition with transaction event handlers 2015-11-03 17:12:13 -05:00
Braydon Fuller 378edd4186 Web: Changed to pass express subapp to services instead of the router. 2015-11-03 10:32:01 -05:00
Braydon Fuller c5c8e21c6c Address: Fixed bug with isSpent confusion with prevTxId and txid 2015-11-03 10:26:32 -05:00
Braydon Fuller a1bae366b3 Database: Removed `runAllMempoolIndexes` method
Replaced with using `tx` and `txleave` to manage the state of the mempool indexes.
2015-11-02 17:18:37 -05:00
Braydon Fuller 89ef28f0b7 Optimize mempool address index memory footprint
- Adds default to store a large portion of the mempool index in leveldb
- Includes an option to use memdown to have the mempool index in-memory
2015-10-30 18:36:16 -04:00
Braydon Fuller 086ba5fcfc Switch to remove items from mempool index as they leave asynchronously. 2015-10-29 19:16:56 -04:00
Braydon Fuller f0ec424161 Added bindings to be able to listen to tx leaving mempool. 2015-10-29 16:15:00 -04:00
Rob Riddle 824e624929 Fix typos and some examples in service doc 2015-10-22 18:47:19 +03:00
Patrick Nagurny 9bdd9e7995 unconfirmed balance shouldn't include confirmed balance 2015-10-21 18:25:57 -04:00
Braydon Fuller 17b669c98f Add date to logs and formatting changes. 2015-10-21 14:47:35 -04:00