From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [GNUnet-developers] Guix - GNUnet binary ditribution roadmap Date: Thu, 13 Mar 2014 00:15:38 +0100 Message-ID: <874n33dn51.fsf@gnu.org> References: <531F607F.7080208@rigelk.eu> <5320AE0E.2020203@totakura.in> <87siqndtka.fsf@gnu.org> <5320E569.6000104@in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58624) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNsNU-0000b6-Ht for guix-devel@gnu.org; Wed, 12 Mar 2014 19:16:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WNsNO-0007Ph-Ss for guix-devel@gnu.org; Wed, 12 Mar 2014 19:16:00 -0400 In-Reply-To: <5320E569.6000104@in.tum.de> (Sree Harsha Totakura's message of "Wed, 12 Mar 2014 23:53:29 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Sree Harsha Totakura Cc: guix-devel , gnunet-developers@gnu.org Sree Harsha Totakura skribis: > On 03/12/2014 09:56 PM, Ludovic Court=C3=A8s wrote: >>>> Let's just stick with the GNUnet server (we call such a server >>>> as a service in GNUnet, let's call it Guix service) as of now. >>>> HTTP can be done optionally. Moreover the currently binary >>>> distribution is made through a HTTP server. >> Yeah, let=E2=80=99s keep HTTP optional. The requirement will be to have= a >> server over GNUnet=E2=80=99s MESH, right? > > Yes, so the service should be using both DHT and MESH services of > GNUnet. DHT to publish and lookup packages and MESH for downloading > and seeding packages. OK. [...] >>>> The requirements from Guix side are missing here. IMO, you >>>> have to: * Understand the current protocol used over HTTP to >>>> search and download packages from Guix Hydra server. * >>>> Implement a equivalent client/downloader in Guix using Guile >>>> to download the packages using GNUnet. * Extend the Guix daemon >>>> to publish package updates into GNUnet DHT, whenever new >>>> packages are added to the Guix store. >> I think guix-daemon would remain unchanged. Instead, the package >> publisher could (say) periodically ask for the list of live store >> items (as per =E2=80=98guix gc --list-live=E2=80=99) and publish those. >> > > OK, I agree; this is also simple. Does '--list-live' option list all > the items in the store or only the ones currently used? It lists the items that cannot be garbage-collected because they are referenced from a GC root (indirectly.) > I believe it is helpful for other peers to push all items in the > store, but then how do packages age-out? When the garbage collector runs, some of the items that were previously available may have disappeared. Thus, they must not longer be advertised in the DHT. >> However, I think the protocol could be different from, and simpler >> than Hydra=E2=80=99s. >> >> Ideally, I imagine you could do something like: >> >> dht-get /gnu/store/ykmg6ydrmlkn600wklriw3wzc1z3dcli-emacs-24.3 >> >> and get as a reply (roughly) a tuple containing: >> >> 1. a signature (as a canonical s-expression); >> >> 2. a reference to a MESH channel from which to download the archive >> of that store item; > > We also need a peer identity in the tuple since establishing MESH > connections require both the peer identity and a channel number. MESH > is the GNUnet's equivalent of TCP: peer identity ~=3D IP address; > channel number ~=3D port number. Yes, sure. Is it possible to have several values associated with a key in the DHT? I=E2=80=99m asking because here we=E2=80=99d need to have the ability to ge= t zero or more tuples as described above, one tuple for each node that claims to publish /gnu/store/ykmg6ydrmlkn600wklriw3wzc1z3dcli-emacs-24.3. Ludo=E2=80=99.