Gravity Chain Binding

This documentation only applies if you are syncing your node from a block height 1 or anyway prior to Mainnet 1.0 height (5157001). You can ignore this if you are syncing your node starting from an official snapshot.

Before the final release of IoTeX 1.0, the blockchain relied on the delegate election result fetched from the IoTeX staking contract deployed on Ethereum. As a consequence, if you intend to sync your node from the very first block, you will need to provide a list of Ethereum JSON-RPC endpoints for the node to consume the relevant data from Ethereum.

While we provide a list of default JSON-RPC endpoints, delegates are encouraged to set up their own endpoint, to be more decentralized, secured, and performant.

There are two approaches that have been experimented:

  • Setup your own Ethereum node. No need to mine, just use it as an Ethereum API Getheway (geth and parity), and expose the JSON-RPC endpoint.

  • Use Infura Ethereum blockchain infrastructure. Signing up for an account and creating a project. The JSON-RPC endpoint would be https://mainnet.infura.io/v3/YOUR-PROJECT-ID. For more details of setting up the Infura endpoint, please check here.

After getting your own JSON-RPC endpoint, you can add it into your node configuration fileconfig.yamland restart your server. Then, your IoTeX server will read from this endpoint to get Ethereum data. You could also create and add multiple endpoints for the sake of robustness.

...
chain:
  ...
  committee:
    ...
    gravityChainAPIs:
      - [YOUR JSON-RPC ENDPOINT]
      ...
    ...
  ...
...

Last updated