Commit Graph

4382 Commits

Author SHA1 Message Date
Braydon Fuller
87aaebc8e7
node: use the same memory option 2019-05-31 12:16:15 -07:00
Braydon Fuller
4f76cfe3b9
test: add net peer handler tests 2019-05-24 17:58:26 -07:00
Braydon Fuller
9db43a7e1f
test: add net packet, framer and common tests 2019-05-24 17:58:25 -07:00
Nodar Chkuaselidze
cdca51a844
addrindexer: minor.
* allocate one buffer istead of concat.
* return results instead of mutating array.
2019-05-17 21:04:52 +04:00
Nodar Chkuaselidze
0f6ef910b0
addrindexer: use network for getPrefix. 2019-05-17 21:04:47 +04:00
Braydon Fuller
7e9d00a665
node: pass options from getTXByAddress to getMetaByAddress 2019-05-16 10:26:54 -07:00
Braydon Fuller
34e8f22b9b
indexer: update and fix documentation 2019-05-16 10:25:58 -07:00
Braydon Fuller
662a68cf10
blockchain: cleanup deprecated methods
Deprecation details are in CHANGELOG.md
2019-05-15 12:11:37 -07:00
Braydon Fuller
ce16bc9239
node: simplify index-prefix option 2019-05-15 12:11:37 -07:00
Braydon Fuller
ed06c2184d
indexer: check that blocks are connected
There was a rare case that a block could be incorrectly added to
the indexer if the indexer was disabled during a reorg to a height
that matched the height that was expected, and the `sync` method
for the indexer wasn't called that would detect the reorg.
2019-05-15 12:11:37 -07:00
Braydon Fuller
cede31d86f
indexer: cleanup and check pruned and index options 2019-05-15 12:11:37 -07:00
Braydon Fuller
5d18f9ba2e
indexer: index the genesis block 2019-05-15 12:11:37 -07:00
Braydon Fuller
efb2551555
indexer: fix reset and reorg handling 2019-05-15 12:11:37 -07:00
Braydon Fuller
b4be8574e5
test: improve addrindex tests
- Vectors for p2wsh and p2sh.
- Edge case for witness program.
- Improve determinism by not comparing mtime.
- Various edge and error cases.
2019-05-15 12:11:32 -07:00
Braydon Fuller
69e9844f82
test: cleanup and add txindex tests 2019-05-15 12:11:05 -07:00
Braydon Fuller
fae647b9e9
indexer: simplify block meta and remove records 2019-05-15 12:11:05 -07:00
Braydon Fuller
bb797602e6
node: add http indexer info 2019-05-15 12:11:05 -07:00
Braydon Fuller
bd26dbf32d
mempool: update for addrindex 2019-05-15 12:11:05 -07:00
Braydon Fuller
4c8f11ed34
node: update http for addrindex 2019-05-15 12:11:05 -07:00
Braydon Fuller
06ef0e3615
indexer: simplify addrindex query 2019-05-15 12:11:05 -07:00
Braydon Fuller
ebc40a58d0
indexer: trim disk usage for tx and addr indexes 2019-05-15 12:11:01 -07:00
Braydon Fuller
93c6ff845e
indexer: fix, simplify and rewrite indexer base
- Write indexer state and index atomically.
- Simplify chain state with current height.
- Roll forward to best height.
- Synchronize the index with the chain with common method `sync` for
  the events 'connect', 'disconnect' and 'reset'. This will prevent
  any of the events from conflicting with each other.
- Fix the chain rollback and reset.
- Make sure blocks are connected in the correct order.
- Improve logging to log similar to chain.
2019-05-15 12:02:50 -07:00
Javed Khan
e2a6a92ebc
addrindexer: index by address prefix 2019-05-15 12:02:50 -07:00
Javed Khan
9f86dbca28
chaindb: bump to v6 2019-05-15 12:02:49 -07:00
Braydon Fuller
7dc55c9c3c
indexer: remove address coin index 2019-05-15 12:02:48 -07:00
Braydon Fuller
05d55efb22
indexer: fix memory and cpu exhaustion for addrindex 2019-05-15 12:02:48 -07:00
Braydon Fuller
8bff122253
indexer: use chain and blocks for indexer, remove chain client 2019-05-15 12:02:47 -07:00
Braydon Fuller
f9aab08c46
indexer: add block position to tx 2019-05-15 12:02:47 -07:00
Javed Khan
9f89c79bd7
indexer: work with blockstore 2019-05-15 12:02:47 -07:00
Javed Khan
05794f5cb3
indexer: add module indexer
module indexer introduces a extensible architecture for indexing the
chain. It provides a base class which handles syncing with the chain,
handling re-orgs, interruptions, dynamic toggling, etc. TXIndexer
and AddrIndexer are provided for indexing transactions and addresses,
using the same flags as before i.e --index-tx and --index-address.
Indexes are stored in a different database and can be maintained
independently of the chain.
2019-05-15 12:02:41 -07:00
Braydon Fuller
81b840a634
Merge pull request #769 from braydonf/wallet-tx-conflict
wallet: handle multiple conflicting inputs
2019-05-14 22:56:29 -07:00
Braydon Fuller
eba7bbeddc
wallet: handle multiple conflicting inputs 2019-05-14 14:29:41 -07:00
Orfeas Stefanos Thyfronitis Litos
07f7338503 Replace 285 with 293 in blockstore README (#767)
* Replace 285 with 293 in blockstore README

* Mention block size after boundaries
2019-05-12 17:55:48 +05:30
Javed Khan
4bc0bb2366
chain: add fee overflow test; rename error 2019-05-07 03:27:42 +05:30
Javed Khan
812dc1a6f3
Merge pull request #764 from braydonf/checkpoint
blockchain: do not accept forked chain older than last checkpoint
2019-05-07 00:23:19 +05:30
Braydon Fuller
b68207610c
blockchain: do not accept forked chain older than last checkpoint
This has been patched in both bitcoind and btcd around February 20th, 2014. It was
shortly followed by a headers-first synchronization of blocks.

- d8b4b49667
- 50b6e10b57
2019-05-02 14:44:10 -07:00
kilpatty
d5514d9dcb
node-http: add check for height being below tip
This commit simply adds an enforce line to check that the height being
requested to reset to is below the chain tip. This way we return a bad
request error rather than a internal server error.
2019-04-30 21:43:48 -05:00
Braydon Fuller
50fe51ca32
blockstore: close file if write or read throws 2019-04-08 13:26:16 -07:00
Braydon Fuller
3457ccc91b
blockchain: remove blocks after commit 2019-04-08 13:24:54 -07:00
Braydon Fuller
83824d73b1
blockstore: optimize block read and index
There is potential for around a 10% to 23% increase to the performance
of block reads by using `allocUnsafe`, however there is already around
a 3 to 6 times increase to the performance. While it's safe to use
`allocUnsafe` as the number of bytes read is checked to be the same
size as the buffer allocation, there is a potential for test cases
to introduce _other_ behavior for `fs.read` that may not have the
same behavior, though this isn't currently the case.
2019-04-08 13:20:00 -07:00
Braydon Fuller
41ce504175
bcoin: expose blockstore module 2019-04-08 13:18:59 -07:00
Braydon Fuller
f3e517c3c0
blockstore: fix logger, improve messages 2019-04-08 13:18:58 -07:00
Javed Khan
6af6353906
blockstore: add README and docs 2019-04-08 13:18:58 -07:00
Braydon Fuller
961f6eddb5
blockstore: index undo blocks from files 2019-04-08 13:18:57 -07:00
Braydon Fuller
8fc605c4a9
blockstore: index after write interrupt and use less memory 2019-04-08 13:18:57 -07:00
Braydon Fuller
5cbbcf5409
blockstore: do not write block twice 2019-04-08 13:18:57 -07:00
Braydon Fuller
747a8e707b
blockstore: tests and fixes for blockstore error cases 2019-04-08 13:18:56 -07:00
Braydon Fuller
0f0cb00c54
blockstore: minor, spelling 2019-04-08 13:18:56 -07:00
Braydon Fuller
bdcb392a9c
blockchain: do not check blockstore with spv 2019-04-08 13:18:56 -07:00
Braydon Fuller
d1e747cf2f
blockstore: minor, update comments and docs 2019-04-08 13:18:55 -07:00