solution: make more clear how to setup round-robin

rel: #7
This commit is contained in:
Igor Artamonov
2020-05-27 15:50:51 -04:00
parent ef32308868
commit aaf79ad643
3 changed files with 50 additions and 27 deletions

View File

@@ -36,16 +36,24 @@ cluster:
connection:
ethereum:
rpc: # <6>
url: "https://mainnet.infura.io/v3/${INFURA_USER}" <7>
url: "https://mainnet.infura.io/v3/${INFURA_USER}" # <7>
ws: # <8>
url: "wss://mainnet.infura.io/ws/v3/${INFURA_USER}"
- id: local-eth # <9>
chain: ethereum
connection:
ethereum:
rpc:
url: "http://192.168.1.100:8545/" # <10>
ws:
url: "ws://192.168.1.100:8546"
- id: bitcoin-main
chain: bitcoin # <9>
chain: bitcoin # <11>
connection:
bitcoin:
rpc:
url: "http://localhost:8332"
basic-auth: # <10>
basic-auth: # <12>
username: bitcoin
password: test
----
@@ -56,9 +64,14 @@ cluster:
<5> one for Ethereum Mainnet, using
<6> HTTP and
<7> `${INFURA_USER}` value is provided through environment variable
<8> Websocket conection
<9> and another for Bitcoin <10> with Basic Auth for bitcoin node connection
<8> in addition to HTTPS is uses Websocket protocol to connect to Infura, used to subscribe to updates
<9> setup another upstream for Ethereum Mainnet
<10> which connects to a node in the internal networks, without any authentication at this case
<11> and another for Bitcoin
<12> with Basic Auth for bitcoin node connection
The configuration above sets up the Dshackle to provide a fault-tolerant access to Bitcoin and Ethereum blockchain.
And for Ethereum, at this particular example, it uses a Round Robin Load Balancing over the Infura and the local node.
See detailed link:reference-configuration.adoc[Configuration Reference]

View File

@@ -286,7 +286,7 @@ cache:
[#cluster]
== Cluster
The cluster config is the main part that defines all connection to nodes and other servers
The cluster config is the main part, that defines all connection to nodes and other servers
[source,yaml]
----
@@ -334,25 +334,25 @@ configuration, and may be omitted for most of the situations.
[source,yaml]
----
- id: local
chain: ethereum
labels:
fullnode: true
methods:
enabled:
- name: "parity_trace"
disabled:
- name: "admin_shutdown"
connection:
ethereum:
rpc:
url: "http://localhost:8545"
ws:
url: "ws://localhost:8546"
origin: "http://localhost"
basic-auth:
username: 9c199ad8f281f20154fc258fe41a6814
password: 258fe4149c199ad8f2811a68f20154fc
- id: local
chain: ethereum
labels:
fullnode: true
methods:
enabled:
- name: "parity_trace"
disabled:
- name: "admin_shutdown"
connection:
ethereum:
rpc:
url: "http://localhost:8545"
ws:
url: "ws://localhost:8546"
origin: "http://localhost"
basic-auth:
username: 9c199ad8f281f20154fc258fe41a6814
password: 258fe4149c199ad8f2811a68f20154fc
----
.Main Config
@@ -366,11 +366,15 @@ configuration, and may be omitted for most of the situations.
| `chain`
| yes
| Blockchain which is the provided by the upstream. `bitcoin`, `bitcoin-testnet`, `ethereum`, `ethereum-classic`, or `kovan`
| Blockchain which is the provided by the upstream.
Cluster may have multiple upstreams for a single blockchain.
Accepted types: `bitcoin`, `bitcoin-testnet`, `ethereum`, `ethereum-classic`, or `kovan`
| `labels`
| no
| Key-Value pairs that are assigned to the upstream. Used to select an upstream per-request. See link:08-quorum-and-selectors.adoc[Quorum and Selectors]
| Key-Value pairs that are assigned to the upstream.
Used to select an upstream per-request.
See link:08-quorum-and-selectors.adoc[Quorum and Selectors]
| `methods`
| no