62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
= Dshackle Documentation
|
|
|
|
== What is Dshackle
|
|
|
|
Dshackle is a L7 Load Balancer for Blockchain APIs with automatic discovery, health checking, secure access, TLS with
|
|
client authentication, and many other features.It can be configured as an edge proxy, middle proxy or API gateway.
|
|
|
|
Dshackle provided a high level aggregated API on top of several underlying upstreams (blockchain nodes or providers,
|
|
such as DRPC, etc), automatically verifies their availability and the current status of the network,
|
|
it routes requests to available node, and makes sure the response is consistent and/or data successfully broadcasted to
|
|
the networks.
|
|
|
|
Example use cases:
|
|
|
|
- Query for a _transaction_ (block, etc) tries to find it on different nodes and/or retry until it's found or there is
|
|
a consistent answer from upstreams
|
|
- Getting _nonce_ to send a transaction makes sure it's larges value over several nodes
|
|
- Sending _transaction_ distributes it to several nodes in parallel
|
|
|
|
Availability and fault tolerance:
|
|
|
|
- Dshackle connects to several upstreams via JSON RPC, Websockets or gRPC protocols
|
|
- It verifies if a node ("upstream") is fully synchronized (not in initial sync mode), has enough peers and its height
|
|
is not behind other nodes
|
|
- If an upstream lags behind, lost peers, started to resync, or simply goes down then Dshackle temporarily excludes it from
|
|
routing and returns back when the the upstream's problem is fixed
|
|
|
|
Main goals:
|
|
|
|
- stable and fault tolerant access to blockchain nodes
|
|
- secure connections and authentication
|
|
- allow to build scalable APIs with nodes distributed over multiple data centers
|
|
|
|
== Table of Content
|
|
|
|
. xref:01-architecture-intro.adoc[Architecture Overview]
|
|
. xref:02-quick-start.adoc[Quick Start]
|
|
. xref:03-server-config.adoc[Server Configuration]
|
|
. xref:04-upstream-config.adoc[Upstreams Configuration]
|
|
. xref:05-start.adoc[How to launch a server]
|
|
. xref:06-monitoring.adoc[Logging & Monitoring]
|
|
. xref:07-methods.adoc[API methods]
|
|
. xref:08-authentication.adoc[Authentication]
|
|
. xref:09-quorum-and-selectors.adoc[Quorum and Selectors]
|
|
. xref:10-caching.adoc[Caching]
|
|
|
|
== List of supported chains
|
|
|
|
Can be found here: https://drpcorg.github.io/dshackle/networks.html
|
|
|
|
== Reference
|
|
|
|
. xref:reference-configuration.adoc[Configuration Reference]
|
|
|
|
== Chat
|
|
|
|
Join our https://drpc.org/discord[Discord]
|
|
|
|
== Links
|
|
|
|
- Github: https://github.com/drpcorg/dshackle
|