Packages

object ConfigurationErrors extends ErrorGroup

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ConfigurationErrors
  2. ErrorGroup
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. implicit val errorClass: ErrorClass
    Definition Classes
    ErrorGroup
  9. val fullClassName: String
    Definition Classes
    ErrorGroup
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. object AheadOfHead extends ErrorCode
    Annotations
    @Explanation("""This warning is logged on startup if the sequencer is configured to only start reading from a block
    |that wasn't mined yet by the blockchain (e.g. sequencer is supposed to start reading from block 500, but
    |the latest block is only 100). This is likely due to a misconfiguration.
    |"""
    )
    @Resolution("""This issue frequently occurs when the blockchain is reset but the sequencer database configuration is
    | not updated or the sequencer database (which persists the last block that was read by the sequencer) is not reset.
    | Validate these settings and ensure that the sequencer is still reading from the same blockchain. """
    )
  22. object AttemptToChangeImmutableValue extends ErrorCode
    Annotations
    @Explanation("""The sequencer smart contract has detected that a value that is immutable after being set for the first time
    | (either the signing tolerance or the topology manager ID) was attempted to be changed.
    | Most frequently this error occurs during testing when a Canton Ethereum sequencer process without persistence
    | is restarted while pointing to the same smart sequencer contract. An Ethereum sequencer attempts to set the
    | topology manager ID during initialization, however, without persistence the topology manager ID is randomly
    | regenerated on the restart which leads to the sequencer attempting to change the topology manager ID in the
    | sequencer smart contract.
    |"""
    )
    @Resolution("""Deploy a new instance of the sequencer contract (Console command `ethereum.deploy_sequencer_contract`) and configure
    | the Ethereum sequencer to use that instance. If the errors occur because an Ethereum sequencer process is
    | restarted without persistence, deploy a fresh instance of the sequencer contract and configure persistence
    | for restarts.
    |"""
    )
  23. object AuthorizationEnabledMismatch extends ErrorCode
    Annotations
    @Explanation("""This error is logged when the sequencer detects that (according to the configuration)
    |the corresponding Sequencer.sol contract should have authorization enabled but doesn't (and vice versa).
    |"""
    )
    @Resolution("""Validate that the sequencer is configured with the correct Sequencer.sol contract and whether it
    |should be using authorization or not. """
    )
  24. object ManyBlocksBehindHead extends ErrorCode
    Annotations
    @Explanation("""This error is logged when the sequencer is currently processing blocks that are very far behind
    |the head of the blockchain of the connected Ethereum network. The Ethereum sequencer won't observe new transactions
    |in the blockchain until it has caught up to the head. This may take a long time depending on the blockchain length
    |and number of Canton transaction in the blocks. Empirically, we have observed that the Canton sequencer
    | processes roughly 500 empty blocks/second. This may vary strongly for non-empty blocks.
    | The sequencer logs once it has caught up to within `blocksBehindBlockchainHead` blocks behind the blockchain head.
    |"""
    )
    @Resolution("""Change the configuration of `blockToReadFrom` for the Ethereum sequencer when working
    |with an existing (not fresh) Ethereum network. Alternatively, wait until the sequencer has caught up to the head
    | of the blockchain. """
    )
  25. object NotFreeGasNetwork extends ErrorCode
    Annotations
    @Explanation("""This error is logged when during setup the sequencer detects that it isn't
    |connected to a free-gas network. This usually leads to transactions silently being dropped by Ethereum nodes.
    |You should only use a non-free-gas network, if you have configured an Ethereum wallet for the sequencer to use
    |and have given it gas.
    |"""
    )
    @Resolution("""Change the configuration of the Ethereum network to a free-gas network. """)
  26. object UnableToQueryVersion extends ErrorCode
    Annotations
    @Explanation("""
    |As one of the first steps when initializing a Besu sequencer, Canton attempts to query the version (attribute)
    |of the Sequencer.sol contract.
    |"""
    )
    @Resolution("""Usually, the root cause of this is a deployment or configuration problem.
    | Ensure that a Sequencer.sol contract is deployed on the configured address on the latest block when attempting
    | to initialize the Canton Besu sequencer node. If this error persists, a malicious user may
    | be attempting to interfere with the Ethereum network.
    |"""
    )
  27. object Unauthorized extends ErrorCode
    Annotations
    @Explanation("""This error is logged during setup when the sequencer detects that authorization is enabled on
    |the Sequencer.sol contract, but the Ethereum account used by the sequencer node is not authorized to interact with the contract.
    |"""
    )
    @Resolution("""Authorize this sequencer node from another already-authorized sequencer node (see console
    |command `authorize_ledger_identity`).
    |
    |"""
    )
  28. object WrongEVMBytecode extends ErrorCode
    Annotations
    @Explanation("""Canton validates on startup that the configured address on the blockchain contains the EVM bytecode of the
    | sequencer smart contract in the latest block. This error indicates that no bytecode or the wrong bytecode was found.
    | This is a serious error and means that the sequencer can't sequence events.
    |"""
    )
    @Resolution("""This frequently error occurs when updating the Canton system without updating the sequencer
    |contract deployed on the blockchain. Validate that the sequencer contract corresponding to the current Canton release
    | is deployed in the latest blockchain blocks on the configured address (see also `ethereum.deploy_sequencer_contract`).
    | Another common reason for this error is that the wrong contract address was configured.
    |"""
    )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from ErrorGroup

Inherited from AnyRef

Inherited from Any

Ungrouped