Commit Graph

94 Commits

Author SHA1 Message Date
Alex Kremer
b07fbb14dc Refactor ETL into smaller components (#649)
Fixes #666 and #664
2023-06-02 16:12:06 +01:00
Alex Kremer
d816ef54ab Reformat codebase with 120 char limit (#583) 2023-04-06 11:24:36 +01:00
Alex Kremer
d86104577b Implement new experimental cassandra backend (#537) 2023-03-29 19:38:38 +01:00
cyan317
4180d81819 Fix subscription forward issue (#544)
Fixes #552
2023-03-23 13:54:55 +00:00
ledhed2222
b25ac5d707 Write NFT URIs to nf_token_uris table and pull from it for nft_info API (#313)
Fixes #308
2023-03-20 17:43:31 +00:00
Francis Mendoza
992d5a7a70 [FOLDED] Eliminate remaining bypass and add comment on rare edge case where it's necessary (#298) (#484) 2023-01-25 13:49:28 -08:00
Alex Kremer
1708b929b8 Demote couple errors to warning/info in ETLSource (#471)
Fixes #468
2023-01-16 11:16:20 +00:00
cyan317
a377514287 Replace unique_lock with scoped_lock (#467)
Fixes #466
2023-01-10 17:50:53 +00:00
cyan317
2f65a26dc7 Add time measurement profiler (#458)
Rebase
2022-12-20 18:57:47 +00:00
Alex Kremer
f81086f40c Add copyright to top of each source file (#444)
Fixes #411
2022-12-12 21:11:01 +00:00
Alexander Kremer
bf217345ae Update headers to use #pragma once 2022-11-23 14:26:16 -08:00
Alex Kremer
a47bf2e8fe Implement logging abstraction (#371)
Fixes #290
2022-11-17 22:02:16 +00:00
Alex Kremer
ea2837749a Implement an abstraction for the config (#358)
Fixes #321
2022-11-01 16:59:23 +00:00
CJ Cobb
8bd8ab9b8a Fix bug on cache download from peer when ledger not found (#370) 2022-10-26 22:30:39 -04:00
Alex Kremer
5bf334e5f7 Remove postgres support from clio (#327)
Fixes #310
2022-10-04 18:00:37 +01:00
CJ Cobb
97ef66d130 Allow server to download cache from another clio server (#246)
* Allow server to download cache from another clio server

* Config takes an array of clio peers. If any of these peers have a
  full cache, clio picks a peer at random to download the cache from.
  Otherwise, fall back to downloading cache from the database.
2022-10-04 12:29:29 -04:00
Alex Kremer
744af4b639 Implement unique taging of incoming requests (#311)
Fixes #212
2022-09-29 21:56:29 +01:00
Alex Kremer
ccf73dc68c Fix ProbingETL toJson to serialize underlying source states (#325)
Fixes #323
2022-09-28 00:30:56 +01:00
Alex Kremer
d4a9560c3f Implement subscription for book_changes (#315)
Fixes #315
2022-09-27 00:20:53 +01:00
Alex Kremer
1ada879072 Probing ETL Source (#292)
* Implement a probing ETL source and do not require SSL certs for SslETLSource (#251)

Fixes #251
2022-09-12 23:32:13 +01:00
Alex Kremer
e2792f5a0c Fix compiler warnings (#306) 2022-09-12 21:35:30 +01:00
Alex Kremer
97c431680a Add 20 second timeout for ETLSource websocket (#297)
Fixes #289
2022-09-12 16:09:46 +01:00
CJ Cobb
83a099a547 Fix bug where some ledgers are not being published (#281)
* The ledger close time can occasionally be a few seconds in the future,
  which causes ETL to not publish the ledger, because the age
  calculation wraps around and the age is computed as a very large
  unsigned integer. This fix rounds to zero when the age would be
  negative
2022-09-07 16:17:42 -04:00
CJ Cobb
816625c44e set grpc max message size to unlimited (#249) 2022-08-23 09:30:18 -04:00
CJ Cobb
81f7171368 wrap atomics in shared_ptr for cache download (#230) 2022-07-29 10:56:08 -04:00
ledhed2222
6bf8c5bc4e Add NFT-specific data stores and add nft_info API (#98) 2022-07-26 15:01:14 -04:00
CJ Cobb
2ffd98f895 Fine tune cache download (#215)
* Fine tune cache download

* Allow operators to specify the max number of concurrent markers. The
  software generates possible markers from ledger diffs, as before, but
  only processes a specified number at one time, which caps database
  reads and distributes the load more evenly over the entire download.
* Allow operators to specify the page fetch size during the cache
  download, which is the number of ledger objects to fetch per marker at
  one time.

* Refactor full ledger dump in test.py
2022-07-26 15:00:27 -04:00
CJ Cobb
05d09cc352 Only fetch validated ledgers 2022-07-08 12:10:12 -04:00
ethanlabelle
4579fa2f26 Use ledger close times for stale data warning (#194) 2022-06-29 16:10:03 -07:00
CJ Cobb
20c2654abc bypass forwarding cache if ledger_index is current or closed (#185) 2022-06-17 14:06:47 -05:00
Nathan Nichols
166ff63dbc cache commands that dont take parameters (#153)
* Adds a forwardCache to each ETLSource which allows operators to specify which commands (that don't require parameters) they want to cache.
2022-06-15 16:18:25 -05:00
ethanlabelle
b45b34edb1 append warning to response if clio is out of date (#175)
Fixes #46.
2022-06-14 13:50:42 -05:00
Nathan Nichols
3f47b85e3b disable cache when CacheLoadStyle::NONE (#152) 2022-05-15 19:29:05 -05:00
Nathan Nichols
1d5c482d9c Make Clio RPCs more consistent with rippled (#110)
* parse ledger_index as number

* allow websocket to use "command" or "method"

* mark all non-forwarded responses as validated

* dont mark forwarded errors as successful

* reduce forwarding Websocket expiration 30->3 seconds

* fix merge conflict in test.py

* adds ledger_current and ledger_closed

* deserialize `taker_gets_funded` into amount json

* limit account RPCs by number of objects traversed

* assign result correctly
2022-03-21 18:28:03 -05:00
CJ Cobb
945222840b change etl failover timeout to 10 seconds 2022-03-21 13:57:35 -07:00
CJ Cobb
39459ef6da refactor publish logic 2022-03-21 13:57:35 -07:00
CJ Cobb
d3681df253 publish ledgers closed in the last ten minutes 2022-03-21 13:57:35 -07:00
CJ Cobb
b1add848f4 add etl info to server_info response 2022-03-21 13:57:35 -07:00
CJ Cobb
bcd59ddf73 generate cursors for cache download with configurable number of diffs 2022-03-21 13:57:35 -07:00
CJ Cobb
16e3c87dcc don't create strands for cache download. output cache info in server_info 2022-03-21 13:57:35 -07:00
CJ Cobb
15505905cb populate cache using coroutines. optionally disable cache 2022-03-21 13:57:35 -07:00
CJ Cobb
6fe957ef8f cache fixes. remove defer reads flag. check latest sequence in etl 2022-03-11 20:01:39 -05:00
CJ Cobb
16f0159122 fix off by one error in read only monitor 2022-03-10 10:10:32 -05:00
CJ Cobb
1c3e7db8a0 init latestSequence 2022-03-09 13:54:10 -05:00
CJ Cobb
a8a87c2cff parallel cache population 2022-03-09 09:34:16 -08:00
CJ Cobb
1510f24f4b ETL fixes
* Don't use cache if cache is more recent than extracted ledger
* Use hardFetchLedgerRangeNoThrow exclusively in ETL, to prevent race
  condition
2022-03-08 00:26:21 -05:00
CJ Cobb
ce01414fb3 Catch database timeout in coroutine 2022-03-07 15:55:48 -05:00
CJ Cobb
b332c388d2 Load cache from our own database 2022-03-07 15:55:42 -05:00
CJ Cobb
799bf58c95 Check optional before dereferencing 2022-03-04 16:02:20 -05:00
CJ Cobb
15004d80ee Log AsyncCallData error at error level 2022-03-03 21:50:13 -05:00