boardgameio / boardgameio/p2p

Decentralization

Open
#4 27 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
25
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Currently a single client acts as the host and all communications pass through them.

The host could provide connected clients with the peer IDs of all other clients so that they can also establish connections between each other (a “full-mesh topology”). At that point, various other possibilities arise: each client could be responsible for processing and emitting their own state updates instead of sending an action to be processed and emitted by the host. Then if the host drops out, the clients (via their existing connections) could agree a new host amongst themselves and keep playing.

A variation on this would be the host just transmitting a list of IDs for all connected peers to allow them to establish connections only in the case the host goes offline.

Decentralization would also mean storing match state in all clients, which would also be more robust.

This should probably be an optional feature.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue proposes optional full-mesh connections, peer state updates, host failover, and replicated match state, but names no files, entry points, or tests. Start by mapping the existing host-mediated transport and its connection lifecycle; done would require an agreed design and implementation plan covering the proposed alternatives.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
distributed-systems, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.