# `server`: The Hero WebSocket Server An OpenRPC WebSocket Server to interface with the [cores](../../core) of authorized circles. - [OpenRPC Specification](openrpc.json) defines the API. - There are RPC Operations specified to authorize a websocket connection. - Authorized clients can execute Rhai scripts on the server. - The server uses the [supervisor] to dispatch [jobs] to the [workers]. ## Authentication The server provides a robust authentication mechanism to ensure that only authorized clients can execute scripts. The entire flow is handled over the WebSocket connection using two dedicated JSON-RPC methods: 1. **`fetch_nonce`**: The client requests a unique, single-use nonce (a challenge) from the server. 2. **`authenticate`**: The client sends back the nonce signed with its private key. The `CircleWs` actor verifies the signature to confirm the client's identity. For a more detailed breakdown of the authentication architecture, please see the [ARCHITECTURE.md](docs/ARCHITECTURE.md) file. ## How to Run cargo run