Skip to content

Latest commit

 

History

History
 
 

docs

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

List of supported chains

Chat

Join our Discord