Re: [GNUnet-developers] Hello! (brief introduction and lots of questions)

2019-07-07 Thread carlo von lynX
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)

2019-07-04 Thread Olie Ayre
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)

2019-07-04 Thread carlo von lynX
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)

2019-06-26 Thread Marcos Marado
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)

2019-06-15 Thread Heiko Stamer
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)

2019-06-14 Thread t3sserakt
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)

2019-06-13 Thread Christian Grothoff
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)

2019-06-13 Thread Amirouche Boubekki
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)

2019-06-13 Thread ng0
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)

2019-06-13 Thread Olie Ayre
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)

2019-06-12 Thread Christian Grothoff
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