examples/aqua-examples/decentralized-blockchain-gateway/gateway
2023-02-21 16:31:21 +04:00
..
aqua quorum implementation 2023-02-21 16:31:21 +04:00
aqua-compiled quorum implementation 2023-02-21 16:31:21 +04:00
src quorum implementation 2023-02-21 16:31:21 +04:00
config.json quorum implementation 2023-02-21 16:31:21 +04:00
package-lock.json update gateway to new js client 2023-02-21 11:44:13 +04:00
package.json update gateway to new js client 2023-02-21 11:44:13 +04:00
README.md quorum implementation 2023-02-21 16:31:21 +04:00
web3run.js refactoring, move all arguments to config, fix round robin 2023-02-14 10:20:41 +04:00

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

npm install -g @fluencelabs/aqua-eth-gateway

Example

aqua-eth-gateway path/to/config.json

where config is:

{
  "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
}

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.

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.