Bitcoin Forum
April 25, 2024, 11:51:13 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 96 »
  Print  
Author Topic: [ANNOUNCE] Electrum - Lightweight Bitcoin Client  (Read 274472 times)
slush
Legendary
*
Offline Offline

Activity: 1386
Merit: 1097



View Profile WWW
November 22, 2011, 05:27:44 PM
 #81

1. Concerning Qt, I do not think we need to switch to Qt, we can just provide both Qt and gtk :-)  I will not do it myself, because I am not familiar with Qt, but I will be very happy to include an alternative GUI if someone decides to write it. Note that someone already made the same proposal: https://bitcointalk.org/index.php?

Well, both toolkits can work, however I don't like splitting power in such early stage. Having two frontends needs 2x more gui development for every feature. So if you don't like Qt, then I'll try to code for that Gtk monster :-). However we should keep in mind that frontend *can* be changed in some step, so strictly isolating GUI and "backend" would be very nice. About keyboard accessibility - I'm not a fan of "rich" interfaces like skype so I don't see any problem with keeping keyboard accessibility also on Qt.

Quote
2. server polling versus push: I disagree here. I decided to use polling instead of push for a reason. Many people have difficulties configuring with firewalls and opening ports. I wanted Electrum to be as easy to use as possible, and to require

For push you don't need any open ports or some other games with firewall. Client just open persitent TCP connection to server and "subscribe" for some kind of events, like new transactions to some addresses etc. Then server route only necessary information to this socket. Keeping one open socket per one client is almost zero-cost, it brings instant updates and very low load on server (imagine that one server can serve for thousands or even tens of thousands clients; then polling and periodic database requests will be an issue).

Quote
3. the project is on gitorious. My username was already taken at github. not at gitorious :-)

lol, that's serious reason ;-). As far as I understand, almost all bitcoin developers are already on github, so hosting project here will lower barrier to get some occasional patches to electrum as well. And as far as I understand github has some very nice features for "social coding" like on-site merging of trees, patching etc. But well, it's absolutely your choice.

1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
The forum was founded in 2009 by Satoshi and Sirius. It replaced a SourceForge forum.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
1714045873
Hero Member
*
Offline Offline

Posts: 1714045873

View Profile Personal Message (Offline)

Ignore
1714045873
Reply with quote  #2

1714045873
Report to moderator
btc_artist
Full Member
***
Offline Offline

Activity: 154
Merit: 101

Bitcoin!


View Profile WWW
November 22, 2011, 05:29:48 PM
 #82

watching

BTC: 1CDCLDBHbAzHyYUkk1wYHPYmrtDZNhk8zf
LTC: LMS7SqZJnqzxo76iDSEua33WCyYZdjaQoE
slush
Legendary
*
Offline Offline

Activity: 1386
Merit: 1097



View Profile WWW
November 22, 2011, 05:32:04 PM
 #83

Indeed. well, the fee calculation in the official bitcoin client is quite complicated, and I did not take the time to reproduce it. However, when I first used the official client, it took me some time to realize that the fee was "per kB". In any case, I think that the fee should be visible from the user before they press the "send" button. Maybe we should display the suggested fee, and give the user the option to increase or decrease it.

I'm actually thinking about "coin selection" patch, so I may also redesign fee calculation. I wanted to know that you're aware of that and you also see it as "problem to be fixed". Calculating appropriate fees can be pretty tricky, because rising fee can rise size of transaction, which can rise fee again :-). Btw coin selection is yet another feature which I'm missing in official client.

slush
Legendary
*
Offline Offline

Activity: 1386
Merit: 1097



View Profile WWW
November 22, 2011, 05:33:58 PM
 #84

nice, thanks. I just added it to Electrum, and released version 0.27
note that I reimplemented the rendering with pygtk, because I did not want to create another dependency with IM

Great. It's sad that your code for using qrcode in pygtk is actually longer than whole QR support patch :-). I didn't know that I can directly with Gtk so sorry to give you extra work on my patch. I need to learn Gtk a bit more.

btc_artist
Full Member
***
Offline Offline

Activity: 154
Merit: 101

Bitcoin!


View Profile WWW
November 22, 2011, 06:26:44 PM
 #85

Indeed. well, the fee calculation in the official bitcoin client is quite complicated, and I did not take the time to reproduce it. However, when I first used the official client, it took me some time to realize that the fee was "per kB". In any case, I think that the fee should be visible from the user before they press the "send" button. Maybe we should display the suggested fee, and give the user the option to increase or decrease it.

I'm actually thinking about "coin selection" patch, so I may also redesign fee calculation. I wanted to know that you're aware of that and you also see it as "problem to be fixed". Calculating appropriate fees can be pretty tricky, because rising fee can rise size of transaction, which can rise fee again :-). Btw coin selection is yet another feature which I'm missing in official client.
Coin selection would be a great feature, both for avoiding fees and added privacy.

BTC: 1CDCLDBHbAzHyYUkk1wYHPYmrtDZNhk8zf
LTC: LMS7SqZJnqzxo76iDSEua33WCyYZdjaQoE
ThomasV (OP)
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
November 22, 2011, 08:16:56 PM
 #86

Well, both toolkits can work, however I don't like splitting power in such early stage. Having two frontends needs 2x more gui development for every feature. So if you don't like Qt, then I'll try to code for that Gtk monster :-). However we should keep in mind that frontend *can* be changed in some step, so strictly isolating GUI and "backend" would be very nice. About keyboard accessibility - I'm not a fan of "rich" interfaces like skype so I don't see any problem with keeping keyboard accessibility also on Qt.

We will definitely see more clients and implementations.
1. An android client is needed. I tried to do it in python, I compiled python for Android, but it is difficult to use. It might be easier to rewrite Electrum in java.
2. I would also like to have Electrum as a Firefox extension. This would mean a one-click install. For that, a javascript implementation is needed (I made some tests, I was able to use an electrum wallet inside the pyxpcom extension, but pyxpcom is poorly supported; better use pure javascript).

Quote
For push you don't need any open ports or some other games with firewall. Client just open persitent TCP connection to server and "subscribe" for some kind of events, like new transactions to some addresses etc. Then server route only necessary information to this socket. Keeping one open socket per one client is almost zero-cost, it brings instant updates and very low load on server (imagine that one server can serve for thousands or even tens of thousands clients; then polling and periodic database requests will be an issue).
Not sure if this works everywhere, but we'll see. For the moment my server never had more than 3 clients connected simultaneously, including mine :-)

Quote
As far as I understand, almost all bitcoin developers are already on github
No, genjix (libbitcoin) is on gitorious.

Electrum: the convenience of a web wallet, without the risks
jim618
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
November 22, 2011, 10:23:29 PM
 #87

If you wanted to have a Java Electrum implementation you could probably reuse all the network layer in bitcoinj as that can parse the messages for blocks, transactions etc.

If I understand Electrum correctly you have your own socket transport from your client to something on your server side accepting incoming socket connections.   I do not think anyone has done that yet in Java for bitcoin - don't recall anyone mentioning it on the bitcoinj mailing list.   Mike Hearn is definitely worth talking to though before you do any serious work on a Java implementation as I bet he could save you tons of time with his suggestions.

Andreas Schildbach's implementation of Android Bitcoin Wallet is open source too so that might be a useful resource for you.   I have asked Andreas for help on various things and he is always helpful.


MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
ovidiusoft
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
November 23, 2011, 12:43:51 AM
 #88

Anyone else considers useful to have the server's config file structured like a INI file, using ConfigParser http://docs.python.org/library/configparser.html ? I am also thinking of moving a little more settings into it, for example:

Code:
[server]
host = 127.0.0.1
port = 50000
password = secret
banner = "Welcome to Electrum!"

[database]
dbtype = sqlite3
dbname = /path/to/electrum.sqlite

I can probably hack something tomorrow. Also, I never used gitorious, if I create an account I can push directly to your repository?
ovidiusoft
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
November 23, 2011, 09:45:03 AM
 #89

Implemented here, please review (merge request pending): https://gitorious.org/~ovidiusoft/electrum/ovidiusofts-electrum
ThomasV (OP)
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
November 23, 2011, 10:27:47 AM
 #90

Implemented here, please review (merge request pending): https://gitorious.org/~ovidiusoft/electrum/ovidiusofts-electrum

that's great! will try to merge it soon :-)

Electrum: the convenience of a web wallet, without the risks
slush
Legendary
*
Offline Offline

Activity: 1386
Merit: 1097



View Profile WWW
November 23, 2011, 02:17:59 PM
 #91

wohoo, just learned with git enough to work on electrum too :-)

slush
Legendary
*
Offline Offline

Activity: 1386
Merit: 1097



View Profile WWW
November 24, 2011, 02:23:26 PM
Last edit: December 02, 2011, 10:35:59 PM by slush
 #92

Ok, I'm playing with firstbits now. Unfortunately it's not so easy as I expected, it needs patch to Abe to make implementation sane and fast enough. I just asked Abe developers if they'll accept my patch as I don't like maintaining code outside of upstream.

In the meantime I'm also learning Qt and I'll try to make alternative GUI for electrum. I simply rejected the idea of learning gtk which I'm considering as prehistoric monster. Qt is opensource and free for OSS projects, I don't see the reason to not use it. However (as a real server-side guy) I hate GUI development at all, so I cannot promise that I'll finish it into usable state :-). I'd like to use slightly different approach than electrum gtk, aiming more to newbies and normal users. I pretty like dashboard idea of https://bitcointalk.org/index.php?topic=50162.0, so I'll reuse idea basics, still with many changes.

Today I thought about features I'd like to see in best-bitcoin-client-ever, there is my brain dump. Maybe if others have some nice ideas it will be good to make a pool of them to let programmers pick what they want to implement.

* Qt GUI (in early steps, not sure with results. I have many possible improvements of GUI in my head, however they're related to basic gui design, so nothing to reveal yet)
* Firstbits support (in progress)
* Erasure coding for seed backups
* Coin selection
* Direct support for printing seed
* QR decomposition & camera support
* Offline transactions
* Notification for new client version (as protocol is in early stage it's important to tell users they have to upgrade)
* Send bitcoins to email (using server-side escrow, sending back not withdrawed coins)
* Wallet in the cloud (sync wallets across multiple computers)
* Server failover (server peer switching)
* Make network layer more robust (permanent connection, interface for browser clients, but fallback to poling for restrictive networks)
* Make wallet format more robust

BTCurious
Hero Member
*****
Offline Offline

Activity: 714
Merit: 504


^SEM img of Si wafer edge, scanned 2012-3-12.


View Profile
November 24, 2011, 04:22:18 PM
Last edit: November 24, 2011, 04:52:50 PM by BTCurious
 #93

This may be a bit controversial because the community can't seem to decide on what they want exactly, but I still think it's important to add URI support to that list.

ovidiusoft
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
November 24, 2011, 04:48:21 PM
 #94

For people playing with multiple wallets/clients:

* open/close wallet(s), switch between wallets, merge/split wallets, transfer keys/coins between wallets.
* import different wallets from other clients.
* import/export keys, purge keys (for example, after an export).

Of these, using multiple wallets and importing from other clients should be a priority. I'm just sorry my GUI development skill are non-existing Sad.
btc_artist
Full Member
***
Offline Offline

Activity: 154
Merit: 101

Bitcoin!


View Profile WWW
November 24, 2011, 04:52:51 PM
 #95

For people playing with multiple wallets/clients:

* open/close wallet(s), switch between wallets, merge/split wallets, transfer keys/coins between wallets.
* import different wallets from other clients.
* import/export keys, purge keys (for example, after an export).

Of these, using multiple wallets and importing from other clients should be a priority. I'm just sorry my GUI development skill are non-existing Sad.
Yes!!!

BTC: 1CDCLDBHbAzHyYUkk1wYHPYmrtDZNhk8zf
LTC: LMS7SqZJnqzxo76iDSEua33WCyYZdjaQoE
simonk83
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
November 28, 2011, 11:00:06 PM
 #96

So I have to say, this all sounds great Smiley   I have to ask though, is it ready to go?  Safe to use?  Had plenty of testing? 

Very keen to give it a crack, but obviously there's money involved so it's always going to be a bit of a risk Smiley   I'll go read through the rest of the thread now Wink
ovidiusoft
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
November 28, 2011, 11:05:12 PM
 #97

So I have to say, this all sounds great Smiley   I have to ask though, is it ready to go?  Safe to use?  Had plenty of testing? 

No, no and no Smiley. Running the client is easy enough. Running your own server is so-so (I'll write a post about it, if there's interest). You can play, I think you'll like it, but for the moment I wouldn't advise you to transfer large amounts, as there can be bugs that could eat your coins.
simonk83
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
November 28, 2011, 11:33:12 PM
 #98

So I have to say, this all sounds great Smiley   I have to ask though, is it ready to go?  Safe to use?  Had plenty of testing? 

No, no and no Smiley. Running the client is easy enough. Running your own server is so-so (I'll write a post about it, if there's interest). You can play, I think you'll like it, but for the moment I wouldn't advise you to transfer large amounts, as there can be bugs that could eat your coins.

Yep, I just read through the rest of the thread, so fair enough.

Exciting stuff though Smiley
finway
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500


View Profile
November 29, 2011, 03:01:02 AM
 #99

I'm learning python, hope i can contribute someday.  Grin

ThomasV (OP)
Moderator
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
November 30, 2011, 08:13:36 AM
 #100

I just released a new version, version 0.28

changelog:
* the wallet_dir option was replaced by a wallet filename option
* pycrypto is no longer used, it was replaced with slowaes (native python)

both slowaes and python-ecdsa are native python, and are included in the package, so the installation should be highly facilitated.

Note that the wallet format has changed. if you have encrypted your wallet, you will need to upgrade it with a script.
you can either uncrypt your wallet before the upgrade (the easiest option), or run the upgrade.py script that will upgrade your wallet to the new format.


Electrum: the convenience of a web wallet, without the risks
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 96 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!