mirror of
https://github.com/fluencelabs/examples
synced 2025-05-09 17:46:20 +00:00
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# Aqua Ethereum Gateway
|
|
|
|
Gateway represents access to different Ethereum API providers (infura, alchemy). It can be used with Web3 client and load balancing requests between different providers.
|
|
|
|
|
|
## Installation
|
|
|
|
```shell
|
|
npm install -g @fluencelabs/aqua-eth-gateway
|
|
```
|
|
|
|
## Example
|
|
|
|
```shell
|
|
aqua-eth-gateway path/to/config.json
|
|
```
|
|
|
|
where config is:
|
|
|
|
```json
|
|
{
|
|
"providers": [
|
|
"https://goerli.infura.io/v3/your-api-key",
|
|
"https://eth-goerli.g.alchemy.com/v2/your-api-key"
|
|
],
|
|
"mode": "random",
|
|
"relay": "fluence/peer/address",
|
|
"serviceId": "eth-rpc serviceId",
|
|
"port": 3000,
|
|
"counterServiceId": null,
|
|
"counterPeerId": null,
|
|
"quorumServiceId": null,
|
|
"quorumPeerId": null,
|
|
"quorumNumber": null,
|
|
"quorumTimeout": null,
|
|
"requestTimeout": null
|
|
}
|
|
```
|
|
|
|
`counterServiceId` and `counterPeerId` is credentials to counter service for `round-robin` mode. Will be used local counter if undefined.
|
|
`quorumServiceId` and `quorumPeerId` is credentials to counter service for `round-robin` mode. Will be used local counter if undefined.
|
|
`quorumNumber` is `2` by default.
|
|
`quorumTimeout` is how long we will wait for all responses
|
|
`requestTimeout` is how long we will wait for aqua request
|
|
|
|
## Mode
|
|
|
|
`random` - choose providers randomly
|
|
`round-robin` - choose providers in circle order
|
|
`quorum` - call all providers and choose the result that is the same from `>= quorumNumber` providers. Or return an error.
|