# 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.