Bitcoin Forum
November 16, 2024, 08:53:29 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: [BOUNTY] Electrum Firefox Extension  (Read 7036 times)
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 14, 2012, 11:49:09 PM
Last edit: July 15, 2012, 10:04:18 AM by anfedorov
 #21

Hi all,

I've published an initial release of a Chrome Extension to manage a bitcoin wallet in most ways similar to the Electrum client. So far I've been the only one testing it, so I'd appreciate some initial feedback. The extension is available here:

https://chrome.google.com/webstore/detail/hfdeddmpdncodjalbadbanlcombfeoll/

The code is on github here: https://github.com/andreyf/electrum-wallet-chrome-extension. I haven't decided on a license, but it'll probably be GPLv3.

I would appreciate any criticism/feedback you might have. Feel free to reply here or e-mail me at anfedorov@gmail.com.

Cheers,
Andrey
ffe
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250



View Profile
July 15, 2012, 04:57:23 AM
 #22

Hi all,

I've published an initial release of a Chrome Extension to manage a bitcoin wallet in most ways similar to the Electrum client. So far I've been the only one testing it, so I'd appreciate some initial feedback. The extension is available here:

https://chrome.google.com/webstore/detail/hfdeddmpdncodjalbadbanlcombfeoll/

The code is on github here: https://github.com/andreyf/electrum-wallet-chrome-extension. I haven't decided on a license, but it'll probably be GPLv3.

I would appreciate any criticism/feedback you might have. Feel free to e-mail me at anfedorov@gmail.com.

Cheers,
Andrey

Just tried it. Receive worked. Currently waiting on a send. Very bare-bones but I like it.
Comments:
 - I like the naming of receive keys. (Wish I could figure out how to retrieve a receive key by name at a later time.)
 - I like the password requirement to send.
 - Was not clear if I had to save the initial randomness to restore a wallet or if it can be regenerated from the password.
 - Not clear what server it is using to handle the blockchain.
 - Send is taking a while - I think because I'm playing with tiny amounts of coin. Wish I could add a miner fee to speed things up.

Very nicely done!
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 15, 2012, 05:40:17 AM
 #23

Thanks!

- I like the naming of receive keys. (Wish I could figure out how to retrieve a receive key by name at a later time.)
 - Was not clear if I had to save the initial randomness to restore a wallet or if it can be regenerated from the password.
 - Not clear what server it is using to handle the blockchain.
 - Send is taking a while - I think because I'm playing with tiny amounts of coin. Wish I could add a miner fee to speed things up.

If you right-click on the extension icon and click "Options", it should open up a tab that addresses these. Perhaps I should also add a way of opening the Options page from the popup?

- Was not clear if I had to save the initial randomness to restore a wallet or if it can be regenerated from the password.

The initial randomness (the seed) is crypto-random, and optionally encrypted with AES using a passphrase, so yes, you need both the characters you see and the password (you can see them again in the Seed tab of the Options page).
ffe
Sr. Member
****
Offline Offline

Activity: 308
Merit: 250



View Profile
July 15, 2012, 08:42:49 AM
 #24

...Perhaps I should also add a way of opening the Options page from the popup?

No need. Everything is there and intuitive once I knew to look for options. Thanks.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 15, 2012, 09:16:34 AM
 #25

Real nice!!
I like the streamlined foolproof GUI.
Great initial version.
 
2 things I've noticed:

- Options page is blank for me, not sure why... (I only see the "Options" heading and that's it)

- Initial seed stretching is much slower than in Python... I was hoping that Chrome's awesome JS engine would be faster at this, but well.  Or perhaps you're generating more than 5 addresses?
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 15, 2012, 09:59:16 AM
Last edit: July 15, 2012, 11:19:25 AM by anfedorov
 #26

Real nice!!
I like the streamlined foolproof GUI.
Great initial version.
 
2 things I've noticed:

- Options page is blank for me, not sure why... (I only see the "Options" heading and that's it)

- Initial seed stretching is much slower than in Python... I was hoping that Chrome's awesome JS engine would be faster at this, but well.  Or perhaps you're generating more than 5 addresses?

Thanks!

I'm saw the Options page show up blank once as well when testing on my older laptop (with SC2 running in the background for slowness). Not sure what's causing it, but I'll refactor the JS on the Options page to fix it ASAP.

The initial stretching doesn't include generation of the addresses (which is relatively quick). It's applying SHA256 to the seed 100k times to get the master private key (which is used to generate the private keys of addresses). I think this is slower because Python uses SHA256 implemented in a C library, whereas the extension uses a JS implementation. I don't think there's anything I can do to speed it up, since I want to be compatible with the Electrum client, so I tried to make the UI as clear as possible. Since this only needs to be done once when a wallet is set up, I think I'm satisfied with the current implementation.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 15, 2012, 05:08:50 PM
 #27

Real nice!!
I like the streamlined foolproof GUI.
Great initial version.
 
2 things I've noticed:

- Options page is blank for me, not sure why... (I only see the "Options" heading and that's it)

- Initial seed stretching is much slower than in Python... I was hoping that Chrome's awesome JS engine would be faster at this, but well.  Or perhaps you're generating more than 5 addresses?

Thanks!

I'm saw the Options page show up blank once as well when testing on my older laptop (with SC2 running in the background for slowness). Not sure what's causing it, but I'll refactor the JS on the Options page to fix it ASAP.


Hmm... Can't post a screenshot as it's now working fine, after uninstalling / re-installing the extension! Very nice and clearly laid-out option page, by the way.


Quote
The initial stretching doesn't include generation of the addresses (which is relatively quick). It's applying SHA256 to the seed 100k times to get the master private key (which is used to generate the private keys of addresses). I think this is slower because Python uses SHA256 implemented in a C library, whereas the extension uses a JS implementation. I don't think there's anything I can do to speed it up, since I want to be compatible with the Electrum client, so I tried to make the UI as clear as possible. Since this only needs to be done once when a wallet is set up, I think I'm satisfied with the current implementation.

Thanks for the explanation. I agree the one-time seed stretching delay is reasonable (about 45 seconds on this old laptop).
ThomasV (OP)
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
July 15, 2012, 05:09:31 PM
 #28

very nice.

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

Activity: 1092
Merit: 1016

760930


View Profile
July 15, 2012, 05:52:37 PM
 #29

Now I'm getting the issue with the Options page again.
Here's a screenshot.

anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 15, 2012, 08:14:21 PM
 #30

Thanks for the explanation. I agree the one-time seed stretching delay is reasonable (about 45 seconds on this old laptop).

45 seconds! It's only once, but still, that's stretching it... I'll look into speeding up the SHA256 implementation I'm using, but can't promise anything.

The screenshot helped a ton, thanks! It's the window width: Twitter bootstrap (the UI library I'm using) tries to render a different layout below width 980px that I didn't test, and it breaks everything!

Thanks again for all of the feedback!
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 15, 2012, 09:22:15 PM
 #31

Thanks for the explanation. I agree the one-time seed stretching delay is reasonable (about 45 seconds on this old laptop).

45 seconds! It's only once, but still, that's stretching it... I'll look into speeding up the SHA256 implementation I'm using, but can't promise anything.

The screenshot helped a ton, thanks! It's the window width: Twitter bootstrap (the UI library I'm using) tries to render a different layout below width 980px that I didn't test, and it breaks everything!

Thanks again for all of the feedback!

Glad I could help!

Also, unless I'm missing something, I guess you can make your package almost 50% smaller
by removing the 'node_modules' folder from bitcoinjs. At first sight, your code doesn't appear
to depend on it.
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 16, 2012, 07:25:31 PM
 #32

Also, unless I'm missing something, I guess you can make your package almost 50% smaller
by removing the 'node_modules' folder from bitcoinjs. At first sight, your code doesn't appear
to depend on it.

The jake script which builds lib/bitcoinjs/build/bitcoinjs-min.js depends on it, although the extension doesn't use anything it lib/bitcoinjs except that file. I'll remove it when I make the package, but I'll keep it in github, since I want people to be able to see the code they're running.

I've released a fix to the Options page, so that should be all better now.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 16, 2012, 08:15:58 PM
 #33

Also, unless I'm missing something, I guess you can make your package almost 50% smaller
by removing the 'node_modules' folder from bitcoinjs. At first sight, your code doesn't appear
to depend on it.

The jake script which builds lib/bitcoinjs/build/bitcoinjs-min.js depends on it, although the extension doesn't use anything it lib/bitcoinjs except that file. I'll remove it when I make the package, but I'll keep it in github, since I want people to be able to see the code they're running.

I've released a fix to the Options page, so that should be all better now.

Thanks for the quick update!

It seems that the issue with the options page is not totally solved, though:
 (items missing in the black menu bar, vertical positioning of the bar)



But if I maximize the window, then I confirm that it shows perfectly indeed.
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 16, 2012, 08:25:03 PM
 #34

Oops, didn't realize I needed to hit "Publish changes" in the developer dashboard for it to go live. Should be upgrading to 0.1.5 now, where it's fixed.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 16, 2012, 08:35:17 PM
 #35

Oops, didn't realize I needed to hit "Publish changes" in the developer dashboard for it to go live. Should be upgrading to 0.1.5 now, where it's fixed.


Oh ok Wink v0.1.5 working fine indeed!

But... I did just run into another thing Smiley

Suddenly, the seed stretching when creating a new wallet doesn't start at all.
Progress bar stays on 0 and nothing happens. Not sure if this is something
with my browser data or something, I couldn't further investigate yet.
anfedorov
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 16, 2012, 08:43:52 PM
 #36

But... I did just run into another thing Smiley

Suddenly, the seed stretching when creating a new wallet doesn't start at all.
Progress bar stays on 0 and nothing happens. Not sure if this is something
with my browser data or something, I couldn't further investigate yet.

Ah, that was because I got a little too eager deleting code from lib/bitcoinjs. Should be fixed with 0.1.6. I'll go through it (and other parts) more carefully to cut down the size of the package.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 16, 2012, 08:48:23 PM
 #37

But... I did just run into another thing Smiley

Suddenly, the seed stretching when creating a new wallet doesn't start at all.
Progress bar stays on 0 and nothing happens. Not sure if this is something
with my browser data or something, I couldn't further investigate yet.

Ah, that was because I got a little too eager deleting code from lib/bitcoinjs. Should be fixed with 0.1.6. I'll go through it (and other parts) more carefully to cut down the size of the package.

Yep, fixed!
I'll be sure to make a small donation when I get some BTC.
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
July 23, 2012, 10:49:38 AM
 #38

This could be interesting to follow:
 http://news.cnet.com/8301-1023_3-57475180-93/new-chrome-feature-frees-web-apps-from-the-browser/
flatfly
Legendary
*
Offline Offline

Activity: 1092
Merit: 1016

760930


View Profile
August 01, 2012, 08:14:48 AM
 #39

I'm surprised this isn't getting more love.
ThomasV (OP)
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
August 16, 2012, 07:39:50 AM
Last edit: August 16, 2012, 09:25:51 AM by ThomasV
 #40

I pledge 5btc.


the delay has expired, and nobody proposed an extension that matches the requirements (although a chrome extension has been developed).
I will therefore return your plegde of 5 btc (see PM).

Electrum: the convenience of a web wallet, without the risks
Pages: « 1 [2] 3 »  All
  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!