== Server Configuration By default, the Dshackle looks for config in the following locations: 1. Path specified by _optional_ `--configPath <...>` command line option 2. `/etc/dshackle/dshackle.yaml` 3. `./dshackle.yaml` (i.e. in the current working dir) If none found the application exists 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" cluster: 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:08-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 cluster: include: "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:08-authentication.adoc[Authentication] for details a| `routes` | | List of endpoints to proxy |===