Commit Graph

299 Commits

Author SHA1 Message Date
Braydon Fuller
70fae5335c node: optional getAPIMethods and getPublishEvents 2016-06-03 16:31:54 -04:00
Braydon Fuller
d31438b22f index: export bitcore-lib as lib 2016-06-03 16:16:11 -04:00
Braydon Fuller
3043263e3b node: handle undefined service config 2016-06-03 15:54:01 -04:00
Braydon Fuller
61caf6974a cli: parse json params 2016-06-03 15:41:14 -04:00
Chris Kleeschulte
e87f628e7a Merge pull request #439 from braydonf/zmqcheck
bitcoind: added zmq precondition
2016-06-02 14:11:59 -04:00
Braydon Fuller
cf16a23408 bitcoind: added zmq precondition
Adds a state check that transaction and block events are over the same host
and port. This is to make sure that block events can be subscribed to and
that the tip of the chain stays up to date for correct confirmation counts.
2016-06-01 19:50:45 -04:00
Braydon Fuller
814576953c bitcoind: relative spawn.datadir handling
Will expand the datadir into an absolute path based on the location
of the configuration file. This is to avoid unexpected behavior in regards
to the location of configuration files.
2016-06-01 11:33:06 -04:00
Braydon Fuller
aa7f0d7c60 test: remove duplicated test 2016-05-26 10:23:42 -04:00
Braydon Fuller
e8a35e2bb5 bitcoind: bug with getting block hash from address
Fixes an issue where passing an address as the blockArg would get the blockhash
for the parsed integer of the address. `parseInt` would parse the address as
an integer and then get the block hash for 1. A regular expression now checks
that the string is numeric with only 0-9 and the length is less than 40, the
size of a ripemd160, and also less than the length of a sha256 hash.
2016-05-26 10:15:42 -04:00
Braydon Fuller
c7ec2dcc89 test: bitcoind test for undefined scriptPubKey.addresses 2016-05-26 09:16:08 -04:00
Braydon Fuller
2dddf01bb0 test: coverage for spawnChildProcess 2016-05-24 17:11:02 -04:00
Braydon Fuller
f76b206178 test: coverage for getBlockHeader 2016-05-24 16:39:22 -04:00
Braydon Fuller
1d9b89f187 test: coverage for getAddressHistory 2016-05-24 16:29:36 -04:00
Braydon Fuller
0cb795d980 test: add bitcoind test for early shutdown while connecting 2016-05-24 16:22:41 -04:00
Braydon Fuller
52cf300858 test: coverage for bitcoind getAddressSummary 2016-05-24 15:13:41 -04:00
Braydon Fuller
0c820c5987 test: unit tests for bitcoind address details 2016-05-24 14:30:54 -04:00
Braydon Fuller
86b1acd0be test: coverage for bitcoind getAddressUnspentOutputs 2016-05-24 14:06:03 -04:00
Braydon Fuller
9c90f05c73 test: more coverage for bitcoind 2016-05-24 13:35:08 -04:00
Braydon Fuller
3fef6f5ffc test: increase test coverage of bitcoind service 2016-05-24 13:07:51 -04:00
Braydon Fuller
35a1b6dd04 test: more coverage for bitcoind service
tests for catching errors in #_initChain
2016-05-24 10:21:28 -04:00
Braydon Fuller
ea3c813d51 test: check that caching is working 2016-05-23 16:47:57 -04:00
Braydon Fuller
2a53aad34a test: add test for respawn bitcoind 2016-05-23 16:21:03 -04:00
Braydon Fuller
f1a9f6d066 test: stub logging in bitcoind tests 2016-05-23 15:58:54 -04:00
Braydon Fuller
85a302ee9d test: unit tests for zmq socket setup 2016-05-23 15:57:38 -04:00
Braydon Fuller
a4888e5354 test: increase test coverage for lib/node.js 2016-05-23 15:45:13 -04:00
Braydon Fuller
202971ec0c test: increase test coverage for bitcoind
adds tests for subscribing with addresses
2016-05-23 15:44:33 -04:00
Braydon Fuller
584dd2cb98 test: add unit test for node getNetworkName 2016-05-23 13:46:03 -04:00
Braydon Fuller
cd9bbc8661 scaffold: expanded v2 config checks 2016-05-23 11:30:57 -04:00
Braydon Fuller
28ff52ece6 tests: add tests for addresstxid event 2016-05-18 11:20:23 -04:00
Braydon Fuller
6fbadb6c42 test: stub logging in unit tests 2016-05-18 00:33:57 -04:00
Braydon Fuller
bf080422ed web: get remoteAddress for socket with cloudflare header 2016-05-18 00:17:45 -04:00
Braydon Fuller
4df9b5f6cf bitcoind: add addresstxid event 2016-05-17 22:46:38 -04:00
Braydon Fuller
a48bcaf900 web: added logging for web socket events 2016-05-17 18:16:56 -04:00
Braydon Fuller
fa6474e85f bitcoind: handle block height number as string 2016-05-16 18:01:12 -04:00
Braydon Fuller
8f11a33834 test: add getBlockOverview unit tests and refactor 2016-05-16 17:34:40 -04:00
Braydon Fuller
cd4432652d main: remove transaction with populate methods
The methods populateInputs and populateSpentInfo are nolonger necessary or used
now that there is is getDetailedTransaction.
2016-05-13 18:52:12 -04:00
Braydon Fuller
8bddf4f0d6 bitcoind: add getDetailedTransaction method
Adds a new method getDetailedTransaction with a standard JavaScript object
with block information, address, amounts and fees. And removes the
getTransactionWithBlockInfo method since this new method is equivalent,
and will serialize over an API correctly.

Also includes a new method getBlockOverview to get the txids for a block,
that can be combined with getDetailedTransaction for viewing block
transactions with additional information.
2016-05-13 16:50:49 -04:00
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