Commit Graph

262 Commits

Author SHA1 Message Date
Braydon Fuller b597a05cb4 bitcoind: camelCase result from getBlockHeader
for consistency with other methods
2016-05-11 11:39:14 -04:00
Braydon Fuller d399e9acea bitcoind: camelCase getInfo results
for consistency with other bitcoind api responses
2016-05-11 11:16:04 -04:00
Braydon Fuller 4757edc570 test: add missing property checks 2016-05-10 19:40:29 -04:00
Braydon Fuller 791047c10d bitcoind: bump max tx history default to 50 2016-05-10 19:30:36 -04:00
Braydon Fuller 8b0d16d5a3 test: check callcount for retry in bitcoind spawn child method 2016-05-10 18:54:02 -04:00
Braydon Fuller 75c43559d4 bitcoind: paginate txids in address summary
so that one request doesn't yield a 80MB response
2016-05-10 13:48:56 -04:00
Braydon Fuller b0290899ce bitcoind: handle empty input from pid file 2016-04-28 16:19:33 -04:00
Braydon Fuller 2e912af9b4 bitcoind: subscribe to zmq event closer to 100% sync
Instead of subscribing at >= 0.995 subscribe at >= 0.9999 progress
2016-04-28 13:13:51 -04:00
Braydon Fuller 24d1bc82e9 logger: added option to disable formatting
- systemd journalctl includes timestamps in log messages already
- updated logger to use console.error, console.warn, console.info, and etc.
2016-04-27 13:46:50 -04:00
Braydon Fuller ea792b692f scaffold: remove outdated logging of db service sync status 2016-04-27 12:00:47 -04:00
Braydon Fuller 92bae5f09a general: code cleanup, refactoring and formatting 2016-04-27 11:36:26 -04:00
Braydon Fuller c1e9d5a3d9 test: added tests for stopSpawnedBitcoin 2016-04-26 17:29:40 -04:00
Braydon Fuller c63e98f061 bitcoind: limit tx history range 2016-04-22 16:51:56 -04:00
Braydon Fuller 5e6600162a test: add unit test for getaddressunspentoutputs with mempool 2016-04-22 12:48:16 -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 2015514e78 test: increase timeout for check synced test 2016-04-20 12:05:15 -04:00
Braydon Fuller 3e2492e6d4 scaffold: detect incompatible config 2016-04-20 11:55:45 -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 40e7b24ea9 test: fix unstubbed uncaughException 2016-04-19 20:10:32 -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 e09cc3d1fc test: bitcoind start unit tests 2016-04-18 11:11:17 -04:00
Braydon Fuller 317fdbbdd8 test: bitcoind _getAddressStrings unit tests 2016-04-18 10:54:50 -04:00
Braydon Fuller 8fd405eedf test: getBlockHeader unit tests 2016-04-18 10:48:32 -04:00
Braydon Fuller a4f5a6fa82 test: getblock unit tests 2016-04-18 10:37:33 -04:00
Braydon Fuller bb726bac8b test: bitcoind getaddressbalance unit test 2016-04-15 16:35:31 -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 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
Chris Kleeschulte afce33e5ff Fixed test to refer to variables.sh for the architecture. 2016-02-11 10:25:22 -05:00
Matias Alejo Garcia 4d03aaa73f use mocknode 2016-02-10 16:18:27 -05:00
Matias Alejo Garcia 6e600b5def refactor test 2016-02-10 16:08:27 -05:00
Matias Alejo Garcia 1a68ca4fae add tests to _updateAddressIndex 2016-02-10 15:38:02 -05:00
Matias Alejo Garcia 02f2234004 rm extra commas 2016-02-10 15:05:05 -05:00
Matias Alejo Garcia 3bb3d82aac add counter for address mempool index 2016-02-10 15:03:34 -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 c65c2bad20 add mempoolADdressIndex test 2016-02-08 13:40:27 -05:00
Matias Alejo Garcia c1d3f351f2 add address index to mempool + noBalance options 2016-02-08 13:21:53 -05:00
Braydon Fuller 83eba52657 Tests: Fix tests to use enable/disableRegtest 2016-02-04 17:26:17 -05:00
Braydon Fuller 98bd8ee560 DB Service: Include a version number for upgrading purposes 2016-01-28 12:08:05 -05:00
Braydon Fuller a2acc0c80f Address Service: Fixed test for max address limit 2016-01-26 13:09:31 -05:00
Braydon Fuller 45029030f1 Address Service: Sort after unconfirmed and confirmed 2016-01-18 16:16:53 -05:00
Braydon Fuller d4f2df5c51 Address Service: Sort mempool txids 2016-01-18 15:56:05 -05:00
Braydon Fuller 62934b4b66 Address Service: Removed event listeners prior to stopping 2016-01-18 15:00:55 -05:00
Braydon Fuller 687400eab2 Address Service: Added test for history `getAddressDetailsForTransaction` 2016-01-18 13:53:32 -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
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 5ac3b1c61f Address: Added unit tests for new mempool index methods 2015-11-02 17:10:43 -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
Braydon Fuller bf97d7e70b Include node version in binary distribution. 2015-10-28 14:54:27 -04:00
Braydon Fuller 92382d69cc Add --testnet option to create command. 2015-10-21 15:28:28 -04:00
Braydon Fuller e046f7294e Changes to be able to run with only a configuration file.
- Adds parameter to cli methods to be able to specify the location of services modules. This is useful for packages that wrap bitcore-node to be able to pass along a node_modules directory with services.
- Adds another parameter for including additional services in the default settings.
- Will use the `process.env.HOME + '/.bitcore` as the default configuration location.
- There are now two `getDefaultConfig`, one that will instatiate a `~/.bitcore` directory with a default if it doesn't exist, and `getBaseDefaultConfig` that will return a basic configuration without additional services enabled.
- Changes logic to use the global install if a local node_modules version is not available, this would previously assume that it was a local install because of the existence of a configuration file.
2015-10-20 12:33:53 -04:00
Braydon Fuller 21e0aa28b5 Added a Node.js version check based on the package.json engine. 2015-10-18 22:50:29 -04:00
Braydon Fuller 1dec93edd4 bitcore -> bitcore-lib 2015-10-17 00:56:29 -04:00
Braydon Fuller d9b2a0969b Fixed bug with balance
There was a bug when getting unspent outputs that would include an output
that was spent in the mempool in addition to the new output with the change
address. This lead to a balance having an output counted twice towards the
end balance. The solution is to have the isSpent method for the address service
to also include if the output was spent in the mempool, as the isSpent
method exposed from bitcoind only includes if the output was spent in a block.
2015-10-12 09:29:49 -04:00
Patrick Nagurny 3e38d84d0b emit address/balance events for mempool transactions 2015-10-02 17:10:12 -04:00
Patrick Nagurny 9acb896f10 Wait for bitcoind to catch up if tip is not found 2015-10-02 13:35:42 -04:00
Braydon Fuller 539b263c67 Add spentTxId Index
- To be able to query an inputTxId and inputIndex that spends an outputTxId and outputIndex
- Extends the mempoolSpentIndex to include the inputTxId and inputIndex
2015-10-01 20:03:31 -04:00
Patrick Nagurny 26b27b292e update tests 2015-09-29 16:03:56 -04:00
Chris Kleeschulte af7966f94a Removed unneeded getTxOutSetInfo 2015-09-25 11:33:51 -04:00
Braydon Fuller 1183e0cae7 Service Documentation 2015-09-23 18:14:37 -04:00
Chris Kleeschulte d474d03cf2 Merge pull request #248 from braydonf/pubkeyout
Address compatibility with pay-to-publickey output scripts.
2015-09-21 14:39:42 -04:00
Braydon Fuller 7e82c933c0 Merge pull request #249 from kleetus/feature/getNextBlockHash
Next Block Hash Bindings
2015-09-21 14:30:30 -04:00
Chris Kleeschulte 402d01d7ac Next Block Hash Bindings
- Added bindings for next block hash
- Added the reg/unit tests
2015-09-21 14:07:14 -04:00
Braydon Fuller e3096d3646 Address compatibility with pay-to-publickey output scripts. 2015-09-21 13:49:48 -04:00
Patrick Nagurny b11ab97739 add tests 2015-09-18 14:06:26 -04:00
Patrick Nagurny 4a5031a917 Merge pull request #240 from braydonf/gettxoutsetinfo
Add binding for getting transaction output set information.
2015-09-18 13:20:46 -04:00
Braydon Fuller 68368397d3 Add binding to get the best block hash. 2015-09-17 18:11:47 -04:00
Braydon Fuller 4c674a8fbb Add binding for getting transaction output set information. 2015-09-17 17:52:23 -04:00
Chris Kleeschulte 0ba168e2a2 Fixed typo and added a test to prove that the inputs from the mempoolInputIndex are added on stream close. 2015-09-17 17:20:35 -04:00
Chris Kleeschulte c3654120ee MempoolInputIndex and MempoolOutputIndex
- Added in memory indexes for mempool input and 
output by address.
2015-09-17 14:29:11 -04:00
Braydon Fuller 4343b90de2 Merge pull request #219 from pnagurny/feature/timestamp-blocks
Get block hashes by timestamp range
2015-09-16 13:47:00 -04:00
Patrick Nagurny aa9504a402 Merge pull request #227 from braydonf/add-cmd-remote
Bitcore Node Add Command with Remote URLS
2015-09-16 13:34:24 -04:00
Patrick Nagurny a0be38f074 check for timestamp out of bounds 2015-09-16 12:04:44 -04:00
Patrick Nagurny 7e1d433781 go from highest timestamp to lowest timestamp 2015-09-15 18:23:06 -04:00
Patrick Nagurny 00d3a0ba67 binary encode key and value 2015-09-15 16:55:14 -04:00
Braydon Fuller bfba4a1b7f Address History: Include count in response results. 2015-09-15 13:17:15 -04:00