Error starting mainnet node via docker

Trying to start node in mainnet fails with strange error.
docker image: ceramicnetwork/js-ceramic:latest
Here is the logs with versions
Some data like infura apikey, ipfs ip, node private seed hidden for security reasons, but they are scpecified

[2024-01-22T17:26:00.427Z] IMPORTANT: Starting Ceramic Daemon with @ceramicnetwork/cli package version 3.2.0, with js-ceramic repo git hash 25336d5daae42b47eace54346d695932b5678a87, and with config: 
{
  "anchor": {
    "auth-method": "did",
    "ethereum-rpc-url": "https://mainnet.infura.io/v3/apikey"
  },
  "http-api": {
    "cors-allowed-origins": [
      ".*"
    ],
    "admin-dids": []
  },
  "ipfs": {
    "mode": "remote",
    "host": "http://ipfs_ip:5001",
    "disable-peer-data-sync": false
  },
  "logger": {
    "log-level": 2,
    "log-to-files": true
  },
  "metrics": {
    "metrics-exporter-enabled": false
  },
  "network": {
    "name": "mainnet"
  },
  "node": {},
  "state-store": {
    "mode": "fs",
    "local-directory": "/root/.ceramic/statestore/"
  },
  "indexing": {
    "db": "sqlite:///root/.ceramic/indexing.sqlite",
    "allow-queries-before-historical-sync": true,
    "disable-composedb": false,
    "enable-historical-sync": false
  }
}
Ceramic daemon failed to start up:
TypeError: fetch failed
    at Object.fetch (node:internal/deps/undici/undici:11730:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  cause: ConnectTimeoutError: Connect Timeout Error
      at onConnectTimeout (node:internal/deps/undici/undici:6869:28)
      at node:internal/deps/undici/undici:6825:50
      at Immediate._onImmediate (node:internal/deps/undici/undici:6857:13)
      at process.processImmediate (node:internal/timers:478:21) {
    code: 'UND_ERR_CONNECT_TIMEOUT'
  }
}

Thanks for sharing your issue @jetrix. I’m sure @Radek or @Justina can help you out!

@jetrix what version of Node.js and NPM are you using?

npm 10.1.0
nodejs v20.9.0

@jetrix, I think the issue may be coming from your node config:

“ethereum-rpc-url”: “https://mainnet.infura.io/v3/apikey”

I assume you copied this directly out of some of our docs, but that url is meant as a placeholder. You’ll need to replace it with a real URL for a functional ethereum RPC endpoint.

Here i said that ive change here in post, but there are real link to infura rpc on node, so its not the issue

1 Like

Hi,
I tried reproducing the error using Docker locally, I didn’t get to the same error/issue but a similar one when failing to connect between the Ceramic node and IPFS.
My guess is that there is a similar connectivity issue with your setup, either between the Ceramic node and IPFS, or maybe with another external service like Infura or the CAS?

1 Like

Agree with Paul.

@jetrix are you able to bring up any Docker image that hits the internet? You could use the curl Docker image and try to hit some public endpoint.

1 Like

Hi,
Looks like you are right, going to ipfs webui shows error that it cant conenct to api. I’ve tried to solve the issue, but dont really find the way. I have tried everythin shows in ipfs docs, and ipfs logs show that everything fine, but for some strange reason i cannot connect to api anyway. Maybe you know what can cause this

I ve changed ipfs config now it works and ceramic node dont give this error.
But now its starting and after sometime gives this err

[2024-01-25T17:55:46.928Z] IMPORTANT: Initializing PostgreSQL connection
[2024-01-25T17:55:47.200Z] IMPORTANT: Node DID set to 'did:key:z6MkrLjw8Gzv9t6uEjxxNWTJAz7NLSSLFeeGvTGh6rzk5K3A. This DID will be used to authenticate to the anchor service'
[2024-01-25T17:55:47.200Z] IMPORTANT: Connecting to ceramic network 'mainnet' using pubsub topic '/ceramic/mainnet'
[2024-01-25T17:56:17.203Z] IMPORTANT: Closing Ceramic instance
Ceramic daemon failed to start up:
[2024-01-25T17:56:17.211Z] IMPORTANT: Ceramic instance closed successfully
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_PG.acquireConnection (/js-ceramic/node_modules/knex/lib/client.js:332:26)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:540:9)
    at process.processTimers (node:internal/timers:514:7)
    at async Runner.ensureConnection (/js-ceramic/node_modules/knex/lib/execution/runner.js:305:28)
    at async Runner.run (/js-ceramic/node_modules/knex/lib/execution/runner.js:30:19)
    at async PostgresTablesManager.initConfigTable (file:///js-ceramic/packages/indexing/lib/tables-manager.js:54:24)
    at async file:///js-ceramic/packages/indexing/lib/tables-manager.js:50:13
    at async Promise.all (index 0)
    at async PostgresTablesManager.initConfigTables (file:///js-ceramic/packages/indexing/lib/tables-manager.js:49:9) {
  sql: undefined,
  bindings: undefined
}

You might need to double-check your Postgres configuration. How are you setting up your database?