object ProtocolVersion extends CompanionTrait with Serializable
- Alphabetic
- By Inheritance
- ProtocolVersion
- Serializable
- CompanionTrait
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final case class InvalidProtocolVersion(description: String) extends FailureReason with Product with Serializable
- 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() @HotSpotIntrinsicCandidate()
- def create(rawVersion: String): Either[String, ProtocolVersion]
- def createInternal(rawVersion: String): Either[String, (Int, Int, Int, Option[String])]
- Attributes
- protected
- Definition Classes
- CompanionTrait
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fromProtoPrimitive(rawVersion: String): ParsingResult[ProtocolVersion]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val latest: ProtocolVersion
- val latestForTest: ProtocolVersion
Should be used when hardcoding a protocol version for a test to signify that a hardcoded protocol version is safe in this instance.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def supportedProtocolsDomain: Seq[ProtocolVersion]
Returns the protocol versions supported by domain nodes of the current release.
- def supportedProtocolsParticipant: Seq[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 tryCreate(rawVersion: String): ProtocolVersion
- lazy val v2_0_0: ProtocolVersion
- lazy val v2_0_0_Todo_i8793: ProtocolVersion
- lazy val v2_0_0_snapshot: ProtocolVersion
- 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])