Canton Enterprise - Ethereum Domain: Sequencer 'sequencer' cannot be reached: Sequencer 'sequencer' has not been initialized

Hi there,

I’m getting stuck when running the Canton and Besu locally. I ran the Canton and Besu binary instead of Docker container. However Canton still fail to recognise the Besu node with the below message when I enter @ health.status.

Sequencer 'sequencer' cannot be reached: Sequencer 'sequencer' has not been initialized

Here is my Canton config:

canton {
    participants {
        participant1 {
            storage {
                type = memory
            }
            admin-api {
                port = 5012
                address = "0.0.0.0"
            }
            ledger-api {
                port = 5011
                address = "0.0.0.0"
            }
        }
    }

    domain-managers {}

    mediators.mediator1 {}

    sequencers {
        sequencer {
            storage.type = memory

            admin-api {
                port= 30303
                address = 127.0.0.1
            }
            public-api {
                port = 30303
                address = 127.0.0.1
            }

            sequencer {
                type = "ethereum"
                config {
                    ethereum-client {
                        type = "besu"
                    }
                    client-conf {
                        client-host = "besu/v22.7.7/osx-x86_64/oracle-java-19"
                        client-port = 8545
                    }
                    authorization-enabled = false
                    contract {
                        type = "automatic-deployment"
                    }
                }
            }
        }
    }
}

Here is my Besu node info:

{
  "jsonrpc" : "2.0",
  "id" : 1,
  "result" : {
    "enode" : "enode://098f01fd007f396b50a5c055861131ce91163aeb342fde9bdc47e8d9a3f6566cf9f80e112e74dada39e42e95a90c6a83c6fe26ca482fcf5e1cf758c4172afac6@127.0.0.1:30303",
    "listenAddr" : "127.0.0.1:30303",
    "ip" : "127.0.0.1",
    "name" : "besu/v22.7.7/osx-x86_64/oracle-java-19",
    "id" : "098f01fd007f396b50a5c055861131ce91163aeb342fde9bdc47e8d9a3f6566cf9f80e112e74dada39e42e95a90c6a83c6fe26ca482fcf5e1cf758c4172afac6",
    "ports" : {
      "discovery" : 30303,
      "listener" : 30303
    },
    "protocols" : {
      "eth" : {
        "config" : {
          "chainId" : 1337,
          "berlinBlock" : 0,
          "ibft2" : {
            "epochLength" : 30000,
            "blockPeriodSeconds" : 2,
            "requestTimeoutSeconds" : 4
          }
        },
        "difficulty" : 10268,
        "genesis" : "0xb4aa8d3fe2adb59284ca25306772a21919c664b8dfaf83270a3c6b81be983d19",
        "head" : "0x90c62fd87be0eaf7a5120587286960d70d461970f6e8f66b93b03a26a339decd",
        "network" : 1337
      }
    }
  }
}

Really appreciate if anyone can help. Many thanks in advance.

Best,
Kether

1 Like

Could you please advise what Canton Version you are using, and on what O/S?

It works now! Seems I need to add domainManager and run this cmd @ domainManager1.setup.bootstrap_domain(Seq(sequencer1), Seq(mediator1)) to connect the sequencer. The updated config is sth like below.

canton {
    domain-managers.domainManager1 {}

    mediators.mediator1 {}

    sequencers {
        sequencer1 {
            storage.type = memory

            admin-api.port = 3001

            public-api.port = 4001

            sequencer {
                type = "ethereum"
                config {
                    ethereum-client {
                        type = "besu"
                    }
                    client-conf {
                        client-host = "127.0.0.1"
                        client-port = 8545
                    }
                    authorization-enabled = false
                    contract {
                        type = "automatic-deployment"
                    }
                }
            }
        }
    }
}

To answer your question, the Canton Version is 2.3.6, and the os is mac os.

However I have another question regarding the canton transaction. I follow the GettingStarted tutorial, since I am connecting to the sequencer which point to the Besu node, how can I verify the transactions are being recorded or not inside the block on chain.

I am also getting same error sequencer cannot be reached .
When I use that domanimanager setup command nothing is working , I am getting timeout error.
My besu node is in different machine.