Skip to content

MetisProtocol/metis-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deploy RPC with Ansible

System requirement

  • Linux (x86_64)
  • docker
  • Ethereum and beacon chain with full history
  • Ansible 9 and Python 3.12

Andromeda

Recommended hardware

  1. AWS c5.2xlarge with ipv4 network
  2. 750Gb ebs gp3
  3. open 30303 tcp/udp for p2p connections

Steps

  1. update hosts.ini file, add your remote ip and eth mainnet rpc endpoint there
  2. install docker and docker-compose by ansible-playbook playbooks/docker.yaml
  3. spin up your andromeda rpc by ansible-playbook playbooks/andromeda.yaml
  4. install docker-autoheal by ansible-playbook playbooks/autoheal.yaml

snapshots

We provided public aws ebs snapshot for you if you need them.

l2geth

snap-0114d80fdd6507d60

l1dtl

snap-0883f0629abcc6d4c

You can get the snapshots on aws us-east-2 region, and copy them to another region you are using.

Sepolia

Recommended hardware

  1. AWS c5.xlarge with ipv4 network
  2. 100Gb ebs gp3
  3. open 30303 tcp/udp for p2p connections

Steps

  1. update hosts.ini file, add your remote ip and eth sepolia rpc endpoint there
  2. install docker and docker-compose by ansible-playbook playbooks/docker.yaml
  3. spin up your sepolia rpc by ansible-playbook playbooks/sepolia.yaml
  4. install docker-autoheal by ansible-playbook playbooks/autoheal.yaml

Snapshot

We provided public aws ebs snapshot for you if you need them.

l2geth

snap-00f04f1766958be23

l1dtl

snap-0fe52e403694afe9d

You can get the snapshots on aws us-east-1 region, and copy them to another region you are using.

FAQ

  1. How to enable finalized param in the eth_getBlockByNumber rpc call and so on?

Use DATA_TRANSPORT_LAYER__SYNC_L1_BATCH=true env value in your dtl service instead.

By the way, you have to re-sync the data if you don't use it at first.

  1. l2geth panic: Refund counter below zero

It can happen when you have a new instance without the snapshots.

You can add --cache.noprefetch=true argument to your l2geth service

  1. How to update the default rpc port

if you don't want to use the default 8545 port, you need to update the LOCAL_L2_CLIENT_HTTP env as well.

e.g. if you want to use 8549 instead.

RPC_PORT=8549
LOCAL_L2_CLIENT_HTTP=http://localhost:8549
  1. Synchronisation failed, retrying err="element not found"

It means your l1dtl is syncing, you can just wait for its completion.

  1. Blob data has already expired

Metis uses blob transactions to publish its state and blocks to Ethereum.

And the blob data are saved in beacon chain nodes, by default, they will be removed after 2 weeks for space saving.

You can use the latest snapshots or use a larger retention period.

If the snapshot has not been updated for too long time, you can file an issue, and we will update it asap.

  1. l1dtl error: response too large

Add command --rpc.batch-response-max-size=50000000 to your geth rpc node

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •