Commit Graph

1449 Commits

Author SHA1 Message Date
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
Chris Kleeschulte 7931062d57 Merge pull request #379 from STRML/bugfix/hashType
Fix #377; db must contain hash + type, not just hash.
2016-01-11 15:51:57 -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
Chris Kleeschulte 3b2108da03 Merge pull request #383 from posita/posita/380-add-missing-git-config
Fix #380. Add missing git config properties if required before committing bitcoin core patch.
2016-01-04 13:25:01 -05:00
Matt Bogosian df3fc3dd35 Fix #380. Add missing git config properties if required before committing bitcoin core patch. 2015-12-23 18:03:44 -08:00
Braydon Fuller 858182a346 Merge pull request #370 from kleetus/feature/docs_home_dir
Docs update
2015-12-11 10:23:41 -05:00
Chris Kleeschulte d0b78f52ec Merge pull request #368 from Sexual/patch-1
Add node.start to Node Constructor
2015-12-11 09:39:35 -05:00
Chris Kleeschulte 838d35b294 Docs update
- Some users are confused on whether or not they can use the home directory expansion shortcut.
- Changed to absolute example path to more accurately demonstrate.
2015-12-08 15:38:16 -05:00
Sladey 7c841e2cdc Add node.start to node constructur
Spent about 17 hours trying to figure out why my node wasn't starting. Kinda silly to miss something like this.
2015-12-05 21:47:13 +00:00
Chris Kleeschulte 59701c4c34 Bump development version to v1.0.1-dev 2015-12-02 18:03:34 -05:00
Chris Kleeschulte 6ef84f6059 Bump package version to v1.0.1 2015-12-02 17:10:15 -05:00
Chris Kleeschulte 8f95f794d5 Merge pull request #360 from braydonf/bitcoin-0.11.2
Bindings: Adjust patch to bitcoin for the 0.11.2 release
2015-11-16 10:12:36 -05:00
Braydon Fuller 2e2bd70262 Bindings: Adjust patch to bitcoin for the 0.11.2 release 2015-11-13 11:35:47 -05:00
Chris Kleeschulte f14810698c Bump development version to v1.0.0-dev 2015-11-04 12:43:59 -05:00
Chris Kleeschulte 7c6f0c0b44 Bump package version to v1.0.0 2015-11-04 10:50:28 -05: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
Patrick Nagurny cda3259fea Merge pull request #355 from braydonf/subapp
Web: Changed to pass express subapp to services instead of the router.
2015-11-03 10:42:18 -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 fccd6197c6 Docs: Updated bitcoind event docs to be less ambiguous 2015-11-02 18:02:32 -05:00
Braydon Fuller 826114b575 Docs: Update docs for bitcoind bindings with txleave event 2015-11-02 17:31:41 -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
Patrick Nagurny 275a0b57ea Merge pull request #348 from braydonf/node-v4
Added compilation support for Node.js v4
2015-10-29 11:21:25 -04:00
Braydon Fuller 37441004c8 Docs: Update prerequisites to include Node.js v4.2 2015-10-28 16:21:14 -04:00
Braydon Fuller 39e2f4ded5 Removed stray space in bitcoin patch. 2015-10-28 16:20:34 -04:00
Braydon Fuller bf97d7e70b Include node version in binary distribution. 2015-10-28 14:54:27 -04:00
Braydon Fuller e987723ab9 Update bitcoin patch to build depends with CC and CXX environment set 2015-10-28 13:59:13 -04:00
Braydon Fuller 1e4939a978 Add CC environment variable and gcc-4.8 2015-10-28 13:58:53 -04:00
Braydon Fuller 2d1c4b1455 Add g++-4.8 to travis builds. 2015-10-28 12:43:06 -04:00
Braydon Fuller d0129cc48b Update leveldown to version 1.4.2 2015-10-27 12:55:50 -04:00
Braydon Fuller f0e599fea1 Return node version check and include additional v4 engine. 2015-10-27 12:55:38 -04:00
Braydon Fuller 9d477fb64f Use Nan::CopyBuffer to avoid invalid pointer errors during garbage collection. 2015-10-27 12:28:12 -04:00
Patrick Nagurny 0c3ea838b9 Merge pull request #347 from kleetus/bug/missing_headers
Checking for missing headers
2015-10-27 10:19:32 -04:00
Chris Kleeschulte eb9e634275 Checking for missing headers
Rationale:

- On OS X, a user can have /usr/include, but still not have the standard headers
- this could be because the user uninstalled packages but the /usr/include directory was left behind. 
- by checking for at least stdlib.h, we stand a good chance at finding an issue much easlier
2015-10-26 20:08:27 -04:00
Braydon Fuller 1d6f11e10f Remove node.js version check. 2015-10-26 11:39:04 -04:00
Braydon Fuller 7afeef0f08 Debugging, clear warnings, fixed GetBlock. 2015-10-26 10:11:02 -04:00
Braydon Fuller b138877e19 Start upgrade to Node.js 4 2015-10-26 10:11:02 -04:00