From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Joseph Turner Newsgroups: gmane.emacs.devel Subject: Re: [NonGNU ELPA] New package: hyperdrive (repast) Date: Mon, 28 Aug 2023 21:04:03 -0700 Message-ID: <87jzte32as.fsf@ushin.org> References: <87bkeucmu8.fsf@ushin.org> <87msyeow4z.fsf@posteo.net> <874jklk0rf.fsf_-_@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27648"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Emacs Devel Mailing List , Adam Porter , Paula Maas , Protesilaos Stavrou To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 29 13:07:29 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qawZE-0006wI-HM for ged-emacs-devel@m.gmane-mx.org; Tue, 29 Aug 2023 13:07:29 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qawXQ-0007wt-1D; Tue, 29 Aug 2023 07:05:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qaqFt-0002Ng-S3 for emacs-devel@gnu.org; Tue, 29 Aug 2023 00:23:05 -0400 Original-Received: from out-250.mta0.migadu.com ([2001:41d0:1004:224b::fa]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qaqFp-0001Ic-2s for emacs-devel@gnu.org; Tue, 29 Aug 2023 00:23:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ushin.org; s=key1; t=1693282975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=1XjZZx31c9Ouqrhsa4wkMQjJGrhyRTy5NIZilouYoq0=; b=S+JDwl4UI9F+D6v+RJtDjpgoraXfqoJWaXo0lIL7/kK/QoOtPyMZXsG3KjUNcDqGWF33WG NN5JwUh36sYOi9Bsh6h1ij90dPnD18pp0niq/P2xrdfHeT4KkSpoFEFRQdNMvsurcWHaqL ZZRS8SloqJw6qSDED3cZZkevFk/9Na39QRAunj6bL2jJ2O69GNHOIkEcH02+cJgAAA1CHl FfH3Xt1UHvvWQ/E/wmWwJmr75Gz9FrBjxVMauAAclaFU54BRxsOmjs9aS1MpEpwgZi7Omy 8I+XDQSt9N1rZbI23uZE2pW73XsBogouPm0HlOMZ2S0q/8uLDBkSPSbYPtT/sQ== X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. In-reply-to: <874jklk0rf.fsf_-_@posteo.net> X-Migadu-Flow: FLOW_OUT Received-SPF: pass client-ip=2001:41d0:1004:224b::fa; envelope-from=joseph@ushin.org; helo=out-250.mta0.migadu.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 29 Aug 2023 07:05:25 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:309486 Archived-At: > My main difficulty is understanding what Hyperdrive is... Hyperdrive is a p2p file-sharing tool (like Dropbox, but FLOSS and with no third-party intermediary; like Bittorrent, but mutable and versioned; like IPFS, but without CIDs and faster for mutable data). User story: Alice creates a new hyperdrive and adds some files. Her computer returns a public key URL that uniquely identies the hyperdrive. Alice shares that URL with Bob, who can then download Alice's files directly from Alice's computer (no third-party servers are required to route the connection - they find each other using a DHT or using mDNS if they're on the same LAN). Bob can download some of Alice's without having to load her whole drive. Data is distributed on the network; once Bob has loaded Alice's files, Carol can get them from Bob even when Alice is offline. Drives are mutable; When Alice adds/removes/changes files in the drive, Bob can refresh her drive on his machine to get the latest changes. Drives are versioned; anyone with the URL can "check out" prior versions of Alice's drive to see what her files used to look like. There's more info in the manual, especially in the Concepts section: https://ushin.org/hyperdrive/hyperdrive-manual.html#Concepts There's also this talk at LibrePlanet 2023. Comparison of peer-to-peer protocols starts @36:49: https://media.libreplanet.org/u/libreplanet/m/emacs-for-p2p-deliberation/ > The second issue I have is that there is quite a lot of code, and > I'd like to take a look at everything before I add anything. Take your time. I'm happy to get on a videocall to go through the code together with you. Thank you! Joseph