Commit Graph

236 Commits

Author SHA1 Message Date
Martin Boehm
a04e38f0f7 Improve handling of invalid addresses 2018-08-02 17:46:23 +02:00
Martin Boehm
fb93c9ff7a Add unit test for pack/unpack txAddress 2018-08-02 16:10:28 +02:00
Martin Boehm
a2bbf3f9de Implement and test connectBlock for index v3 2018-08-02 14:30:45 +02:00
Martin Boehm
e558c10da9 Implement pack and unpack of big.Int 2018-07-27 19:46:21 +02:00
Martin Boehm
75d48376e1 Change db columns, enable compression on some columns 2018-07-27 14:08:20 +02:00
Martin Boehm
4db0895899 Check DB version on startup 2018-07-27 12:57:48 +02:00
Jakub Matys
9409907f80 Tests are classified by tags 2018-06-14 17:27:03 +02:00
Martin Boehm
d4cd2ad607 Return state information for index request on internal http server 2018-06-12 22:57:46 +02:00
Martin Boehm
4f5461da4f Report metrics of all db columns 2018-06-08 14:05:41 +02:00
Martin Boehm
fd7828a877 Compute column stats periodically 2018-06-08 13:19:57 +02:00
Martin Boehm
2535e4b6b7 Report metrics of txcache 2018-06-04 18:09:36 +02:00
Martin Boehm
4343c888a0 Update txcache stats on put/delete db operations 2018-06-04 17:11:10 +02:00
Martin Boehm
4f42d2f1d6 Add method to compute stats (rowcount, size) of all db columns 2018-06-01 16:01:58 +02:00
Martin Boehm
9147781772 Use single instance instead of global InternalState object 2018-05-29 11:37:35 +02:00
Martin Boehm
927fd0aaea Fix inSync state 2018-05-29 10:04:24 +02:00
Martin Boehm
8b20c38136 Put parameter BlockAddressesToKeep to coin configuration json 2018-05-28 14:57:44 +02:00
Martin Boehm
1c2ae8cec7 Fix rocksdb test 2018-05-23 11:07:16 +02:00
Martin Boehm
c03b3d8a1a Store coin in internal state and verify that rpc coin matches db coin 2018-05-23 10:58:07 +02:00
Martin Boehm
af064a3921 Store sync and mempool sync state to internal state 2018-05-22 17:34:37 +02:00
Martin Boehm
291e99ba5f Add internal state of the application 2018-05-22 12:56:51 +02:00
Martin Boehm
7cb8c8d3f0 Add option to disable txcache 2018-05-14 15:49:08 +02:00
Martin Boehm
83edc33b3f Fix processing of transactions in ConnectBlock 2018-05-03 01:03:20 +02:00
Martin Boehm
880e3e8025 Fix rocksdb test to handle nondeterministic order of addresses in value 2018-04-30 18:54:48 +02:00
Martin Boehm
b3b8512958 Sync using indexv2 2018-04-30 14:50:19 +02:00
Martin Boehm
df2a6b5551 Sync using indexv2 - WIP 2018-04-29 21:35:45 +02:00
Martin Boehm
0a55ca61f6 Sync using indexv2 - WIP 2018-04-29 00:17:30 +02:00
Martin Boehm
22af986121 Implement DisconnectBlocks in index v2 - WIP 2018-04-26 19:50:22 +02:00
Martin Boehm
ed027a68c9 Implement DisconnectBlocks in index v2 - WIP 2018-04-24 12:00:24 +02:00
Martin Boehm
ce485099a7 Implement DisconnectBlocks in index v2 - WIP 2018-04-23 17:11:08 +02:00
Martin Boehm
f78b050234 Fix indexing of coinbase transactions 2018-04-20 23:53:17 +02:00
Martin Boehm
d569a08cf8 Test rocksdb tx storage functionality 2018-04-20 16:03:45 +02:00
Martin Boehm
850b175940 Test rocksdb GetBestBlock, GetBlockHash, small refactor in test 2018-04-20 15:08:08 +02:00
Martin Boehm
febcba5fbe Use new db column blockaddresses to support UTXO chain block disconnect 2018-04-20 13:56:55 +02:00
Martin Boehm
9ad8a4b873 Test for GetTransactions in TestRocksDB_Index_UTXO 2018-04-19 15:11:32 +02:00
Martin Boehm
c657381d7e Change the way UTXO addresses are indexed - WIP 2018-04-19 14:28:05 +02:00
Martin Boehm
0ae9c446a0 Add TestRocksDB_Index_UTXO test - WIP 2018-04-18 23:42:38 +02:00
Martin Boehm
2ee2177970 Change the way UTXO addresses are indexed - WIP 2018-04-18 23:42:11 +02:00
Martin Boehm
296eee828f Change the way UTXO addresses are indexed - WIP
Columns before:
outputs: saddress+block height -> outpoints
inputs: txid+vout -> spending txid+vout

Columns after change:
addresses: address+block height -> input or output outpoints
unspenttxs: txid -> addresses+indexes
2018-04-17 23:50:01 +02:00
Martin Boehm
a117bd2abd Rework resyncIndex to handle eth rollbacks 2018-04-09 15:43:42 +02:00
Martin Boehm
a75376706e Move packing/unpacking of Txid and Block Hash to coin specific code 2018-04-08 11:24:29 +02:00
Martin Boehm
f8eca976ab Fix computation of confirmations 2018-04-06 17:13:38 +02:00
Martin Boehm
39a31d4544 Handle transactions with missing ethereum To address 2018-03-28 13:23:43 +02:00
Martin Boehm
bfb22c4f20 Fix error in chain sync by height 2018-03-28 12:09:05 +02:00
Martin Boehm
b1694b4a61 Support sync of blockchains without block.next hash 2018-03-26 16:44:54 +02:00
Martin Boehm
44fdb5528b Support indexing of non UTXO chains 2018-03-23 13:15:35 +01:00
Martin Boehm
dda80bd074 Refactor names in interface BlockChainParser, added method IsUTXOChain 2018-03-23 11:03:41 +01:00
Jakub Matys
a9effbe835 Added ZCashBlockParser 2018-03-20 17:28:03 +01:00
Jakub Matys
fbfb33cb5d Output index uses abstract identifier instead of outputScript 2018-03-20 16:01:36 +01:00
Martin Boehm
22d30ffaa1 Compute db size metrics during initial import 2018-03-14 12:40:17 +01:00
Martin Boehm
96bfdfd74e Use block data in disconnect blocks, remove disconnected txs from cache 2018-03-14 12:34:13 +01:00
Jakub Matys
d7229f8db0 added prometheus metrics 2018-03-13 11:44:50 +01:00
Martin Boehm
b55306b6eb Hide GetBlockWithoutHeader BTC optimization from BlockChain interface 2018-03-12 17:37:32 +01:00
Martin Boehm
4c51d7cb0a Add rocksdb reopen db method
Mainly used for debugging purposes
2018-03-12 16:28:52 +01:00
Martin Boehm
f80ae32846 Abstract bitcoinrpc in preparation for alt coins 2018-03-08 12:59:37 +01:00
Martin Boehm
0783cac294 Detect type of the block chain and use correct chain params 2018-03-07 09:38:19 +01:00
Martin Boehm
cac412527d Improve handling of os interrupt signal in connectBlocksParallel 2018-03-06 13:13:30 +01:00
Martin Boehm
d1c4c66c5f Implement TxCache stored in RocksDB 2018-03-06 12:36:24 +01:00
Martin Boehm
58205ed84a Store transactions in RocksDB 2018-03-05 18:14:41 +01:00
Martin Boehm
b3d1d449fd Fix minimum sync height 2018-03-01 20:20:50 +01:00
Martin Boehm
9bdb83deff Refactor sync code to own file 2018-03-01 18:37:01 +01:00
Martin Boehm
34400f5b2b Add context to errors returned by bitcoinrpc 2018-03-01 11:06:10 +01:00
Martin Boehm
da28595321 Fix incorrect memory handling 2018-02-28 12:24:29 +01:00
Martin Boehm
9dfef815b3 Tune RocksDB 2018-02-27 13:10:18 +01:00
Martin Boehm
386b4f1db8 Tune RocksDB 2018-02-26 18:42:55 +01:00
Martin Boehm
2375837d0a Tune RocksDB 2018-02-26 13:11:23 +01:00
Martin Boehm
7a1ff7241f Tune RocksDB.
Remove bulk import - it consumes a lot of disk space.
Set no compression of data.
Reduce write buffer to .5GB from 2GB.
2018-02-24 16:25:55 +01:00
Martin Boehm
af0e85ce43 Tune rocksdb options 2018-02-19 16:17:21 +01:00
Martin Boehm
d96af8e648 Change return values of index.GetSpentOutput method 2018-02-08 13:11:10 +01:00
Martin Boehm
43dec549d5 Implement index.GetSpentOutput method 2018-02-08 13:00:22 +01:00
Martin Boehm
ec87f4ed8d Use maximum size on disk trigger to invoke DB compaction 2018-02-06 09:43:54 +01:00
Martin Boehm
359d7ee1c4 Use constants instead of magic numbers 2018-02-06 09:12:50 +01:00
Martin Boehm
ee663944e2 Refresh iterator in DisconnectBlocks to avoid huge snapshot 2018-02-05 18:35:05 +01:00
Martin Boehm
d6e9b5caa4 Use special RocksDB options for outputs 2018-02-05 17:12:32 +01:00
Martin Boehm
97cc2aca17 Use PrepareForBulkLoad option for connectBlocksParallel 2018-02-05 12:27:41 +01:00
Martin Boehm
e31095d03f Compact database during connectBlocksParallel 2018-02-05 10:31:22 +01:00
Martin Boehm
1950f125e5 Ignore too large (> 512 bytes) output scripts 2018-02-04 23:17:54 +01:00
Martin Boehm
7c71876c12 Lookup input transactions in mempool 2018-02-03 19:14:27 +01:00
Martin Boehm
a403b8d0fe Rename package bitcoin to bchain 2018-01-31 15:23:17 +01:00
Martin Boehm
e22e1a946d Use glog for logging with verbosity levels 2018-01-30 18:22:25 +01:00
Martin Boehm
3dacffda59 Use output script (ScriptPubKey) as key to output transactions 2018-01-29 23:25:40 +01:00
Martin Boehm
2dd0b9fc21 RocksDB.GetTransactions returns transactions from inputs 2018-01-28 11:59:05 +01:00
Martin Boehm
9afa5b4187 resyncIndex DisconnectBlocks 2018-01-28 00:59:54 +01:00
Martin Boehm
48057b2453 GetBestBlock height and hash from DB 2018-01-24 18:02:46 +01:00
Martin Boehm
e72b437e23 rocksdb column families 2018-01-24 16:57:05 +01:00
Martin Boehm
6af0a39e61 accept base58 and hex addresses 2018-01-24 15:10:07 +01:00
Martin Boehm
441c0f9024 folder reorganization 2018-01-18 16:44:31 +01:00