On Feb 18, 2022 at 7:15:16 PM, Gavin Henry <ghe...@sentrypeer.org> wrote:
> The core IPFS protocol is based on a peer-to-peer distributed hash table. > To participate in the network you’ve got to run a stateful peer (or a > browser like Brave or Opera that includes a IPFS daemon.) > > > Hi Chris, > > Is there a C lib for this DHT? I'm currently exploring OpenDHT (so I > can run a node for my own project) and see on the IPFS page this is > listed, but is now 404: > There are three implementations of IPFS: Go <https://github.com/ipfs/go-ipfs>, JavaScript <https://github.com/ipfs/js-ipfs>, and Rust <https://github.com/rs-ipfs/rust-ipfs>. The IPFS DHT is it’s own project, libp2p <https://libp2p.io>, with implementations in even more languages. Libp2p is used not only by IPFS but also Ethereum and a bunch of other web3 tech. It might be a good fit for your use case. > https://github.com/Agorise/c-ipfs > > GNUnet are also doing this https://lsd.gnunet.org/lsd0004/ > > I'm trying to imagine just calling curl with a CLI arg or libcurl to > bootstrap participating in a DHT and off you go but am also exploring > other bootstrapping options: > I think bootstrapping is a little weird to do on each invocation, and it doesn’t make sense to have a daemon component built into curl. The approach I’ve outlined in my PR is compatible with running a daemon on localhost. That way curl can connect to the local peer, and that peer can maintain the state. > https://github.com/SentryPeer/draft-henry-p2p-network-discovery-internet-XX > > OpenDHT started from this > https://github.com/jech/dht/blob/master/dht.c (around 3k loc) > > What sort of size are other client side protocols in libcurl? > The smaller ones are less than 1k lines, FTP is on the bigger side at 4k https://github.com/curl/curl/blob/master/lib/ftp.c Cheers, Chris
-- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html