smartin015 / peerprint

A distributed system allowing for sharing and running of 3D printing jobs
Apache License 2.0
2 stars 0 forks source link

Implement WAN queue via go-libp2p-pubsub #5

Closed smartin015 closed 1 year ago

smartin015 commented 2 years ago

See #2 for master bug. The goal is to create a decentralized, distributed cluster of 3D printers that share a work queue.

PySyncObj is great for consensus and state agreement - but it is not sufficient since it lacks authentication.

go-libp2p-pubsub is a pubsub implementation using the same IPFS distributed systems that has some of this auth stuff already. As a transport layer, it makes some sense.

Combine the two - implement a pubsub-based Transport class that backs pysyncobj's RAFT consensus log, that then gets passed in on init. That changes very little about the overall algorithm, which means we have minimal code paths to maintain.

smartin015 commented 1 year ago

This is now done and checked in.