Packages

package version

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. trait CantonVersion extends Ordered[CantonVersion] with PrettyPrinting

    Trait that represents how a version in Canton is modelled.

  2. trait CompanionTrait extends AnyRef
  3. final case class DomainProtocolVersion(version: ProtocolVersion) extends Product with Serializable

    Wrapper around a ProtocolVersion so we can verify during configuration loading that domain operators only configure a ProtocolVersion which is supported by the corresponding sequencer release.

  4. sealed trait HandshakeError extends AnyRef
  5. case class MinProtocolError(server: ProtocolVersion, clientMinimumProtocolVersion: Option[ProtocolVersion], clientSupportsRequiredVersion: Boolean) extends HandshakeError with Product with Serializable
  6. final case class ParticipantProtocolVersion(version: ProtocolVersion) extends Product with Serializable

    Wrapper around a ProtocolVersion so we can verify during configuration loading that participant operators only configure a minimum ProtocolVersion in com.digitalasset.canton.participant.config.LocalParticipantConfig which is supported by the corresponding participant release.

  7. final case class ProtocolVersion(major: Int, minor: Int, patch: Int, optSuffix: Option[String] = None) extends CantonVersion with Product with Serializable

    A Canton protocol version is a snapshot of how the Canton protocols, that nodes use to communicate, function at a certain point in time (e.g., this ‘snapshot’ contains the information what exactly a SubmissionRequest to the sequencer looks like and how exactly a Sequencer handles a call of the SendAsync RPC).

    A Canton protocol version is a snapshot of how the Canton protocols, that nodes use to communicate, function at a certain point in time (e.g., this ‘snapshot’ contains the information what exactly a SubmissionRequest to the sequencer looks like and how exactly a Sequencer handles a call of the SendAsync RPC). It is supposed to capture everything that is involved in two different Canton nodes interacting with each other.

    The protocol version is important for ensuring we meet our compatibility guarantees such that we can

    • update systems running older Canton versions
    • migrate data from older versions in the database
    • communicate with Canton nodes of different releases

    We identify protocol versions through a major, minor and patch digit. Technically, each functional change to a protocol version is a breaking change in the sense of semantic versioning and thus should lead to a major version according to SemVer. To communicate in a more practical, still semantic-versioning-adjacent manner, which protocol versions a certain Canton node supports, each Canton node documents the highest protocol it supports and also supports all previous protocol versions (of the same major version). For example, if the latest protocol version is 1.2.0, and the previous protocol versions are 1.0.0, 1.1.0, and 1.1.1, then a Canton component that exposes protocol version 1.2.0 as highest protocol version also supports 1.0.0, 1.1.0, and 1.1.1.

    We say that two protocol versions are compatible if they share the same major version (e.g. 1.3 and 1.7 are compatible, 1.3 and 2.2 are not). If two Canton nodes have a protocol version which is compatible, they can transact and interact with each-other (using one of the protocol versions they share). Two Canton nodes coming from the same release are always guaranteed to be compatible in such a way.

    For more details, please refer to the versioning documentation in the user manual.

  8. final case class ReleaseVersion(major: Int, minor: Int, patch: Int, optSuffix: Option[String] = None) extends CantonVersion with Product with Serializable

    This class represent a release version.

    This class represent a release version. Please refer to the versioning documentation in the user manual for details.

  9. case class VersionNotSupportedError(server: ProtocolVersion, clientSupportedVersions: Seq[ProtocolVersion]) extends HandshakeError with Product with Serializable
  10. final case class VersionedTraceContext(version: Version) extends GeneratedMessage with Updatable[VersionedTraceContext] with Product with Serializable

    Probably not strictly needed but added for consistency

    Probably not strictly needed but added for consistency

    Annotations
    @SerialVersionUID()

Ungrouped