It's an exciting time to be a JavaScript developer for Bitcoin. There are a number of JavaScript libraries for Bitcoin. Here is a comprehensive list of alternatives to Bitcore:<p>- <a href="https://github.com/bitcoinjs/bitcoinjs-lib" rel="nofollow">https://github.com/bitcoinjs/bitcoinjs-lib</a> (one of the best)<p>- <a href="https://github.com/indutny/bcoin" rel="nofollow">https://github.com/indutny/bcoin</a> (Indutny's work is found throughout Node.js and is the basis of elliptic curve cryptography in Bitcore)<p>- <a href="https://github.com/ryanxcharles/fullnode" rel="nofollow">https://github.com/ryanxcharles/fullnode</a> (ex-developer of Bitcore and now engineer at Reddit behind Reddit's crypto currency initiative)<p>- <a href="http://cryptocoinjs.com/" rel="nofollow">http://cryptocoinjs.com/</a> (disclosure: I started this one)<p>Here is an older article that I wrote about understanding how an Address is created (still valid, but using an older version of bitcoinjs-lib): <a href="http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript" rel="nofollow">http://procbits.com/2013/08/27/generating-a-bitcoin-address-...</a><p>The cool thing is that you can use test Bitcoins without any risk to learn how to program for Bitcoin. Use these faucets: <a href="http://tpfaucet.appspot.com/" rel="nofollow">http://tpfaucet.appspot.com/</a> and <a href="http://faucet.xeno-genesis.com/" rel="nofollow">http://faucet.xeno-genesis.com/</a><p>Here is a very simple wallet that I built to demonstrate how easy it is to build one: <a href="https://github.com/coinbolt/simple-wallet" rel="nofollow">https://github.com/coinbolt/simple-wallet</a><p>Finally, an open source app to test the purchasing experience of Bitcoin: <a href="https://github.com/coinbolt/catshop" rel="nofollow">https://github.com/coinbolt/catshop</a>
Looks awesome. Cryptocurrency development has seemed pretty intimidating to me but this is probably the going to be the push that gets me started supporting tip sharing features on my site.
I am wondering if anyone has some thoughts on the security of this in a web-application? Storing the private keys in a database connected to one's web-app is just a bad idea right? So than it just becomes a proxy to the Bitcoind installation via JSON-RPC? Would it be considered safe to encrypt user's private keys via their password+hash+salt the same way I'm storing their passwords?
I have a question about bitcoin in general - how do transactions on the network get verified? Does it mostly happen through miners? If so, what happens when mining reaches the point where it becomes economically worthless to everyone except a few electricity thieves? Will there just be a massive backlog of unprocessed transactions?<p>Unless I'm wrong somehow, I could see this becoming especially problematic as bitcoin becomes more popular and the daily transaction volume grows. How does the bitcoin foundation/community plan to tackle this issue?