New namecoin gui

Forum rules
Warning !
Avoid using binary softwares from untrusted users.
Prefer compiling it yourself and verify sources.
teathsch
Posts: 9
Joined: Sun Jul 24, 2011 4:01 am

New namecoin gui

Post by teathsch »

Previously reported sql injection vuln is fixed

This is my namecoin gui program. It is full-featured. You can do pretty much anything on it that you can do with namecoind.

Deb: http://jailcity.com/voicedotbit/voicedo ... 1_i386.deb

It communicates with namecoind via rpc calls.

It's written in c++ using gtkmm for the user interface. Under most circumstances, it should be able to configure itself automatically.

It has only been tested with Ubuntu 10.04, but other versions should work.

The main "buddy list" window doesn't do anything right now. Ultimately it will be a udp router to your namecoin "buddies", but I think that the interface will always be 90% namecoin related features.

It uses libcurl libssl (openssl) libasio, boost, sqlite3 and libgtkmm

All of these dependencies are easily satisfied with apt. The full package names are in the INSTALL file.

I'd like to hear any feedback!

Project Web site: http://jailcity.com/voicedotbit/

Thanks,

Heath
Last edited by teathsch on Tue Aug 02, 2011 7:38 am, edited 4 times in total.

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: New namecoin gui

Post by khal »

I've seen that you execute name_new and name_firstupdate at the same time (with function name_new_and_firstupdate). This should be avoided to protect yourself against name stealing. You should wait for some confirmations of the name_new before doing the name_firstupdate.

Could you explain a bit more how this will work with relays ? What are buddies ? Etc. :p (even if there is some info here : http://dot-bit.org/Voicedotbit)

I've quickly read the source code and it seems ok.

ps : it compiles/runs on Debian Testing too.
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

teathsch
Posts: 9
Joined: Sun Jul 24, 2011 4:01 am

Re: New namecoin gui

Post by teathsch »

Thanks for checking it out..

This was based on IRC conversations, so I can't point you to a source, but I understood that newer clients automatically held back the name_firstupdate. If this is not the case, then I'll definitely do a fix for it.

Did it autoconfigure on first run correctly for you?

Technically, a "Buddy" is just a domain name on the namecoin network. A buddy must publish special information in their "value" field.

Before reading the description, remember that what when we say "anonymous" when talking about onion routing, what we really mean is physically untraceable. It is the untraceability that gives us anonymity. Also, just because we want untraceability, we don't necessarily want anonymity. For example, say I don't want my parents to know where I am, but I want to talk to them. In this case I want untraceability but not anonymity. At a technical level, onion routing is about protecting adversaries from finding out WHERE we are.. not WHO we are.

Tentatively the plan is this (assumes you know what a "reply onion" is)

d/alice wants to be available for contact from the general public. she wants to be untraceable
d/alice publishes a "reply onion" to several relay servers (on the voicedotbit network, not the namecoin network)
d/alice publishes the list of relay servers on the namecoin network

d/bob wants to contact d/alice
d/bob looks up d/alice's relay servers on namecoin
d/bob finds d/alice's reply onion on one of the introduction servers

With the full path back to d/alice, d/bob can now contact her.

In that example, d/bob didn't do anything to protect anonymity. In order to do so, he must onion route all of his messages, including the lookup for d/alice

On more hurdle is the fact the publishing the reply onions must also be done anonymously. Doing updates on namecoin would require either configuring it to use tor, or routing update requests over the voicedotbit network and having others do the updates on your behalf.

Heath

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: New namecoin gui

Post by khal »

teathsch wrote:This was based on IRC conversations, so I can't point you to a source, but I understood that newer clients automatically held back the name_firstupdate. If this is not the case, then I'll definitely do a fix for it.

Did it autoconfigure on first run correctly for you?
Yes, even if i tested it on an empty wallet so i did not test a lot of things.

Thanks for the explanations.

It does not seem to work on testnet (seg fault) (folder is ~/namecoin/testnet for data and same ~/.namecoin/bitcoin.conf as realnet)
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

teathsch
Posts: 9
Joined: Sun Jul 24, 2011 4:01 am

Re: New namecoin gui

Post by teathsch »

I can't reproduce a crash on testnet.. Does it happen on startup?

Could you possibly do a backtrace? :)

I created a repo on github.. I'll use the issue tracker there.

Thanks,

Heath

Edit: Oops forgot to add git link: https://github.com/teathsch/voicedotbit

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: New namecoin gui

Post by khal »

teathsch wrote:I can't reproduce a crash on testnet.. Does it happen on startup?
Yes, first start it generates the sql file, then it crashs. Other times it crashs too.

Code: Select all

See LICENSE for details.

This product includes cryptographic software written by Eric Young(eay@cryptsoft.com).  This product includes software written by TimHudson (tjh@cryptsoft.com).

This program is powered by Curve25519.

[New Thread 0x7fffebfe9700 (LWP 31267)]
[New Thread 0x7fffeb7e8700 (LWP 31268)]
[New Thread 0x7fffeaadc700 (LWP 31270)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffebfe9700 (LWP 31267)]
0x0000000000484a53 in curve25519_athlon_init ()
(gdb) bt
#0  0x0000000000484a53 in curve25519_athlon_init ()
Cannot access memory at address 0xebfe8688
I've recompiled curve25519 to get 64bit files :

Code: Select all

cd curve25519; rm *\.o; rm *\.a; make
When i compile voicebit, i have this warning (due to the fact i have libssl0.9.8, libssl1.0.0 and libssl-dev [0.9.8])

Code: Select all

/usr/bin/ld: warning: libcrypto.so.1.0.0, needed by /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.3/../../../libcurl.so, may conflict with libcrypto.so.0.9.8
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

teathsch
Posts: 9
Joined: Sun Jul 24, 2011 4:01 am

Re: New namecoin gui

Post by teathsch »

I've made it so that it generates random numbers instead of curve25519 keys since it's not doing anything with the keys right now.. I need to switch that over to openssl anyway. I also removed the linkage to curve25519.

git clone git@github.com:teathsch/voicedotbit.git

I'm not sure what to do about the libssl mismatch, but it doesn't matter at this point anyway since it's not accessing any of those symbols right now.

Thanks again,

Heath

khal
Site Admin
Posts: 708
Joined: Mon May 09, 2011 5:09 pm
os: linux

Re: New namecoin gui

Post by khal »

assumes you know what a "reply onion"
Not really :p. I know a bit of tor hidden services, as used in the domain spec : http://dot-bit.org/Domain_names#Value_field, but that's all (and i don't think i'm alone :p)
teathsch wrote:I've made it so that it generates random numbers instead of curve25519 keys since it's not doing anything with the keys right now.. I need to switch that over to openssl anyway. I also removed the linkage to curve25519.
It works now.
This was based on IRC conversations, so I can't point you to a source, but I understood that newer clients automatically held back the name_firstupdate. If this is not the case, then I'll definitely do a fix for it.
I've tested that, and yes, i've seen my name_firstupdate transaction on a remote node (with name_debug and looking in debug.log file).
NamecoinID: id/khal
GPG : 9CC5B92E965D69A9
NMC: N1KHAL5C1CRzy58NdJwp1tbLze3XrkFxx9
BTC: 1KHAL8bUjnkMRMg9yd2dNrYnJgZGH8Nj6T

Register Namecoin domains with BTC
My bitcoin Identity - Send messages to bitcoin users
Charity Ad - Make a good deed without paying a cent

moa
Posts: 255
Joined: Mon May 23, 2011 6:13 am

Re: New namecoin gui

Post by moa »

Runs on ubuntu 11.04 (after install of suggested dev. libs.)
To get connection to Namecoin network I needed to put the rpc connection port line into ~/.namecoin/bitcoin.conf

rpcport=9332

also bitcoin.conf line to connect to Tor network, if anyone is wondering (running Vidalia, polipo, etc)

proxy=127.0.0.1:9050

Just tested with empty wallet but didn't have any 'Buddies' :( to try anything else out, or 'Credits' to create an Identity (what is this about?) is it going to charge namecoins to create identities.

This project really intrigues me. I would really like to know where you see this going eventually. Will it be like a global calling network with untraceable, unique 'phone' names/numbers?

In what sense will it use the Namecoin network for the call routing? Just for name look-up or is there something else going on here?

Edit: okay, to answer my own question, it seems like an 'Identity' is a "d/name" that is in the Namecoin database, so if you have some of those associated with your wallet you can have an 'Identity' or you can buy one with this tool ... so it does coin and name wallet management, towards its own purpose but functional nevertheless. Neat.

teathsch
Posts: 9
Joined: Sun Jul 24, 2011 4:01 am

Re: New namecoin gui

Post by teathsch »

khal: thanks again for testing!

By "reply onion" I mean:

encrypt(host1_pubkey, encrypt(host2_pubkey, encrypt(relay3_pubkey, final_destination_address) . host3_address) . host2_address) . host1_address

where . (dot) is the concatenation operator.

Once d/bob finds this reply onion, he can use it to establish a circuit to d/alice.

So yes.. d/alice is acting like a tor hidden service.

moa: you actually summarized it quite well.

To clarify about the call routing, yes namecoin will only be used to find the call paths.

I want to use the IAX2 voip protocol (as opposed to SIP) because it is very simple and efficient. It only requires one port, and it works well with NAT. I don't think that the voicedotbit program will ever actually be a voip phone. You'd run any other IAX2 phone such as zoiper or kiax and dial into the voicedotbit program.

So to make a call you do this..

1. Click on a buddy in your voicedotbit client
2. Dial 127.0.0.1:someport on your IAX2 phone

..so the voicedotbit program is a proxy

One major problem that we'll run into is latency on anonymized calls with lots of hops. There's a tradeoff between having delays in voice or blips in audio. It might be unavoidable to have a noticeable delay in anonymous calls.

Also there is the problem of relay reliability. voip is a nightmare if you can't depend on the network. One possible solution is for it to establish multiple independent call paths per call, so that it can switch if one goes down.

Finally... per your report, I realize that I probably shouldn't have messed with the nomenclature. I think I'll use "Namecoins" instead of "Credits".. I like "Identity" though. I'd like to hear comments on that.

Post Reply