Bitcoin Forum
November 06, 2024, 09:09:02 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3  All
  Print  
Author Topic: [ANNOUNCE] Webcoin Alpha Sneak Preview  (Read 17949 times)
Stefan Thomas (OP)
Full Member
***
Offline Offline

Activity: 234
Merit: 100


AKA: Justmoon


View Profile WWW
May 05, 2011, 08:21:09 PM
Last edit: July 02, 2011, 02:44:28 PM by Stefan Thomas
 #1

Hey everybody,

I just uploaded a little screencast as a preview of our upcoming code dump. Smiley

It's basically an implementation of a heavy-server, lightweight-client in JavaScript (Node.js on the server and jQuery in the client). Highlights:

- The server does NOT use the JSON-RPC API. The server uses node-bitcoin-p2p to connect directly to the Bitcoin network. Right now we still connect to a single trusted node because node-bitcoin-p2p lacks a full script interpreter for proper tx verification, but we're hoping to add that at some point.

- The server does NOT see your private keys. Transaction signing is done on the client side. Of course in a webapp the server can just serve you code that has you send it your private keys. But firstly, it still provides some protection against hackers, because the client HTML/JS can be hosted on a very secure static HTTP server, whereas all the dynamic node.js stuff is on a different machine. Secondly, future clients will be open-source desktop or mobile clients where the same checks apply as with the official client. (People can look at the code and make sure it doesn't send the private keys anywhere.)

Right now Webcoin is still pretty buggy, but we're planning to release the rest of the code and an official beta deployment very soon.

You can watch the video here:
http://www.youtube.com/watch?v=KTmFwnIRG9c
(Sorry for audio sync issues and poor resolution - next screencast will be better in those respects. Also, you can download it in 1280x800 here.)

Follow our progress here:
http://twitter.com/bitcoinjs
http://www.bitcoinjs.org/
http://github.com/bitcoinjs

Tip here:
13SjwsodtKsAhQwPx14s7aqKpnooeep4i5

Contact us here:
bitcoinjs (at-sign) justmoon.net

And I'm happy to answer any questions here in the thread. Documentation obviously will be forthcoming, but based on your comments here I'll be able to get a sense what you guys are most interested in and therefore what we should focus on.

I've also got major thanks to give out to these fine folks:

- [mike] for BitcoinJ - much of our code is just a port of this excellent library
- Andrew Schaaf of Bitcoin Labs for reviewing the API and letting us use some of his code
- Gavin Andresen for reviewing the API documentation and providing feedback
- booo from github for JSLint'ing and cleaning up a lot of node-bitcoin-p2p
- jb55 from github for debugging and pull requests

Massive thanks to the guys at Trucoin who have supported this project every step of the way. I'd encourage everybody to keep a close eye on them, they are working on some badass stuff! They've also agreed to provide the funding for a reference Webcoin installation.

I want to point out that this is a preview, there are still plenty of bugs cropping up. We'll post a link to a demo installation once we get it a little bit more stable.

Cheers,

Stefan  Smiley

Twitter: @justmoon
PGP: D16E 7B04 42B9 F02E 0660  C094 C947 3700 A4B0 8BF3
ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416
Merit: 277


View Profile
May 05, 2011, 08:48:12 PM
 #2

I watched the video, and browsed the source code, especially the mathsy stuff. Looks good!

Note how it's built off bitcoinj rather than the C++ code. I wonder whether the development and the addition of new features will occur faster on this codebase and the C++ codebase will stagnate somewhat by comparison.

ByteCoin
jimbobway
Legendary
*
Offline Offline

Activity: 1304
Merit: 1015



View Profile
May 05, 2011, 09:41:12 PM
 #3

Amazing...great work guys.
Vasili Sviridov
Member
**
Offline Offline

Activity: 102
Merit: 10


View Profile WWW
May 05, 2011, 09:41:59 PM
 #4

Donated Smiley Looks way cool and slick too.

1JHYtsmsGq2McwGHmWayVjVtHds8rp1R5
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1134


View Profile
May 05, 2011, 09:43:34 PM
 #5

Looks great! I've wondered for a while how practical a JavaScript implementation of BitCoin would be. Good to know modern engines are fast enough to handle it.

I took a browse through the code, I think you give BitCoinJ too much credit - it's clearly a fresh implementation, which is good. My only caveat is that if you're using the algorithms there for block chain reorgs, make sure to keep up with the latest version from svn head. I don't have re-org handling totally right yet, though it's getting closer. Also, I'm sure you're aware of this, but BitCoinJ does not implement all the rules of the network and so isn't safe to use yet - eg, it will happily generate transactions that don't meet the fee requirements and thus never confirm.

The UI is very clean. Really looking forward to seeing this develop and discussing it with you on Saturday.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
May 05, 2011, 10:29:03 PM
 #6

congrats guys.  nice work. Cheesy
dust
Hero Member
*****
Offline Offline

Activity: 840
Merit: 1000



View Profile WWW
May 05, 2011, 10:52:40 PM
 #7

This looks very promising... excellent work.

Cryptocoin Mining Info | OTC | PGP | Twitter | freenode: dust-otc | BTC: 1F6fV4U2xnpAuKtmQD6BWpK3EuRosKzF8U
Matt Corallo
Hero Member
*****
expert
Offline Offline

Activity: 755
Merit: 515


View Profile
May 05, 2011, 10:52:45 PM
 #8

Brilliant, nice work.

Bitcoin Core, rust-lightning, http://bitcoinfibre.org etc.
PGP ID: 07DF 3E57 A548 CCFB 7530  7091 89BB B866 3E2E65CE
lulzplzkthx
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251



View Profile WWW
May 05, 2011, 11:25:25 PM
 #9

Wow. That is beautiful. Very nice job, and I might try it out in a few minutes.

Very cool.

Stefan Thomas (OP)
Full Member
***
Offline Offline

Activity: 234
Merit: 100


AKA: Justmoon


View Profile WWW
May 05, 2011, 11:40:35 PM
Last edit: May 06, 2011, 12:21:50 AM by justmoon
 #10

My only caveat is that if you're using the algorithms there for block chain reorgs, make sure to keep up with the latest version from svn head. I don't have re-org handling totally right yet, though it's getting closer.

Thanks for the heads-up. Re-org isn't working yet - there was a split yesterday and node-bitcoin-p2p threw an exception. I doubt I'll be able to get it working reliably until we have a proper test harness that can simulate a split.


Note how it's built off bitcoinj rather than the C++ code. I wonder whether the development and the addition of new features will occur faster on this codebase and the C++ codebase will stagnate somewhat by comparison.

The C++ code is the backbone of Bitcoin and will remain so for years to come. I think clients in other languages will fill certain niches as well as providing a testbed for new features.


Very nice job, and I might try it out in a few minutes.

We're still re-packaging and uploading the code. Here's the status:

Edit: Updated the list below. Everything is uploaded now, but probably not enough documentation to get it running especially given how buggy it still is.

node-bitcoin-p2p: online
node-bitcoin-explorer: online, cool little demo app, start here if you want to get your feet wet
bitcoinjs-lib: online, but no docs and pretty rough around the edges
bitcoinjs-gui: online, no docs, hardcoded settings, ...
node-bitcoin-exit: online, no docs
node-bitcoin-wallet: in development

Twitter: @justmoon
PGP: D16E 7B04 42B9 F02E 0660  C094 C947 3700 A4B0 8BF3
suntsu
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
May 06, 2011, 02:51:31 PM
 #11

+1. very impressive demo. the prospect to run bitcoin in the browser to multiple computers, run it on a mobile phone and have secure wallet storage in the cloud looks very promising.

caveden
Legendary
*
Offline Offline

Activity: 1106
Merit: 1004



View Profile
May 06, 2011, 03:16:11 PM
 #12

Great job!!

Regarding the issue of the server providing you bad scripts, how hard would it be to make this code a browser extension with a configurable connection point to access the bitcoin network?
Dusty
Hero Member
*****
Offline Offline

Activity: 731
Merit: 503


Libertas a calumnia


View Profile WWW
May 06, 2011, 03:39:21 PM
 #13

Very impressive stuff, very clever implementation, hat off!

Articoli bitcoin: Il portico dipinto
Stefan Thomas (OP)
Full Member
***
Offline Offline

Activity: 234
Merit: 100


AKA: Justmoon


View Profile WWW
May 06, 2011, 07:57:59 PM
 #14

Regarding the issue of the server providing you bad scripts, how hard would it be to make this code a browser extension with a configurable connection point to access the bitcoin network?

Shouldn't be too hard. In the case of Firefox, you'd create a new extension, include bitcoinjs-gui as a subfolder and add a button that opens a tab with it using the correct chrome:// URL. You'd probably make some changes like add an options panel where people can choose a different exit node and use some other API than localStorage for storing the data.

Twitter: @justmoon
PGP: D16E 7B04 42B9 F02E 0660  C094 C947 3700 A4B0 8BF3
Hal
VIP
Sr. Member
*
expert
Offline Offline

Activity: 314
Merit: 4176



View Profile
May 06, 2011, 11:12:50 PM
 #15

Q on the video:

You received 1 btc, then before it was confirmed, made a payment of 0.1 btc. Was that payment real? When we cut to the future, the 1 btc tx had 2 confirmations, but the 0.1 had none. Both txns could have been confirmed in the same block. Do you know why that didn't happen?

Hal Finney
Stefan Thomas (OP)
Full Member
***
Offline Offline

Activity: 234
Merit: 100


AKA: Justmoon


View Profile WWW
May 07, 2011, 12:44:51 AM
 #16

Q on the video:

You received 1 btc, then before it was confirmed, made a payment of 0.1 btc. Was that payment real? When we cut to the future, the 1 btc tx had 2 confirmations, but the 0.1 had none. Both txns could have been confirmed in the same block. Do you know why that didn't happen?

Yep, the transactions are real:

http://blockexplorer.com/address/1FhXuUHaww1qkn2Mb6BURZgR3T9xoyjQtz

The 0.1 BTC transaction got confirmed seven hours later. I haven't done any small fee-less transaction lately, but around the time when we recorded the video I had quite a few cases where that type of tx took a long time to confirm.

For example this is a 0.01 BTC fee-less transaction, sent with the official client (0.3.21) that took 32.5 hours to confirm:

http://blockexplorer.com/tx/0c1a398a2534c79639fcf9416b26aad3e5f5aa51a5907d79f2f5ff4fe927a5e9
Sent: 5/4/2011 01:59
Confirmed: 5/5/2011 10:24

Twitter: @justmoon
PGP: D16E 7B04 42B9 F02E 0660  C094 C947 3700 A4B0 8BF3
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
May 07, 2011, 05:49:44 AM
 #17

justmoon, can you clarify; where are the private keys stored esp. in the situation in the future when we have smartphone, laptop, and desktop clients?
Steve
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1008



View Profile WWW
May 07, 2011, 01:17:30 PM
 #18

This is really fantastic and I'm glad you chose to use JavaScript on the server.  It's great when you have only one language to deal with on both the client and the server.  Nice work!

Also, I like the architecture of keeping all private keys on the client and performing all transaction signing there.  I think this is the right way to do hosted wallets.

(gasteve on IRC) Does your website accept cash? https://bitpay.com
LZ
Legendary
*
Offline Offline

Activity: 1722
Merit: 1072


P2P Cryptocurrency


View Profile
May 07, 2011, 01:54:11 PM
 #19

I can not find words! Cheesy

My OpenPGP fingerprint: 5099EB8C0F2E68C63B4ECBB9A9D0993E04143362
disq
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
May 08, 2011, 06:31:05 AM
 #20

looking good, also it's good to see some nodejs action in a project about bitcoin Smiley
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!