diff --git a/simulation/Makefile b/simulation/Makefile index 51baa337..a948b1e4 100644 --- a/simulation/Makefile +++ b/simulation/Makefile @@ -1,5 +1,11 @@ .PHONY: run push-to-ecr build-client +#### Local simulation #### +## run-single: Run bundled simulation where client and server are in the same process +run-single: + @echo "Running singe process simulation..." + go run ./local/single-process/main.go + #### Remote simulation #### # Default values for optional variables diff --git a/simulation/local/process-per-client/main.go b/simulation/local/process-per-client/main.go index 7f885641..fdb8f907 100644 --- a/simulation/local/process-per-client/main.go +++ b/simulation/local/process-per-client/main.go @@ -28,7 +28,7 @@ const ( var ( clients = make(map[string]*ClientConnection) - clientsMu sync.Mutex // Protects the clients map + clientsMu sync.Mutex upgrader = websocket.Upgrader{} ) diff --git a/simulation/local/single-process/main.go b/simulation/local/single-process/main.go index 15c7ea16..343724dc 100644 --- a/simulation/local/single-process/main.go +++ b/simulation/local/single-process/main.go @@ -31,7 +31,7 @@ var ( ) func main() { - simFile := flag.String("simulation", "simulation2.yaml", "Path to the simulation YAML file") + simFile := flag.String("simulation", "simulation.yaml", "Path to the simulation YAML file") flag.Parse() simulation, err := loadAndValidateSimulation(*simFile) diff --git a/simulation/remote/client/main.go b/simulation/remote/client/main.go index 6ea538d0..f589abd8 100644 --- a/simulation/remote/client/main.go +++ b/simulation/remote/client/main.go @@ -55,7 +55,7 @@ func main() { } // Listen for commands from orchestrator - client.listenForCommands() + client.listenForCommands(orchestratorUrl) } // setupArkClient initializes the ArkClient for the client. @@ -137,7 +137,7 @@ func (c *Client) sendAddress() error { } // listenForCommands listens for commands from the orchestrator. -func (c *Client) listenForCommands() { +func (c *Client) listenForCommands(orchestratorUrl string) { defer c.Conn.Close() for { select { @@ -152,13 +152,13 @@ func (c *Client) listenForCommands() { return } // Handle the command - c.handleCommand(command) + c.handleCommand(orchestratorUrl, command) } } } // handleCommand processes a command received from the orchestrator. -func (c *Client) handleCommand(command Command) { +func (c *Client) handleCommand(orchestratorUrl string, command Command) { switch command.Type { case "Onboard": amount, ok := command.Data["amount"].(float64) @@ -181,7 +181,7 @@ func (c *Client) handleCommand(command Command) { c.sendError("Invalid recipient in SendAsync command") return } - err := c.sendAsync(amount, toClientID) + err := c.sendAsync(amount, orchestratorUrl, toClientID) if err != nil { c.sendError(fmt.Sprintf("SendAsync failed: %v", err)) } @@ -248,11 +248,11 @@ func (c *Client) onboard(amount float64) error { } // sendAsync sends funds asynchronously to another client. -func (c *Client) sendAsync(amount float64, toClientID string) error { +func (c *Client) sendAsync(amount float64, orchestratorUrl, toClientID string) error { ctx := context.Background() // Request recipient address from orchestrator - recipientAddress, err := c.requestRecipientAddress(toClientID) + recipientAddress, err := c.requestRecipientAddress(orchestratorUrl, toClientID) if err != nil { return err } @@ -321,7 +321,7 @@ func (c *Client) sendLog(message string) { } // requestRecipientAddress requests the recipient's address from the orchestrator. -func (c *Client) requestRecipientAddress(toClientID string) (string, error) { +func (c *Client) requestRecipientAddress(orchestratorUrl, toClientID string) (string, error) { resp, err := http.Get(fmt.Sprintf("http://localhost:9000/address?client_id=%s", toClientID)) if err != nil { return "", err diff --git a/simulation/remote/infra/cloudformation.yaml b/simulation/remote/infra/cloudformation.yaml index 49b210fb..854d748f 100644 --- a/simulation/remote/infra/cloudformation.yaml +++ b/simulation/remote/infra/cloudformation.yaml @@ -259,7 +259,7 @@ Resources: nigiri start echo "Running make push-to-ecr..." - make push-to-ecr AWS_ACCOUNT_ID=\$AWS_ACCOUNT_ID AWS_REGION=\$AWS_REGION + cd simulation & make push-to-ecr AWS_ACCOUNT_ID=\$AWS_ACCOUNT_ID AWS_REGION=\$AWS_REGION EOF diff --git a/simulation/remote/orchestrator/main.go b/simulation/remote/orchestrator/main.go index 9c7a5c1e..d6a42a30 100644 --- a/simulation/remote/orchestrator/main.go +++ b/simulation/remote/orchestrator/main.go @@ -227,14 +227,6 @@ func startClients(subnetIDsEnv, securityGroupIDsEnv string, clientConfigs []Clie log.Infof("Task Definition details: %+v", taskDefDetails.TaskDefinition) } - var ( - tasksMu sync.Mutex - tasks []struct { - ClientID string - TaskArn string - } - ) - // Create context with timeout ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) defer cancel() @@ -290,10 +282,14 @@ func startClients(subnetIDsEnv, securityGroupIDsEnv string, clientConfigs []Clie } } - // Use errgroup to manage goroutines and errors + var ( + tasksMu sync.Mutex + tasks []struct { + ClientID string + TaskArn string + } + ) g := new(errgroup.Group) - - // Start all tasks concurrently for _, client := range clientConfigs { client := client // Capture range variable g.Go(func() error { @@ -310,7 +306,6 @@ func startClients(subnetIDsEnv, securityGroupIDsEnv string, clientConfigs []Clie }, } - // Run the task runTaskInput := &ecs.RunTaskInput{ Cluster: aws.String(clusterName), LaunchType: ecsTypes.LaunchTypeFargate, @@ -452,23 +447,43 @@ func getLocalPrivateIP() (string, error) { // waitForClientsToSendAddresses waits until all clients have sent their addresses. func waitForClientsToSendAddresses(clientIDs []string) { - log.Infof("Waiting for clients to send addresses...") + log.Info("Waiting for clients to send addresses...") + timeout := time.After(1 * time.Minute) + ticker := time.NewTicker(1 * time.Second) + defer ticker.Stop() + for { - allReceived := true - clientsMu.Lock() - for _, clientID := range clientIDs { - clientConn, exists := clients[clientID] - if !exists || clientConn.Address == "" { - allReceived = false - break + select { + case <-timeout: + log.Fatal("Timeout waiting for client addresses") + case <-ticker.C: + allReceived := true + clientsMu.Lock() + for _, clientID := range clientIDs { + clientConn, exists := clients[clientID] + if !exists || clientConn.Address == "" { + log.Infof( + "Client %s address not received (exists: %v, address: '%s')", + clientID, + exists, + func() string { + if exists { + return clientConn.Address + } + return "" + }(), + ) + allReceived = false + break + } + } + clientsMu.Unlock() + + if allReceived { + log.Info("All clients have sent their addresses") + return } } - clientsMu.Unlock() - if allReceived { - log.Infof("All clients have sent their addresses") - return - } - time.Sleep(1 * time.Second) } } @@ -550,7 +565,6 @@ func executeSimulation(simulation *Simulation) { func startServer() { http.HandleFunc("/ws", wsHandler) http.HandleFunc("/cmd", cmdHandler) - http.HandleFunc("/log", logHandler) http.HandleFunc("/address", addressHandler) // Added address handler // Start the server log.Infoln("Orchestrator HTTP server running on port 9000") @@ -564,13 +578,13 @@ func wsHandler(w http.ResponseWriter, r *http.Request) { // Upgrade HTTP connection to WebSocket conn, err := upgrader.Upgrade(w, r, nil) if err != nil { - log.Infoln("Upgrade error:", err) + log.Errorf("WebSocket upgrade error: %v", err) return } // Read client ID from query parameters clientID := r.URL.Query().Get("id") if clientID == "" { - log.Infoln("Client ID not provided") + log.Error("Client ID not provided") conn.Close() return } @@ -578,15 +592,20 @@ func wsHandler(w http.ResponseWriter, r *http.Request) { clientsMu.Lock() clientConn, exists := clients[clientID] if !exists { - // New client, add to the clients map clientConn = &ClientConnection{ - ID: clientID, + ID: clientID, + Conn: conn, + Address: "", + ConnMu: sync.Mutex{}, } clients[clientID] = clientConn + } else { + clientConn.Conn = conn } - clientConn.Conn = conn clientsMu.Unlock() + log.Infof("Client %s connected via WebSocket", clientID) + // Listen for messages from the client go func() { defer conn.Close() @@ -594,16 +613,11 @@ func wsHandler(w http.ResponseWriter, r *http.Request) { var message ClientMessage err := conn.ReadJSON(&message) if err != nil { - log.Infof("Error reading from client %s: %v", clientID, err) + log.Errorf("Error reading from client %s: %v", clientID, err) break } handleClientMessage(clientID, message) } - // Client disconnected - log.Infof("Client %s disconnected", clientID) - clientsMu.Lock() - delete(clients, clientID) - clientsMu.Unlock() }() } @@ -638,6 +652,8 @@ func handleClientMessage(clientID string, message ClientMessage) { clientConn, exists := clients[clientID] if exists { clientConn.Address = address + } else { + log.Warnf("Client %s not found", clientID) } clientsMu.Unlock() log.Infof("Received address from client %s", clientID) @@ -701,18 +717,6 @@ func cmdHandler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } -// logHandler handles log messages from clients. -func logHandler(w http.ResponseWriter, r *http.Request) { - var logEntry map[string]interface{} - err := json.NewDecoder(r.Body).Decode(&logEntry) - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return - } - log.Infof("Log from client: %v", logEntry) - w.WriteHeader(http.StatusOK) -} - // Command represents a command sent to a client. type Command struct { Type string `json:"type"` @@ -760,3 +764,360 @@ type ClientConnection struct { ConnMu sync.Mutex TaskArn string // Store the task ARN of the client } + +//time="2024-11-04T16:46:18Z" level=info msg="Simulation Version: 1.0\n" +//time="2024-11-04T16:46:18Z" level=info msg="ASP Network: regtest\n" +//time="2024-11-04T16:46:18Z" level=info msg="Number of Clients: 50\n" +//time="2024-11-04T16:46:18Z" level=info msg="Number of Rounds: 3\n" +//time="2024-11-04T16:46:18Z" level=info msg="Start building ARKD docker container ..." +//time="2024-11-04T16:46:28Z" level=info msg="ASP running..." +//time="2024-11-04T16:46:54Z" level=info msg="Orchestrator HTTP server running on port 9000" +//time="2024-11-04T16:46:54Z" level=info msg="Task Definition details: &{Compatibilities:[EC2 FARGATE] ContainerDefinitions:[{Command:[] Cpu:0 CredentialSpecs:[] DependsOn:[] DisableNetworking: DnsSearchDomains:[] DnsServers:[] DockerLabels:map[] DockerSecurityOptions:[] EntryPoint:[] Environment:[{Name:0xc000116390 Value:0xc0001163a0 noSmithyDocumentSerde:{}} {Name:0xc0001163b0 Value:0xc0001163c0 noSmithyDocumentSerde:{}}] EnvironmentFiles:[] Essential:0xc000014497 ExtraHosts:[] FirelensConfiguration: HealthCheck: Hostname: Image:0xc000116380 Interactive: Links:[] LinuxParameters: LogConfiguration:0xc00007e100 Memory: MemoryReservation: MountPoints:[] Name:0xc0001163d0 PortMappings:[] Privileged: PseudoTerminal: ReadonlyRootFilesystem: RepositoryCredentials: ResourceRequirements:[] RestartPolicy: Secrets:[] StartTimeout: StopTimeout: SystemControls:[] Ulimits:[] User: VolumesFrom:[] WorkingDirectory: noSmithyDocumentSerde:{}}] Cpu:0xc000116340 DeregisteredAt: EphemeralStorage: ExecutionRoleArn:0xc0001163e0 Family:0xc000116350 InferenceAccelerators:[] IpcMode: Memory:0xc0001164a0 NetworkMode:awsvpc PidMode: PlacementConstraints:[] ProxyConfiguration: RegisteredAt:2024-11-04 16:11:27.736 +0000 UTC RegisteredBy:0xc0001164b0 RequiresAttributes:[{Name:0xc000116400 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116410 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116420 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116430 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116440 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116450 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116460 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116470 TargetId: TargetType: Value: noSmithyDocumentSerde:{}} {Name:0xc000116480 TargetId: TargetType: Value: noSmithyDocumentSerde:{}}] RequiresCompatibilities:[FARGATE] Revision:15 RuntimePlatform: Status:ACTIVE TaskDefinitionArn:0xc000116360 TaskRoleArn:0xc0001163f0 Volumes:[] noSmithyDocumentSerde:{}}" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_18 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/bde971d7bbfe4bb1aa1e11b28d5f22ff" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_49 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/c5ce6ec044d24790844a2c1b9eea25fe" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_11 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/d75ecde646bc44e0a93b5fafcc9810ac" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_30 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/ba66d98341d44b3abddca72dbae59f96" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_43 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/f7bc9b42ec33470e99512a494008f6cd" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_39 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/bf2325546ba94372938d484263667e9c" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_31 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/cd982dba30c744889ede1cc0c123d9e9" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_37 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/cc0f3a6046714813b8b0a63fbe97069a" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_29 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/8fea3ca451734748abbb8938ef200337" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_32 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/3c492f90c04a4f2ab69af3e594ac322d" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_7 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/59d49d5d2c274649b825585eda2206be" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_12 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/0b7cca0539ab4a15823b4dc0f92e82bc" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_42 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/c258d3a95b5648f68543754dbb8d78ce" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_49 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_36 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/a5a6ac174f5e45718da7b43d539ea01f" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_4 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/1d29f35c1ae54bc39c30dfa4f428b2ef" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_18 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_41 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/bee9096157d94dd1b8f7c5c7158687a8" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_0 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/41231d5a596d4642914ebcbabdfd49ca" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_5 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/286a1b599e314bcda170dd01aab1f34a" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_11 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_44 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/2e3f73334e694ce68c81326b78f8aceb" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_47 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/98bc83d6ac044346944a5ec4fcfeed58" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_10 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/7051d94e3eb84e0f8af9f05e92fc5709" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_2 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/87e6e4da4f6b4842a673cd0135a93d38" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_48 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/ed8f101503b44c6e94c45c92c5fc0088" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_43 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_25 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/fa2b8544aeb547ddb91418ab9782b65d" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_22 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/6e34c024d0a04467a1b818497ea267b3" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_37 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_39 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_31 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_30 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_8 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/43b98e36e3a04e1f9a99914e09e68865" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_19 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/75fa5a73e39741f38e8ec416af6ba3fd" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_14 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/373e0c7ab9ec4b34801b867bb999c8c0" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_13 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/dc6745b961474b928c5384233fca8628" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_40 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/27aa720df01d48f4bff075a08ba8bd0d" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_7 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_27 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/a2b5e0c1958c458192f70c936f8b907d" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_29 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_32 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_42 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_3 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/ad2f602fc3ad4e84933d036bd0e10422" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_12 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_4 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_41 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_47 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_36 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_5 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_44 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_10 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_6 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/38995d15b58e4a258241f58f9c61c7c1" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_0 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_23 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/68db425367e84184b87bccfd5406b016" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_48 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_25 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_26 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/220b99643df944ab8257001ab0c88c69" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_2 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_22 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_21 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/29b58d3709dd4285b8eefcb4442cee56" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_20 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/b3843759c9034270ab0e3a9a97e34dde" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_46 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/788e64bbeee04af2bfd079c621bd31b6" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_15 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/1df7a5b23e6747f7b75db1a7e65420ba" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_19 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_1 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/8f319e53e5b34f6c97cebe61b05a7c0b" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_8 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_24 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/730a1ec7ce68494aaa0cfcc1d44dacd6" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_38 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/fef37bff713e42b5a7a6e37f74d150c4" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_14 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_13 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_27 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_17 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/e528efd2b865459fb77c4f7b0cae3d4d" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_28 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/80c0d34310a14d99bc083527d76d29ae" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_3 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_6 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_40 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_34 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/98fc8db405c9456099f400590143fc26" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_45 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/1be94b2963784af8806f61502c2861f3" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_23 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_26 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_21 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_15 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_20 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_35 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/39b57600d1994060a5e21a4e7f32f5c0" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_1 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_38 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_24 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_46 task status: PROVISIONING" +//time="2024-11-04T16:46:55Z" level=info msg="Started client client_9 with task ARN: arn:aws:ecs:eu-central-1:391147685145:task/OrchestratorCluster/41cb6a423776492c938cf004b419e80a" +//time="2024-11-04T16:46:55Z" level=info msg="Client client_28 task status: PROVISIONING" +//me="2024-11-04T16:47:07Z" level=info msg="Received address from client client_12" +//time="2024-11-04T16:47:07Z" level=info msg="Received address from client client_35" +//time="2024-11-04T16:47:07Z" level=info msg="Received address from client client_28" +//time="2024-11-04T16:47:07Z" level=info msg="Received address from client client_41" +//time="2024-11-04T16:47:07Z" level=info msg="Received address from client client_5" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_32" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_31" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_20" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_21" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_11" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_23" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_39" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_44" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_1" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_27" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_48" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_15" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_8" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_26" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_36" +//time="2024-11-04T16:47:08Z" level=info msg="Received address from client client_40" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_24" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_33" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_49" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_46" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_18" +//time="2024-11-04T16:47:09Z" level=info msg="Received address from client client_22" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_42" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_7" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_17" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_0" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_49 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_37 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_18 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_43 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_30 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_31 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_42 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_11 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_39 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_7 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_32 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_29 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_0 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_10 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_19 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_14 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_12 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_44 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_4" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_36 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_48 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_5 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_8 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_41 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_3 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_13 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_21 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_47 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_2 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_6 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_22 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_20 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_25 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_4 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_26 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_27 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_17 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_40 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_15 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_28 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_46 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Received address from client client_43" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_35 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_34 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_38 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_23 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_45 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_9 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_1 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_33 successfully started and running" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_16 task status: PENDING" +//time="2024-11-04T16:47:10Z" level=info msg="Client client_24 successfully started and running" +//time="2024-11-04T16:47:11Z" level=info msg="Received address from client client_16" +//time="2024-11-04T16:47:12Z" level=info msg="Received address from client client_30" +//time="2024-11-04T16:47:12Z" level=info msg="Received address from client client_9" +//time="2024-11-04T16:47:14Z" level=info msg="Received address from client client_34" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_37 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_43 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_30 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_19 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_10 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_34 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_9 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="Client client_16 successfully started and running" +//time="2024-11-04T16:47:15Z" level=info msg="All clients started successfully" +//time="2024-11-04T16:47:15Z" level=info msg="Waiting for clients to send addresses..." +//time="2024-11-04T16:47:15Z" level=info msg="Current state of clients map:" +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_31, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_25, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_37, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_14, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_12, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_8, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_18, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_42, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_19, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_9, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_0, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_4, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_3, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_13, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_38, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_16, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_30, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_17, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_20, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_11, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_27, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_15, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_36, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_40, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_33, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_32, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_39, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_49, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_47, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_43, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_34, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_10, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_45, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_35, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_28, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_41, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_5, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_44, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_1, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_24, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_23, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_48, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_6, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_21, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_26, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_46, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_22, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_7, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_29, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client ID: client_2, Address: " +//time="2024-11-04T16:47:15Z" level=info msg="Client client_0 address not received" +//time="2024-11-04T16:47:16Z" level=info msg="Current state of clients map:" +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_4, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_3, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_13, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_38, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_16, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_30, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_9, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_0, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_11, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_27, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_15, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_36, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_40, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_33, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_17, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_20, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_39, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_49, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_47, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_43, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_34, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_10, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_32, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_28, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_41, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_5, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_44, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_1, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_24, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_45, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_35, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_48, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_23, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_26, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_46, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_22, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_7, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_29, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_2, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_6, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_21, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_25, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_37, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_31, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_12, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_8, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_18, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_42, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_19, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client ID: client_14, Address: " +//time="2024-11-04T16:47:16Z" level=info msg="Client client_0 address not received" +//time="2024-11-04T16:47:17Z" level=info msg="Current state of clients map:" +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_12, Address: " +//: +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_18, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_42, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_19, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_14, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_4, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_3, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_13, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_38, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_16, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_30, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_9, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_0, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_11, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_27, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_15, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_36, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_40, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_33, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_17, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_20, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_39, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_49, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_47, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_43, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_34, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_10, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_32, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_28, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_41, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_5, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_44, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_1, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_24, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_45, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_35, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_48, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_23, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_26, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_46, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_22, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_7, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_29, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_2, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_6, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_21, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_25, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_37, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client ID: client_31, Address: " +//time="2024-11-04T16:47:17Z" level=info msg="Client client_0 address not received" +//time="2024-11-04T16:47:18Z" level=info msg="Current state of clients map:" +//time="2024-11-04T16:47:18Z" level=info msg="Client ID: client_23, Address: " +//time="2024-11-04T16:47:18Z" level=info msg="Client ID: client_48, Address: " +//time="2024-11-04T16:47:18Z" level=info msg="Client ID: client_22, Address: diff --git a/simulation/simulation.yaml b/simulation/simulation.yaml index 14a93577..d8285e54 100644 --- a/simulation/simulation.yaml +++ b/simulation/simulation.yaml @@ -7,7 +7,7 @@ server: clients: - id: "client_0" - name: Client0 + name: "Client0" - id: "client_1" name: "Client1" - id: "client_2"