Skip to content
This repository was archived by the owner on Sep 2, 2021. It is now read-only.
This repository was archived by the owner on Sep 2, 2021. It is now read-only.

Basic implementation detail #4

@gdude2002

Description

@gdude2002

This project will be comprised of two main parts.

  • Control - The main control and management node
    • In the standard server-client design methodology, this is the server.
  • Packages - Distributed servers in charge of the actual management of repos and packages
    • And if we have a server and a client, this one is the client.

I was thinking about using RSA encryption and public key exchanges to do security, but the reality is that we'd need pretty large keys to facilitate this, and they would take a long time to generate with a pure-python implementation. For that reason, I've decided to go with SSL sockets for communication between the control and packages nodes.

So, the first thing to do is get a basic server and client working, get an events system working and then look into authentication. Here are the steps I'm hoping to take.

  • Control node
    • SSL certificate and key generation
    • SSL servers
      • One SSL server for packages nodes
      • One SSL server for control/API clients
        • This isn't the HTTP API server
      • I'll work out a protocol in a separate ticket
    • Distributed events system
      • While each node will be able to handle its own events, they'll also be sent to the control node and passed to the other packages nodes and API clients
  • Packages nodes
    • SSL client
    • Events system
      • Local events
      • Network events

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions