Documentation
¶
Overview ¶
Copyright (c) 2021 - for information on the respective copyright owner see the NOTICE file and/or the repository https://github.com/carbynestack/ephemeral.
SPDX-License-Identifier: Apache-2.0
Copyright (c) 2021 - for information on the respective copyright owner see the NOTICE file and/or the repository https://github.com/carbynestack/ephemeral.
SPDX-License-Identifier: Apache-2.0
Index ¶
Constants ¶
const ( // DiscoveryServiceStarted indicates the discovery service has started and ready to processIn events. DiscoveryServiceStarted = "DiscoveryServiceStarted" // GameProtocolError indicates an error in the protocol as a response to the message that were not delivered to the Game state machine. GameProtocolError = "GameProtocolError" // serviceEventsTopic represents the internal discovery service events. ServiceEventsTopic = "serviceEvents" ClientIncomingEventsTopic = "clientIncomingEvents" ClientOutgoingEventsTopic = "clientOutgoingEvents" MasterOutgoingEventsTopic = "masterOutgoingEvents" DiscoveryTopic = "discovery" // TODO: read this param from the config. Timeout = 20 * time.Second Init = "Init" Registering = "Registering" Register = "Register" Registered = "Registered" WaitPlayersReady = "WaitPlayersReady" TCPCheck = "TCPCheck" TCPCheckSuccess = "TCPCheckSuccess" TCPCheckFailure = "TCPCheckFailure" Playing = "Playing" PlayerFinishedWithError = "PlayerFinishedWithError" PlayerFinishedWithSuccess = "PlayerFinishedWithSuccess" PlayerReady = "PlayerReady" PlayersReady = "PlayersReady" GameIsReady = "GameIsReady" GameError = "GameError" GameID = "gameID" PlayingError = "PlayingError" PlayerDone = "PlayerDone" ModeSlave = "slave" ModeMaster = "master" GameFinishedWithSuccess = "GameFinishedWithSuccess" GameFinishedWithError = "GameFinishedWithError" GameDone = "GameDone" TCPCheckSuccessAll = "TCPCheckSuccessAll" GameSuccess = "GameSuccess" WaitTCPCheck = "WaitTCPCheck" StateTimeoutError = "StateTimeoutError" PlainText = "PLAINTEXT" AmphoraSecret = "AMPHORASECRET" ConnID = "ConnID" EventScope = "EventScope" EventScopeAll = "EventScopeAll" EventScopeSelf = "EventScropeSelf" )
Variables ¶
var ( ActCtx = contextKey("activation") SpdzCtx = contextKey("spdz") ProxyCtx = contextKey("proxy") )
Functions ¶
This section is empty.
Types ¶
type Activation ¶
type Activation struct {
AmphoraParams []string `json:"amphoraParams"`
SecretParams []string `json:"secretParams"`
GameID string `json:"gameID"`
Code string `json:"code"`
Output OutputConfig `json:"output"`
}
Activation is an object that is received as an input from the Ephemeral client.
type AmphoraConfig ¶
type AmphoraConfig struct {
Host string `json:"host"`
Scheme string `json:"scheme"`
Path string `json:"path"`
}
AmphoraConfig specifies the amphora host parameters.
type CtxConfig ¶
type CtxConfig struct {
Act *Activation
Spdz *SPDZEngineTypedConfig
Proxy *ProxyConfig
ErrCh chan error
Context context.Context
}
CtxConfig contains both execution and platform specific parameters.
type DiscoveryClient ¶
type DiscoveryClient interface {
Connect() (*grpc.ClientConn, error)
Run(client pb.DiscoveryClient)
GetIn() chan *pb.Event
GetOut() chan *pb.Event
}
DiscoveryClient is an interface for discovery service client.
type DiscoveryConfig ¶
type DiscoveryConfig struct {
FrontendURL string `json:"frontendURL"`
MasterHost string `json:"masterHost"`
MasterPort string `json:"masterPort"`
Slave bool `json:"slave"`
StateTimeout string `json:"stateTimeout"`
Port string `json:"port"`
BusSize int `json:"busSize"`
PortRange string `json:"portRange"`
}
DiscoveryConfig represents the condig of discovery service.
type OutputConfig ¶
type OutputConfig struct {
Type string `json:"type"`
}
OutputConfig defines how the output of the app execution is treated.
type ProxyConfig ¶
type ProxyConfig struct {
Host string `json:"host"`
Port string `json:"port"`
LocalPort string `json:"localPort"`
}
ProxyConfig is the configuration used by the proxy when the connection between players is established.
type SPDZEngineConfig ¶
type SPDZEngineConfig struct {
RetrySleep string `json:"retrySleep"`
RetryTimeout string `json:"retryTimeout"`
Prime string `json:"prime"`
RInv string `json:"rInv"`
AmphoraConfig AmphoraConfig `json:"amphoraConfig"`
FrontendURL string `json:"frontendURL"`
PlayerID int32 `json:"playerID"`
MaxBulkSize int32 `json:"maxBulkSize"`
DiscoveryAddress string `json:"discoveryAddress"`
}
SPDZEngineConfig is the VPC specific configuration.
type SPDZEngineTypedConfig ¶
type SPDZEngineTypedConfig struct {
RetrySleep time.Duration
RetryTimeout time.Duration
Prime big.Int
RInv big.Int
AmphoraClient amphora.AbstractClient
PlayerID int32
FrontendURL string
MaxBulkSize int32
DiscoveryAddress string
}
SPDZEngineTypedConfig reflects SPDZEngineConfig, but it contains the real property types. We need this type, since the default json decoder doesn't know how to deserialize big.Int.
type WithBus ¶
type WithBus interface {
Bus() mb.MessageBus
}
WithBus is a type that contains a message bus.