Commit Graph

119 Commits

Author SHA1 Message Date
Igor Artamonov
63e5fb8824 problem: unit test failure 2020-04-26 19:58:42 -04:00
Igor Artamonov
a41230a00a solution: track Bitcoin transactions 2020-04-22 22:54:27 -04:00
Igor Artamonov
548154609d solution: subscribe to bitcoin address balance 2020-04-20 21:43:49 -04:00
Igor Artamonov
322d9ac480 problem: Kotlin class mocking randomly fails
solution: upgrade testing libs, and open the class
2020-04-20 21:42:53 -04:00
Igor Artamonov
4f0b32f705 solution: working rpc to get bitcoin address balance 2020-04-19 20:47:16 -04:00
Igor Artamonov
ba996a8d2b solution: initial implementation for Bitcoin upstreams 2020-04-18 22:26:30 -04:00
Igor Artamonov
51b25ab55d problem: redis cached makes JSON parsing only to extract metadata, ineffective
solution: encode in protobuf with metadata included
2020-04-16 23:05:13 -04:00
Igor Artamonov
9cf1827fe1 problem: keeps data (block/tx) as business object, which requires special treating
solution: keep as bytes (json string) + meta
2020-04-14 00:25:25 -04:00
Igor Artamonov
0ab68ea782 solution: refactor upstreams to make them blockchain specific 2020-04-11 22:55:47 -04:00
Igor Artamonov
695b38f702 problem: using "upstreams" on two levels of config is confusing 2020-03-23 23:41:32 -04:00
Igor Artamonov
014461520e problem: reading yaml to both plain properties and structured objects is a mess
solution: use just objects for configs
2020-03-23 22:54:52 -04:00
Igor Artamonov
d4bd180e23 solution: allow TLS configuration for proxy 2020-03-20 20:22:01 -04:00
Igor Artamonov
26f8dd294e solution: basic implementation for Proxy endpoint 2020-03-19 23:34:32 -04:00
Igor Artamonov
6392b6bebd solution: setup CI 2020-03-15 16:48:31 -04:00
Igor Artamonov
35cb35fe0a solution: Redis caching 2020-03-14 22:25:27 -04:00
Igor Artamonov
46cf08c6a2 solution: Redis cache for transactions 2020-03-11 23:02:30 -04:00
Igor Artamonov
83649ad631 solution: Redis cache for blocks 2020-03-10 23:45:00 -04:00
Igor Artamonov
2816b5b8fc solution: refactoring 2020-02-24 22:14:24 -05:00
Igor Artamonov
b255bed3a1 solution: use caching for WS head 2020-02-23 23:54:30 -05:00
Igor Artamonov
3c2e61af7d solution: use existing caches to respond to full block request 2020-02-09 00:24:41 -05:00
Igor Artamonov
d551d95a3f solution: cache requested transactions 2020-02-07 23:51:28 -05:00
Igor Artamonov
d13397260f problem: doesn't use cache for block-by-height requests 2020-02-07 20:21:05 -05:00
Igor Artamonov
38bb9a0fa5 problem: caching is not verified 2019-12-30 00:21:54 -05:00
Igor Artamonov
d1585287b0 solution: revise for the latest etherjar 2019-11-13 21:35:51 -05:00
Igor Artamonov
2a93b9efa3 problem: stuck if upstream returned null 2019-11-05 22:11:47 -05:00
Igor Artamonov
90648ecd8c solution: revise for the latest etherjar 2019-10-26 23:33:12 -04:00
Igor Artamonov
6aed2395b6 problem: tx broadcast breaks call (and causes timeout) if it's already broadcasted 2019-10-17 19:29:27 -04:00
Igor Artamonov
cdb631dbf8 problem: chain backed by single grpc upstream is unavailable 2019-10-16 00:03:24 -04:00
Igor Artamonov
77685c314a solution: use reactor-based rpc client 2019-10-11 22:54:12 -04:00
Igor Artamonov
7fd27d581a solution: paths relative to config, default is at /etc/dshackle 2019-09-08 22:30:46 -04:00
Igor Artamonov
706f472355 solution: upstream apis as a controller Publisher 2019-09-06 00:15:10 -04:00
Igor Artamonov
d553560be2 problem: duplicate logic for Head following
solution: refactor to default implementation
2019-09-04 21:48:22 -04:00
Igor Artamonov
ee66704620 solution: use grpc transport from etherjar 2019-09-04 00:24:22 -04:00
Igor Artamonov
5e6b586cf8 problem: doesn't retry on upstream error 2019-08-31 23:31:58 -04:00
Igor Artamonov
8b7888eb8c problem: grpc upstream can change set of provided upstreams
solution: periodically recheck and update current list
2019-08-31 22:53:43 -04:00
Igor Artamonov
2d275c5170 problem: wastes 200ms even for a single call because takes next api before validation
solution: manage apis flow right after value recorded
2019-08-26 22:36:45 -04:00
Igor Artamonov
bc83b1b120 solution: setup custom upstream methods 2019-08-25 20:50:16 -04:00
Igor Artamonov
e5c9124705 solution: reorganize packages 2019-08-25 18:37:57 -04:00
Igor Artamonov
ac30b522e6 solution: propagate native call exception to downstream 2019-08-23 21:39:31 -04:00
Igor Artamonov
d873130567 solution: open source it 2019-08-22 21:07:12 -04:00
Igor Artamonov
6716abfb4d problem: unable to run without default options 2019-08-21 17:39:20 -04:00
Igor Artamonov
8a99212fc5 solution: cache latest blocks in memory 2019-08-20 23:14:49 -04:00
Igor Artamonov
887cf07e16 solution: refactor head streaming to simple flux subscription 2019-08-19 23:20:05 -04:00
Igor Artamonov
a03325a619 solution: rename grpc target to method 2019-08-19 22:47:35 -04:00
Igor Artamonov
03ce6f74a5 problem: unnecessary method for Head 2019-08-16 22:03:32 -04:00
Igor Artamonov
8d83935672 solution: support basic auth for websockets 2019-08-15 23:38:12 -04:00
Igor Artamonov
38afb2a1a4 solution: configure rpc server TLS certificate 2019-08-15 18:54:17 -04:00
Igor Artamonov
0b156d12e7 problem: starts subscription on init, may keep them forever 2019-08-13 22:28:26 -04:00
Igor Artamonov
62ec04f151 problem: unused options 2019-08-13 16:45:02 -04:00
Igor Artamonov
3957b8cf42 solution: allows to disable upstream validation 2019-08-13 16:41:24 -04:00