Igor Artamonov
|
3fcc2e6d52
|
problem: Ethereum Address tracking has complex non-reactive logic
|
2020-05-03 13:55:14 -04:00 |
|
Igor Artamonov
|
549b8b1b5d
|
problem: Ethereum Tx tracking has complex non-reactive logic
|
2020-04-30 23:42:51 -04:00 |
|
Igor Artamonov
|
605c817149
|
solution: actualize copyrights and license
|
2020-04-27 21:49:01 -04:00 |
|
Igor Artamonov
|
bd58ba9774
|
problem: bitcoin mempool can be queries too often
solution: introduce data access wrappers, in this case caching mempool state in memory
|
2020-04-27 00:05:02 -04:00 |
|
Igor Artamonov
|
c9082b3cd0
|
problem: unit test failure
|
2020-04-26 20:43:46 -04:00 |
|
Igor Artamonov
|
101578aa5f
|
solution: methods configuration for bitcoin
|
2020-04-26 20:35:19 -04:00 |
|
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 |
|