== Server Configuration Dshackle server tries to load its configuration from `/etc/dshackle/dshackle.yaml`, if it can't find a file at that path it tries to load file `dshackle.yaml` from current working directory. If none of them found server fails to run with an error. .Example dshackle.yaml configuration: [source,yaml] ---- version: v1 port: 2449 tls: enabled: true server: certificate: "server.crt" key: "server.p8.key" client: require: true ca: "ca.crt" upstreams: include: "upstreams.yaml" ---- It configures following: - server is listening with gRCP API on `0.0.0.0:2449` - TLS is enabled - server certificate is located at `server.crt` with the key for it at `server.p8.key` - the server requires a client authentication by TLS client certificate signed by `ca.crt` certificate - no JSON RPC is configured - upstreams configuration is configured in the file `upstreams.yaml` .Configuration |=== | Name | Example | Description a| `version` | | Version of the format of the config a| `port` a| `port: 12449` | Port to bind gRPC server. `2449` by default a| `tls` | | TLS configuration for gRPC. See link:07-authentication.adoc[Authentication] for details a| `proxy` | | Proxy configuration a| `upstreams` | | Upstreams configuration |=== === Enabling JSON RPC proxy .Example proxy: [source,yaml] ---- version: v1 port: 2449 proxy: host: 0.0.0.0 port: 8080 routes: - id: eth blockchain: ethereum upstreams: config: "upstreams.yaml" ---- With that configuration Dshackle starts a JSON RPC proxy: - JSON RPC server is listening on `0.0.0.0:8080` - `http://0.0.0.0:8080/eth` provides access to Ethereum API routed to an available upstream .Full configuration: [source,yaml] ---- proxy: port: 8080 tls: enabled: true server: certificate: server.crt key: server.p8.key client: require: true ca: ca.crt routes: - id: eth blockchain: ethereum - id: etc blockchain: ethereum_classic ---- .Proxy configuration |=== | Name | Example | Description a| `host` a| `host: 0.0.0.0` | Host to bind proxy server. `127.0.0.1` by default a| `port` a| `port: 8545` | Port to bind proxy server. `8080` by default a| `enabled` a| `enabled: true` | Enable/disable proxy server a| `tls` | | TLS configuration for proxy. See link:07-authentication.adoc[Authentication] for details a| `routes` | | List of endpoints to proxy |===