Commit Graph

119 Commits

Author SHA1 Message Date
Igor Artamonov
d537ff0461 solution: delegate bitcoin balance request to another upstream, if data is unavailable locally 2020-09-22 23:51:07 -04:00
Igor Artamonov
275a55c4ee problem: balance subscription misses recheck addresses for xpub 2020-09-15 23:32:23 -04:00
Igor Artamonov
96a6f22a5b solution: support xpub addresses for bitcoin 2020-09-15 22:55:58 -04:00
Igor Artamonov
77d7ec1101 solution: optionally provide utxo for bitcoin balance request 2020-09-15 19:20:40 -04:00
Igor Artamonov
56318d800e solution: esplora upstream connection for bitcoin 2020-09-14 23:08:13 -04:00
Chase Wright
46d90ce932 problem: invalid eth_chainId for Ethereum Mainnet 2020-09-11 10:47:55 -04:00
Igor Artamonov
4e16a8c270 problem: lag is not observed on bitcoin 2020-09-01 17:09:45 -04:00
Igor Artamonov
ff3fc95711 problem: doesn't connect to Bitcoin networks over gRPC 2020-08-31 21:25:43 -04:00
Igor Artamonov
54fd5481d6 problem: proxy doesn't support long ids
fix: #48
2020-08-23 21:31:50 -04:00
Igor Artamonov
64c8cb35f3 solution: goerli support
Co-authored-by: Chase Wright <mysticryuujin@protonmail.com>
2020-08-23 20:19:00 -04:00
Igor Artamonov
d9fd0619b3 problem: doesn't add single dshackle-based upstream 2020-08-20 21:01:15 -04:00
Igor Artamonov
8be97df9b5 problem: zero bytes when requesting block with tx 2020-08-17 22:32:21 -04:00
Igor Artamonov
b5daceeff5 problem: doesn't pass error details from upstream
fix: #42
2020-08-10 22:18:54 -04:00
Igor Artamonov
2abe3023b6 problem: no response on invalid request to proxy
rel: #43
2020-08-09 18:42:23 -04:00
Igor Artamonov
c80eb14847 problem: ineffective mem cache implementation 2020-07-20 21:34:52 -04:00
Igor Artamonov
0d1980ce70 problem: block height cache doesn't evict when old blocks are added
rel: ce010e50
2020-07-20 21:25:31 -04:00
Igor Artamonov
3dd105eb1c problem: doesn't use tx cache when requesting full block by number 2020-07-20 20:36:01 -04:00
Igor Artamonov
d3a3b6606a problem: doesn't cache transactions requested for a block 2020-07-20 20:34:37 -04:00
Igor Artamonov
8cefcbdb5e problem: no response from proxy if upstream returned error
fix: #35
2020-07-20 00:30:52 -04:00
Igor Artamonov
b10e4800ff solution: caching for eth_getTransactionReceipt
fix: #26
2020-07-12 23:34:23 -04:00
Igor Artamonov
3df1c0a572 solution: fallback upstreams
fix: #15
2020-07-10 23:36:35 -04:00
Igor Artamonov
b3c619e57a solution: track balance of a ERC20 token 2020-07-06 19:04:45 -04:00
Igor Artamonov
6dbe8b96ec solution: erc20 tokens config 2020-07-06 18:04:54 -04:00
Igor Artamonov
c2bc57d380 problem: eth_getBlockByNumber("latest", ...) fails with error
fix: #20
2020-07-02 22:41:34 -04:00
Igor Artamonov
fd070d5df4 problem: chainId is not a string
rel: #22
2020-07-02 21:58:42 -04:00
Igor Artamonov
a7fb805a03 problem: doesn't respond to eth_chainId method
fix: #22
2020-07-02 21:55:35 -04:00
Igor Artamonov
882b7d1b2f problem: JSON RPC spec allows omitting params
fix: #19
2020-06-30 00:25:09 -04:00
Igor Artamonov
c2636cd81e problem: Proxy fails to serialize JSON
reason: expects full JSON response from upstream, which is replaces with result field only
2020-06-29 22:44:44 -04:00
Igor Artamonov
04958784ec problem: tries to connect to Redis even if specified as disabled 2020-06-29 21:49:01 -04:00
Igor Artamonov
948c34a0c7 problem: quorum is not applied for internal reads 2020-05-26 22:43:58 -04:00
Igor Artamonov
5584858e44 problem: single invalid response from upstream breaks whole batch
solution: handle http and json errors and convert to RPC errors
2020-05-25 18:30:55 -04:00
Igor Artamonov
47eb126a75 problem: used slow JDK TLS 2020-05-24 13:03:00 -04:00
Igor Artamonov
2fc6896a83 solution: refactoring, make ObjectMapper as a global object, not bean 2020-05-18 19:23:48 -04:00
Igor Artamonov
c742a62090 problem: race condition on a new block on head 2020-05-16 22:59:07 -04:00
Igor Artamonov
8d49856ffd problem: sporadic unit-test failure 2020-05-16 17:17:21 -04:00
Igor Artamonov
114f109722 solution: individual class for quorum based requests 2020-05-15 21:06:32 -04:00
Igor Artamonov
73f55d8d81 problem: routed api is not executed first 2020-05-14 23:47:59 -04:00
Igor Artamonov
af4aba69e7 problem: hardcoded methods are not called 2020-05-14 22:37:46 -04:00
Igor Artamonov
bbc21684ae solution: refactoring, more clean class names 2020-05-14 00:12:38 -04:00
Igor Artamonov
98330b8772 problem: CI tests fail 2020-05-13 23:24:21 -04:00
Igor Artamonov
042408b4e6 solution: refactor and redesign API access, now with AggregateUpstream providing base direct/routed apis, plus actual chain upstreams providing specific readers 2020-05-13 22:29:21 -04:00
Igor Artamonov
a539ad3b84 solution: JSON RPC client that treats result as raw 2020-05-09 22:54:41 -04:00
Igor Artamonov
0ef46b2980 problem: different places to fetch from upstream
solution: single access reader for Ethereum upstreams
2020-05-04 21:51:42 -04:00
Igor Artamonov
3a13fb3bd5 problem: sporadic unit-test failure 2020-05-03 20:06:11 -04:00
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