From 988dc5ae28ff90d23dc42a538eb0bc714e94a185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Tr=C4=85d?= Date: Wed, 17 Apr 2024 14:50:41 +0200 Subject: [PATCH] Fix docker compose setup (#32) * Fix docker compose setup * Add commented out geth option * Fix 1/admin/relayers --- compose.yml | 28 +++++++++++++++++++++++++++- src/app.rs | 4 +++- src/db.rs | 1 + src/tasks/index.rs | 2 ++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/compose.yml b/compose.yml index 7db4896..16f640e 100644 --- a/compose.yml +++ b/compose.yml @@ -41,4 +41,30 @@ services: image: ghcr.io/foundry-rs/foundry:latest ports: - "8545:8545" - command: ["anvil --block-time 2"] + command: ["anvil --block-time 2 --host 0.0.0.0"] + + # blockchain: + # image: ethereum/client-go:alltools-stable + # hostname: blockchain + # command: > + # geth --datadir /root/datadir --dev --http --ws + # --http.api eth,web3,net,debug + # --http.addr "0.0.0.0" + # --ws.addr "0.0.0.0" + # --ws.port 8545 + # --http.vhosts "*" + # --http.corsdomain "https://remix.ethereum.org" + # --rpc.gascap 0 + # --rpc.txfeecap 0 + # --vmdebug + # volumes: + # - geth_datadir:/root/datadir + # ports: + # - "30303:30303" + # - "8545:8545" + # stdin_open: true + # tty: true + # restart: unless-stopped + +# volumes: +# geth_datadir: \ No newline at end of file diff --git a/src/app.rs b/src/app.rs index f3a1c49..3ef353f 100644 --- a/src/app.rs +++ b/src/app.rs @@ -50,7 +50,9 @@ impl App { ) -> eyre::Result> { let url = self.db.get_network_rpc(chain_id, RpcKind::Ws).await?; - let ws = Ws::connect(url.as_str()).await?; + let ws = Ws::connect(url.as_str()) + .await + .context("Connecting to WS provider")?; let provider = Provider::new(ws); Ok(provider) diff --git a/src/db.rs b/src/db.rs index ec2b221..bdc010d 100644 --- a/src/db.rs +++ b/src/db.rs @@ -170,6 +170,7 @@ impl Database { nonce, current_nonce, max_inflight_txs, + max_queued_txs, gas_price_limits, enabled FROM relayers diff --git a/src/tasks/index.rs b/src/tasks/index.rs index 49eaa8b..440542b 100644 --- a/src/tasks/index.rs +++ b/src/tasks/index.rs @@ -25,10 +25,12 @@ pub async fn index_chain(app: Arc, chain_id: u64) -> eyre::Result<()> { let ws_rpc = app.ws_provider(chain_id).await?; let rpc = app.http_provider(chain_id).await?; + tracing::info!("Subscribing to new blocks"); // Subscribe to new block with the WS client which uses an unbounded receiver, buffering the stream let mut blocks_stream = ws_rpc.subscribe_blocks().await?; // Get the first block from the stream, backfilling any missing blocks from the latest block in the db to the chain head + tracing::info!("Backfilling blocks"); if let Some(latest_block) = blocks_stream.next().await { backfill_to_block(app.clone(), chain_id, &rpc, latest_block) .await?;