Commit Graph
96 Commits
Author SHA1 Message Date
Igor Artamonov fbc6e5588b problem: interval throws error if it's not consumed fast enough 2019-09-05 00:29:41 -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 17602607b5 solution: allow to push to custom docker repo 2019-09-04 00:18:49 -04:00
Igor Artamonov 5e6b586cf8 problem: doesn't retry on upstream error 2019-08-31 23:31:58 -04:00
Igor Artamonov aa3f66c059 problem: confusing logging 2019-08-31 23:30:54 -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 26f1229f36 problem: gets block from cache without transaction data when it requested 2019-08-29 21:24:17 -04:00
Igor Artamonov 17d46aafc2 problem: run with INFO logging by default 2019-08-28 22:10:17 -04:00
Igor Artamonov 771618cf5b solution: docker tag with current minor version 2019-08-28 13:23:52 -04:00
Igor Artamonov 801a2fe4f8 solution: extend docs for auth 2019-08-27 23:40:12 -04:00
Igor Artamonov f2b3ba2a2f solution: extend docs for architecture 2019-08-27 00:37:17 -04:00
Igor Artamonov bcb4b1d7ce solution: intro schema to dshackle calls 2019-08-26 23:41:45 -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 53da38b7ab solution: update docs for client libs 2019-08-25 21:37:22 -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 604c01aa38 solution: upgrade emerald lib 2019-08-24 23:13:41 -04:00
Igor Artamonov ac30b522e6 solution: propagate native call exception to downstream 2019-08-23 21:39:31 -04:00
Igor Artamonov c9d93f91d3 solution: start version 0.4 2019-08-22 23:35:34 -04:00
Igor Artamonov 641fe5dca0 solution: zip distribution 2019-08-22 23:25:38 -04:00
Igor Artamonov a06ef4307a solution: update docs layout to better suit github formatter 2019-08-22 21:21:57 -04:00
Igor Artamonov d873130567 solution: open source it 2019-08-22 21:07:12 -04:00
Igor Artamonov f8edcf5762 problem: calls gRPC upstream even if it's unavailable 2019-08-22 15:21:10 -04:00
Igor Artamonov 5dab6115b3 problem: unnecessary logging 2019-08-22 15:19:58 -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 303d7e1164 problem: a Websocket based upstream lacks current height until it loaded through Websocket
solution: load initial block through RPC, then continue with Websocket
2019-08-16 21:31:06 -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 e2520f4dbf problem: double subscription to same upstream 2019-08-13 23:20:02 -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
Igor Artamonov 9f211232fd solution: publish to docker with latest tag 2019-08-13 15:09:09 -04:00
Igor Artamonov 89bd52a267 problem: doesn't update head subscription through remote dshackle, because upstream becomes ready later after chain setup
solution: fix and refactor to avoid such situation in code
2019-08-11 20:22:37 -04:00
Igor Artamonov 29cea2575e problem: gives duplicate blocks if came simultaneously from different upstreams 2019-08-11 16:03:03 -04:00
Igor Artamonov 07bca4fa22 problem: doesn't track edge cases correctly, like not broadcasted transaction 2019-08-09 23:36:40 -04:00
Igor Artamonov 5660f4ca09 problem: service may miss available chain if initialized after 2019-08-09 23:27:03 -04:00
Igor Artamonov 7205a33ff3 solution: correctly account for upstream lag 2019-08-09 00:29:26 -04:00
Igor Artamonov 7f9478d538 problem: native calls are execute one by one, and possibly exhausting target upstream 2019-08-09 00:26:44 -04:00
Igor Artamonov 034d0fd601 problem: long thread names break log layout 2019-08-08 23:09:41 -04:00
Igor Artamonov 5478a7b992 problem: exceptions when params are not passed to native call
solution: accept as empty params
2019-08-08 23:08:56 -04:00
Igor Artamonov f8458558b8 problem: unnecessary noise in logs 2019-08-08 15:08:22 -04:00
Igor Artamonov 47bf362808 problem: uploads development snapshots as :latest 2019-08-07 23:08:08 -04:00
Igor Artamonov 24c325f83a problem: need to setup upstream auth w/o storing passwords in config
solution: use environment variable placeholders
2019-08-07 22:50:07 -04:00
Igor Artamonov 29691c4025 solution: code cleanup 2019-08-07 22:46:11 -04:00
Igor Artamonov dee96a2710 solution: version 0.3-SNAPSHOT 2019-08-06 23:18:57 -04:00
Igor Artamonov ed6b674c9d solution: support Basic Auth 2019-08-06 00:00:20 -04:00
Igor Artamonov 2b7109cea3 solution: use quorum for native calls 2019-08-04 18:13:18 -04:00
Igor Artamonov 90d46d15a6 solution: better order of availability status 2019-08-03 16:21:30 -04:00
Igor Artamonov 22c2294983 solution: select which kind of upstream to use for native call 2019-08-02 23:46:58 -04:00
Igor Artamonov 2c5551d818 solution: introduce labels for upstreams 2019-08-01 23:43:04 -04:00
Igor Artamonov 045c2fb3fa problem: not subscribing to tx updates 2019-07-31 23:50:38 -04:00
Igor Artamonov fd8f558d64 problem: not subscribing to an address 2019-07-30 22:57:58 -04:00
Igor Artamonov 913ad6965a problem: can notify client about new head before actual upstream made available 2019-07-30 00:21:31 -04:00
Igor Artamonov dd0c29c40c solution: describe available methods per chain 2019-07-29 23:07:18 -04:00
Igor Artamonov 36e089f65f solution: use reactor based stubs for grpc server 2019-07-29 22:27:15 -04:00
Igor Artamonov 4c9343c146 solution: tls for gprc upstream 2019-07-28 22:51:41 -04:00
Igor Artamonov 90e96ceb70 solution: transfer actual status and availability through grpc 2019-07-28 18:04:54 -04:00
Igor Artamonov b996edabef problem: allows multiple different endpoints for same upstream
solution: simplify config, allow to setup only one connection type per upstream
2019-07-27 22:31:49 -04:00
Igor Artamonov c5228c2cce problem: missing test data
rel: [fd8c35bec2]
2019-07-26 23:15:20 -04:00
Igor Artamonov 124def0530 problem: shouldn't setup new chains not described by upstream 2019-07-26 23:10:46 -04:00
Igor Artamonov 64e0ac58fd solution: stream updates to blockchain status 2019-07-26 22:29:19 -04:00
Igor Artamonov 7467e19ea0 problem: prints status of chains that are not configured 2019-07-25 23:58:48 -04:00
Igor Artamonov 144008e5aa problem: can keep several subscription for the same head 2019-07-25 23:58:24 -04:00
Igor Artamonov fd8c35bec2 solution: connects to remote dshackle 2019-07-25 22:53:02 -04:00
Igor Artamonov 499a92e4d6 solution: rename Blockchain services 2019-07-11 01:00:51 -04:00
Igor Artamonov 865335f627 problem: listen on 9001, ignores config from dshackle.yaml 2019-07-07 22:49:38 -04:00
Igor Artamonov 56da82118e solution: upgrade to api 0.2 2019-07-03 23:05:24 -04:00
Igor Artamonov dab115c9b2 problem: OutOfBound array access 2019-07-03 23:02:19 -04:00
Igor Artamonov 4680a4490c solution: verify upstream status 2019-06-21 16:10:01 -04:00
Igor Artamonov a4ab936891 solution: group all upstreams per chain 2019-06-21 00:55:56 -04:00
Igor Artamonov cd1acd13c3 solution: read upstream config from specified yaml 2019-06-20 16:40:54 -04:00
Igor Artamonov 057c3a5a02 solution: refactor main config structure 2019-06-20 16:39:49 -04:00
Igor Artamonov 72c983c68f solution: read configuration from dshackle.yaml (in current directory) 2019-06-20 16:39:15 -04:00
Igor Artamonov 42c98b5e4c solution: support client TLS 2019-06-15 15:02:34 -04:00
Igor Artamonov b8a7d4e3db problem: call already closed exception, onError closes it 2019-06-14 18:20:38 -04:00
Igor Artamonov 8beeb0877a solution: configurable port 2019-06-13 22:45:46 -04:00
Igor Artamonov 591eb73f45 solution: allow to setup with ssl 2019-06-12 23:52:28 -04:00
Igor Artamonov 748b94fb6c solution: show in log when gets an upstream 2019-06-12 23:52:08 -04:00
Igor Artamonov 6681810f59 problem: not configurable from command line 2019-06-12 23:44:30 -04:00
Igor Artamonov 50dba65d21 solution: build & deploy to Docker Hub 2019-06-12 22:57:49 -04:00
Igor Artamonov 3ef0a75cec solution: initial readme 2019-06-11 01:08:43 -04:00
Igor Artamonov be40fce6c5 solution: naive trackAddress implementation 2019-06-10 23:03:29 -04:00
Igor Artamonov 1fa873b1df solution: naive implementation for tx tracking 2019-06-10 21:55:52 -04:00
Igor Artamonov 51751741b3 problem: miss most of the new blocks 2019-06-10 21:51:03 -04:00
Igor Artamonov e06ce56742 solution: update current head through RPC as well 2019-06-10 20:03:47 -04:00
Igor Artamonov 59ab8b9010 solution: StreamHead implementation 2019-06-09 22:18:27 -04:00
Igor Artamonov 4a87047b7a solution: subscribe to new blocks through WebSockets 2019-06-09 19:59:23 -04:00
Igor Artamonov 9c37831a5c solution: hardcode some methods for ethereum 2019-06-09 16:48:49 -04:00
Igor Artamonov 69984871a1 solution: switch to Etherjar 0.7 2019-06-09 16:24:11 -04:00
Igor Artamonov 54e7081599 solution: initial version 2019-06-07 19:39:04 -04:00