Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
On Thu, Jul 04, 2019 at 03:23:48PM +, Olie Ayre wrote: > Thanks for taking time to answer my questions! "Late" or otherwise, they're > still helpful :) GReat! > The "pub-sub" approach makes a lot of sense. I think you explaining that sort > of helped it > click. So if I'm understanding correctly, the sort of core mechanism that > would power it all > would be a given ego being able to publish some event, say a status update. > That ego would > also be able to subscribe to other egos, and when the event is published, it > propagates > through the network, and any ego that is subscribed can receive it and > interpret it. That same > principle would then also be used at a peer level to sync egos between > multiple devices (as in You got it all correct. :) > my 3rd question). Based on your answer to my 2nd question, it also seems that > you might have > multiple "pub-subs" per ego, and that would be how isolating different groups > for > communication would work? E.g. would I for instance have one pub-sub for me > and my friends, > then another for "shouting into the void" as it were, and then more > individual ones for each > individual I communicate with privately or in very small groups? Yes, and you may have high volume pubsubs containing your music mixtapes that only some of your friends are interesting in... although the features of gnunet-fs may at that point make it more efficient to just distribute a GNFS "link". But sometimes it is critical for your peers not to be able to correlate your activities in two different social subgroups, that's when pubsubs are not enough and you need separate egos. I think t3sserakt's video discusses this. ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Hello! Thanks for taking time to answer my questions! "Late" or otherwise, they're still helpful :) The "pub-sub" approach makes a lot of sense. I think you explaining that sort of helped it click. So if I'm understanding correctly, the sort of core mechanism that would power it all would be a given ego being able to publish some event, say a status update. That ego would also be able to subscribe to other egos, and when the event is published, it propagates through the network, and any ego that is subscribed can receive it and interpret it. That same principle would then also be used at a peer level to sync egos between multiple devices (as in my 3rd question). Based on your answer to my 2nd question, it also seems that you might have multiple "pub-subs" per ego, and that would be how isolating different groups for communication would work? E.g. would I for instance have one pub-sub for me and my friends, then another for "shouting into the void" as it were, and then more individual ones for each individual I communicate with privately or in very small groups? Cheers, Olie. On Thursday, July 4, 2019 12:30 PM, carlo von lynX wrote: > One month late, but what do you expect from a guy gone arty. > [...] > Cheers! ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
One month late, but what do you expect from a guy gone arty. > > ### 1: How might I "serve" files? Should secushare step out of its unvoluntary condition of vaporware, then there would be a pub-sub API which actively pushes content to all subscribers (unlike the humbug they've put into IPFS in that regard). So doing a website over secu- share would be somewhat like having a git that is delivered in form of patchsets by email and always kept up to date at the recipient side. > > ### 2: How might I chat with friends? Again, the long term secushare model would be pub-sub-based just like Telegram or Whatsapp, but without the centralization. We would be having several pubsubs for each person (to reflect the complexity of social reality) and pubsubs for groups of people. See also the secushare videos on media.ccc.de > > ### 3: How might I make use of my "ego"s and GNS zones from > >multiple machines? Should we ever get secushare done, it would use pubsubs also for a person's own needs, distributing ego data to all of their devices and configs and such. > > ### 4: How can I make sure data is still available when my > >machines are powered off? https://secushare.org/architecture#sec-1-2 > > ### 6: How might an organisation manage a presence on GNUnet? In secushare, those pubsubs providing a website also have a way for subscribers to give feedback and engage in transactions. This may result in further pubsubs being made available, and it may involve Taler payments. > > ### 7: How might "local networks" work? In secushare you could model your local network as a subgraph of your social network, and/or have those privileged nodes participate in a shared pubsub that serves to authenticate each other. It's similar to what you do with GNS, only that pubsub would be push-oriented instead of DHT-query-based. > > ### 8: If I setup my machines to use GNUnet, how can I have > >them try and use GNUnet for all traffic, but fall-back > >to legacy internet when the service I'm requesting > >isn't reachable over GNUnet? At least one question that doesn't trigger a secushare answer. So far no gateways into the insecure interwebz are considered from our side. > > ### 9: What sorts of applications might I write for GNUnet > >considering what systems already exist? Writing applications for secushare would have the extra advantage of being able to leverage the distributed social graph, pubsub with its distributed state and a few other things. Too bad it's all vaporware actually. > > Or say I wanted to create a social network, […] > > might an application use its own protocol […]? Yes, secushare is intending to use an extensible text-based protocol on top of the bare-bones binary gnunet protocols. Most applications can be modeled as message types for that text-based protocol with various advantages derived from that. > As we want to abandon the client-server world, most Internet > applications will need to be redesigned and rewritten to work in a true > peer-to-peer fashion. Indeed, one of the reasons for doing so is described in https://secushare.org/anonymity#sec-4 , but in general we don't want to promote architectures where knowledge accumulates on server nodes. The mere fact that we don't recommend using the socket API implies that pretty much everything has to be adapted. > > ### 11: Last one. What chat rooms and systems can I start > > participating in right now? Since gnunet folks chose to be indexed into the NSA databases at all times, we have our own hopefully privacy-preserving chats: irc://loupsycedyglgamf.onion:67/welcome ircs://psyced.org/welcome Cheers! -- E-mail is public! Talk to me in private using encryption: // http://loupsycedyglgamf.onion/LynX/ //irc://loupsycedyglgamf.onion:67/lynX //https://psyced.org/LynX/ ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
I am sorry, I do realize this is getting a bit off-topic, but... On Fri, Jun 14, 2019 at 4:40 PM t3sserakt wrote: [...] > >> ### 2: How might I chat with friends? > >> > >> I've read the document section on the "Conversations" program > >> that uses a phonecall-esque approach, and I've also read that > >> protocols like SMTP haven't been implemented "yet". In a > >> hypothetical GNUnet which is more developed and actively used > >> by a larger population, what would be "the" way of doing > >> Email-style communication, IM-style communication, and any of > >> those and voice in groups with multiple members? Would there > >> be additional protocols and components in GNUnet that would > >> manage these kinds of communication? How do/might they > >> look/work? > > The SecuShare folks have some gnunet-nim codebase they use for IM-style > > chatting. Maybe they can give you more detailed pointers on how to use it. > > Indeed there is > > https://git.gnunet.org/groupchat.git > > which is an implementation of a TUI (terminal UI) groupchat in nim > (nim-lang.org) using > > https://git.gnunet.org/gnunet-nim.git/ > > to bind to GNUnet APIs. If you set up everything you can get back to me > directly, and we can try it out together. Is there any documentation or guidelines on the best way to contribute to this particular effort? I did create a patch and submitted a bug on Mantis[1], but I am unsure that was the right way to go about it. I have a few other patches to contribute, but they don't even constitute bugs, so I'd appreciate any guidelines you might have on how to contribute to groupchat. [1] https://bugs.gnunet.org/view.php?id=5776 Thanks in advance, -- Marcos Marado ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
On 14 June 2019 at 17:25, t3sserakt wrote: > Maybe idle is not the correct term. ;-) We are hunting after a bug in > GNUnet Cadet or how we use Cadet, because our groupchat TUI has a > problem with reconnecting to a channel after it was uncontrolled > disconnected. I have similar CADET problems that currently prevent the reliable message exchange in DKGPG [1]. Do you have any ideas for a solution? The Distributed Privacy Guard (DKGPG) implements Distributed Key Generation and Threshold Cryptography for OpenPGP. It employs GNUnet as P2P network to establish private and broadcast channels for required shared operations with the private key (e.g. generate, sign, decrypt). [1] https://www.nongnu.org/dkgpg/ -- Heiko ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Hey Olie, On 13.06.19 00:45, Christian Grothoff wrote: > Hi Olie, > > Some answers inline below... > > On 6/12/19 9:01 PM, Olie Ayre wrote: >> ### 2: How might I chat with friends? >> >> I've read the document section on the "Conversations" program >> that uses a phonecall-esque approach, and I've also read that >> protocols like SMTP haven't been implemented "yet". In a >> hypothetical GNUnet which is more developed and actively used >> by a larger population, what would be "the" way of doing >> Email-style communication, IM-style communication, and any of >> those and voice in groups with multiple members? Would there >> be additional protocols and components in GNUnet that would >> manage these kinds of communication? How do/might they >> look/work? > The SecuShare folks have some gnunet-nim codebase they use for IM-style > chatting. Maybe they can give you more detailed pointers on how to use it. Indeed there is https://git.gnunet.org/groupchat.git which is an implementation of a TUI (terminal UI) groupchat in nim (nim-lang.org) using https://git.gnunet.org/gnunet-nim.git/ to bind to GNUnet APIs. If you set up everything you can get back to me directly, and we can try it out together. > ### 4: How can I make sure data is still available when my >>machines are powered off? >> >> If for instance I have files hosted on a machine or have my >> GNS zone on my computer and I turn my computer off, would the >> files and GNS records still be available to other machines? > For some time, yes. GNS records are published in the DHT, and may be > cached (IIRC for about a month). Of course, if your expiration times are > set to 5 minutes, they may be lost much faster than that. > >> Can they still resolve my GNS records without my machine being >> on? If I host a file rather than just indexing it, will it be >> available via other peers at all? > Other peers may cache the file or parts of it, but they may also drop it > if they don't have excess storage. So there are no guarantees that the > file will remain available. > >> If not, then would it be >> reasonable to run most if not all of my GNUnet content from my >> VPS which will be on all the time? > Yes, indeed. Same for the GNS zones. Maybe it is even more reasonable to run it on some device that is always on at your home. But this depends on your use case and your threat model. Be aware, that the level of anonymity using GNUnet depends on the which part of GNUnet you are using, and that the anonymity set is not that big with only some hundred nodes running. > ### 9: What sorts of applications might I write for GNUnet >>considering what systems already exist? > Whatever you're qualified to do and feel like. It's Free Software ;-). > >> Or say I wanted to create a social >> network, is the idea of GNUnet that everything work on the >> protocols and systems that are part of GNUnet and really >> integrate with it as a platform? > Talk to the SecuShare(.org) folks, they're working on exactly that. > Albeit a bit idle these days AFAIK as a key organizer went into art. Maybe idle is not the correct term. ;-) We are hunting after a bug in GNUnet Cadet or how we use Cadet, because our groupchat TUI has a problem with reconnecting to a channel after it was uncontrolled disconnected. After that problem is solved we will go on to implement our ideas leading to a distributed social network. >> ### 11: Last one. What chat rooms and systems can I start >> participating in right now? >> >> Are there any? I think it would be amazing to see it working >> and be talking to people with it and browsing content others >> have already made? Is there anything doing a similar job of >> the IRC channel but on GNUnet? If not, are there docs that >> would allow me to - once I'm more familiar with how it all >> works - to setup my own "room" that I can invite friends to >> and chat in? > The gnunet-nim / secushare folks run something, but I've not had the > time to use it myself. I expect they'll indoctrinate me during the > GNUnet Hacker meeting in 2 week ;-). That's the plan! ;-) Because of the problem I mentioned above there is no peer you can expect to run the groupchat continuously, but - as mentioned above - you can contact me directly to try it out. :-) Would be great, if we can fix the problem during the GNUnet Hacker meeting. Happy hacking! t3sserakt pEpkey.asc Description: application/pgp-keys ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
On 6/13/19 12:49 PM, Olie Ayre wrote: >>> ### 3: How might I make use of my "ego"s and GNS zones from >>>multiple machines? >> We don't have a convenient way to do this, but if you are a competent >> sysadmin you can just copy the files from >> $HOME/.local/share/gnunet/identity/egos/ from one system to the other >> (that's where the private keys are) and restart the peer to have the >> identity subsystem rescan the directory. > > That makes sense, so to do that I'd probably be writing some form of simple > sync > script to automatically sync between the machines when reachable. Is some > means > of using an ego across multiple peers a planned feature to come up in the > future? > Or is the idea of having a different ego or set of egos for each device the > intended usage? We don't prescribe any "intended usage" here. Syncing or separate egos are both valid choices for users. > If it is, then what's the intended/planned means of having > coherency between different devices? Well, strictly speaking sync'ing devices would seem out-of-scope for GNUnet. That said, in the context of pEp and GNU Taler, I hope to soon have a few students work on a backup/sync solution which might eventually be applicable for this as well. >>> If not, then would it be >>> reasonable to run most if not all of my GNUnet content from my >>> VPS which will be on all the time? >> >> Yes, indeed. Same for the GNS zones. > > Right! I understand that better now. So if I store my content and GNS records > (and maybe also egos) on my VPS, would I need to be copying it to the devices > I'd > be using to directly interact with GNUnet (as with above)? Or would it be > possible to have GNS zones on each device that I can directly delegate to my > VPS' > GNS? I think what I'm trying to understand here is - from a user perspective - > what the intended way of using GNUnet is for a user that has multiple devices > and > - at least with a legacy internet mindset (for now) - is after some form of > coherence between these devices, as it's very rare that someone with multiple > devices uses each only for very specific and distinct tasks where having > distinct > GNS and egos for each would be fine. As I said, we don't prescribe any particular usage pattern, both are in principle possible. > You asked about suggestions for the documentation, I think having some > explanation of the relation between peers, GNS zones, and egos could be very > useful - in particular explaining what depends on what, what things can be > moved > between others, and especially in the more usage-oriented sections, what the > expected approach is. Describing an ideal mindset towards GNUnet would make it > much easier to be approaching it in a way where the user isn't trying to > "translate" the legacy internet into the GNUnet. For example, a section named > "Publishing public content" could describe the best approach for people that > would want to do the equivalent of host a personal website or closest > analogue to > that. Another section might be titled "Managing multiple peers" and could > explain > the specific purpose of egos and GNS zones from a user's perspective and what > the > intended approach is for a user with multiple devices, such as pointing out > the > specific directories to copy between machines but also what usability > implications that might have and how best to work with egos across multiple > devices. I think there are already very good sections that cover actually > using > GNUnet - the ones for using the GTK programs for instance made things much > clearer for me to understand - so having more of such sections to cover more > aspects of using GNUnet would be incredibly helpful. Makes sense. I'd be happy if someone wrote such sections. I suggest maybe in a "tutorials" chapter or in the FAQ -- both of these seem reasonable places for these particular points. Could be something we should work on while we do the dogfooding at the hacker meeting. signature.asc Description: OpenPGP digital signature ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Le jeu. 13 juin 2019 à 15:36, a écrit : > Christian Grothoff transcribed 13K bytes: > > Hi Olie, > > > > On 6/12/19 9:01 PM, Olie Ayre wrote: > [...] > > > ### 9: What sorts of applications might I write for GNUnet > > >considering what systems already exist? > > > > Whatever you're qualified to do and feel like. It's Free Software ;-). > > > > > If I want to write an application that uses GNUnet to > > > communicate with other users or access things like software > > > repositories for checking for updates and the like, what would > > > be the approach to this? > > > > The GNU Guix folks are interested in this, and did a bit of preliminary > > work on this. But to make this really work nicely, we'll have to finish > > the Transport Next Generation (TNG) work, and fix some fundamental > > design issues in file-sharing (for performance). > > I'm no longer (that much/at all) involved, but recent developments drifted > towards IPFS > and IPFS having a good feedback in the guix community, at least those who > voiced > their opinion publicly about it. > They seem to maintain a protocol independent approach, but I don't > think this is happening anytime soon. > Code exists, and amz3 worked on an update of it this year (gnunet-guile2), > The repository is at https://git.gnunet.org/gnunet-guile2.git/. There is a very tiny bulletin board kind of application that rely on the functions used to implement the cli gnunet-download, gnunet-search and gnunet-publish. I don't remember correctly why I gave up. I think it is related to the event loop that I could not make it work the way I wanted using guile-fibers. And I could not wrap my head around IPC. > and I do have a collection of notes with regards to this (guix in > particular). > I have since then moved on to form my own thoughts and ideas about > distributed package management. > To me, the architecture for this is not clear at all. Some say that a trusted source should publish a mapping between GUIX packages and gnunet hash using GNS. Some (like me) would prefer to have the gnunet hash part of the package definition. For what it is worth, I looked at IPFS but was not happy either. I tried to implement some kind of Question-Answer social network on top of custom made DHT, see https://github.com/amirouche/qadom (without using gnunet) Based on that work, I have written a specification document describing the interface I would like to use: https://github.com/scheme-live/peer-to-peer-network This is missing large file transfer. It is better to read the code at https://github.com/amirouche/qadom/blob/master/qadom/peer.py#L555 Basically: get / set procedures are equivalent to gnunet-download and gnunet-publish without keyword support and it only support files smaller than 1Mb. bag are wanna-be equivalent to gnunet-search. They allow anyone to publish the identifier of a file stored using the above procedure called set. namespace stuff mimic the GNS procedures in gnunet. Unlike gnunet, this is done without security or anonymity in mind. Also the undocumented procedure in the specification: - ref-at - bag-search-at - namespace-ref-at Allow to bypass the default DHT lookup algorithm to fetch the data from a known peer in a FOAF kind of network. It is meant to be used by the application when the other procedures fail. Here is an example use in the tests: https://github.com/amirouche/qadom/blob/b1bf5762ee62a958f5c9e9ea991d6f7c792fbece/qadom/test_peer.py#L233-L236 Good luck! ___ GNUnet-developers mailing list GNUnet-developers@gnu.org https://lists.gnu.org/mailman/listinfo/gnunet-developers
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Christian Grothoff transcribed 13K bytes: > Hi Olie, > > Some answers inline below... > > On 6/12/19 9:01 PM, Olie Ayre wrote: > > ### 1: How might I "serve" files? > > > > At the moment, I have a little 1GB VPS on which I host a > > personal website and a project website. What I'd like to know > > is what the equivalent to this sort of thing would be with > > GNUnet. I heard it mentioned in a few of the videos I've > > watched that GNUnet isn't really supposed to be used with a > > browser. Would it be a more "GNUnet way" thing to have my > > "site" be a set of more traditional documents that are made > > available using the file-publishing systems? How might I > > collect them together into a coherent group and make them > > accessible using a tidier and more memorable URL than some of > > the gnunet://fs/* links I've seen with entire public keys? > > Would it simply be done with GNS and some form of file path? > > Combining GNS and file-sharing is actually one key aspect on my agenda > for the next iteration of file-sharing. But I don't predict I'll have > time to work on that anytime soon. So for now, there are two choices: > > * create a TGZ or ZIP file of the Web page and publish that > (as gnunet://fs/) > * share the directory, gnunet-publish can preserve file hierarchies > > > ### 2: How might I chat with friends? > > > > I've read the document section on the "Conversations" program > > that uses a phonecall-esque approach, and I've also read that > > protocols like SMTP haven't been implemented "yet". In a > > hypothetical GNUnet which is more developed and actively used > > by a larger population, what would be "the" way of doing > > Email-style communication, IM-style communication, and any of > > those and voice in groups with multiple members? Would there > > be additional protocols and components in GNUnet that would > > manage these kinds of communication? How do/might they > > look/work? > > The SecuShare folks have some gnunet-nim codebase they use for IM-style > chatting. Maybe they can give you more detailed pointers on how to use it. > > gnunet-conversation is only for voice, text messaging is not yet > implemented for it. > > > ### 3: How might I make use of my "ego"s and GNS zones from > >multiple machines? > > > > I have a desktop at home, a laptop, a work computer, and my > > VPS. If I were to connect all of them to GNUnet and had made > > myself a couple of "ego"s for say personal use and public use > > (with a pseudonym) and had a personal GNS zone, how might I be > > able to act as any of these "ego"s from different devices? For > > instance, I might be using "Ego1" on my desktop talking to a > > friend and need to go somewhere. When I get to my destination > > and take out my laptop, how might I be able to continue the > > conversation still as "Ego1"? Or would having a separate ego > > or group of egos for each device be how I'd do it? > > We don't have a convenient way to do this, but if you are a competent > sysadmin you can just copy the files from > $HOME/.local/share/gnunet/identity/egos/ from one system to the other > (that's where the private keys are) and restart the peer to have the > identity subsystem rescan the directory. > > ### 4: How can I make sure data is still available when my > >machines are powered off? > > > > If for instance I have files hosted on a machine or have my > > GNS zone on my computer and I turn my computer off, would the > > files and GNS records still be available to other machines? > > For some time, yes. GNS records are published in the DHT, and may be > cached (IIRC for about a month). Of course, if your expiration times are > set to 5 minutes, they may be lost much faster than that. > > > Can they still resolve my GNS records without my machine being > > on? If I host a file rather than just indexing it, will it be > > available via other peers at all? > > Other peers may cache the file or parts of it, but they may also drop it > if they don't have excess storage. So there are no guarantees that the > file will remain available. > > > If not, then would it be > > reasonable to run most if not all of my GNUnet content from my > > VPS which will be on all the time? > > Yes, indeed. Same for the GNS zones. > > > ### 5: How are public keys linked to specific machines? > > > > As a machine's address is given as its public key, how can one > > machine look at a public key and know how to figure out what > > exact computer that means? What's the logical process from a > > computer being given a public key either directly or via GNS > > to getting data to the specific machine that key refers to? > > Would a better understanding of how "legacy" IP addresses > > achieve the same task answer my question here? > > GNUnet has HELLO messages which bind network addresses to public keys > identifying peers, which is indeed similar to the ARP mechanism that > binds IP addresses to Ethernet addresses. It also creates
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Hi Christian, Thanks so much for the clear (and quick) answers! They were very helpful. If I may, I have a couple of extra things to ask based on these answers. ‐‐‐ Original Message ‐‐‐ On Thursday, 13 Jun 2019 12:45 AM, Christian Grothoff wrote: > > ### 3: How might I make use of my "ego"s and GNS zones from > >multiple machines? > We don't have a convenient way to do this, but if you are a competent > sysadmin you can just copy the files from > $HOME/.local/share/gnunet/identity/egos/ from one system to the other > (that's where the private keys are) and restart the peer to have the > identity subsystem rescan the directory. That makes sense, so to do that I'd probably be writing some form of simple sync script to automatically sync between the machines when reachable. Is some means of using an ego across multiple peers a planned feature to come up in the future? Or is the idea of having a different ego or set of egos for each device the intended usage? If it is, then what's the intended/planned means of having coherency between different devices? > > If not, then would it be > > reasonable to run most if not all of my GNUnet content from my > > VPS which will be on all the time? > > Yes, indeed. Same for the GNS zones. Right! I understand that better now. So if I store my content and GNS records (and maybe also egos) on my VPS, would I need to be copying it to the devices I'd be using to directly interact with GNUnet (as with above)? Or would it be possible to have GNS zones on each device that I can directly delegate to my VPS' GNS? I think what I'm trying to understand here is - from a user perspective - what the intended way of using GNUnet is for a user that has multiple devices and - at least with a legacy internet mindset (for now) - is after some form of coherence between these devices, as it's very rare that someone with multiple devices uses each only for very specific and distinct tasks where having distinct GNS and egos for each would be fine. You asked about suggestions for the documentation, I think having some explanation of the relation between peers, GNS zones, and egos could be very useful - in particular explaining what depends on what, what things can be moved between others, and especially in the more usage-oriented sections, what the expected approach is. Describing an ideal mindset towards GNUnet would make it much easier to be approaching it in a way where the user isn't trying to "translate" the legacy internet into the GNUnet. For example, a section named "Publishing public content" could describe the best approach for people that would want to do the equivalent of host a personal website or closest analogue to that. Another section might be titled "Managing multiple peers" and could explain the specific purpose of egos and GNS zones from a user's perspective and what the intended approach is for a user with multiple devices, such as pointing out the specific directories to copy between machines but also what usability implications that might have and how best to work with egos across multiple devices. I think there are already very good sections that cover actually using GNUnet - the ones for using the GTK programs for instance made things much clearer for me to understand - so having more of such sections to cover more aspects of using GNUnet would be incredibly helpful. > > ### 6: How might an organisation manage a presence on GNUnet? > While GNS's "VPN" records in combination with our IP-over-GNUnet > subsystem allow this, this kind of client-server deployment is more of a > backwards-compatibility thing. We have started very early work on a > secure multiparty auction protocol (ebay-like), and I would imagine we > might similarly eventually have something like a decentralized shopping > protocol, where you effectively would specify the product you are > looking for and get offers from all shops offering the particular > product. So at that point, someone running an online shop would post the > catalog of their products with prices, and wouldn't have to bother with > JS/CSS and styling & marketing. But YMMV, that's at this point just my > totally crazy and very, very long-term vision (which I have no plans to > work on this decade, much more pressing issues out there first ;-)). I don't have any follow-up questions to this, I just wanted to say that when that clicked in my head it was very satisfying. I think it's a truly brilliant system because it just benefits everyone massively. Very excited to see such a system in action when it eventually happens. > Great, you're welcome. And concrete suggestions for improving our > documentation to make these questions obsolete for the next person would > be particularly welcome ;-) As I mentioned before, I think the most helpful additions for me and people like me would be sections describing a variety of use-cases and how they'd be approach using GNUnet. Making the ideal mindset clear and going
Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)
Hi Olie, Some answers inline below... On 6/12/19 9:01 PM, Olie Ayre wrote: > ### 1: How might I "serve" files? > > At the moment, I have a little 1GB VPS on which I host a > personal website and a project website. What I'd like to know > is what the equivalent to this sort of thing would be with > GNUnet. I heard it mentioned in a few of the videos I've > watched that GNUnet isn't really supposed to be used with a > browser. Would it be a more "GNUnet way" thing to have my > "site" be a set of more traditional documents that are made > available using the file-publishing systems? How might I > collect them together into a coherent group and make them > accessible using a tidier and more memorable URL than some of > the gnunet://fs/* links I've seen with entire public keys? > Would it simply be done with GNS and some form of file path? Combining GNS and file-sharing is actually one key aspect on my agenda for the next iteration of file-sharing. But I don't predict I'll have time to work on that anytime soon. So for now, there are two choices: * create a TGZ or ZIP file of the Web page and publish that (as gnunet://fs/) * share the directory, gnunet-publish can preserve file hierarchies > ### 2: How might I chat with friends? > > I've read the document section on the "Conversations" program > that uses a phonecall-esque approach, and I've also read that > protocols like SMTP haven't been implemented "yet". In a > hypothetical GNUnet which is more developed and actively used > by a larger population, what would be "the" way of doing > Email-style communication, IM-style communication, and any of > those and voice in groups with multiple members? Would there > be additional protocols and components in GNUnet that would > manage these kinds of communication? How do/might they > look/work? The SecuShare folks have some gnunet-nim codebase they use for IM-style chatting. Maybe they can give you more detailed pointers on how to use it. gnunet-conversation is only for voice, text messaging is not yet implemented for it. > ### 3: How might I make use of my "ego"s and GNS zones from >multiple machines? > > I have a desktop at home, a laptop, a work computer, and my > VPS. If I were to connect all of them to GNUnet and had made > myself a couple of "ego"s for say personal use and public use > (with a pseudonym) and had a personal GNS zone, how might I be > able to act as any of these "ego"s from different devices? For > instance, I might be using "Ego1" on my desktop talking to a > friend and need to go somewhere. When I get to my destination > and take out my laptop, how might I be able to continue the > conversation still as "Ego1"? Or would having a separate ego > or group of egos for each device be how I'd do it? We don't have a convenient way to do this, but if you are a competent sysadmin you can just copy the files from $HOME/.local/share/gnunet/identity/egos/ from one system to the other (that's where the private keys are) and restart the peer to have the identity subsystem rescan the directory. > ### 4: How can I make sure data is still available when my >machines are powered off? > > If for instance I have files hosted on a machine or have my > GNS zone on my computer and I turn my computer off, would the > files and GNS records still be available to other machines? For some time, yes. GNS records are published in the DHT, and may be cached (IIRC for about a month). Of course, if your expiration times are set to 5 minutes, they may be lost much faster than that. > Can they still resolve my GNS records without my machine being > on? If I host a file rather than just indexing it, will it be > available via other peers at all? Other peers may cache the file or parts of it, but they may also drop it if they don't have excess storage. So there are no guarantees that the file will remain available. > If not, then would it be > reasonable to run most if not all of my GNUnet content from my > VPS which will be on all the time? Yes, indeed. Same for the GNS zones. > ### 5: How are public keys linked to specific machines? > > As a machine's address is given as its public key, how can one > machine look at a public key and know how to figure out what > exact computer that means? What's the logical process from a > computer being given a public key either directly or via GNS > to getting data to the specific machine that key refers to? > Would a better understanding of how "legacy" IP addresses > achieve the same task answer my question here? GNUnet has HELLO messages which bind network addresses to public keys identifying peers, which is indeed similar to the ARP mechanism that binds IP addresses to Ethernet addresses. It also creates similar privacy issues for mobile users which we still have to resolve properly. > ### 6: How might an organisation manage a presence on GNUnet? > > Say there is some Company C that runs an online shop and that > company wants to make its service