pinecone VS yggdrasil-go

Compare pinecone vs yggdrasil-go and see what are their differences.

pinecone

Peer-to-peer overlay routing for the Matrix ecosystem (by matrix-org)

yggdrasil-go

An experiment in scalable routing as an encrypted IPv6 overlay network (by yggdrasil-network)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
pinecone yggdrasil-go
8 23
410 3,287
0.5% 1.5%
3.7 8.5
8 months ago 6 days ago
Go Go
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pinecone

Posts with mentions or reviews of pinecone. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-31.
  • Meshtastic: An open source, off-grid, decentralized, mesh network
    8 projects | news.ycombinator.com | 31 Dec 2023
    Do you have any examples of their mobility event handling? I'm reading the documentation for Pinecone and don't see much. Even Pinecone says Yggdrasil's spanning tree isn't good enough: "However, the spanning tree topology alone is not a suitable routing scheme for highly dynamic networks." [0]

    I'm reading that as why Pinecone has the virtual snake topology. But they define that as a public key-based routing, which doesn't take into account optimal routing in the network. Nodes are ordered by public key [1]

    [0] https://github.com/matrix-org/pinecone#does-pinecone-work-on...

    [1] https://matrix-org.github.io/pinecone/snake

    8 projects | news.ycombinator.com | 31 Dec 2023
  • The AT protocol is the most obtuse crock of s*
    9 projects | news.ycombinator.com | 9 May 2023
    AT proto has some significant similarities to Matrix:

    * Both are work by self-authenticating git-style replication of Merkle trees/DAGs

    * Both define strict data schemas for extensible sets of events (Matrix uses JSON schema - https://github.com/matrix-org/matrix-spec/tree/main/data/eve... and OpenAPI; AT uses Lexicons)

    * Both use HTTPS for client-server and server-server traffic by default.

    * Both are focused on decentralised composable reputation - e.g. https://matrix.org/blog/2020/10/19/combating-abuse-in-matrix... on the Matrix side, or https://paulfrazee.medium.com/the-anti-parler-principles-for... on the bluesky side, etc.

    * Both are designed as big-world communication networks. You don't have the server balkanisation that affects ActivityPub.

    * Both eschew cryptocurrency systems and incentives.

    There are some significant differences too:

    * Matrix aspires to be the secure communication layer for the open web.

    * AT aspires (i think) to be an open decentralised social networking protocol for the internet.

    * AT has portable identity by default. We've been working on this on Matrix (e.g. MSC1228 - https://github.com/matrix-org/matrix-spec-proposals/pull/122... and MSC2787 - https://github.com/matrix-org/matrix-spec-proposals/blob/nei...) and have a new MSC (and implementation on Dendrite) in progress right now which combines the best bits of MSC1228 & MSC2787 into something concrete, at last. In fact the proto-MSC is due to emerge today.

    * AT is proposing a asymmetrical federation architecture where user data is stored on Personal Data Servers (PDS), but indexing/fan-out/etc is done by Big Graph Servers (BGS). Matrix is symmetrical and by default federates full-mesh between all servers participating in a conversation, which on one hand is arguably better from a self-sovereignty and resilience perspective - but empirically has created headaches where an underpowered server joins some massive public chatroom and then melts. Matrix has improved this by steady optimisation of both protocol and implementation (i.e. adding lazy loading everywhere - e.g. https://matrix-org.github.io/synapse/latest/development/syna...), but formalising an asymmetrical architecture is an interesting different approach :)

    * AT is (today) focused on for public conversations (e.g. prioritising big-world search and indexing etc), whereas Matrix focuses both on private and public communication - whether that's public chatrooms with 100K users over 10K servers, or private encrypted group conversations. For instance, one of Matrix's big novelties is decentralised access control without finality (https://matrix.org/blog/2020/06/16/matrix-decomposition-an-i...) in order to enforce access control for private conversations.

    * Matrix also provides end-to-end encryption for private conversations by default, today via Double Ratchet (Olm/Megolm) and in the nearish future MLS (https://arewemlsyet.com). We're also starting to work on post quantum crypto.

    * Matrix is obviously ~7 years older, and has many more use cases fleshed out - whether that's native VoIP/Video a la Element Call (https://element.io/blog/introducing-native-matrix-voip-with-...) or virtual worlds like Third Room (https://thirdroom.io) or shared whiteboarding (https://github.com/toger5/TheBoard) etc.

    * AT's lexicon approach looks to be a more modular to extend the protocol than Matrix's extensible event schemas - in that AT lexicons include both RPC definitions as well as the schemas for the underlying datatypes, whereas in Matrix the OpenAPI evolves separately to the message schemas.

    * AT uses IPLD; Matrix uses Canonical JSON (for now)

    * Matrix is perhaps more sophisticated on auth, in that we're switching to OpenID Connect for all authentication (and so get things like passkeys and MFA for free): https://areweoidcyet.com

    * Matrix has an open governance model with >50% of spec proposals coming from the wider community these days: https://spec.matrix.org/proposals

    * AT has done a much better job of getting mainstream uptake so far, perhaps thanks to building a flagship app from day one (before even finishing or opening up the protocol) - whereas Element coming relatively late to the picture has meant that Element development has been constantly slowed by dealing with existing protocol considerations (and even then we've had constant complaints about Element being too influential in driving Matrix development).

    * AT backs up all your personal data on your client (space allowing), to aid portability, whereas Matrix is typically thin-client.

    * Architecturally, Matrix is increasingly experimenting with a hybrid P2P model (https://arewep2pyet.com) as our long-term solution - which effectively would end up with all your data being synced to your client. I'd assume bluesky is consciously avoiding P2P having been overextended on previous adventures with DAT/hypercore: https://github.com/beakerbrowser/beaker/blob/master/archive-.... Whereas we're playing the long game to slowly converge on P2P, even if that means building our own overlay networks etc: https://github.com/matrix-org/pinecone

    I'm sure there are a bunch of other differences, but these are the ones which pop to the top of my head, plus I'm far from an expert in AT protocol.

    It's worth noting that in the early days of bluesky, the Matrix team built out Cerulean (https://matrix.org/blog/2020/12/18/introducing-cerulean) as a demonstration to the bluesky team of how you could build big-world microblogging on top of Matrix, and that Matrix is not just for chat. We demoed it to Jack and Parag, but they opted to fund something entirely new in the form of AT proto. I'm guessing that the factors that went into this were: a) wanting to be able to optimise the architecture purely for social networking (although it's ironic that ATproto has ended up pretty generic too, similar to Matrix), b) wanting to be able to control the strategy and not have to follow Matrix's open governance model, c) wanting to create something new :)

    From the Matrix side; we keep in touch with the bluesky team and wish them the best, and it's super depressing to see folks from ActivityPub and Nostr throwing their toys in this manner. It reminds me of the unpleasant behaviour we see from certain XMPP folks who resent the existence of Matrix (e.g. https://news.ycombinator.com/item?id=35874291). The reality is that the 'enemy' here, if anyone, are the centralised communication/social platforms - not other decentralisation projects. And even the centralised platforms have the option of seeing the light and becoming decentralised one day if we play our parts well.

    What would be really cool, from my perspective, would be if Matrix ended up being able to help out with the private communication use cases for AT proto - as we obviously have a tonne of prior art now for efficient & audited E2EE private comms and decentralised access control. Moreover, I /think/ the lexicon approach in AT proto could let Matrix itself be expressed as an AT proto lexicon - providing interop with existing Matrix rooms (at least semantically), and supporting existing Matrix clients/SDKs, while using AT proto's ID model and storing data in PDSes etc. Coincidentally, this matches work we've been doing on the Matrix side as part of the MIMI IETF working group to figure out how to layer Matrix on top of other existing protocols: e.g. https://datatracker.ietf.org/doc/draft-ralston-mimi-matrix-t... and https://datatracker.ietf.org/doc/draft-ralston-mimi-matrix-m... - and if I had infinite time right now I'd certainly be trying to map Matrix's CS & SS APIs onto an AT proto lexicon to see what it looks like.

    TL;DR: I think AT proto is cool, and I wish that open projects saw each other as fellow travellers rather than competitors.

  • Pinecone raises $100M Series B
    6 projects | news.ycombinator.com | 27 Apr 2023
  • Matrix 2.0 — Matthew Hodgson talks about Rust in Element client, Rust SDK, IETF MLS, MIMI and more
    7 projects | /r/rust | 7 Feb 2023
    Pinecone, which is an experimental overlay routing protocol used by P2P Matrix. It and Dendrite are extremely important to P2P Matrix.
  • Ask HN: What's in Networking?
    2 projects | news.ycombinator.com | 13 Jul 2022
    I'm excited about P2P/decentralized/distributed overlay networks. Still catching up so would be grateful for tips on resources.

    Pinecone[0][1], newer initiative made by former Yggdrasil[2] maker(s).

    CJDNS[3].

    AIUI CJDNS relies on intermediary high-uptime discoverable router nodes which is what is motivating Pinecone. POKT[4][5] to CJDNS seems like what Filecoin is to IPFS.

    I'm yet to get around to doing the groundwork of grokking more established solutions like B.A.T.M.A.N. and how all these pieces fit together,

    [0]: https://fosdem.org/2022/schedule/event/matrix_p2p_pinecone/

    [1]: https://github.com/matrix-org/pinecone

    [2]: https://yggdrasil-network.github.io/

    [3]: https://github.com/cjdelisle/cjdns/

    [4]: https://www.pokt.network/

    [5]: https://piped.kavin.rocks/watch?v=-xgRUAA_p5E

  • Make the Internet Yours Again with an Instant Mesh Network
    2 projects | news.ycombinator.com | 9 Jan 2022
  • Element raises $30M to boost Matrix
    18 projects | news.ycombinator.com | 27 Jul 2021

yggdrasil-go

Posts with mentions or reviews of yggdrasil-go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-27.
  • Tinc, a GPLv2 mesh routing VPN
    4 projects | news.ycombinator.com | 27 Jun 2023
    Really hope the network segregation[1] feature makes it in at some point.

    [1]: https://github.com/yggdrasil-network/yggdrasil-go/discussion...

    4 projects | news.ycombinator.com | 27 Jun 2023
    > The next version will make it much simpler to deploy isolated networks by using TLS roots to prevent accidental peerings.

    Is that PR #1038 [1]? Any info on how to use that feature and whether it works over multicast as well?

    I noticed this PR uses SHA-1 for matching fingerprints. SHA-1 has been broken for 13 years now. Is it possible to use something more secure?

    > It's also worth noting that Yggdrasil doesn't have the equivalent of "peer exchange" — only directly connected peers would ever find out your public IP address. Yggdrasil will not form new peerings automatically, with the single exception being multicast-discovered nodes on the same LAN.

    Right, my worry is that by having a server with a public IPv4 address and Yggdrasil running on an open port (so that my other nodes can connect to it) will allow someone to connect to it (either on purpose or accidentally) and cause my traffic to route over their node(s) and/or the public mesh.

    Thanks!

    [1] https://github.com/yggdrasil-network/yggdrasil-go/pull/1038

  • Tailscale/golink: A private shortlink service for tailnets
    10 projects | news.ycombinator.com | 13 Dec 2022
    From a purely networking perspective, there are far better solutions than tailscale.

    Have a look at full mesh VPNs like:

    https://github.com/cjdelisle/cjdns

    https://github.com/yggdrasil-network/yggdrasil-go

    https://github.com/gsliepen/tinc

    https://github.com/costela/wesher

    These build actual mesh networks where every node is equal and can serve as a router for other nodes to resolve difficult network topologies (where some nodes might not be connected to the internet, but do have connections to other nodes with an internet connection).

    Sending data through multiple routers is also possible. They also deal with nodes disappearing and change routes accordingly.

    tailscale (and similar solutions like netbird) still use a bunch of "proxy servers" for that. You can set them up on intermediate nodes, but that have to be dealt with manually (and you get two kinds of nodes).

  • The Iran Firewall: A preliminary report
    3 projects | news.ycombinator.com | 28 Oct 2022
    The only real solution long-term is completely peer-to-peer ad-hoc networking that doesn't depend on BGP.

    A few projects are in similar territory but none I've seen are working at the layer of bypassing BGP. Many are just acting as an overlay; which works to an extent. https://github.com/yggdrasil-network/yggdrasil-go

    It's probably begging for a different model of the "internet" and where data lives.

    My requirements:

    1. Offline-first applications that sync via a pub/sub DHT of trusted peers. More details here but basically allows bypassing BGP.

  • [Fanatical] Mindustry - 24 Hour Star Deal (83% off - $1.00 / £0.79 / €0.79)
    3 projects | /r/GameDeals | 9 Jul 2022
    at least on the official discord the recommended way if you don’t want to play on a public server is using yggdrasil
  • Tailscale raises $100M to fix the Internet
    17 projects | news.ycombinator.com | 4 May 2022
    > I’ve been dreaming lately of a tor-like network that’s based loosely on the idea of tailnets. Rather than blockchain bullshit, you’d have a direct ring of trust with friends, and then you could set up access policies to forward packets for people you don’t trust, but who know someone you do trust.

    Might want to check out Yggdrasil. It lets you can create a real mesh routed, E2E encrypted network. You can keep your network private, or connect it to the greater network and route others. There's no ring-of-trust (I can't imagine that as a viable solution at scale). But the config file has an AllowedPublicKeys section if you want to specify who can route through your node.

    https://github.com/yggdrasil-network/yggdrasil-go

  • Yggdrasil P2P mesh E2EE IPv6 network
    5 projects | news.ycombinator.com | 31 Jan 2022
  • there's no hiding from the machine. but your mom doesn't need to know that waluigi hentai makes you squirm
    2 projects | /r/AdviceAnimals | 20 Nov 2021
    This may also interest you
  • List of Algorand Relay Operators
    4 projects | /r/AlgorandOfficial | 16 May 2021
    https://github.com/slackhq/nebula https://github.com/yggdrasil-network/yggdrasil-go https://github.com/cjdelisle/cjdns
  • What Happens Inside a 100-Hop IPv6 Wireless Mesh Network?
    3 projects | news.ycombinator.com | 7 Mar 2021
    There is an overview in the whitepaper: https://github.com/yggdrasil-network/yggdrasil-go/blob/maste...

    It fits the "private VPN" use-case quite well in my experience. You can connect to the wider network over the Internet, or just set your nodes up. If yggdrasil is installed on every router, it automatically creates a nice network topology, since it finds peers on the local subnet. Router advertising is also a possibility.

    Though there's no real drawback to connecting to the wider network since it's end-to-end encrypted, you have to be aware that specifying more than one peer will make it possible for traffic to be routed trough you, so the whole network performance can be sensitive to the choices that are made when peering over the Internet, as I think hop count is the only metric for now.

    For private meshes, I don't think you can specify fallback peer addresses over the Internet, so you have a bit of the same risk here. I've seen some info on mesh wireguard networks with peer information stored in DNS at this year's FOSDEM, but that's currently definitely more configuration than yggdrasil.

    End-to-end encryption and the ability to generate your own static, roaming-compatible IPs is nice. I just wish one could open sockets directly with a crypto key rather than the derivated IP.

    For more discussion, I can really recommend the Matrix chat room :)

What are some alternatives?

When comparing pinecone and yggdrasil-go you can also consider the following projects:

Nebula - A scalable overlay networking tool with a focus on performance, simplicity and security

cjdns - An encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.

pgvector - Open-source vector similarity search for Postgres

mesh-networking - :globe_with_meridians: LEGO blocks for networking, a Python library to help create and test flexible network topologies across real and simulated physical links.

PJON - PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.

DiskANN - Graph-structured Indices for Scalable, Fast, Fresh and Filtered Approximate Nearest Neighbor Search

ZeroTier - A Smart Ethernet Switch for Earth

ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.

tailscale - The easiest, most secure way to use WireGuard and 2FA.

matrix.to - A simple stateless privacy-protecting URL redirecting service for Matrix

devp2p - Ethereum peer-to-peer networking specifications

ziti-doc - Documentation describing the usage of the Ziti platform.