help-gnunet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gnunet] Questions on latest version


From: Tom Barnes-Lawrence
Subject: Re: [Help-gnunet] Questions on latest version
Date: Mon, 1 Sep 2003 06:21:50 +0100
User-agent: Mutt/1.3.28i

On Sun, Aug 31, 2003 at 04:27:35PM -0500, Christian Grothoff wrote:
> >  So basically, did Nils' patch get included in the end?
> 
> Yes, but it was recently (post 0.5.5) moved to the libextractor CVS. It will 
> be in the next libextractor relase and was part of 0.5.5. The 0.5.5 default 
> config file has the appropriate line:
> 
> EXTRACTORS = libextractor_filename:-libextractor_split:-libextractor_lower

 Aha! So the automatic extraction supplies lower case versions of keywords
(all keywords?)... but the AFS system itself doesn't actually convert
keywords itself?
I suppose as long as there aren't keywords that are hard-to-find because
of case variations (except by people who are actively trying to make
their content hard to find), that should be fine.

> > -So I understand that it's namespaces that allow updates, and it's
> >  directories that allow you to create heirarchies.
> >  But how do the directories reference stuff?
> 
> They contain RBlocks or SBlocks in plaintext (the file-identification plus 
> meta-data). Insert a bunch of files and go into gnunet-gtk. Build a directory 
> "by hand", you should see that it is quite easy.

 I tend not to bother with gnunet-gtk much, I'm afraid; I had another
look this release, but it didn't seem any more stable. So I'm still
working with gnunet-insert- or hoping to.

 BTW, yeah, I remember some months back saying *I'd* try to write some
client-side stuff... I haven't given up on that, I just, er, got
sidetracked when I started writing a game :P It didn't help that almost
every approach I'd wanted to take, countless obstacles seemed to get in
my way. But other projects I got working on recently helped me think
of solutions for some of those things, so I could mebbe have another go.
(I'm making no promises this time, if it happens it happens)

> >  I'm basically wondering, if I make a directory entry that links to a
> >  directory in someone else's namespace, when that remote directory gets
> >  *updated*, will the reference to it from my directory access the one
> >  it found originally, or the newly updated one??
> 
> Ok, someone else has a directory D in a namespace X under the namespace-key  
> K.  Now when you create your own directory O which can contain either a 
> direct link to D (which means that if D is updated, your link will still 
> point to the OLD contents, which is what you may want); or you can link to K 
> in X, which means that your directory will point to the updateable version of 
> the directory. 

Um, lets see. "the namespace-key K", would be the key for the directory D,
rather than a key used with everything in X? And K would be the Sblock?

 Just before writing this email, I tried having a go at creating a
pseudonym, to see if I could learn a bit in the process. Gnunetd wasn't
running (because I was offline), and it just sat there, even though the
pseudonym utilities didn't mention they needed it (some things obviously
need it, but not *all* of them do, right?). When I reconnected and started
gnunetd again, I then tried creating the pseudonym again...
and it segfaulted.

[New Thread 1024 (LWP 3014)]
Sep  1 05:28:37 WARNING: No password supplied

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 3014)]
0x4002c04f in rndlinux_gather_random (add=0x4002ba7c <add_randomness>, 
    requester=2, length=120, level=1) at rndlinux.c:131
131             FD_SET(fd, &rfds);

Don't know if that's enough for you to do anything with (or if you've
already seen this bug).

 Well, in the meantime, it'd be interesting to know, gnunet-insert's
manpage says:
-t ID, --this=ID
       Specifies the ID of the  SBlock.   This (snip)

I don't understand what this is referring to, or what this flag will
do. I can see it's to do with namespaces, and maybe is about updateable
content, but otherwise... *shrug*

The manpage continues:
The  ID  can  be  given in HEX notation, otherwise the HEX
code is derived by hashing the given ID string.

 Where would I get either of these things? Are these what get returned
from gnunet-pseudonym-create, when it works? I suspect not, but it's
just not that clear.

> Essentially, every directory (and file) can be accessed in two ways; with an 
> RBlock (the old, keyword, immutable mechanism) or via an SBlock (the new, 
> additional, optionally updateable, signed mechanism). Directories can refer 
> to both RBlocks and SBlocks.
> 
> Does that help? (Note that gnunet-gtk's visualization of the difference 
> between RBlocks and SBlocks is, well, lacking.)

 It helps to at least know that both those types of reference are
technically possible, even if the docs make my eyes water ;)

 Perhaps it would help if the CLI programs separated what they did
somewhat- I notice some manpages point to the non-existant manpage for
the non-existant program "gnunet-insert-sblock", but now all content
insertion operations seem to be integrated into gnunet-insert.

 I suppose that if you make a directory, you'll want to insert it
(maybe you'd want to make separate directories to create heirarchies
by hand, rather than relying on the -r flag, but it'd be no use without
having all the directories published), but when you try to create/
insert the directory at the same time as inserting what it refers to,
it all gets a bit unclear what's going on IMHO.

 And then the addition of namespaces/updatable content seems to make it
even less clear: EG, what if you're making an updatable directory that
references some non-updatable content that you're inserting now, plus
some updatable content that's already been inserted, etc etc.
I expect gnunet-insert is able to do all this, I'm just saying that
maybe a more modular interface could be easier to understand. Or
perhaps it wouldn't.

 Tomble
PS- Sorry if I've been rambling here :P




reply via email to

[Prev in Thread] Current Thread [Next in Thread]