Commit Graph

502 Commits

Author SHA1 Message Date
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
Gabe Gattis 0c88a540fd Merge pull request #339 from braydonf/create-testnet
Add --testnet option to create command.
2015-10-21 15:44:22 -04:00
Braydon Fuller 92382d69cc Add --testnet option to create command. 2015-10-21 15:28:28 -04:00
Braydon Fuller 17b669c98f Add date to logs and formatting changes. 2015-10-21 14:47:35 -04:00
Chris Kleeschulte 0b761511a0 Merge pull request #335 from braydonf/aliases
Remove aliases for commands
2015-10-20 18:21:42 -04:00
Braydon Fuller 9ab989a68a Remove aliases for commands 2015-10-20 17:09:28 -04:00
Braydon Fuller 95bd5913b8 Clear warnings with bitcore create command. 2015-10-20 16:48:51 -04:00
Braydon Fuller 83058eae26 Only use local install if config file exists. 2015-10-20 14:56:09 -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
Stephen Pair 05eb5a03f2 remove debug output from bitcore cli utility 2015-10-20 15:49:01 +00:00
Rob Riddle e9290d3cdc Use bitcore-lib in node package creation 2015-10-19 15:43:51 +03:00
Braydon Fuller 95b5bfbfcb Fix library reference. 2015-10-18 16:28:24 -04:00
Braydon Fuller 58894bc4b2 Expose cli methods. 2015-10-18 16:20:51 -04:00
Braydon Fuller 1dec93edd4 bitcore -> bitcore-lib 2015-10-17 00:56:29 -04:00
Patrick Nagurny 236d44441e don't crash when sendTransaction is called with bad data 2015-10-14 10:50:50 -04:00
Braydon Fuller 2e3d58c07a Fix bug where the outputIndex would be removed.
The address history `combineTransactionInfo` method removes the
outputIndex when creating the outputIndexes property. When these are
from the mempool the original reference is also modified.

We can easily solve this by returning new instances in `getOutputs`
and `getInputs` instead of a reference to the actual mempool instance.

This will also have the additional benefit that height and other
properties that will be the same for every mempool entry will
not be stored in memory longer than what is necessary to fulfill
a request.
2015-10-12 18:35:37 -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 da9d856da3 Add comments to describe each prefix. 2015-10-02 10:56:28 -04:00
Braydon Fuller 27e90ef41a Give false if spent information not available. 2015-10-01 23:50:06 -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 caefe5dbd1 Merge pull request #265 from braydonf/doc-update
Updates to documentation for bitcore.io website.
2015-10-01 12:26:09 -04:00
Patrick Nagurny 3fa1340ef3 save tip as part of block db operations 2015-09-29 15:20:05 -04:00
Braydon Fuller f337622790 Updates to documentation for bitcore.io website. 2015-09-29 14:15:49 -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
Braydon Fuller 80fadc7ec3 Fix bug with address summary transaction count. 2015-09-21 17:02:11 -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 4e763d189f fixes 2015-09-18 14:06:26 -04:00
Patrick Nagurny b11ab97739 add tests 2015-09-18 14:06:26 -04:00
Patrick Nagurny bc39a5e480 use mempool spent index 2015-09-18 14:06:26 -04:00
Patrick Nagurny 8b1a2aa001 get address summary 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
Patrick Nagurny 85f636f154 fix db stopping bug 2015-09-18 11:30:37 -04:00
Patrick Nagurny e5a58f986c Merge pull request #239 from kleetus/mempool-index
Mempool index
2015-09-18 10:19:18 -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 62faecb9ae Address Mempool Index: Fix bugs with reset mempool. 2015-09-17 14:26:53 -04:00
Braydon Fuller ad120213e1 Start of mempool address index. 2015-09-17 14:26:53 -04:00
Braydon Fuller 37550166dd Database: Warn about inconsistent database state. 2015-09-16 20:02:09 -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
Chris Kleeschulte a105c0a35e Removed errors memoization. 2015-09-16 10:38:08 -04:00
Chris Kleeschulte c9d4dc276f Crash on reindex
- Removed unneeded cancellation error and handlers for it.
2015-09-16 10:22:42 -04:00
Chris Kleeschulte 4ee11ed73b Crash on reindex
- Introduced the concept of a Cancellation error so that services can choose to watch for a cancellation flag. 
- Services can then send this error back and it will be forwarded to the node.
- The node will then know to call shutdown appropriately.
2015-09-16 10:22:42 -04:00
Chris Kleeschulte dc6d0e681c Crash on reindex
- Added the concept of loadServices on the node so that the node can conditionally call stop on loadingServices
- This serves the case where services might be loading versus fully loaded (which is not always the cases for heavy services like bitcoind)
2015-09-16 10:22:42 -04:00
Patrick Nagurny 7e1d433781 go from highest timestamp to lowest timestamp 2015-09-15 18:23:06 -04:00
Patrick Nagurny e6b850124c fixes 2015-09-15 17:25:41 -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
Patrick Nagurny eaee098cf0 add getBlockHashesByTimestamp 2015-09-15 12:56:44 -04:00
Patrick Nagurny 696759849f Merge pull request #223 from braydonf/history
Pagination for Address History
2015-09-15 12:34:26 -04:00
Braydon Fuller 25e801126f Bitcore Node Add Command with Remote URLS 2015-09-15 11:08:55 -04:00
Braydon Fuller 5fbd8991ed Address History: Combine addresses so that history is txid unique. 2015-09-14 21:04:54 -04:00
Braydon Fuller e7587564a7 Address History: Add getAddressHistoryCount to available API methods. 2015-09-14 17:29:43 -04:00
Braydon Fuller b1b40c892e Address History: Add getAddressHistoryCount method 2015-09-14 16:48:28 -04:00
Braydon Fuller 87a9163743 Address History: Docs for "start" and "end" arguments 2015-09-14 16:29:27 -04:00
Braydon Fuller a80b58e004 Address History: Fix sorting bug 2015-09-14 16:11:31 -04:00
Chris Kleeschulte 7b50f5ff3d Switched to using a flag instead of using a replacement. 2015-09-14 13:15:55 -04:00