text:
bitcoind in testnet is not synchronizing
I installed bitcoind into Linux.  I'm running it in testnet mode but it is not synchronizing as it is not downloading blocks.
I have the following in bitcoin.conf:
rpcport=8332  # Needed for testnet as default port for testnet is 18332

Below is what it shows from bitcoind getinfo:
{
    "version" : 80600,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 0,
    "timeoffset" : 0,
    "connections" : 0,
    "proxy" : "",
    "difficulty" : 1.00000000,
    "testnet" : true,
    "keypoololdest" : 1392428204,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "errors" : ""
}

I have the following for ufw status verbose for the firewall:
Status: active

To                         Action      From
--                         ------      ----
8333/tcp                   ALLOW       Anywhere
8332/tcp                   ALLOW       Anywhere
18333/tcp                  ALLOW       Anywhere
8333                       ALLOW       Anywhere
8332                       ALLOW       Anywhere
18333                      ALLOW       Anywhere
8333/tcp                   ALLOW       Anywhere (v6)
8332/tcp                   ALLOW       Anywhere (v6)
18333/tcp                  ALLOW       Anywhere (v6)
8333                       ALLOW       Anywhere (v6)
8332                       ALLOW       Anywhere (v6)
18333                      ALLOW       Anywhere (v6)

8332/tcp                   ALLOW OUT   Anywhere
18333/tcp                  ALLOW OUT   Anywhere
8333                       ALLOW OUT   Anywhere
8332                       ALLOW OUT   Anywhere
18333                      ALLOW OUT   Anywhere
8333/tcp                   ALLOW OUT   Anywhere
8332/tcp                   ALLOW OUT   Anywhere (v6)
18333/tcp                  ALLOW OUT   Anywhere (v6)
8333                       ALLOW OUT   Anywhere (v6)
8332                       ALLOW OUT   Anywhere (v6)
18333                      ALLOW OUT   Anywhere (v6)
8333/tcp                   ALLOW OUT   Anywhere (v6)

Below is the content of debug.log:
2014-03-13 01:04:57 Bitcoin version v0.8.6.0-g03a7d67-beta ()
2014-03-13 01:04:57 Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
2014-03-13 01:04:57 Default data directory /home/jlp/.bitcoin
2014-03-13 01:04:57 Using data directory /home/jlp/.bitcoin/testnet3
2014-03-13 01:04:57 Using at most 125 connections (1024 file descriptors available)
2014-03-13 01:04:57 Using 4 threads for script verification
2014-03-13 01:04:57 init message: Verifying wallet...
2014-03-13 01:04:57 dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/h$
2014-03-13 01:04:57 Bound to [::]:18333
2014-03-13 01:04:57 Bound to 0.0.0.0:18333
2014-03-13 01:04:57 init message: Loading block index...
2014-03-13 01:04:57 Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
2014-03-13 01:04:57 Opened LevelDB successfully
2014-03-13 01:04:57 Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
2014-03-13 01:04:58 Opened LevelDB successfully
2014-03-13 01:04:58 LoadBlockIndexDB(): last block file = 0
2014-03-13 01:04:58 LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, s$
2014-03-13 01:04:58 LoadBlockIndexDB(): transaction index disabled
2014-03-13 01:04:58 LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2014-03-13 01:04:58 init message: Verifying blocks...
2014-03-13 01:04:58  block index              43ms
2014-03-13 01:04:58 init message: Loading wallet...
2014-03-13 01:04:58 nFileVersion = 80600
2014-03-13 01:04:58  wallet                  441ms
2014-03-13 01:04:58 init message: Loading addresses...
2014-03-13 01:04:58 Loaded 0 addresses from peers.dat  1ms
2014-03-13 01:04:58 mapBlockIndex.size() = 1
2014-03-13 01:04:58 nBestHeight = 0
2014-03-13 01:04:58 setKeyPool.size() = 101
2014-03-13 01:04:58 mapWallet.size() = 0
2014-03-13 01:04:58 mapAddressBook.size() = 1
2014-03-13 01:04:58 AddLocal(XXX.XXX.XXX.XXX:18333,1)
2014-03-13 01:04:58 IPv4 eth0: XXX.XXX.XXX.XXX
2014-03-13 01:04:58 dnsseed thread start
2014-03-13 01:04:58 Loading addresses from DNS seeds (could take a while)
2014-03-13 01:04:58 net thread start
2014-03-13 01:04:58 addcon thread start
2014-03-13 01:04:58 opencon thread start
2014-03-13 01:04:58 msghand thread start
2014-03-13 01:04:58 dumpaddr thread start
2014-03-13 01:04:58 0 addresses found from DNS seeds
2014-03-13 01:04:58 dnsseed thread exit
2014-03-13 01:04:58 init message: Done loading
2014-03-13 01:04:59 GetMyExternalIP() received [XXX.XXX.XXX.XXX] XXX.XXX.XXX.XXX:0
2014-03-13 01:04:59 GetMyExternalIP() returned XXX.XXX.XXX.XXX
2014-03-13 01:04:59 AddLocal(XXX.XXX.XXX.XXX:18333,4)
2014-03-13 01:06:52 ThreadRPCServer method=getinfo
2014-03-13 01:06:52 keypool reserve 2
2014-03-13 01:06:52 keypool return 2
2014-03-13 01:09:09 ThreadRPCServer method=getinfo
2014-03-13 01:09:09 keypool reserve 2
2014-03-13 01:09:09 keypool return 2
2014-03-13 01:19:58 Flushed 0 addresses to peers.dat  4ms
2014-03-13 01:34:58 Flushed 0 addresses to peers.dat  18ms
2014-03-13 01:49:58 Flushed 0 addresses to peers.dat  1ms
2014-03-13 02:04:58 Flushed 0 addresses to peers.dat  22ms
2014-03-13 02:19:58 Flushed 0 addresses to peers.dat  3ms
2014-03-13 02:34:58 Flushed 0 addresses to peers.dat  44ms
2014-03-13 02:49:58 Flushed 0 addresses to peers.dat  22ms
2014-03-13 03:04:58 Flushed 0 addresses to peers.dat  34ms
2014-03-13 03:19:58 Flushed 0 addresses to peers.dat  16ms
2014-03-13 03:34:58 Flushed 0 addresses to peers.dat  32ms
...
...
...
2014-03-13 13:04:59 Flushed 0 addresses to peers.dat  20ms
2014-03-13 13:19:59 Flushed 0 addresses to peers.dat  3ms
2014-03-13 13:30:47 ThreadRPCServer method=getinfo
2014-03-13 13:30:47 keypool reserve 2
2014-03-13 13:30:47 keypool return 2
2014-03-13 13:34:59 Flushed 0 addresses to peers.dat  21ms

Can anyone suggest any solutions to get bitcoind to synchronize and download the blocks?
Update on 2014-03-13:
I tried removing bitcoin.conf and running this:
bitcoind -testnet -debugnet -printtoconsole

and I got the following:
Bitcoin version v0.8.6.0-g03a7d67-beta ()
Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
Default data directory /home/jlp/.bitcoin
Using data directory /home/jlp/.bitcoin/testnet3
Using at most 125 connections (1024 file descriptors available)
Using 4 threads for script verification
init message: Verifying wallet...
dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/home/jlp/.bitcoin/testnet3/db.log
Bound to [::]:18333
Bound to 0.0.0.0:18333
init message: Loading block index...
Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
Opened LevelDB successfully
Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
Opened LevelDB successfully
LoadBlockIndexDB(): last block file = 0
LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, size=293, heights=0...0, time=2011-02-02...2011-02-02)
LoadBlockIndexDB(): transaction index disabled
LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  height=0 date=2011-02-02 23:16:42
init message: Verifying blocks...
 block index              32ms
init message: Loading wallet...
nFileVersion = 80600
 wallet                  454ms
init message: Loading addresses...
Loaded 0 addresses from peers.dat  0ms
mapBlockIndex.size() = 1
nBestHeight = 0
setKeyPool.size() = 101
mapWallet.size() = 0
mapAddressBook.size() = 1
AddLocal(XXX.XXX.XXX.XXX:18333,1)
IPv4 eth0: XXX.XXX.XXX.XXX
dnsseed thread start
Loading addresses from DNS seeds (could take a while)
net thread start
addcon thread start
opencon thread start
msghand thread start

dumpaddr thread start
Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/home/jlp/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com

Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/home/jlp/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com

init message: Done loading
dumpaddr thread stop
Shutdown : In progress...
msghand thread interrupt
Flush(false)
wallet.dat refcount=0
opencon thread interrupt
wallet.dat checkpoint
addcon thread interrupt
wallet.dat detach
wallet.dat closed
DBFlush(false) ended               1ms
StopNode()
net thread interrupt
0 addresses found from DNS seeds
dnsseed thread exit
Flushed 0 addresses to peers.dat  9ms
Committing 0 changed transactions to coin database...
Flush(true)
wallet.dat refcount=0
wallet.dat checkpoint
wallet.dat detach
wallet.dat closed
DBFlush(true) ended               1ms
Shutdown : done

As per the suggestion in the above response, I put the following into bitcoin.conf:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

and reran:
bitcoind -testnet -debugnet -printtoconsole

and got the following:
Bitcoin version v0.8.6.0-g03a7d67-beta ()
Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
Default data directory /home/jlp/.bitcoin
Using data directory /home/jlp/.bitcoin/testnet3
Using at most 125 connections (1024 file descriptors available)
Using 4 threads for script verification
init message: Verifying wallet...
dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/home/jlp/.bitcoin/testnet3/db.log
Bound to [::]:18333
Bound to 0.0.0.0:18333
init message: Loading block index...
Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
Opened LevelDB successfully
Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
Opened LevelDB successfully
LoadBlockIndexDB(): last block file = 0
LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, size=293, heights=0...0, time=2011-02-02...2011-02-02)
LoadBlockIndexDB(): transaction index disabled
LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  height=0 date=2011-02-02 23:16:42
init message: Verifying blocks...
 block index              50ms
init message: Loading wallet...
nFileVersion = 80600
 wallet                  436ms
init message: Loading addresses...
Loaded 0 addresses from peers.dat  1ms
mapBlockIndex.size() = 1
nBestHeight = 0
setKeyPool.size() = 101
mapWallet.size() = 0
mapAddressBook.size() = 1
AddLocal(XXX.XXX.XXX.XXX:18333,1)
IPv4 eth0: XXX.XXX.XXX.XXX
dnsseed thread start
net thread start
Loading addresses from DNS seeds (could take a while)
addcon thread start
opencon thread start
msghand thread start
dumpaddr thread start
init message: Done loading
0 addresses found from DNS seeds
dnsseed thread exit
connection timeout
ERROR: GetMyExternalIP() : connection to YYY.YYY.YYY.YYY:80 failed
connection timeout
ERROR: GetMyExternalIP() : connection to ZZZ.ZZZ.ZZZ.ZZZ:80 failed
GetMyExternalIP() received [XXX.XXX.XXX.XXX] XXX.XXX.XXX.XXX:0
GetMyExternalIP() returned XXX.XXX.XXX.XXX
AddLocal(XXX.XXX.XXX.XXX:18333,4)

After a long while, I got the following additional response:
Flushed 0 addresses to peers.dat  201ms
Flushed 0 addresses to peers.dat  4ms

Can anyone discern from above, what the problem is and how to solve it?

@George I installed and ran traceroute checkip.dyndns.org and I got 13 lines (hops?) back. nslookup google.com returns 11 IP addresses for google.com.  However, I tried running bitcoind in testnet mode again and this time it's downloading the blocks.  I'm not sure why.  Maybe it had something to do with me putting back an IP address into /etc/resolv.conf, which I had previously commented out.

I tried running bitcoind in testnet mode again and this time it's downloading the blocks.  I'm not sure why.  Maybe it had something to do with me putting back an IP address into /etc/resolv.conf, which I had previously commented out.

These were nameserver IP addresses.  I don't know why that would affect bitcoind.

The reason why you are not finding nodes is that there may not be many available through the traditional bootstrapping methods (many clients are installed with UPnP off, or behind firewalls and cannot accept incoming connections, and existing nodes with inbound connections can sometimes be spread thin). If you're patient enough you will eventually get a connection.
If you don't want to be patient, there is a workaround to this. You need to find the hostname (IP address or URL) of a bitcoind connected to nodes on testnet. Once you have found one, shutdown bitcoind, and edit your bitcoin configuration file (nano .bitcoin/bitcoin.conf) with the line:
 addnode=<hostname>

When you start bitcoind it will look in the conf file and attempt to each node you define this way.
You can also simply shutdown bitcoind and start with the command:
bitcoind -dameon -addnode=<hostname>

Peers successfully connected to are saved in file peers.dat so both methods work equally well, if the node you are trying to connect to is online. More info on peers.dat and how to view it can be found here (in case you would like to help a friend find a connection to testnet): How do I read peers.dat file to get a list of all peers seen or that bitcoind has connected to?


text:
How to Create Wallet using Bitcoind
How can i create a wallet for web based application for bitcoin i.e., unique address for each user along with the private key?
Does using bitcoind help me with this and how can i do this ?
I want to create wallet for each user who access a site. How can i do this?
Bitcoind getnewaddress '' command works and produces a new address but where is the private key for this address.

please see if my answer to this question also solves your problem: http://bitcoin.stackexchange.com/questions/11977/bitcoin-qt-multiple-wallets-and-transferring-between/19940#19940

The getnewaddress command will create a new private key/address and associate this with the default account, which is "" (has no name).
You can assign private keys to different accounts by naming them, and if you used:
bitcoind getnewaddress "account1"

This would create a new private key/address for the account "account1". This doesn't create multiple wallet.dat files, just different accounts.
You could store all the keys in the bitcoin core wallet and have each web users "wallet" be created as a different account in bitcoin core.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

authors: กฤตธน เวียงวะลัย

sort: votes


text:
Double spend attempts examples on testnet?
Where can I find some double spend attempts examples on testnet? Can anyone refer me some TXIDs with double spends on testnet?
EDIT: I need some example in which an outpoint was intended to be used in two different transactions, like this one:
https://blockchain.info/tx/6900440e3bf9d7177ef69b8ca8bb620cb439d9261ce54b3df564f6778547003c
but on the testnet.

What does you mean? Bitcoins cannot be double spent.

I assume you mean a situation where two conflicting transactions appeared in close succession?

A double spend wouldn't persist itself in the chain, as the longest chain will cause that double spend to be invalid.

@makerofthings7 right. I want to mark the surviving transaction as a 'double spend' attempt, just to alert the user

There are multiple temporary chains.  In that case you will need to monitor each chain and derive your use case in your app...  I don't think that the temporary chains are kept permanently and are purged over time.

Invalid transactions are not kept as part of the blockchain; they are, after all, invalid. Your best bet might be to listen to the chatter on the network (you'd require a custom-written client for this, I would imagine).

Connecting a program to the SOCKS5 proxy will be also sufficient.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
mapOrphan overflow, removed 1 tx
I'm trying to download the block chain and synchronize with the network (using Bitcoin-qt 0.8.6). I have a 2 year old wallet.dat file with a fractions worth of unconfirmed bitcoins.
After over a day downloading the blocks folder has stopped increasing in size and is at 13.4GB.
In the debug.log file the following messages are repeatedly shown.
stored orphan tx 8d724a...ad48cfb140 (mapsz 10001)
mapOrphan overflow, removed 1 tx

It will then add another orphan transaction and then remove another one from the pool. The pool stays at 1001.
Should this be happening?
The message in the client says it has processed 0 of 280295 (estimated) blocks of history and that I am 162 weeks behind.

Just as a check: what version of Bitcoin-qt are you using?

I'm using the latest version, which is currently 0.8.6. I've edited the question to clarify this.

First of all, backup your wallet in a couple of places...
If you are in linux, move your ~/.bitcoin to ~/.bitcoin_old, once you've done that start bitcoin-qt, wait another day for the whole blockchain to download. This time it should be working OK.
Replace the wallet in ~/.bitcoin with your wallet in ~/.bitcoin_old and resync.
Remember to have your wallet.dat saved before you do anything (I would have 2 or 3 copies in different places (usb, external HD, etc ...)

I'm using Windows. Should I see the number of blocks processed increase as it downloads the block chain. Tried this a few times now and it always stays at 0 processed. Delete blockchain and start again seems to be the standard 'turn it off and turn it back on' response and I'd like to know if it's working in less than a day.

As I stated, I would rather recreate the whole thing, not just the blockchain, I don't know what is the bitcoin folder in windows, but is should be something similar. Anyway, you should see the blocks increasing, it shouldn't stay in 0. Do you have any connections to the Bitcoin network? I think it is the rightmost icon in the bottom right of the window. If you don't, check if your Bitcoin ports are reachable from the Internet.

I had 20+ connections. I could tell it downloaded the full blockchain from the file size, but the number of processed blocks always stayed at zero in the UI.

Did you recreated it from scratch? I had corruption problems and the like, once I erased the blockchain and downloaded it again but the process hang on a certain block. All my probles where solved when I removed the whole directory and started from scratch.

I just deleted everything in C:\Users\Me\AppData\Roaming\Bitcoin except wallet.dat then started up BitCoin-qt. Blocks started to be processed straight away. I'm still 136 weeks behind, but my BitCoin are confirmed and it's obviously not stuck like before.


text:
How to tell who mined a bitcoin?
If the Bitcoin algorithm was broken and someone started spitting out blocks one after the other through their otherworldly space computer, could it be detected that the same miner was busting all the blocks? Follow-up question: How does the network strength or hashing power get computed? By just assuming the required H/s for the current technology?

If bitcoin algorithm was broken and some one started spitting out blocks one after the other through their other worldly space computer, could it be detected that the same miner was busting all the blocks?

Not necessarily. There's not enough data recorded to conclusively show that the same person is behind the new blocks, but people would figure it out: The block generation rate and network difficulty would shoot up without anyone knowing why. People could try to trace where the mined bitcoins are first seen and where they go. And you could trace the first IPs known to report the blocks: if your interplanetary computer always communicates over one IP, it might get noticed as something that has a lot of power behind it (be that a pool, supercomputer, etc.).
If that happened, the value of Bitcoin would probably drop as people realize that we'd be vulnerable to a 51% attack at the hands of an unknown party.

Follow up question: How does the network strength or hashing power get computed? By just assuming the required H/s for the current technology?

The difficulty is known (since it's calculated based on all the previous blocks), and the block generation rate is known (since you can look at how often blocks are coming in). From these, it's easy to estimate the network's total hashing power.
It's like having a lot of people throwing weighted coins (such that 1 millionth of the time it comes up heads) and telling you when they hit a heads. If one such "heads" is reported every 10 minutes (600 seconds), you can make a very accurate estimation of how many times per second the coins are being flipped. In this example:
(1,000,000 flips/heads) / (600 seconds/heads) ~=
1,667 flips/second

The network difficulty is how you adjust this 1,000,000 figure so that the 600 figure stays consistent as the network's total hash power (1,667) changes.

Q: If bitcoin algorithm was broken and some one started spitting out blocks one after the other through their other worldly space computer, could it be detected that the same miner was busting all the blocks?
This needs to be less "other worldly" worded and more plainly stated.
Q: How does the network strength or hashing power get computed? By just assuming the required H/s for the current technology?
Short answer: Yes.
Long answer:
First we need a definition of "power": The time rate at which work is done or energy emitted or transferred.
The work is a hash thus the power is: hashes/time. Currently the network power can be expressed in peta hashes per second or PH/s.
For a given difficulty is is easy to compute the average number o hash attempts that must be made to satisfy the difficulty. The average is all we need because there are a large number of blocks that are hashed.


text:
Transaction change calculation
I'm confused about how exactly I should compute a change for transactions.
Say, for a given address I have 4 unspent outputs containing 2 BTC each and I want to send 5 BTC to other address.
Here's what I do:

Find 3 outputs needed so the total is 6 BTC
Now, what should the change be? 6-5=1 or 8-5=3?

The change is anything that's left over when you take the outputs you'll be spending, subtract the value of the transaction sent, and subtract fees. Since transactions should be as small as possible, as few outputs as needed will be spent. In your case, 3 outputs will be spent, no fee is in place, so the following new outputs will be created:

5 BTC to recipient
1 BTC to a change address.

If none of your transaction outputs is large enough to be the sole input, Bitcoin Core's coin selection algorithm does multiple rounds of randomly adding unspent transaction outputs until their total is greater than or equal to the amount you are trying to transfer. Finally, it selects the combination with the least resulting change.
In your example, it would use a combination of three of your four outputs, as 6BTC is more than the required 5BTC.
Therefore, you would end up with one of the four original 2BTC transaction outputs, and the change of your transaction as a new transaction output with 1BTC.

Also see What is the coin selection algorithm?


text:
Limited, but not fixed multisignature transactions, is that possible?
Is it possible to have a multisignature transaction where N signatures are required and their inputs are limited in value, but not fixed?
The use case would be for a pooled acquisition, where the total amount to be spent is just roughly estimated, but not know. Every participant wants to just specify a maximum value to be used (probably the same for everybody).
The exceeding money, if any can go to a shared account or be returned to each of the "bakers".

Please give your question a more descriptive title that actually contains information about the content.

Restrictions on the btc value of a transaction cannot be enforced via a transaction script. The btc value is not a property accessible from a script.
I think it would be possible though to create a protocol on top of bitcoin which does have such properties.


text:
How do on-line wallet or bitcoin exchanges usually secure their private keys?
I suppose they're kept encrypted as not to do so would be the equivalent as saving plaintext passwords. I heard most of them keep a percentage of the funds in cold storage, but then isn't it inconvenient for the users in case a lot of them want to withdraw funds? how to manage those conflicting interests? Also how is the actual key being generated? where does the source of randomness come from?

To support timely settlement services outside an exchange's platform, around 1/12 to 1/16 value of an exchange's cryptocurrency value will probably need to be placed in hot storage. The rest will be in cold storage. Conceptually, fractional hot to cold storage ratios are analogous to fractional reserve banking and PBX trunk sizing.
The cybersecurity ante for the "state-of-the-practice" for exchanges and payment processors business as usual needs to be upped.  Don't even think about just a bunch of keys (JBOK) management. Hierarchical Deterministic (HD) technology is really the only viable approach to minimize key management complexity that can eat you alive. Insider threats will be one of the largest attack surfaces for exchanges. Employee background checks will be inadequate. Multisig support is critical to ensure internal separation of duties to prevent conflicts of interests.
For concise Dash examples about how to apply BIP 32/38/44 to altcoin key synthesis, and address generation (for both public and private extended keys) see answer URLs reference by BIP 38 Implementions for Altcoins?, in particular see this recent Wiki Posting.
Supporting multisig signature capability will be critical for minimizing the exposure of an exchange's cold and hot wallet assets. Suspect the libbitcoin multisig transaction composition interface will work for numerous altcoins, since I've tested it for BTC and TEST coins a few months back. However, still need to validate that bx multisig interface works with the newly supported altcoin "version" interface.  Extra validation work is required to ascertain which altcoins bx can successfully create version 1 text formatted multisignature transactions, and which altcoin network consensus mechanisms no kidding truly support multisig blockchain capabilities.
Multisig technologies alone do not prevent out-of-band multisig workflow spoofing attacks... ask BitP++. Suspect exchanges and payment services practicing "due diligence" and "due care" will eventually learn they must also deploy expensive to design/deploy/sustain controlled interface CDS technologies.

What do you mean by "JBOK key management"? specifically what does JBOK stand for?

Not a standard phrase, but they mean "just a bunch of keys", a non deterministic collection of individually generated random ECDSA private keys.

Most large services use a split wallet system where the money is divided into a small "hot" wallet which does day to day activity, and a "cold" wallet which stores the bulk of the money offline and behind physical security. A cold wallet can be both physically protected, and have divided spending responsibility between multiple parties to avoid internal theft. This has the advantage of minimizing losses if the hot wallet is compromised, but will delay extremely high amounts of rates of withdraws as there is a human element (possibly several) in the chain. There is a trade off with the amount of money you have in which side of the split, more in the hot wallet has a higher risk of internet directed thefts, but higher convenience.
Most companies don't disclose how they make their keys, but one can assume they are hardened BIP32 child keys, or individually produced Bitcoin addresses made on a dedicated system. Usually in this sort of setup everybody will use the standard RNG /dev/urandom which is a cryptographically secure random number generator designed explicitly for this task.

I don't see how individually produced private keys will be scalable in any ways, so the hardened BIP32 child keys option is probably the way to go. The thing is how to securely store the private keys? I'm thinking maybe to store an encrypted private key into a database and while running decrypt and store it on memory only. Of course in case of a breach that will not be any more secure as the key will still live on memory and a simple memory dump will do it. But at least it is better than to have it sitting there in plaintext as an entry inside a database, right?

You can produce millions of them ahead of time if you need. With a database loading one key you expose all of them to the host computer which is probably undesirable, but you would want the computer signing to be air gapped anyway. Often people talk about printing literally a key on a piece of paper and storing it in a bank, though that is vulnerable to cellulose softening and toner detachment (you lose your money if it gets wet or burned). Maybe that's within the threat model, I don't know. You don't want to be making systems to complicated that people easily make mistakes using it.


text:
Get private key from BigInteger
I have a BigInteger that represents a private key. How can I get that private key as a base58 encoded string? The following pseudo code does not work properly:
base58.encode(bigInt.toByteArray)
// yields a string that differs from given bigInt's private key

UPDATE
def fullDoubleSha(bytes: ArrayOfByte) = {
  val digestSha = MessageDigest getInstance "SHA-256"
  digestSha digest digestSha.digest(bytes)
}

def getPrivBytes(key: BigInteger) = key.toByteArray match { case keyBytes =>
  val res = if (keyBytes.head == 0) keyBytes drop 1 else keyBytes
  new Array(32 - res.length) ++ res
}

def privBytesToWif(vs: ArrayOfByte) = {
  val rawPrivKey = Array(0x80.toByte) ++ vs
  rawPrivKey ++ fullDoubleSha(rawPrivKey).take(4)
}

The base58 private key format includes an SHA256-based checksum.  See this answer for details (disregard the part of the question where the private key itself is the SHA256 hash of some other data).


text:
Why I obtain this error trying to compile this wallet?
I am not yet a Linux guy and I am going crazy trying to install the MJ Coin wallet compiling it on Ubuntu 14.04.
This are the only provided instruction to install it:

Debian
First, make sure that the required packages for Qt5 development of
  your distribution are installed, for Debian and Ubuntu these are:

apt-get install qt5-default qt5-qmake qtbase5-dev-tools qttools5-dev-tools \
    build-essential libboost-dev libboost-system-dev \
    libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
    libssl-dev libdb++-dev

then execute the following:
qmake
make

So I have installed the dependencies using apt-get and it seems to me that I have no problem.
Then I perform qmake and I obtain the following output:
andrea@andrea-virtual-machine:~/Documenti/wallet/MJcoin$ sudo qmake
Project MESSAGE: Building with UPNP support Removed plural forms as
the target language has less forms. If this sounds wrong, possibly the
target language is not set or recognized. Removed plural forms as the
target language has less forms. If this sounds wrong, possibly the
target language is not set or recognized. Removed plural forms as the
target language has less forms. If this sounds wrong, possibly the
target language is not set or recognized.
andrea@andrea-virtual-machine:~/Documenti/wallet/MJcoin$

Finally I execute the make compile command but I obtain the following error message:
.........................................................................
.........................................................................
.........................................................................
cd /home/andrea/Documenti/wallet/MJcoin; /bin/sh share/genbuild.sh
/home/andrea/Documenti/wallet/MJcoin/build/build.h g++ -c -m64 -pipe
-fstack-protector-all --param ssp-buffer-size=1 -O2 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector -fPIE -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DQT_DISABLE_DEPRECATED_BEFORE=0 -DUSE_UPNP=1 -DSTATICLIB -DHAVE_BUILD_INFO -DLINUX -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -Ibuild -Ibuild -o build/net.o src/net.cpp src/net.cpp:19:32: fatal error:
miniupnpc/miniwget.h: File o directory non esistente  #include
<miniupnpc/miniwget.h>
                                ^ compilation terminated. make: *** [build/net.o] Errore 1

The enghlish translation of the error output is: File or directory don't exit #include miniupnpc/miniwget.h
What could be the problem? How can I try to fix it?

Like it says, you are missing the header file miniupnpc/miniwget.h.  Usually this means there is a required library that is not installed.
Ubuntu has the convenient tool apt-file for finding which package provides a particular file.  Install the apt-file package (apt-get install apt-file) and run apt-file update to install the file list.  Then you can do
$ apt-file search miniwget.h
libminiupnpc-dev: /usr/include/miniupnpc/miniwget.h

So you need to install the libminiupnpc-dev package.
Since the documentation doesn't seem to mention this dependency, you may want to report this as a documentation bug to the MJcoin developers.


text:
What does "Confirmed Exchanged" and "Estimated Exchanged" mean?
I am a newbie here, I wanted to know what does "Confirmed Exchanged" and "Estimated Exchanged" mean while fetching a user's Transaction history?
example return that I got from an API as user stats:
{
    "confirmed_exchanged": "0.01432604",
    "estimated_unexchanged": "0.01875723",
    "transaction_history": [
        {
            "amount": "0.04475755",
            "date": "2014-01-17 18:15:01+00:00",
            "donation": 0.0,
            "fee": 0.0
        },
        {
            "amount": "0.00326109",
            "date": "2014-01-18 16:50:02+00:00",
            "donation": 0.0,
            "fee": 0.0
        },
    ],
    "user": xx12,
    "username": "tester"
}

Thanks in advance.

Fetching a user's transaction history from what? Using what?

Sorry about that, I have updated the question, the sample json is the response for user stats from an API.

That's not helpful. API of what? We have no idea what you're talking about unless you tell us. (A Google search for "estimated_exchanged" returns nothing. So I'm not sure how we're supposed to know what you're talking about.)

I'm guessing this is the output of a mining pool that permits people to mine one currency and get paid in another. Most likely, "confirmed_exchanged" means the total amount the user has actually exchanged. And most likely, "estimated_unexchanged" is the amount the user has not yet exchanged, estimated because the exchange rate can change.


text:
What are multi-signature transactions?
What are multi-signature transactions, and why might they be used?
Also see:

How does one make multisignature transactions with the bitcoin client?
How can I create a multi signature 2-of-3 transaction?

A multi-signature address is an address that is associated with more than one ECDSA private key. The simplest type is an m-of-n address - it is associated with n private keys, and sending bitcoins from this address requires signatures from at least m keys. A multi-signature transaction is one that sends funds from a multi-signature address.
The primary use case is to greatly increase the difficulty of stealing the coins. With a 2-of-2 address, you can keep the two keys on separate machines, and then theft will require compromising both, which is very difficult - especially if the machines are as different as possible (e.g., one pc and one dedicated device, or two hosted machines with a different host and OS).
It can also be used for redundancy to protect against loss - with a 2-of-3 address, not only does theft require obtaining 2 different keys, but you can still use the coins if you forget any single key. This allows for more flexible options than just backups.
It can also be used for more advanced scenarios such as an address shared by multiple people, where a majority vote is required to use the funds.
Multi-signature transactions are often conflated with BIP 16 and 17. In fact they are not directly related. Multi-signature transactions have been supported by the protocol for a long time; but implementing them would require a special output script.
What BIP 16/17 do is offer a standard way to encapsulate a script within an address; this makes it easier to use advanced scripts, with the most prominent example being multi-signature transactions.

And for the parts that are missing yet:
Needed in the client yet are "RPC calls to implement BIP 10 or something like it"

http://bitcointalk.org/index.php?topic=82213.msg906833#msg906833
http://en.bitcoin.it/wiki/BIP_0010

So as of now multisignatures are not supported and non-standard.

@Jus12: They're supported (Bitcoin Core raw transaction API) and AFAIK standard.

Multisig transactions are indeed standard, you can see several of them being created on the blockchain. To build one easily see: http://dev.blockcypher.com/#multisig

I believe Bitcoin Core only supports up to 3 players and that threshold signatures would circumvent this limitation. Am I right?

Janus: up to 15 now.

Enjoy!
"Bitcoin Faucet Hacked"
How a future version of the Faucet will work to prevent a similar incident:

http://gavintech.blogspot.com/2012/03/bitcoin-faucet-hacked.html

"BIP 16 / 17 in layman's terms"

http://bitcointalk.org/index.php?topic=61125.0

"The Truth behind BIP 16 and 17"

http://bitcoinmedia.com/the-truth-behind-bip-16-and-17/

Multisig have lots of uses, wallet sharing, increased security and escrow to say the first that come to mind.
Increased security: 2FA purposes or even help provide services like double spend prevention and instant confirmation.
If you want to try an open source wallet with all these features in action try https://greenaddress.it
It allows you to smoothly create P2SH Multisig transaction but with a simple intuitive interface that hides all the complexity.

An example applying a Multi-Signature transaction in the hospitality industry!
The transactions of this form demand the assumption that from N public keys which remain stored in the Locking Script, at least M (N≥M) from these must create valid signatures, which are found on Unlocking Script, in order the amount of bitcoins to be transferred to the wallet and the bitcoins to be spendable afterwards.
This procedure of authentication essentially is happening for keeping the funds secure which are stored in a Multi-Signature address of a digital wallet and not to be feasible to be spent by anyone who has access to the wallet. This procedure depends on the scheme M-of-N. Therefore, in order someone who wants to create a Bitcoin Multi-Signature address needs the combination of several private keys. This specification is visible also in the morphology of this kind of addresses as these addresses are not starting with the number 1 as usual, but with number 3. Let’s see an example for clarification.
Imagine that the last class of a high school in Thessaloniki (Greece) wants to travel for educational purposes for one week (6 nights) to Barcelona (Spain). The school is going to stay in the “Hotel X ”. The hotel accepts bitcoin payments and has a policy that for charges above 5000 euros ≈ 9,29 BTC (26/9/92016) the funds must be stored in a Multi-Signature address owned by the hotel. The school is going to pay for the reservation 10,800 euro≈ 20,06 BTC in total (60 students * 6 nights * 30 euros/night). So, the wallet of the school has to form a Multi-Signature transaction in order to pay.
The administration of the hotel has decided  that in order the hotel to take advantage of the funds above 5000 euros the transaction must be signed at least by 2 out of 3 signatures of the below authorized recipients :
•   Mary (Financial Controller)
•   Pedro (IT Administrator)
•   Adriano (CFO)
So, the scripts of this special transaction will look like:
•   Locking Script

Scheme 1: Locking Script of a Multi-Signature Transaction
•   Unlocking Script

Scheme 2: Unlocking Script of a Multi-Signature Transaction
•   Validation Script

Scheme 3: Validation Script of a Multi-Signature Transaction
Finally, in our example Pedro and Adriano have to sign with their private keys in order the hotel to be able to spend in the future the amount of bitcoins stored in this transaction.
*All the names used incidentally for the purpose of the example.

authors: บุญเพ็ง แก้วมงคล


text:
What does the FBI think about Bitcoin, in brief?
Also related: The context of FBI involvement with Bitcoin
The FBI document regarding Bitcoin that was leaked in May 2012 is very long. Is there a brief summary of the most important points somewhere?

The most interesting part of the document isn't that long, as half of the pages explain some terminology and how Bitcoin works.
The main points made are:

Bitcoin is the world's first decentralised currency, thus it is hard to audit and control it
Bitcoins can become popular among criminals as they offer a lot of anonymity
Bitcoins can be used to commit money laundering
It is very likely that people wanting to steal Bitcoins will target third-party services (such as exchanges), and users' wallets
It is hard to link user's identity to their Bitcoin address, but can be quite easy when they convert their Bitcoins into a fiat currency

There are also a couple other, smaller points made and it is generally a good read. As a side note, the paper appears to have a small mistake on page 4 - listing Bitcoin's lowest price since the bubble as 4$, whereas it was as low as 2$ at some point.


text:
How can I find out if an e-wallet service uses a fractional reserve system?
A comment on this answer pointed out that the total amount of bitcoins in circulation could appear to go above the limit of 21m if wallet services use a fractional reserve system. However, in that scenario you actually no longer have bitcoins - instead, you have some kind of bitcoin-credits that rely on a specific 3rd party to be used.
If my understanding is correct, it should be possible to determine through the blockchain whether a given e-wallet service:

Definitely isn't using fractional reserves for a given account, or
Might be using fractional reserves

How would this be done? Has anyone summarised this information for a selection of e-wallet services?

FYI - https://bitcointalk.org/index.php?topic=93158.0

There are two types of EWallets, hosted (shared) EWallets and hybrid EWallets.
With hosted EWallets, all the coins are shared (all customers funds are combined) in the host's EWallet.  Examples of this are Paytunia.com, Instawallet.org, EasyWallet.org, WalletBit.com,  as well as the online wallets with the exchanges, such as MtGox.com, Bitfloor, etc.
Hybrid EWallets are those that operate locally either from the browser (using Javascript) such as how Blockchain.info/wallet and StrongCoin.com operate or from a client like how Electrum (Windows, Mac, Linux, Android) or BitcoinSpinner (Android) operate.
With a hybrid EWallet, the private keys are kept locally but transactions route through the EWallet provider.  To protect from loss, the browser-based hybrid wallets store an encrypted copy of the data from the wallet online with the EWallet provider.  The provider doesn't have the password to decrypt the wallet stored with them and thus has no potential to spend your coins stored with them.
So your risk of fractional reserve exists only with the hosted EWallet providers.
One method these providers could prove they are not a fractional reserve would be to submit to sporadic financial audits.  None do this today.
Another option would be for the EWallet provider to treat each account as if it were a standalone wallet.  That way the blockchain would verify that the coins received have not been spent.  No EWallets operate this way either.
When multisignature becomes functional, this will likely be a security feature available from one or more EWallet providers.

Also, the terms and conditions from the EWallet provider will specify what the service takes responsibility for.  To protect themselves, most that do provide a terms and conditions will declare no liability from losses due to theft (hacking) either explicity or under a force majeure disclaimer.  i.e.., you have bigger things to worry about than fractional reserve.

In fact, with a fractional reserve, fewer of your Bitcoins are at risk of loss through electronic theft. The wallet service can also make money by loaning your Bitcoins out, allowing it to provide a better service, serve fewer ads, be less likely to feel the need to run off with your Bitcoins and disappear, and so on. It's the services that you can't possibly figure out how they manage to be profitable that you need to worry about -- there whole business model may be to disappear as soon as they hold maximum deposits.

@DavidSchwartz: I would much rather have the eWallet 1. Be open about what they're doing, and 2. Give me a choice whether I want to pay a fee for his services or let him borrow out my money.

@MeniRosenfeld: You may be the only one, and it's hard to build a business model around that. Most people will just go to the service that charges the least. But I definitely agree that these services should be open about what they're doing. Unfortunately, not a lot of people see to care about that either, which forces a race to the bottom.

@DavidSchwartz: I'm the only one that wants a choice? Well, implicit in my comment is that I would also choose to pay a fee in most circumstances, and in that I may be a minority - but that's irrational, one should prefer to loan out his funds explicitly to someone who will give much better rates, more than the fees spared.

@MeniRosenfeld: Perhaps in the future, but not today. Right now, the interest is barely worth the fees spared -- especially when you factor in the risk associated with swings in the value of Bitcoins. And I very much worry about a race to the bottom in these wallet services and the possibility that many of them are scams waiting for high enough deposits to disappear with. At least with a fractional reserve, there's an incentive not to walk away -- one would lose a profit stream.

@DavidSchwartz: It's the other way around, right now interest rates of Bitcoin loans are huge. You could get 5%/month in a rather safe loan, that's much higher than what it costs to provide eWallet services. And what does currency volatility have to do with it? We're talking about dealing with BTC only.

Let us continue this discussion in chat

Verifying that an eWallet doesn't do fractional reserve requires collaboration on its part (and its users), and I hope in the future most will collaborate this way.
Every user will choose a unique identifier (which can be unrelated to any other identifying detail if they wish, or not if they want their ownership to be known publicly), and the eWallet will have a public list of the balance of each identifier, rounded to improve anonymity. From this the total amount deposited can be calculated, and each user can verify that his own record is on the list to make sure he's not underreporting. Once in a while the eWallet will move all coins in a single transaction to address(es) provably his own, this way he can show he has all deposited coins under his control.

Isn't what you describe pretty much already available if the eWallet service gives you your own receiving address and leaves the coins against it? The balance against the address can be calculated from the blockchain (such as using blockexplorer).

@HighlyIrregular: Yes, but that requires the eWallet to keep the coins of each customer in the receiving address. This may be at odds with how the eWallet handles the coins, e.g. hot/cold wallet separation, green addresses etc.

I don't think there is any need to check this, since there is no reason to pool the money if you do not want to do a fractional reserve in order yield interest.

@hstoerr: No reason for the user or the eWallet? This is demonstrably false for both.

@MeniRosenfeld Care to share those reasons here: http://bitcoin.stackexchange.com/q/4199/1595 ? I simply do not see another compelling reason for the e-Wallet provider.

@hstoerr: Oh, that's what you talked about. I already answered it in my reply to Highly Irregular. I'll see if I can add more detail in the linked question.

Every eWallet that pools the users money will do a fractional reserve since there are only two compelling reasons to do so: either to re-lend the money at an interest, or to run away with it at some point.

In fact, I am amazed to learn that the users allow the eWallets to replicate traditional banking structures - in times when the more obvious problems with this are omnipresent in the media. I'd never give up control of my money like that.


text:
Where on the web can I find out the current total blockchain size?
This question partially asked the same thing, but only got a response for viewing the size when you have the client installed.
I want to know the total blockchain size without having to install the client and download the blockchain.

Blockchain.info has many useful stats.
http://blockchain.info/charts/blocks-size

They should add annotations to that graph, like Google Trends. The first annotation in May would of course be satoshiDice.

So 1847MB is the current total size? For some reason I thought it was over 2GB.

That reports the size of the data stored, not including headers and indexes.
Right now, blk0001.dat is at its max, 2.1 GB, blk0002.dat is 0.5 GB, and blkindex.dat is at 0.9 GB.   So a total of about 3.5 GB.


text:
What are the risks of in-person private currency exchanging for travellers?
This answer suggests popularity growth of people privately exchanging bitcoins for a physical currency, in person. This might occur in "coffee shops, hotels, hostels, hackerspaces, etc".
An example would be 2 travellers meeting in a hostel in, say, the UK. Traveller A has just been to the USA and traveller B is about to go there. Traveller A has US$200 that's no longer needed, so he agrees to exchange it for some of traveller B's bitcoins.
Definitely assume traveller B has a mobile phone or other internet access to perform the transfer, but please consider both cases of traveller A having and not having similar access at the time.
What are the risks of such a deal, and what can be done to improve the chances of a successful deal?

I think that "personal safety risks" are outside the scope of this website, so I'll mention the technical risk - double spend. If you don't wait for one confirmation, a double spent attack can be performed, and you won't get your Bitcoins.
Luckily, you'll only have to wait five ten minutes on average for a block to be found (blocks are one every ten minutes, so the expected delay until the next block is five minutes).
After one confirmation, it's very unlikely such a small transaction will be double spent. If you want to increase your security, wait another block or two.
Traveller A doesn't need to have internet, he can use a Pimpcoin-like card (link NSFW), with SMS notifications of incoming transactions.

I think the expected time until the next block is always 10 minutes, not 5.  Are you thinking that the last block is probably 5 minutes ago, so we're "half way to finding the next one"?  It doesn't work like that.  Also, I think we were meant to also consider the case where A doesn't have a phone so won't get the SMS.

@ChrisMoore: Right, it's definitely 10 minutes. Block finding time is a memoryless distribution.

PS it's very unlikely that a small transaction will be double-spent even after 0 confirmations.

Right @ChrisMoore, my bad.

Also, without any internet or SMS, you can't really reliably accept Bitcoin ... they could always be fake, in whatever form they're received. You can't rely on the other party's computer - he can show you a fake BlockExplorer.info clone on his computer that lists the transaction as "confirmed", even though he never broadcast it.

I made a separate question about the expected time between blocks, which led to an interesting discussion.  http://bitcoin.stackexchange.com/q/3909/659

There are capital controls and anti-money laundering laws that are different for each country.  The tourist might want to become aware of what the laws are.

Further to @ripper234's comment "he can show you a fake BlockExplorer.info clone on his computer that lists the transaction as "confirmed", even though he never broadcast it. ", it's also a possibility that any other software or websites viewed on someone's computer might be faked. This could include the Bitcoin Client itself (even if it looks like it's working). This is a risk for Traveller A for the situation described in the question.
Additionally, assume that any details entered into someone's device are being logged, so don't enter passwords or personal details that you don't want to share.
Traveller A really needs to have some kind device of their own they can use to confirm that the transaction is genuine.


text:
What does 889271 represent in the blockchain index leveldb databases?
I am opening up the blockchain index databases with leveldb, and I am seeing a repeating number, 889271, at the start of every value entry...
I am attempting to decipher the following key value pair
'b'e2bf047e7e5a191aa4ef34d314979dc9986e0f19251edaba5940fd1fe365a712 = 889271000b010008010000000000000000000000000000000000000000000000000000000000000000000000d9ced4ed1130f7b7faad9be25323ffafa33232a17c3edf6cfd97bee6bafbdd97b9aa8e4ef0ff0f1ecd513f7c

Using
https://bitcoin.org/en/developer-reference#block-headers
https://en.bitcoin.it/wiki/Bitcoin_Core_0.11_(ch_2):_Data_Storage

I believe i have everything deciphered properly, except for 889271
Any chance someone can confirm what 889271 represents?

You are thinking of 889271 as a decimal number; it is not. It is a hexadecimal value that just happens to be composed of numeric digits.
That is the Variable Sized Integer serialization of the version number of the Bitcoin Core client that created that database entry.


text:
PHP script to create private key & public address
Does anyone have an PHP code that can do what is done on this website:
https://www.bitaddress.org
Namely create private keys and associated public addresses?

For Python: http://bitcointalk.org/index.php?topic=84238

I enjoy using this package :
Uniform Server Key Generator
And with it running, you can just execute : openssl_pkey_new(); to generate a private/public key set.


text:
What are some of the things that would make bitcoin better and more accepted?
More trade... more trust... more btc 'banks'...? It is such a great system. It just needs to go main stream.
Any thoughts?

A killer feature that can be matched by no other payment system. Perhaps something like a Bitcoin swatch: http://YouTube.com/user/MultiBitOrg. The MultiBitMerchant application (still a prototype) implements this. Follow it on GitHub here: https://github.com/gary-rowe/MultiBitMerchant

Adoption is limited because of a chicken and egg program. People don't accept bitcoins because nobody else accepts bitcoins.
Normally, the way you solve a chicken and egg problem is to get the cycle going by finding a niche in which the technology works so much better than other available solutions that adoption is possible even without a critical mass -- that is, by finding a killer app. The problem with bitcoin getting started through these kinds of mechanisms is the lack of stability in the price of bitcoin relative to national currencies.
For a while, speculation and investment were the killer apps that were driving bitcoin. The problem is that if this is the driving force behind a commodity, there will inevitably be bubbles and crashes. These drive down the use of bitcoin as a medium of exchange. The adoption cycle only works if the killer app drives widespread adoption, it fails if the killer app works against it.
So that's where we're stuck. But there are a lot of really smart people working on the problem. They're working on getting ATM machines to sell bitcoins, adding the ability to accept bitcoins into widespread point-of-sale systems, solving the problem of having to wait for confirmations, and so on.

Ideally Bitcoin needs a functioning economy, ie. merchants to spend coins with, and a demand to hold BTC in order to buy those merchant products.
Since the "killer-app" so far has been investing, I think we need more financial ingenuity with BTC financial products. I'd buy a Bitcoin Bond or CD, or pay to receive an MtGox dividend. One idea might be to start a Bitcoin fund which invests in (real) high dividend companies. Some inital BTC would be sold to buy the high dividend stocks (eg. on margin), but the dividends would be repaid to the investors in BTC. After a while, net BTC holdings should go up. Probably a minefield of legal issues with this though Any lawyers want to comment?

A killer feature is the ability to send BTC to the other end of the globe almost instantly without (or with symbolic) transaction fees. There is nothing else that does this and this is huge. Sending money is not such a big problem inside USA/Canada and that's why, I think, it's not as obvious for most of the BTC users. For legal entity it's a bit easier, but say that I'm selling something on eBay and I've got a buyer from the USA. What are the ways to receive payment?

Cheapest way is to send cash through mail. Of course, this is also the most unreliable way and not feasible for any significant amounts. This is the cheapest option, but not the fastest, and there are no guarantees that you'll get the money. You can pay extra for extra guarantees, but post office doesn't endorse sending money through mail. I'm citing this only for the sake of completeness; you probably don't want to do this.
PayPal is probably the fastest and cheapest viable option: $0.30 USD plus 1.9%-2.9% of the amount received. However, in my country, PayPal has enabled receiving funds only in the last year. There are still many countries where PayPal doesn't have full presence. Also, you have to be at least 18 years old and have a Visa credit card. There is also a risk factor with PayPal; they can hold your money if they suspect anything and you're at their mercy.
Western Union is probably the cheapest alternative if you don't have PayPal; starts with 10% fee for small amounts, and falls to 4% for large amounts (>$1000). Also, both parties need to physically visit Western Union subsidiary.
And finally, there's wire transfer. Wire transfer is much cheaper inside the USA, but USA banks charge pretty fat fee for international transfers - usually around $25. Additionally, receiving bank charges extra. In my case it's 10 EUR. Since fees are fixed, this is usually a good way to transfer larger amounts and pretty bad way to transfer small amounts. You need foreign currency account. Depending on the banks involved, it takes from 1 to 5 days until you receive money.
If the buyer is in the USA, he can write a check and mail it. It usually takes up to a week to receive mail (overnight carries additional fees); then I have to go to the bank and cash the check. It takes my bank few days up to two weeks to deposit a check to my foreign currency account, and an additional day to transfer it to my account so that I can cash it. For sending money to USA, checks are not an option; the rest of the world doesn't use checks as much, and it would be pretty hard to cash my check in the USA bank. This is the slowest option, and some banks charge extra fees (fixed or percentage), some don't charge anything, some don't even want to cash the check. If sender's bank has account in receiver's bank, this usually takes only a few days. Otherwise, all bets are off.
If you're a legal entity (business), you have one more option - you can accept credit cards. This is the only no-fuss option for the buyer. In my country, bank fees start with 2-2.5% for very large companies, 4.5% for small companies, and go up to 6%. There are additional startup fees and monthly/recurring fees for payment processors and so on which can drive costs up. You get your money once a month, 1 month or more after the payment itself.

So, in summary, international money transfers are pain in the ass. PayPal (and similar services) are probably the best option. If you're a business, you'll want to accept credit cards. It will cost you either way. Apart from sending money in the envelope, you'll typically pay from 2-10%. There are exceptions; wire transfer can be less than 2% for larger amounts, and you can easily pay more than 10% if you don't know what you're getting into. You can have your money almost instantly with PayPal, or wait for more than a month.
BTC is faster, cheaper and simpler than any of the above methods. Of course, I must add - you can withdraw BTC with PayPal so PayPal limitations apply, or it can take time if you buy cash from your local BTC trader in person. Things get a bit more complicated when exchanging funds to or from BTC. But BTC<->BTC payment itself is a dream come true for international money transfer and a match made in haven for eBay and similar services.

In order for people to accept Bitcoins, some of them have to understand some basics on how it works. Currently there is one appealing video for Bitcoins that doesn't go into much details of underlying principles, and a number of precise sources on the nitty-gritty details, but not much in the middle. It should describe the protocol, its advantages and so forth, without focusing too much on "make your own money for free". There are enough miners already for this stage, but we still need more people doing other things with Bitcoins.
This brings me to the next point - in order to make Bitcoins more appealing, we need more things to do with them. One could probably start with some digital goods, like MP3s or other files like that, which have little cost to "make" per unit, so one could largely ignore Bitcoin price fluctuations. The items sold need not be mainstream, there are probably a lot of indie people that make music, games, art, etc. that could be interested in getting some exposure by trading off some profit margin. After all, if you can make money by giving your music out for free, one could probably do similarly with Bitcoins.
Third way to make Bitcoins more accepted is some PR. Support some charities, get good publicity, etc. For now a lot of people that hear of crypto-currencies associate them with hackers and what-nots. This works negatively for Bitcoin image when concerning non-tech-savvy people. If they started associating them with, for example, Child's Play, less people would be rallying against them, and more would want to know something about it.
Last notable way to promote Bitcoins is by discovering some niches that are stagnant under the current system, but could use improvement by using coins. Here you have to be conservative and creative. For example, are there any people that trade internationally often, require some non-reversable transactions, or want to remain anonymous with their donations? One could try financing some human-rights activists in some oppressive countries, support organizations like WikiLeaks, or try making solutions for such people.

+1 excellent observation about association with hackers - PR to promote uses in charity/education/health would do a lot to push it to the mainstream.


text:
What is the benefit of upgrading the wallet file?
bitcoind -help

displays
-upgradewallet         Upgrade wallet to latest format

I have noticed that my wallet format is a few behind bitcoind's version number. Does this mean it is an old format? If so, why should I upgrade it?

The latest wallet.dat version is 0.6.0; wallet.dat didn't change with the 0.7 releases.
Wallet.dat version 0.4.0 introduced the wallet encryption feature.
Wallet.dat version 0.6.0 introduced 'compressed public keys', which make transactions you send smaller. Right now, that is the only reason you might want to run -upgradewallet, although even if you upgrade, you won't start using compressed public keys until you use up the 100 uncompressed keys in the wallet's keypool. You can force bitcoind to use up the old keys by running the 'getnewaddress' RPC command repeatedly.
Note that when you encrypt a previously unencrypted wallet bitcoind/Bitcoin-Qt will automatically upgrade to the latest wallet.dat version, because it has to re-write the entire wallet.dat file anyway.


text:
Blockchain.info not actual?
I'm really new to Bitcoining. I've made my own wallet at blockchain.info, and then I decided to get some "free" bitcoins by watchings ads or something. This worked. At leas when i login at Microwallet.org with the Adress I have from Blockchain.
On Microwallet there's displayed my account balance of xxx Bitcoin. But on Blockchain.info (logged in with the same address, of course), my Account balance is 0.
Why?

Welcome to Bitcoin.SE. :) Do you actually mean "login" or do you just check the balance of an address? If you log in at both services, how did you achieve that both services manage the same address for you? Also, perhaps you want to improve your title: Blockchain is an important component of the Bitcoin network, while Blockchain.info is a service that named itself unfortunately after the former. The title made me think of the network component, while you seem to be talking about the service in the question. You can edit your own post in order to improve it.

Ok, edited it. I mean i logged in in Blockchain.info and i checked my balance in Microwallet (read only)

Lorenz,
Blockchain.info is one of the,  if not the most "actual"  bitcoin wallets you can get.  It's streaming and constantly revised data plotting is also the industry standard,  although it is incomplete.
Most of the spoofy little faucets you find Will in fact earn you some mbtc,  or micro bitcoin,  however,  just because they have deposited into a wallet of their own creation and their own design,  this does not obligate them in any way to connect with the blockchain.info main chain.
This is because mostly you get what you pay for,  and you work for what you're paid. So,  watching videos and doing this or that is all well and stupid,  and it also has nothing to do with earning money. . 00000001 is called a satoshi,  after bitcoins pseudonymous creator.  You will be lucky to have as many as just a handful of these doing what you're describing and also successfully redeeming them by TRANSFERING THEM to legitimate wallet service like a blockchain.info.


text:
Can you buy bitcoins as a Canadian without a bank account?
So is it 100% true that one cannot but bitcoins with just a credit card BUT your purchase MUST be connected to a bank account?  If it's supposed go be anonymous then why is the bank account needed? I just want to try owning $10 worth of bitcoins by buying with a credit card...is that possible?

One of these will probably be both available to you and  anonymous. https://en.bitcoin.it/wiki/Buying_Bitcoins_(the_newbie_version)

Try local bitcoins. They allow you to find someone in your area and you can buy with cash (but you will pay a ~10% premium for this).

There's a wiki page about buying Bitcoins with a credit card. It seems the ideal options for you would be Brawker or MeetPays. But whatever method you decide to use, don't forget that Bitcoin is not anonymous (by default), that's a common myth.

Hmmm...why is it not anonymous by default?  Have you used MeetPay or Brawker? Are 100% legitimate?

It is not anonymous if you use it carelessly (without mixing your coins), because the Blockchain is a public ledger and anybody can connect the dots and trace the coins. Your anonymity is blown at the instant you make a transaction that is connected with you real-life person. That obviously includes buying coins via a service that knows your identity, which is the case with all credit card purchases. And no, I haven't used MeetPay nor Brawker, but the best way to find out is try with a small amount.

There are multiple ways you can buy bitcoins without a bank account. Unfortunately, you will most likely not be able to buy from an exchange. And I don't think you can buy with a credit card anywhere(though I am not sure about this statement).  Your option is to buy directly from someone you know who has BTC or you can trade with someone in exchange for prepaid cards or something similar.
My favorite way is to do a cash deposit in exchange for bitcoins. Cash deposit is one of the most secure form of payment for a seller and it is relatively easy for you. It requires no identification or bank account.

Mathieu, please do not try to make trades using this site. We don't want users getting harmed because random internet guy on Stack Exchange said to send them a money.

Bank accounts, or any accounts or registration or identification whatsoever, are by No means connected to Bitcoin in any way.
The "connected to bank account" stuff is only where fiat money ($ or €) is involved.
Reason you can't pay with credit card (which is also connected to your bank account by the way) is that credit card payments can be reversed even months after the purchase, whereas Bitcoin transactions cannot. Same problem with paypal. This makes credit cards and paypal extremely risky payment options for merchants or sellers.
The usual procedure is: you buy bitcoins online, usually by sending $ or € to an exchange, convert it to ฿ (at this point it's still in some account at the exchange that's connected to you). Get the ฿ out (to your own wallet), mix it through some other wallets if you're really paranoid (really not necessary, just saying) and now nothing is connected to those bitcoins at all.


text:
Migrate wallet from Bitcoin Core to Armory
I have installed Armory.  I have created a wallet within the Armory.  I however would like to use a wallet I have with bitcoin core.  I am unsure how to do this.  Thank you for the help.
All I have is the wallet.dat
I have uninstalled bitcoin core and when I reinstall I have no idea how to use the wallet there either.  Ultimately I have wallet.dat and I'm unsure how to get that file into the Armory.

The easiest way is to simply send them from the bitcoin core wallet to an address in armory wallet.
The other option would require you to use dumpprivkey on each address and then importprivkey on armory.

I have added some notes.  I'm sorry I did not provide complete information.  Thank you for the help.

unfortunately you can't https://bitcointalk.org/index.php?topic=154375.0 download core again and send the funds once you sync the blockchain.

Doesn't Armory use bitcoind? It seems Armory could directly use Bitcoin Core's wallet.dat, then.


text:
How can I start off-block transaction in LoafWallet?
Lightening network promise, basic principle is, transaction not need to add to blockchain but cumulate them and submit all together for a reduced amount of fee. How can I choose such an option in LoafWallet? I have not seen such an option in the app.

you probably mean LoafWallet? from loafwallet.org

Lightning Network is not even live and therefor not supported yet.
Actually the Lightning Network does not quite work as you described.
You create a opening transaction which locks the funds in a multisig with the other participant. It's possible to withdraw the funds only after a specified time or to sign a transaction which pays both participants according to their needs and is spendable earlier.  If both participants agree, they sign the transaction.  The channel can then be closed by broadcasting the transaction or they can continue to keep creating a new version of the transaction with pays them different amounts depending on their needs.
This means you can have nearly unlimited transactions for the cost of one opening and one closing transaction.
However this is not live on mainnet (not for Bitcoin, not for Litecoin) and LoafWallet doesn't support it yet.

Super Bitcoin will support Lightning network too, and it will release on 17th December. Is it the first implementation of Lightning network?

Super Bitcoin might be released on the 17th December and they might claim to support the LN once it's finished (a fork of a client ofc). But they are definitely not the first to implement the LN.

Do you know any implementation of Lightening network that really works?

This article (published less than a hour ago) might be interesting regarding this topic: “Lightning Protocol 1.0: Compatibility Achieved ✅” https://medium.com/@lightning_network/lightning-protocol-1-0-compatibility-achieved-f9d22b7b19c4 Make sure to mark this question as answered if this helps.

This video is so bad quality. If someone could not talk understandable English, why he does not add subtitle for it?


text:
How to prevent lightening network spend two times the balance?
If I choose off-blockchain transaction in Lightning network is it any mechanism to check wether balance covers mount of transaction? So is it, or isn't it possible spend two times the same amount of balance?

The lightning network consists of many payment channels between users on the network. Each channel has a certain amount of bitcoin locked up in it, and that amount is the maximum which can be transferred in the channel, you cannot add any more BTC. So it is not possible to spend double the balance, no.


text:
Does private key belong to one public key in Bitcoin?
More address belong to one wallet in Copay. I have a 12-word mnemonic to my old Copay wallet, but not the private key. If I would infer the private key of the 12-word could I reach all the public adresses with that private-key and start withdrawal?

If you were to translate the mnemonic into the seed value it represents & feed that through the correct (I'm guessing bech32) PRNG algorithm, then yes, you could generate all of the private keys to spend the btc in all of the addresses in your Ciopay wallet.

Each private key corresponds to one public key, but a mnemonic key contains the master private key which describes how each private key is generated.
If you want to withdraw from it, I would use Electrum. It can show you the addresses and you can export individual private keys.

While each private key technically only corresponds to 1 public key, the compressed and uncompressed versions of that pubkey correspond to 2 very different wallet addresses. ... might be worth noting.

Also, and more importantly, the mnemonic passphrase IS NOT for a "private key," but instead is for a "seed value" that is fed into a PRNG (pseudo-random number generator) that derives a list of private keys. The seed value neither is a private key, nor describes how to generate any. It is simply a "bookmark" that sets the PRNG to start "reading" on the right "page" of a near-infinitely long "book" of potential keys it can generate.

I don't know about your other question, but the public key and private key always work in a pair.  So one public key and one private key have to work together.  It is a one to one relationship.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How to restore my Copay / BitPay Wallet?
I started using Copay in 2015 and got some Bitcoins. Sold some coins, and then stop use the app. Now Bitcoin price is up again, and try to reach my Wallet but I can not import, though I  know the 12 word. What I am doing wrong? This is my address I get originally my payment:
1DpmSrg9Bur2VhiMqEu4gYnA28gaM7ZVjp
I tried recover: https://bitpay.github.io/copay-recovery/
No success. I tried different Addres Gap, 40, 80, 100, 120: No success.
I tried import with different derivation path listed here, no success: https://walletsrecovery.org
Do you have any idea more?
Seems cold paper based wallet are still more secure, right?
Do you know, is it any process I can detect Derivation Path from existing address, and transaction started on it?

[EDIT]
Here is the logs of transactions:

You can download the Bitpay wallet and enter your 12-word phrase?

I can enter and import, but it says it has 0 dollar with my 12-word. If I change Derivation Path, some "old" ones, it says: We couldn't found your wallet!" There are no record of your wallet on our servers. If you are importing BIP44 compatible..

I tried recover: https://bitpay.github.io/copay-recovery/ [...] No success.

I don't know why you put your recovery phase into a website. That seems a very risky thing to have done. The distinction between github.com and github.io is also something I'd find a concern that would make me hesitate.
A message like There are no record of your wallet on our servers. makes it sound like recovery of a custodial wallet but wasn't the Copay wallet non-custodial?
I would worry that having typed my recovery phrase into a website, someone will have already stolen any money.

What I would have done is download the Bitpay wallet app from the Google play store (after checking very carefully that the app authors are listed as Bitpay) and use that software's wallet "recovery" features. I would not use "import".
If the balance showed zero, I would check for recent transactions moving the money away.

Hi! Yes, Copay wallet is non-custodial. Strange though I see many transaction between transaction I triggered in person. But anyway my holding are untouched in the blockchain for some years. I just can not access it, even though I have the 12-word.

I attached a screen shot. Would you check it? Still around 2.5 BTC is unreachable, but I do not know how to get a private key from my 12-word or something to do a withdrawal.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
What is the formal code review process of the standard client?
There are n developers with commit privileged.
After one of them merges a pull request, how many eyes review that code? When? Is a complete (holistic) code review done before releasing a version? Does every line gets reviewed by at least one other person?

Support documents: http://en.bitcoin.it/wiki/Release_process
http://en.bitcoin.it/wiki/Development_process

According to the bitcoin.it wiki, as Stephen Gornick linked to in a comment, this should be the code review process:

Pull requests are discussed on the forums and if there is consensus they're safe, tested, useful, well written, match coding style, etc. then they're merged into the 'master' branch.

Assuming the bitcointalk.org forums, I can't really find any pull request discussion. On Github it seems pull requests do get discussed though, for example: Bloom filter pull request.


text:
Can anyone point to flaws in my counter-arguments of bitcoin critiques?
Regarding the granularity problem:
Here is a worst case scenario:
M2 Monetary Supply is 66 trillion. If it all moved to BitCoin, each coin would be worth 3.1 million dollars.
Math: 66000000000000/21000000 = $3,142,857
One Satoshi is the smallest possible denomination of BitCoin at 0.00000001 of a BitCoin.
If all of M2 moved into BitCoins, each Satoshi would be worth 3142857*0.00000001 = .03, or three cents. And since the M2 supply is increasing at around 6% per year, all else being equal, a Satoshi would reduce to a penny in about 20 years.
Math: (1.06)^19 = 3
This is simplistic and extreme, but points out that the sheer numbers required to cause concern over the 21 million coin cap just aren't there for the foreseeable future.
Consider too that BitCoin is just a single form of Crypto Currency. It’s plausible that a second alt coin, possibly an inflationary one, will be used in addition to BitCoin. Where BitCoin would serve as more of a store of value, and an alternate coin would serve as every day cash. In fact, this is already being experimented with today.
** Regarding the liquidity trap problem **
First want to point out that the liquidity trap problem is commonly used as a replacement for the granularity problem.  They are different.  Granularity problem is addressed in the above section.
The liquidity problem stems more from:

Once you have C coins, you also have P percentage of the total number
  of Bitcoins. And as long as you hold steady, P never changes.
  Conversely, with the dollar for example, you have P percent today, but
  P decreases tomorrow when more dollars are printed.

So there is more incentive to put a dollar to work than a bitcoin.
This theoretically results in hoarding of the coins, reducing the number of coins in circulation, making them more valuable, causing a downward spiral.
Regarding calling it an investment:
People are trying to make sense of something we’ve never seen before in history. This is a new invention. And it is money by definition. There’s no more “if” when you can use it to purchase goods, gamble, and settle debts. We’re already at this point.
It can be seen as an investment from the perspective of “If I spend US $1,000 on BitCoin today, I might make a 2x return by end of year.” But it’s very short sided trying to compare it to an equity. As mentioned above, it makes more sense to look at in terms of “how much of the overall money supply will be made up of bitcoin?” Today it’s 10 Billion US dollars and growing. That's nothing to scoff at.
Crypto-currency is an invention first and foremost. And at this point we are engaging in an experiment. That’s why it’s risky. We don’t know.
Regarding calling it a bubble:
A bubble is “A theory that security prices rise above their true value and will continue to do so until prices go into free fall and the bubble bursts.”
To call it a bubble means that you must have a tangible grasp on its true value.
Nobody knows what the true value is, but we know that:

As of this posting, BitCoin exchanges with the US dollar at around $750 per coin.
You can use it today to buy a grilled cheese sandwich and a haircut in Seattle, and coffee in San Francisco
You can also use it today to buy computers online, houses, cars, and to bet on sports, play poker, etc.
As much as Bitcoin can be volatile, it is still very attractive as a store of wealth for citizens of countries whose governments are destroying their local currencies. This is already happening today.

The network affect is already here. People want to use it, and it’s adoption rate is exponential.
If BitCoin saw only a 1% adoption worldwide, each coin would be valued at $31,000 US dollars. From that perspective, it’s a deal today at $750 per coin.
The point being, you can’t call it a bubble unless you can identify what its value should be.
Regarding comparisons to Beanie Babies and Tulips:
Bitcoin is a currency that is easier and faster to transact on a large scale than anything else in existence. It's not a collectable. This comparison is simply misguided.
Regarding "It's too complex for the average citizen to understand and secure against getting hacked/swindled":
Very true today, but today this is less true than it was three years ago. The ecosystem around BitCoin and Crypto-currency in general is growing rapidly, and backed by leading venture capitalists investing in startups, big banks, and big technology companies like IBM. The issues around ease of use will dissolve in a relatively short amount of time. And hacking will always be a problem, just like bank robberies and muggings will always exist. As these issues are diminished over the coming years, we'll see more mainstream adoption.
Potential concerns:
We could encounter issues in the underlying architecture down the road, such as attack vectors, inability to upgrade crypto algorithms, performance issues as the network scales, etc.
Political issues like taxation, cross-border exchanges, and central governance. This is the biggest can of worms, but not the type of problem we should call unsolvable. In fact these concepts may very well be reinvented and evolved in a better way. My point here is that just because it doesn't fit into an existing framework doesn't mean it won't work. This is a problem that great inventions commonly encounter, and not a de-facto deal-breaker.
In summary
This is a new invention, and directly addresses many issues we have with today's mediums of exchange. It can be compared to many things, but it is not any of them. It's an experiment, and an exciting one at that.
Today it represents .015% of the world's currency. The question we ought to be asking is, what will that number look like in 2014, 2015, and the foreseeable future?

I don't think our q&a format is really a good fit for soliciting comments on your essay. It would be better suited for a blog.

"So there is more incentive to put a dollar to work than a bitcoin." Quite the contrary, there's much more incentive to put a bitcoin to work since all you have to do is nothing and you are more heavily rewarded for it.

Regarding the liquidity trap concern:
The common and agreed upon solution is to allow a few more decimals in a bitcoin client update when the time comes.
Regarding calling it an investment:
All good, for some people it's not an investment but a belief in the idea.
Regarding calling it a bubble:
Value is what people are willing to pay, not set.
Everything is sound otherwise.

I don't know why you're calling the first point a "liquidity trap", that has nothing to do with the words that follow. Did you mean "granularity problem"?
the 21 million cap isn't a problem, not because it reduces to .03 cents in an extreme scenario, but because the code could be changed to go out to more decimal places, no math required.
There is no way bitcoin would serve as a store of value and not a medium of exchange. That's the point of bitcoin; to be easily transferable. If another coin becomes adopted as better to transact with, it would replace bitcoin, not supplement it.
Bitcoin can certainly be an investment. Don't know what your argument is here.
You can call it a bubble. Gold was a bubble, housing was a bubble. Doesn't have to be worthless to be a bubble. I also disagree with "you can't call it a bubble unless you can identify what it's value should be". If its value were well established it wouldn't be a bubble.
Agreed that the tulip comparison is misguided. tulips and beanie babies had no context in which they were of objective value, of which bitcoin does.
agreed.
you say a real issue is "in the underlying architecture" which is a pretty huge thing for you to say, considering you're trying to counter-argue critiques. You should really be more specific. Do you believe Bitcoin is safe or not?
What are you saying about the ability to replace existing crypto algorithms?
transaction time can be changed if necessary. Another altcoin will not rise due to this.
There is no potential address collision problem.

Thanks this is helpful.  Yes, I'm calling it "liquidity trap" to be consistent with the way others are describing the granularity problem:  http://www.forbes.com/sites/pascalemmanuelgobry/2013/04/05/krugman-baby-sitting-co-op-bitcoin/.  I'll just refer to it as the granularity problem.


text:
The bitcoin address space seems to be closer to 2^40, not 2^160
The Base58 Encoding of a public key hash outputs:  "A set of 58 alphanumeric symbols consisting of easily distinguished uppercase and lowercase letters (0OIl are not used)"
This set is a fixed string of 34 characters.
That is to say, "A bit coin wallet's address is 34 characters, each character being one from a possible set of 58"
So the total possible addresses is 58^34 which is just slightly less than 2^40.
I understand that the hash space is 2^160, but the final result is much smaller at 2^40.  What am I missing?

Edit:  I made a simple math mistake reducing 58^34 to a power of two
  by adding not multiplying the exponents...  The bitcoin address is
  sufficient to contain the 2^160 possible hashes:  58^34 is 904
  octodecillion (60 decimal digits), and 2^160 is 1 quindecillion (49
  decimal digits)... the larger number accounts for the version byte and
  checksum.

As mentioned, the first character is fixed and four bytes are a "checksum" so it's more like ~58^29 ~= 2^170 >> 2^160.

No, 58^34 is greater than 2^160: http://www.wolframalpha.com/input/?i=2*160+%3E+58*34
Note, that the address also contains a checksum and a network id not carrying additional information. That's why the numbers are not equal.


text:
Are my coins lost?
I think that the answer to this question is yes, unfortunately.
I had an online bitcoin wallet and I still know my bitcoin address, but I can't remember where it was hosted. Or perhaps it is shut down.
Is there any way to recover this, or to at least work out the site where the address was registered?

huh?  What do you mean you "know the address but can't remember where it was hosted?" EDIT: I think you mean you have the bitcoin address but can't remember the URL for what site it was on.?

Well there's only a finite number, unless you were using some crazy hidden tor service...  Do you know if this is a proper wallet or actually a store account?
https://en.bitcoin.it/wiki/Category:EWallets
http://bitcoin.org/en/choose-your-wallet
https://en.bitcoin.it/wiki/Category:HybridEWallets
Check browser history, google search history if it's enabled, check for backup files in dropbox or google drive.  Look in your saved password list in your browser.  Try some undelete tools to look through already-deleted browser history.  Just think like what the FBI would do if they needed to find something!

Look for your address on blockchain.info. There is a list of outgoing transactions from this address. Sometimes you can find the IP address, or even the name of the sender, e.g. SatoshiDice, Slush.
Here is an example link: http://blockchain.info/pl/address/1CRACKafkXsQzUYmu2fUM3j9c2y4yDhvfh


text:
Premine coins from genesis block are gone after one transaction from account/wallet
Please check the whole question once before giving negative marking or Mark as duplicate of
Why can’t the genesis block coinbase be spent?
Why I cannot get transaction from genesis block [duplicate]
I am creating AltCoin from litecoin source.And using GenesisHO generating genesis block details like nonce ,genesis hash , merkle etc.
While generating genesis block I have changed the coin value parameters in genesis coin value. that is -v parameters and generated genesis hash and merkle etc.
I've done changes regarding genesis , nonce, coins for genesis block.
genesis = CreateGenesisBlock(1538404994, 2086003386, 0x1e0ffff0, 1, 50000 * COIN);

eg. I want to premine 50,000 coins in genesis block. I don't want give condition in validation.cpp like if block height 1 than reward should be 50,000.
I've generated pub key and used the same pub key while generating genesis hash.So I can use that genesis block coins by importing private key of that pub key.
After all above change in source,I've build daemon ,cli ,tx and qt from same source.
Next
From cli I have executed command(coin-cli generate 1) to generate one block so I can get genesis block coin(Yes!! initially it will be in immature state after x(which I've set to 1) amount of block it will be in mature state). And imported that private key in wallet.
Result of above :
After execution of coin-cli generate 1 genesis coins are generated.Displayed in wallet and account under account name ""
Started Mining (using cpuminer) which has another account's address. And after few blocks genesis block coins converted to mature state

Problem/Issue
Now when i tried to transfer from that genesis block coins its not transferring to any address.Its not displaying in qt wallet but using
  cli command its displaying balance.

So where do I need to make other changes to make that genesis coin spendable.

Transactions details

Balance details from qt wallet and command

For mining using cpuminer
Litecoin source : https://github.com/litecoin-project/litecoin/tree/0.14

UPDATE

I've tried & follow steps from this answer too
After updating as per from above answer in validation.cpp here is the link of same

Update 2

Changes mentioned in answer regarding validation.cpp & updated validation.cpp file here & same updated change mentioned below line wise
 Changes in special case for the genesis block, skipping connection of its transactions (its coinbase is unspendable)
Changes for assert(pindex->pprev);
Added WriteUndoDataForBlock method :
Change to skip writing undo data for genesis block
After updating above things it give error Segmentation fault (core dumped)
And here is debug.log details
Thanks.

Did you make any adjustments to validation.cpp, specifically this line? https://github.com/litecoin-project/litecoin/blob/0.14/src/validation.cpp#L1753

@JBaczuk Well actually as a newbie.What i tried is commented return true; statement and build again but it give error when I started daemon Segmentation fault (core dumped). Do i need to make any change in that file for that ?

@JBaczuk please check question.I've added update

You're right to comment that line. It segfaults b/c its trying to reference a previous block when it is on the Genesis, but there isn't one. Look for assert(pindex->pprev). All the changes you need to make are in that file.

@JBaczuk Ohh okay but once please check my updated question mentioned as Update 2

You need to do a few things to make the genesis block spendable, all in validation.cpp (untested):

Allow tx connection, L#2904:
if (*pindexPrev->phashBlock == chainparams.GetConsensus().hashGenesisBlock)
    // return true;

Skip coinbase amount check for genesis block, L#1933:
if (block.vtx[0]->GetValueOut() > blockReward && block.GetHash() != chainparams.GetConsensus().hashGenesisBlock)
    return state.DoS(100,
                     error("ConnectBlock(): coinbase pays too much (actual=%d vs limit=%d)", block.vtx[0]->GetValueOut(), blockReward),= REJECT_INVALID, "bad-cb-amount");

Skip writing undo data for genesis block L#1947:
if (block.GetHash() != chainparams.GetConsensus().hashGenesisBlock)
{
    if (pindex->GetUndoPos().IsNull() || !pindex->IsValid(BLOCK_VALID_SCRIPTS))
        {
            if (pindex->GetUndoPos().IsNull()) {
                CDiskBlockPos _pos;
                if (!FindUndoPos(state, pindex->nFile, _pos, ::GetSerializeSize(blockundo, SER_DISK, CLIENT_VERSION) + 40))
                    return error("ConnectBlock(): FindUndoPos failed");
                if (!UndoWriteToDisk(blockundo, _pos, pindex->pprev->GetBlockHash(), chainparams.MessageStart()))
                    return AbortNode(state, "Failed to write undo data");

                // update nUndoPos in block index
                pindex->nUndoPos = _pos.nPos;
                pindex->nStatus |= BLOCK_HAVE_UNDO;
            }

            pindex->RaiseValidity(BLOCK_VALID_SCRIPTS);
            setDirtyBlockIndex.insert(pindex);
    }
}

Alright let me try with above change. after removing changes which I've given in Update 2

Updated validation.cpp as per answer. but facing same issue. here I've attached wallets screens