Building an EDGE registry with libp2p - Help Needed

Hello everyone,
sorry if this might sound a bit off-topic. As the maintainer of the CNCF project Harbor, we are exploring different option on how to operate and control container registries at EDGE.

There are different option we are discussing and looking into, one particular involves libp2p.

My first question is: Does this make sense, especially in using libp2p for that? We have cases where we would have 10k edge registries connecting to ground control. Can this be done with reasonable resources?

My followup question, is, would there be anyone interested in contributing to that?

Part of the Linux foundation LFX program, we have set up the Harbor Satellite POC. The goal is to create a working POC of a distributed container registry for the EDGE and IOT together with Harbor.

We are now seeking skilled students and junior software engineers (not a hard requirement) who is interested in deepening their knowledge in open-source as a participant in the CNCF & Linux Foundation Mentorship program. Mentee receives a scholarship (up to 6.6k USD).

Here is some more information and the application process.

Hi @Vad1mo,

Those are great questions and I can help you get connected to the right people to answer those. I reached out by email. I can help you get your answers ASAP.

Cheers! :beers:
Dave

Hi @Vad1mo,

I’m posting this here to summarize the results of our email converations.

The answer to your first question about if libp2p would be good for the use case is “yes”. There’s some nice features (e.g. stream muxing, identity, pubsub, etc) in libp2p that would simplify the implementation. Also there’s extra features like peer discovery, peer routing, and gossipsub that could make the messaging from the edge to the “Harbor” much more resilient.

I’m sure we can help you get you and your mentee headed up the learning curve quickly. What programming language is this PoC being implemented in. The libp2p project is primarily a set of specifications and we have implementations in many different languages.

We have a few resources that should help you in the time until our meeting:

  1. Our demonstrator application called Universal Connectivity: GitHub - libp2p/universal-connectivity: Realtime decentralised chat with libp2p showing ubiquitous peer-to-peer connectivity between multiple programming languages (Go, Rust, TypeScript) and runtimes (Web, native binary) using QUIC, WebRTC and WebTransport

  2. A demo talk featuring Universal Connectivity: https://youtu.be/4v-iIB0C9_8?feature=shared

  3. A good learning resource that walks you through the fundamentals of libp2p: Learning Objectives - Launchpad

  4. We also have technical discussion forums on Github in the repos for the different implementations. For instance: libp2p/go-libp2p · Discussions · GitHub, libp2p/rust-libp2p · Discussions · GitHub, and libp2p/js-libp2p · Discussions · GitHub are the technical forums for go-libp2p, rust-libp2p, and js-libp2p respectively.

Why don’t we plan on meeting sometime late next week. In the meantime, please don’t hesitate to introduce yourself and your project to the libp2p community and ask questions as you’re learning. As for the mentorship program, let’s plan on working closer together for your fall opportunity so that the libp2p community has a better chance at engaging both as mentors and mentees.

Cheers! :beers: