Bitcoin Forum

Other => Beginners & Help => Topic started by: sounds on December 31, 2012, 10:28:11 PM



Title: A Better bitcoind Frontend
Post by: sounds on December 31, 2012, 10:28:11 PM
Since I'm still a newbie, I'll put this thread in the newbies section. Mods: please feel free to move this to the development section.

I'm new to bitcoins. Too bad, right? :) I missed out on all the fun! The ASICpocalypse is here and bitcoins have lost all their value. Heh, nevermind: it didn't happen.

Hey, one thing a newcomer might notice that everyone else has gotten used to: it takes forever to bootstrap a bitcoin client and it has to stay connected all the time!

Now, I don't trust anyone so I'll never be putting my wallet in the cloud. So I'll run bitcoind on an always-on machine I have in a locked cage somewhere, that's easy! And as soon as I started up bitcoind it hit me:

This needs a better frontend.

Ok, I admit, I only looked at a few and really only tried bitcoin-js-remote (http://tcatm.github.com/bitcoin-js-remote) before I decided this isn't going to work.

Anyone want to help me write a better frontend? I'm currently unemployed but here are the apps I'd like to make, sorted from quick and easy (get my feet wet) to hard:

1. Linux Terminal App (bitcoind TUI frontend)

2. Qt App for my linux laptop. I don't like having to leave my laptop connected all the time just to keep my block chain up to date!

3. Android app

4. Mac OS native app

5. Windows native app

6. iOS app (I might never get around to this one. They can just use bitcoin-js-remote, right?) :-}


Title: Re: A Better bitcoind Frontend
Post by: sounds on December 31, 2012, 10:29:40 PM
Hah! Funny, that post was what put me over the top, now I've leveled up to 2 coins, so I should really move this to the Development forum.


Title: Re: A Better bitcoind Frontend
Post by: Darkneo on December 31, 2012, 11:01:25 PM
How's your project currently going?


Title: Re: A Better bitcoind Frontend
Post by: sounds on December 31, 2012, 11:07:27 PM
Well... in the last 30 minutes I've created a curses TUI app that links with libcurl to hit up the json RPC.


Title: Re: A Better bitcoind Frontend
Post by: Gabi on December 31, 2012, 11:49:07 PM
Try Armory.

Or Multibit (lightweight client, so you don't have to download the whole blockchain)


Title: Re: A Better bitcoind Frontend
Post by: flatfly on January 01, 2013, 12:23:12 AM
Actually, Electrum is almost exactly what you're describing...

You set up bitcoind to run on a server (+ electrum server script), to which you connect
from the client. It is lightweight, uses Qt, comes for Linux, Windows, Mac and Android, and
even has a TUI (curses) version!

It all is quite stable now, and has a active community (including on IRC). I would say its
main weakness is the lack of adequate documentation for all these things (so far.)


Title: Re: A Better bitcoind Frontend
Post by: casascius on January 01, 2013, 12:30:00 AM
I'd like the same thing but would prefer to call it something inverse:

Bitcoind needs to be broken down so it becomes a "bitcoin knowledge center" server, sort of like blockchain.info.  Then front end apps can be written with the assumption that the knowledge center either is trustworthy, or that it can prove everything that matters.

One discrete portion of the "knowledge center" should be dedicated simply to determining the hash of the latest valid block in the chain.  Right now, we strictly use proof of work.  But I'd feel better if that could be expanded to accept a few backup factors, like the user's own opinion, or a party they trust.  (Clearly this is bound to be a controversial subject, but it won't be controversial anymore the first time somebody tries a 51% attack)

Another major function of the knowledge center should be getting the balances of arbitrary wallets.


Title: Re: A Better bitcoind Frontend
Post by: sounds on January 01, 2013, 01:42:25 AM
Actually, Electrum is almost exactly what you're describing...

You set up bitcoind to run on a server (+ electrum server script), to which you connect
from the client. It is lightweight, uses Qt, comes for Linux, Windows, Mac and Android, and
even has a TUI (curses) version!

It all is quite stable now, and has a active community (including on IRC). I would say its
main weakness is the lack of adequate documentation for all these things (so far.)
Great! This is what I was looking for!

I missed that Electrum could work this way. Yeah, I guess I have a lot to learn!


Title: Re: A Better bitcoind Frontend
Post by: sounds on January 01, 2013, 01:51:13 AM
So I run it like this:
Code:
electrum --server my.server.com:8332:h
But I get an error:

HTTP 401 Authorization Required

Well, of course. bitcoind uses HTTP Basic Auth. But the documentation is confusing. I guess I need to set up bitcoin-abe and electrum-server? Is there a guide somewhere?

Edit: I found https://github.com/spesmilo/electrum-server (https://github.com/spesmilo/electrum-server) - this looks useful!


Title: Re: A Better bitcoind Frontend
Post by: flatfly on January 01, 2013, 07:46:34 AM
So I run it like this:
Code:
electrum --server my.server.com:8332:h
But I get an error:

HTTP 401 Authorization Required

Well, of course. bitcoind uses HTTP Basic Auth. But the documentation is confusing. I guess I need to set up bitcoin-abe and electrum-server? Is there a guide somewhere?

Edit: I found https://github.com/spesmilo/electrum-server (https://github.com/spesmilo/electrum-server) - this looks useful!

Indeed that's the codebase repository for the server.

For starters, I'd suggest to run a pruning server: easier to setup (but you still feel a sense of achievement once you've done that), less resource-hungry, more stable, and you don't need to install ABE for that.  Here's a great tutorial to do this: https://bitcointalk.org/index.php?topic=130533.0

If you need additional support for that, you will most often find experts willing to help on #electrum (IRC).

While you get this done, you can of course just connect to a public Electrum server from your client. In fact, as you can see by reviewing the source code, the client-server protocol doesn't allow servers to do anything particularly malicious, so most regular users just choose to connect to one of the available servers and never bother to install one themselves.  The only downside in that case (with the current implementation, at least) is that you sacrifice a tiny bit of privacy.


Title: Re: A Better bitcoind Frontend
Post by: sounds on January 01, 2013, 07:58:15 AM
Thanks, appreciated!


Title: Re: A Better bitcoind Frontend
Post by: djohnston on January 01, 2013, 08:47:21 AM
Sounds like a good idea. I hope you find a great project to contribute your skills to.

-DJohnston