Vladyslav Burzakovskyy
9cec5424e7
fiatRates: fields to camelCase, update output format and tests
2020-01-08 17:57:47 +01:00
Vladyslav Burzakovskyy
c58b1538d6
fiatRates: timestamps as int64, errors as -1, update field names and tests
2020-01-08 17:57:47 +01:00
Vladyslav Burzakovskyy
bef572c494
FiatRates: store rates as float64 instead of json.Number
2020-01-08 17:57:47 +01:00
Vladyslav Burzakovskyy
14c64410f7
FiatRates: change input & output time values to Unix timestamps
...
make currency parameter optional, return all rates if it's empty
update tests
2020-01-08 17:57:47 +01:00
Martin Boehm
1cec22ecba
Merge branch 'master' into balanceHistory
2019-12-17 11:52:33 +01:00
Vladyslav Burzakovskyy
f6111af5da
Add fiat rates functionality ( #316 )
...
* Add initial commit for fiat rates functionality
* templates.go: use bash from current user's environment
* bitcoinrpc.go: add FiatRates and FiatRatesParams to config
* blockbook.go: add initFiatRatesDownloader kickoff
* bitcoin.json: add coingecko API URL
* rockdb.go: add FindTicker and StoreTicker functions
* rocksdb_test.go: add a simple test for storing and getting FiatRate tickers
* rocksdb: add FindLastTicker and convertDate, make FindTicker return strings
* rocksdb: add ConvertDate function and CoinGeckoTicker struct, update tests
* blockbook.go, fiat: finalize the CoinGecko downloader
* coingecko.go: do not stop syncing when encountered an error
* rocksdb_test: fix the exported function name
* worker.go: make getBlockInfoFromBlockID a public function
* public.go: apiTickers kickoff
* rocksdb_test: fix the unittest comment
* coingecko.go: update comments
* blockbook.go, fiat: reword CoinGecko -> FiatRates, fix binary search upper bound, remove assignment of goroutine call result
* rename coingecko -> fiat_rates
* fiat_rates: export only the necessary methods
* blockbook.go: update log message
* bitcoinrpc.go: remove fiatRates settings
* use CurrencyRatesTicker structure everywhere, fix time format string, update tests, use UTC time
* add /api/v2/tickers tests, store rates as strings (json.Number)
* fiat_rates: add more tests, metrics and tickers-list endpoint, make the "currency" parameter mandatory
* public, worker: move FiatRates API logic to worker.go
* fiat_rates: add a future date test, fix comments, add more checks, store time as a pointer
* rocksdb_test: remove unneeded code
* fiat_rates: add a "ping" call to check server availability
* fiat_rates: do not return empty ticker, return nil instead if not found
add a test for non-existent ticker
* rocksdb_test: remove Sleep from tests
* worker.go: do not propagate all API errors to the client
* move InitTestFiatRates from rocksdb.go to public_test.go
* public.go: fix FiatRatesFindLastTicker result check
* fiat_rates: mock API server responses
* remove commented-out code
* fiat_rates: add comment explaining what periodSeconds attribute is used for
* websocket.go: implement fiatRates websocket endpoints & add tests
* fiatRates: add getFiatRatesTickersList websocket endpoint & test
* fiatRates: make websocket getFiatRatesByDate accept an array of dates, add more tests
* fiatRates: remove getFiatRatesForBlockID from websocket endpoints
* fiatRates: remove "if test", use custom startTime instead
Update tests and mock data
* fiatRates: finalize websocket functionality
add "date" parameter to TickerList
return data timestamps where needed
fix sync bugs (nil timestamp, duplicate save)
* fiatRates: add FiatRates configs for different coins
* worker.go: make GetBlockInfoFromBlockID private again
* fiatRates: wait & retry on errors, remove Ping function
* websocket.go: remove incorrect comment
* fiatRates: move coingecko-related code to a separate file, use interface
* fiatRates: if the new rates are the same as previous, try five more times, and only then store them
* coingecko: fix getting actual rates, add a timestamp parameter to get uncached responses
* vertcoin_testnet.json: remove fiat rates parameters
* fiat_rates: add timestamp to log message about skipping the repeating rates
2019-12-17 10:40:02 +01:00
Martin Boehm
bf3d822b87
Add filter from-to to balance history
2019-11-25 18:34:33 +01:00
Martin Boehm
6cfb881a04
Add GetBalanceHistory for an address of bitcoin type
2019-11-04 10:55:00 +01:00
Martin Boehm
1c192f6d0b
Fix invalid BlockHeight for unconfirmed transactions #301
2019-10-09 14:49:06 +02:00
migwi
d4a7fcabd9
Check if unindexed confirmed tx height exists
2019-09-18 22:35:53 +02:00
Martin Boehm
d7d596bf4b
Stop passing error details to prometheus metrics
2019-06-04 13:09:15 +02:00
Martin Boehm
b33414cdba
Fix formatting and linting issues
2019-05-27 12:51:42 +02:00
Martin Boehm
3f17333be6
Reduce logging of unimportant warnings during block import
2019-05-27 12:24:25 +02:00
Martin Boehm
bb9bd7fea7
Tune bulk connect
2019-05-27 12:24:25 +02:00
Martin Boehm
9e98a4eb39
Improve performance of utxo indexing
2019-05-27 12:24:25 +02:00
Martin Boehm
733c966094
Maintain utxo index on disconnect block
2019-05-27 12:24:24 +02:00
Martin Boehm
995d5c66b5
Add utxos to addressBalance column
2019-05-27 12:24:24 +02:00
Martin Boehm
917840d6b2
Stop indexing OP_RETURN scripts
2019-05-27 12:24:24 +02:00
Martin Boehm
90d7a7f2da
Bump required index version to 5
2019-05-27 12:24:24 +02:00
Martin Boehm
984618a0ed
Add option to compute fee statistics for chosen blocks
2019-05-27 12:24:24 +02:00
Martin Boehm
d23d0a9e4f
Return with non zero exit code in case of fatal error
2019-04-23 14:18:49 +02:00
Martin Boehm
dffcded306
Enable parallel sync only for initial sync
2019-04-12 16:46:54 +02:00
Martin Boehm
c813f76336
Try to load mempool inputs from db to speed up mempool sync
2019-03-29 17:01:20 +01:00
Martin Boehm
3d10d9c2c5
Ensure ordering of address and xpub txs in the same block
2019-03-05 13:48:11 +01:00
Petr Kracík
d314140dde
Change DB size on disk Error to warning
2019-02-13 12:08:19 +01:00
Martin Boehm
499d65460f
Fix coding style and formatting issues
2019-01-24 15:24:56 +01:00
Martin Boehm
171e15c9f7
Fix unit test build tags
2019-01-23 16:34:35 +01:00
rikardwissing
ffa745d390
Validate getTxAddresses return
2019-01-11 21:31:49 +01:00
Martin Boehm
c2a581ea72
Add bulk import of EthereumType chain
2019-01-11 12:37:04 +01:00
Martin Boehm
3ca593aff1
Handle error tx not found #94
2019-01-10 16:39:36 +01:00
Martin Boehm
8c4fcf4441
Stop indexing contracts of ETH zero address
2019-01-10 12:38:16 +01:00
Martin Boehm
341bf331c1
Add custom handling of unknown input txs during BitcoinType block import
2019-01-09 23:24:25 +01:00
Martin Boehm
07108b8c4f
Store txs in column addresses in reverse order
2019-01-07 13:38:58 +01:00
Martin Boehm
97e0844a4b
Update references to forked btcd, btcutil and bchutil libraries
2019-01-04 14:05:51 +01:00
Martin Boehm
ab077d882c
Update references to forked btcd, btcutil and bchutil libraries
2019-01-04 13:47:28 +01:00
Martin Boehm
44f07734ce
Bump rocksdb to version 5.17.2 and use data format version 4
2019-01-03 18:05:06 +01:00
Martin Boehm
2552a429e8
Store data in addresses column in more compact way
2019-01-03 17:19:56 +01:00
Martin Boehm
4e040cb1f0
Store addresses in reverse order for newest blocks to be searched first
2018-12-20 17:33:13 +01:00
Martin Boehm
e24115da83
Bump blockbook version to v0.2.0 and index version to 4
2018-12-20 16:16:51 +01:00
Martin Boehm
bab500d3f8
Notify on mempool erc20 transfer transaction
2018-12-19 10:06:25 +01:00
Martin Boehm
9a04c862d6
Filter address transactions by input/output or token
2018-12-04 11:54:15 +01:00
Martin Boehm
c96c357013
Add Ethereum Classic specific handling in GetTransaction
2018-11-30 11:39:28 +01:00
Martin Boehm
61177c3750
Fix cleanup of column blockTxs
2018-11-29 15:37:04 +01:00
Martin Boehm
1f32a39d16
Handle blocks with zero transactions
2018-11-26 13:55:29 +01:00
Martin Boehm
8886256d0b
Implement index v3 for ethereum type coin
2018-11-23 22:16:32 +01:00
Martin Boehm
eb524c2226
Implement index v3 for ethereum type coin - WIP
2018-11-23 14:08:10 +01:00
Martin Boehm
1ac7a7abca
Fix api.GetTransaction for EthereumType blockchain
2018-11-15 16:18:29 +01:00
Martin Boehm
4448c57ba8
Introduce BitcoinType and EthereumType distinction of blockchains
2018-11-15 16:16:01 +01:00
Martin Boehm
f1affaf92e
FIx GetAddressUtxo
2018-11-14 23:02:42 +01:00
Martin Boehm
7d28b710e3
Add total to db.GetMemoryStats
2018-11-01 18:28:48 +01:00
Martin Boehm
017c6b3736
Add socket.io unit tests
2018-10-19 16:37:49 +02:00
Martin Boehm
c852214407
Complete explorer/api unit tests
2018-10-19 16:37:49 +02:00
Martin Boehm
d7ed48a657
Handle not found block in rocksdb.GetBlockInfo
2018-10-19 16:37:48 +02:00
Martin Boehm
cc11ae1e57
Setup public http server test
2018-10-19 16:37:48 +02:00
Martin Boehm
caab79ed94
Extract rocksdb_test data to dbtestdata package for reusibility
2018-10-19 16:37:48 +02:00
Jakub Matys
b5a8cd2fc5
Error is correctly returned
2018-10-16 13:35:50 +02:00
Martin Boehm
d369242b48
Bump rocksdb to version 5.15.10 and use data format version 3
2018-10-14 00:29:05 +02:00
Martin Boehm
84b457b34a
Use TxAddresses index in TxCache
2018-10-08 14:55:21 +02:00
Jakub Matys
503ff9582a
Merge branch 'tests'
2018-10-04 16:59:39 +02:00
Martin Boehm
8e057e9e7b
Fix incorrect logging formatting directives
2018-10-04 09:19:41 +02:00
Jakub Matys
e102c81577
Merge branch 'params-registration' into tests
2018-10-02 22:11:07 +02:00
Jakub Matys
8c7f383e9a
Explicit registration of network parameters + cleanup in tests
2018-10-02 17:02:57 +02:00
Jakub Matys
5000c01f11
WIP: sync tests
2018-10-01 14:32:40 +02:00
Jakub Matys
c5cb1e2e54
Merge branch 'integration-tests-upgrade' into tests
2018-10-01 13:43:38 +02:00
Martin Boehm
776bebdf23
Revert "Update balances in extra goroutine during import block"
...
This reverts commit 099321126f .
The parallel processing of balances did not bring any speedup
(actually it was a little bit slower)
2018-10-01 13:28:19 +02:00
Jakub Matys
642310eb95
Added tests for single-thread connectBlocks
2018-09-26 12:19:40 +02:00
Martin Boehm
099321126f
Update balances in extra goroutine during import block
2018-09-26 12:17:57 +02:00
Martin Boehm
67e47adf04
Reset BlockbookAppInfo metrics to avoid duplicate values
2018-09-26 11:26:38 +02:00
Jakub Matys
db39b5ef51
Interrupt connectBlocks on OS signal while initial sync
2018-09-25 13:40:52 +02:00
Martin Boehm
77d4e59f1b
Compute stats of bulk connect block caches
2018-09-24 18:23:13 +02:00
Jakub Matys
d2d5df88f2
Parallel sync improved in order to write all blocks and handle OS signal
2018-09-24 12:13:01 +02:00
Jakub Matys
a69f79f955
Parallel sync improved in order to write all blocks and handle OS signal
2018-09-24 12:08:07 +02:00
Martin Boehm
d6b9cd496b
Start public interface in limited mode before initial sync #51
2018-09-20 12:15:46 +02:00
Martin Boehm
9a33c338dd
Fix error handling in rocksdb.dirSize
2018-09-20 12:06:34 +02:00
Martin Boehm
184f2e9ca6
Add maxOpenFiles rocksdb flag
2018-09-18 11:49:39 +02:00
Martin Boehm
bebddbcd11
Implement list of blocks
2018-09-14 12:10:03 +02:00
Martin Boehm
503ff4389a
Merge branch 'master' into v0.0.7
2018-09-11 13:44:36 +02:00
Martin Boehm
8bdf4b0ae3
Prepare notification of block height in OnNewBlock
2018-09-11 13:37:12 +02:00
Martin Boehm
fdf1fe612f
Stringer interface for AddressDescriptor
2018-09-02 21:31:33 +02:00
Martin Boehm
676aabfaa6
Make AddressDescriptor as type,expose DB/mempool methods working with it
2018-08-30 22:43:37 +02:00
Martin Boehm
be19523065
Refactor of address handling, renamed addrID to addr descriptor addrDesc
2018-08-29 15:31:19 +02:00
Martin Boehm
b1e749dab9
Add logging of memory status
2018-08-26 21:29:10 +02:00
Martin Boehm
ad5ddbd029
Write height column in bulk mode
2018-08-23 23:20:07 +02:00
Martin Boehm
328312e48a
Add dbcache configuration flag, tune db options
2018-08-23 21:19:12 +02:00
Martin Boehm
2001312382
Extract bulk connect to own source file
2018-08-23 11:18:36 +02:00
Martin Boehm
a34ac14883
Allow partitioned index filter in rocksdb
2018-08-23 11:15:59 +02:00
Martin Boehm
41252d33d2
Tune RocksDB options and measure memory usage
2018-08-22 16:20:52 +02:00
Martin Boehm
59497e3c97
Get address data for explorer using index v3 - WIP
2018-08-22 00:48:53 +02:00
Martin Boehm
188eed8881
Write data to DB synchronously in bulk connect
...
RocksDB has some memory leak/fragmentation problem
when inserting data in parallel
2018-08-21 18:56:30 +02:00
Martin Boehm
c9471bf867
Store extended info about block in heigth column
2018-08-21 16:36:14 +02:00
Martin Boehm
78f6162d5c
Add height to TxAddresses as required by explorer
2018-08-21 13:16:29 +02:00
Martin Boehm
bbc47db6dd
Get address data for explorer using index v3 - WIP
2018-08-21 10:11:27 +02:00
Martin Boehm
c67306ad09
Make AddrBalance and TxAddresses publicly loadable from DB
2018-08-20 18:35:46 +02:00
Martin Boehm
5621ed49f3
Optimize bulk connect of blocks
2018-08-19 17:43:00 +02:00
Martin Boehm
d45d028ef2
Implement bulk connect blocks
2018-08-19 00:23:26 +02:00
Martin Boehm
878d25ea42
Fix handling of coinbase txs in db, add test for it
2018-08-17 23:48:36 +02:00
Martin Boehm
745d7af92d
Implement index v3 WIP
2018-08-17 16:33:42 +02:00
Martin Boehm
f5b29b3a17
Implement index v3 WIP
2018-08-15 19:22:26 +02:00
Martin Boehm
78d2c085a9
Log expected db data version
2018-08-15 16:07:09 +02:00
Martin Boehm
8e3c7f851b
Clean up the rocksdb sources and disconnect UTXO blocks WIP
2018-08-03 19:26:16 +02:00