Packages

package topology

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package admin
  2. package client
  3. package store

Type Members

  1. trait DomainIdentityStateObserver extends AnyRef

    Simple callback trait to inform system about changes on the topology manager

  2. class DomainTopologyDispatcher extends NamedLogging with FlagCloseable with DomainIdentityStateObserver

    Class that dispatches topology transactions added to the domain topology manager to the members

    Class that dispatches topology transactions added to the domain topology manager to the members

    When topology transactions are added to a domain, the dispatcher sends them to the respective members. Same is true if a participant joins a domain, the dispatcher will send him the current snapshot of topology transactions.

    The dispatcher is very simple: - [source] as the source topology transaction store of the domain topology manager - [target] as the target topology transaction store of the domain client - [queue] as the difference of the stores [source] - [target]

    Now, the dispatcher takes x :: rest from [queue], sends x over the sequencer and monitors the [target] list. Once x is observed, we repeat.

    The only special thing in here is the case when x = ParticipantState update. Because in this case, a participant might change his state (i.e. become online for the first time or resume operation after being disabled).

    In this case, before x is sent from [source] to [target], we send all transactions in [target] to him. And once we did that, we follow-up with x.

    Given that we want that all members have the same [target] store, we send the x not to one member, but to all addressable members in a batch.

    One final remark: the present code will properly resume from a crash, except that it might send a snapshot to a participant a second time. I.e. it assumes idempotency of the topology transaction message processing.

  3. class DomainTopologyManager extends TopologyManager[DomainTopologyManagerError]

    Domain manager implementation

    Domain manager implementation

    The domain manager is the topology manager of a domain. The read side of the domain manager is the identity providing service.

    The domain manager is a special local manager but otherwise follows the same logic as a local manager.

    The domain manager exposes three main functions for manipulation: - authorize - take an Identity Transaction, sign it with the given private key and add it to the state - add - take a signed Identity Transaction and add it to the given state - set - update the participant state

    In order to bootstrap a domain, we need to add appropriate signing keys for the domain identities (topology manager, sequencer, mediator).

    In order to add a participant, we need to add appropriate signing and encryption keys. Once they are there, we can set the participant state to enabled.

  4. sealed trait DomainTopologyManagerError extends CantonError
  5. class DomainTopologyManagerEventHandler extends UnsignedProtocolEventHandler with FlagCloseable with NamedLogging

    When a new member joins, they send register topology requests to the Topology Manager via the sequencer.

    When a new member joins, they send register topology requests to the Topology Manager via the sequencer. This handler takes care of the IDM handling these requests and sending the response back via the sequencer while also supporting crashes and making sure the response is sent at least once.

  6. class DomainTopologyManagerRequestService extends NamedLogging
  7. trait DomainTopologySender extends AutoCloseable
  8. class ParticipantTopologyCatchup extends NamedLogging
  9. sealed trait RegisterTopologyTransactionRequestState extends AnyRef
  10. trait RequestProcessingStrategy extends AnyRef
  11. sealed trait RequestProcessingStrategyConfig extends AnyRef

    Policy that determines whether/how the domain topology manager approves topology transactions.

  12. case class RequestResult(uniquePath: UniquePath, state: RegisterTopologyTransactionRequestState) extends HasProtoV0[Result] with Product with Serializable

Ungrouped