object ProtocolVersionCompatibility
- Alphabetic
- By Inheritance
- ProtocolVersionCompatibility
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final case class UnsupportedVersion(version: ProtocolVersion, supported: Seq[ProtocolVersion]) extends FailureReason with Product with Serializable
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 canClientConnectToServer(clientSupportedVersions: Seq[ProtocolVersion], server: ProtocolVersion, clientMinimumProtocolVersion: Option[ProtocolVersion]): Either[HandshakeError, Unit]
Returns successfully if the client and server should be compatible.
Returns successfully if the client and server should be compatible. Otherwise returns an error message.
The client and server are compatible if the protocol version required by the server is not lower than the clientMinimumVersion and the protocol version required by the server is among the protocol versions supported by the client (exact string match).
Note that this compatibility check cannot be implemented by simply verifying whether the supported version by the client is larger than the required version by the server as this may lead to issues with patches for old minor versions. For example, if the latest release version is 1.3.0 but we release patch release version 1.1.1 after the release of version 1.3.0, a node on version 1.3.0 which only checks whether are versions are smaller, would mistakenly indicate that it is compatible with a node running version 1.1.1. This issue is avoided if the client sends all protocol versions it supports and an exact string match is required. Generally, this sort of error can occur because Canton is operated in a distributed environment where not every node is on the same version.
- 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
- 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
- def isSupportedByDomainNode(cantonNodeParameters: CantonNodeParameters, protocolVersion: ProtocolVersion): Either[String, Unit]
Check used by domain nodes (mediator / sequencer) to verify whether they are able to join a domain using a specific protocol
- 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()
- def supportedProtocolsParticipant(includeUnstableVersions: Boolean, includeBetaVersions: Boolean, release: ReleaseVersion): NonEmpty[List[ProtocolVersion]]
Returns the protocol versions supported by the participant of the specified release.
Returns the protocol versions supported by the participant of the specified release. includeUnstableVersions: include only dev versions includeBetaVersions: include only Beta versions
- def supportedProtocolsParticipant(cantonNodeParameters: CantonNodeParameters, release: ReleaseVersion = ReleaseVersion.current): NonEmpty[List[ProtocolVersion]]
Returns the protocol versions supported by the participant of the current release.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def trySupportedProtocolsDomain(includeUnstableVersions: Boolean, includeBetaVersions: Boolean, release: ReleaseVersion): NonEmpty[List[ProtocolVersion]]
Returns the protocol versions supported by the domain of the specified release.
Returns the protocol versions supported by the domain of the specified release. includeUnstableVersions: include only dev versions includeBetaVersions: include only Beta versions
- def trySupportedProtocolsDomain(cantonNodeParameters: CantonNodeParameters, release: ReleaseVersion = ReleaseVersion.current): NonEmpty[List[ProtocolVersion]]
Returns the protocol versions supported by the domain of the current release.
Returns the protocol versions supported by the domain of the current release. Fails if no stable protocol versions are found
- 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])