object ConfigurationErrors extends ErrorGroup
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- ConfigurationErrors
- ErrorGroup
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit val errorClass: ErrorClass
- Definition Classes
- ErrorGroup
- val fullClassName: String
- Definition Classes
- ErrorGroup
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object AheadOfHead extends ErrorCode
- Annotations
- @Explanation(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(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. """)
- object AttemptToChangeImmutableValue extends ErrorCode
- Annotations
- @Explanation(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(resolution = """Deploy a new instance of the 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.
|""")
- object BesuVersionMismatch extends ErrorCode
- Annotations
- @Explanation(explanation = """This error is logged when the sequencer detects that the version of the Besu client
|it connects to is not what is expected / supported.
|""") @Resolution(resolution = """Either deploy the documented required version or set
|canton.parameters.non-standard-config = true.""")
- object ManyBlocksBehindHead extends ErrorCode
- Annotations
- @Explanation(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(resolution = """Wait until the sequencer has caught up to the head
| of the blockchain. Alternatively, consider changing the configuration of `block-to-read-from` of the Ethereum
| sequencer when initializing it against an Ethereum network that already mined a lot of blocks. """)
- object NotFreeGasNetwork extends ErrorCode
- Annotations
- @Explanation(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(resolution = """Change the configuration of the Ethereum network to a free-gas network. """)
- object UnableToQueryVersion extends ErrorCode
- Annotations
- @Explanation(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(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.
|""")
- object WrongEVMBytecode extends ErrorCode
- Annotations
- @Explanation(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(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.
| Another common reason for this error is that the wrong contract address was configured.
|""")