Commit Graph

240 Commits

Author SHA1 Message Date
Chris Kleeschulte
1f4c5e5e1f
Fixing recently sent items. 2017-10-04 08:34:52 -04:00
Chris Kleeschulte
f5ad8b89fb
Added next hash support in header service. 2017-09-25 21:21:05 -04:00
Chris Kleeschulte
6a18c1e46e
Fixed issue with reorg. 2017-09-11 15:41:27 -04:00
Chris Kleeschulte
82dd1dfe3f
Fixed reorging. 2017-09-08 14:18:55 -04:00
Chris Kleeschulte
02ff6c680c
Fixed sync resume (memory issues).
Input values on tx index are no longer lazy loaded.
2017-09-07 18:55:33 -04:00
Chris Kleeschulte
4bd3a06edc
Fixed block sync where blocks come in all at once. 2017-08-29 16:01:11 -04:00
Chris Kleeschulte
7a8bae64a4
wip 2017-08-28 20:05:00 -04:00
Chris Kleeschulte
69f239a58b
Added regtests for block, tx. 2017-08-25 17:34:20 -04:00
Chris Kleeschulte
f0360a78a0
Fixed a problem with address balances. 2017-08-25 10:36:00 -04:00
Chris Kleeschulte
678cb83d61 Fixed tests for altered getAddressHistory and getAddressSummary calls. 2017-08-24 09:50:29 -04:00
Chris Kleeschulte
fc6ee8e193 Fixed README for this release. 2017-08-21 11:28:45 -04:00
Chris Kleeschulte
1a5e25d4c1 Fixed a problem were I was indexing the wrong output value. 2017-08-18 14:24:03 -04:00
Chris Kleeschulte
2fa6b5c314 Fixed tests. 2017-08-18 10:48:54 -04:00
Chris Kleeschulte
07b1ff3111 Added regtest reorg tests, 2017-08-17 19:38:06 -04:00
Chris Kleeschulte
72770944db Address routes fixes. 2017-08-15 12:48:16 -04:00
Chris Kleeschulte
c7ee57f224 Fixed network name when referring to bcoin's main net. 2017-08-10 18:11:04 -04:00
Chris Kleeschulte
bf7cd67269 Fixed address/transaction indexing. 2017-08-10 17:46:27 -04:00
Jason Dreyzehner
7c65ebad27 ci(Travis): Fix build, fix (or ignore) jshint issues 2017-07-31 15:04:25 -04:00
Chris Kleeschulte
2bd769cce0 wip 2017-07-27 19:12:23 -04:00
Chris Kleeschulte
45042aee57 wip 2017-07-26 17:36:41 -04:00
Chris Kleeschulte
b4a66d969c wip 2017-07-26 10:35:06 -04:00
Chris Kleeschulte
f69dfd0462 wip 2017-07-25 18:41:17 -04:00
Chris Kleeschulte
4a294f7058 wip 2017-07-21 14:03:04 -04:00
Chris Kleeschulte
f47a3e3a3b wip 2017-07-21 11:45:36 -04:00
Chris Kleeschulte
de4c59f958 wip 2017-07-19 15:50:47 -04:00
Chris Kleeschulte
861a80d678 wip 2017-07-19 10:35:25 -04:00
Chris Kleeschulte
aceddb12d9 wip 2017-07-18 19:05:32 -04:00
Chris Kleeschulte
a8eb0f8979 wip 2017-07-18 13:29:28 -04:00
Chris Kleeschulte
8365f358e7 wip 2017-07-18 10:04:22 -04:00
Chris Kleeschulte
67e9d63f4b wip 2017-07-16 17:29:58 -04:00
Chris Kleeschulte
b471857bf0 wip 2017-07-15 15:50:52 -04:00
Chris Kleeschulte
98ea052405 wip 2017-07-14 16:14:24 -04:00
Chris Kleeschulte
a488c3f083 wip 2017-07-12 17:46:38 -04:00
Chris Kleeschulte
9c943cc959 wip 2017-07-12 10:07:46 -04:00
Chris Kleeschulte
5e0b2b1f11 wip 2017-07-11 17:16:23 -04:00
Chris Kleeschulte
5de265e094 wip 2017-07-10 16:16:31 -04:00
Chris Kleeschulte
7afaa59862 wip 2017-07-10 10:00:47 -04:00
Chris Kleeschulte
b5d67135ae wip 2017-07-09 19:50:30 -04:00
Chris Kleeschulte
28e29ff8db wip 2017-06-22 09:17:55 -04:00
Chris Kleeschulte
780175ee4e wip 2017-05-25 08:54:27 -04:00
Chris Kleeschulte
a8760b3451 Wip on block service. 2017-05-18 09:48:28 -04:00
Chris Kleeschulte
bb73bac027 Added more logging. Services should call the db service for db operations. 2017-05-17 18:02:00 +00:00
Chris Kleeschulte
b4214e6ffc Fixes for missing transaction id. 2017-05-16 20:32:10 +00:00
Chris Kleeschulte
3fe2c3ea16 wip 2017-05-01 11:22:46 -04:00
Chris Kleeschulte
6634b4feae wip on regtest 2017-04-26 16:59:44 -04:00
k
0788da0e45 wip new routes. 2017-04-24 13:44:08 -04:00
Chris Kleeschulte
65089302bb Fixed wallet getTransactions. 2017-03-31 16:05:07 -04:00
Chris Kleeschulte
06ffa05ba2 Added code for tx list. 2017-03-30 16:34:49 -04:00
Chris Kleeschulte
8d98abd080 Cleaned up old code that may not make it into the next release. 2017-02-12 12:15:22 -05:00
Chris Kleeschulte
a52b8134f7 Added unit tests for encoding files. 2017-02-07 08:18:09 -05:00
Chris Kleeschulte
4310faa8f0 Split out encodings and nested all services into a directory. 2017-02-02 08:53:51 -05:00
Chris Kleeschulte
3051c04147 Called next to proceed with sync. 2017-02-01 10:21:23 -05:00
Patrick Nagurny
7e08651d95 import addresses 2017-01-31 17:09:59 -05:00
Patrick Nagurny
15b9bce0ac blockHandler for wallet-api service 2017-01-31 14:42:08 -05:00
Chris Kleeschulte
e2229a6516 Added Utxo index block handler. 2017-01-31 13:30:48 -05:00
Chris Kleeschulte
3b76463112 Unified all encodings/serialization functions into one,
centrally-accessible encodings file.
2017-01-31 08:00:28 -05:00
Chris Kleeschulte
fbdafb74f9 Merge branch 'feature/concurrency' into feature/walletIndex 2017-01-30 15:05:05 -05:00
Patrick Nagurny
26108753db got it working 2017-01-26 18:09:36 -05:00
Chris Kleeschulte
553312947f Added mempool stuff. 2017-01-26 14:57:47 -05:00
Chris Kleeschulte
7662bf1bf5 Adjusted Address index. 2017-01-24 15:56:23 -05:00
Chris Kleeschulte
d4783dabde Added rudimentry mempool. 2017-01-24 14:47:19 -05:00
Patrick Nagurny
3c27f07291 getAddressHistory 2017-01-23 16:59:26 -05:00
Chris Kleeschulte
5a372f268c wip 2017-01-20 17:28:25 -05:00
Chris Kleeschulte
523c3ab852 wip 2017-01-20 11:27:59 -05:00
Patrick Nagurny
efa8480651 get address index to work 2017-01-19 16:11:04 -05:00
Chris Kleeschulte
f1277c8ad3 Added height into tx index. 2017-01-18 19:11:47 -05:00
Chris Kleeschulte
43dfeffd5e Added blockHandler. 2017-01-18 18:23:17 -05:00
Patrick Nagurny
8ecf6e1c47 modify address index, add timestamp and tx indexes (wip) 2017-01-17 15:44:56 -05:00
Patrick Nagurny
339f56157f restore db and address services 2017-01-10 16:51:32 -05: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
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
Braydon Fuller
0ea035c4f0 Address: Fixed race condition with transaction event handlers 2015-11-03 17:12:13 -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
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
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
1dec93edd4 bitcore -> bitcore-lib 2015-10-17 00:56:29 -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
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
Braydon Fuller
f337622790 Updates to documentation for bitcore.io website. 2015-09-29 14:15:49 -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
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
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
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
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
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
Braydon Fuller
f88eee5a1c Improve db storage efficiency by ~2 times
Encodes and decodes keys and values for leveldb storage more efficiently.
2015-09-14 00:30:21 -04:00
Braydon Fuller
d3641f3b0a Pagination Optimization
- Sort and paginate before getting full transaction details.
- Only get detailed transaction information for items within the current page.
- Improves the performance with large sets of transactions.
2015-09-14 00:30:14 -04:00
Braydon Fuller
1cf34f2dd8 Address Block Handling Optimizations
- Changes to use ripemd160 hash directly instead of the base58check encoded values
- Speeds block handling performance by ~4 times
2015-09-12 19:56:13 -04:00
Braydon Fuller
c205f781a5 Pagination for Address History
- Reindexing the bitcore-node database is required with this change.
- Address indexes are updated to include address and height in spent index so that both inputs and outputs can be queried by address and height using "start" and "stop" to limit the range of the query.
- Address history also now supports paginated results using "from" and "to" values that indicate an index in the array.
2015-09-12 19:44:10 -04:00