text:
Could a futures market be included in the Bitcoin protocol?
One of the most common reasons I hear that Bitcoin is "not ready for prime time" is that because of its wildly oscillating valuation businesses can't accept bitcoins without becoming speculators.  In my own experience trying to use bitcoins for business, I have found this to be quite true--at the very least, it is a significant problem.
The most common solution I hear offered for this problem is that the emergence of a stable, high-volume futures market may allow for businesses to transact in bitcoins while ignoring market volatility.
If this is the case, it leads me to wonder--is there any way to incorporate some sort of futures market directly into the Bitcoin protocol?  That way bitcoins themselves, like gold, could oscillate up and down according to market demand, but through some sort of digital derivative on them, people could trade much more stable values.  Are there theoretical and practical barriers to this?  What are they?

why would this need to be part of the protocol and not just have bitcoin futures markets (which are already starting to pop-up)

Wouldn't it be great to be able to cryptographically trade some kind of token that has a relatively stable value?  Especially if the value was self-stabilising somehow.  Futures markets, unlike Bitcoin itself, require a lot of trust.  It would be great to replace that with math.

One obvious workaround would be to sell digital goods: since you can replicate them ad libitum, the problem of volatility would be less risky. Since of course you still have expenses, the problem isn't really removed, only lessened.

Silk road's hedged escrow is a first step in this direction, and seems to work.  But all the "trades" are bilateral (SR is always one of the parties) and you can't "buy" the "contract" unless its to hedge a sale made through the SR website.

Silk roads hedged escrow requires trust.  The person using it must trust silk road (and the very real personal counterparty risk behind it).  If you have funds escrowed by silk road and they are raided and assets seized you suffer a counter party loss.  Not to say this makes silk road method "bad" but hedging requires someone else to take counterparty risk.  That generally makes it incompatible with an anonymous transaction network.

Parties can agree to a contract for forward delivery and payment on anything, including Bitcoin.  In the absence of a formal exchange, the parties must accept the risk that their counterparty is unable to perform according to the contract, and must work out the legal details of each contract individually.  A formal exchange such as CME or COMEX performs due diligence on the buyer and seller and holds margin as a security deposit against the ability of the parties to perform, such that the exchange can safely act as the counterparty to both the buyer and seller in the futures contracts.  Exchanges also standardize the terms of the contracts, which reduces legal costs and increases fungibility of the contracts, which greatly improves the liquidity of the futures contract market.
So an exchange dealing in Bitcoin futures contracts would be required.  The exchange could be built from scratch by a party with the capital required to take on the counterparty and trade settlement roles, or an existing recognized exchange could be convinced to add some Bitcoin contracts.  The recognized exchange approach would go a long way toward accomplishing the goal of stabilizing the value of the currency.

Sorry canalta, but that doesn't have anything to do with putting a futures market (or something similar to one) in the actual protocol.

@canalta You clearly have experience in the futures market, however you have not answered the question in terms of the Bitcoin protocol (as eMansipater has also stated). Could you edit your answer in light of this?

The full-features derivatives exchange is being built, it's called ICBIT Stock Exchange.
Bitcoin forums thread: https://bitcointalk.org/index.php?topic=50817.0
Website: https://icbit.se

Futures aren't financial black magic. That being said it shouldn't be hard to accept transactions without an existing input, essentially transacting not an amount of value but an address that can be transacted towards by anyone but only taken from by a single person (the future reciever).
IOW: Enhance transactions to not require an input.
Not that this quite inproper in terms of a secure transactional network, as future's are by default. I'd recommand against it.

If you price bitcoin out using Black-Scholes, you will at some point wish to calculate the volatility.
Black-Scholes imagines a normal non-trended distribution for your volatility component, almost certainly wrong for bitcoin, but probably more conservative than is appropriate, so let's use it as a lower bound.
The last time I did the math, things were a bit crazier than they are now, but I came out with annual volatility in the 300-600% range.
Another way of saying this is that you can't usefully transact options in bitcoins out past two or three months; the fair price of a put or call is going to be 99%+ of buying the underlying.
To re-re-state, financial derivatives aren't a magic bullet; they can move risk around, but they can't erase it.
I think a better approach (and one we're working on at CoinLab) is to assess what transaction window you feel safe holding Bitcoins, and then assess what business models will work in that window.
To answer your question re: the Bitcoin protocol itself, let's imagine that you don't need a protocol change, that is you want to add derivatives of some sort to the current setup without a need for miners to change what they do.
I think you probably could shoehorn them in with some judicious use of multi-party pay scripts, but they would necessarily rely on outside data -- the 'exchange rate' is really just an order book, perhaps aggregated from a number of exchange sites, there is nothing relating to fiat currencies baked into the Bitcoin mechanism in any way.
You could add some transactions that release funds based on a code offered by a trusted server when it sees an exchange rate trigger, but that's really a lot of work, and probably not worth it.


text:
If a single private key of the HD bitcoin account is compromised, is the whole HD account compromised?
The subject pretty much asks it all. I asked the same question on the Mycelium web site but did not get an answer. An HD account can have multiple private keys. Suppose one of the previous private keys gets compromised (falls into hands of a hacker) and this private key has no bitcoins assigned to it. Would the hacker be able to re-create subsequent private keys based on this single one private key?
The question applies to Mycelium and all other HD accounts. Also, is there a standardized way how private keys are created or each wallet does it on its own?
This question is important to me since we see more and more bitcoin forks. To claim newly forked bitcoins I would need to import private key(s) into another wallet. Assuming the new wallet may be used to harvest my private keys and to spend bitcoins, I would like to move my bitcoins from my HD account from private_key1->public_key1->address1 to private_key2->public_key2->address2. If I now import private_key1 into a hacked wallet, the hacker cannot spend my bitcoins directly. But should I worry that he will be able to re-create private_key2 and therefore still be able to spend my bitcoins?

With just the private key, no.
However, if the attacker knows both a child private key and the xpub of the chain it is derived from, yes.
From BIP32:

One weakness that may not be immediately obvious, is that knowledge of a parent extended public key plus any non-hardened private key descending from it is equivalent to knowing the parent extended private key (and thus every private and public key descending from it). This means that extended public keys must be treated more carefully than regular public keys. It is also the reason for the existence of hardened keys, and why they are used for the account level in the tree. This way, a leak of account-specific (or below) private key never risks compromising the master or other accounts.

This means you should either never give out private keys, or treat xpubs are highly sensitive secret data.
When using hardened derivation, this problem doesn't exist, but they lack the ability to publicly derive addresses.

Jeez, I wish I could understand what you have just said :-)

Based on how I understand it. The best would be to create new HD2. Move funds from HD1 to HD2. Import the HD1 seed into new walled, claim the new coins. The problem is I have mixed feeling abandoning HD1 for which I remember the seed and getting myself into a situation where now I have a new seed and eventually getting myself into the position where I can mess up the seeds :-( Is it only me or other people have this issue as well?

source: Stack Exchange

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

sort: votes


text:
Is there a BSD Bitcoin client?
I have a few BSD-based systems sitting around serving away, but for the most part they're idle CPU-wise. Does anyone knew of a bitcoin client that I could run on these machines to make them more productive while they wait for requests?

The standard Bitcoin client should run on BSD machines. If you encounter any difficulties getting it to compile or run, ask more specific questions.

there is a port available for freeBSD: http://www.freshports.org/net-p2p/bitcoin/

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


text:
How do I sort the output of listtransactions "*"?
I am testing some new code, and need to sort the output of listtransactions. Ultimately I need to verify that there are no duplicate txids.
How do I output  ./bitcoind -datadir=1 listtransactions "*" to a logfile, or sort it directly in the terminal window?

Are you asking for a shell script? Or code? If code, what language?

Either, and whichever has the smallest learning curve =)

"Sort the output" is not really specific. Outputting to a file is done with the > operator. If you want to do more that just output to a file, you must use a scripting language. It would help if you tell us what you want to do and in what language.

The command I am executing in my question outputs text into the terminal window. I would like to parse that text to compare the lines containing txid. I don't know what language would be best for this.

What do you mean compare? If you want to analyze the data yourself, you can output to a file and manually select what you need: ./bitcoind -datadir=1 listtransactions "*" > transactions.log If it is a more automated procedure like removing duplicates or filtering some transactions, we can give you a few pointers/examples on a scripting language.

You can run the listtransaction JSON output through this little python script (save it as jsonTOCSV.py). That will produce csv (comma separated value) output that Excel or Google Spreadsheets can import, both of which can sort by columns (if I recall correctly).
So:

bitcoind listtransactions | jsonTOCSV.py > transactions.csv

#!/usr/bin/env python
#
# Reads an array of JSON objects and writes out CSV-format,
# with key names in first row.
# Columns will be union of all keys in the objects.
#

import csv
import json
import sys

json_string = sys.stdin.read()
json_array = json.loads(json_string)

columns = set()
for item in json_array:
  columns.update(set(item))

writer = csv.writer(sys.stdout)
writer.writerow(list(columns))
for item in json_array:
  row = []
  for c in columns:
    if c in item: row.append(str(item[c]))
    else: row.append('')
  writer.writerow(row)

Thank you. This helps me sort the transactions and get exposure to Python/JSON.

I am not sure what you mean by sorting, but here is a little python script to check for duplicate txid's:
import json
from sys import argv, stdin

file = stdin.read() #reads transaction list from input
json_file = json.loads(file)

#counts the number of duplicate txid's
txid_list = [transaction["txid"] for transaction in json_file]
print "There are", len(txid_list) - len(set(txid_list)), "duplicates"

Let's suppose that you save this to a file named check_duplicates.py. Now you just need to output the transactions to a file and feed it to the script:
$ ./bitcoind -datadir=1 listtransactions "*" > transactions.log
$ python check_duplicates.py < transactions.log
There are N duplicates

Depending on what you need, other sorting operations can be done. It's easy to manage json with python.

I don't believe bitcoind has any kind of a sort option. The output of bitcoind listtransactions is in chronological order, but the output of your command could be written to a text file and parsed by any number of simple scripts. I don't have one offhand but the output is in JSON which most languages (including Python, my favorite) handle quite nicely. Once you bring the JSON data in it should be a simple matter of sorting the transactions array.
Edit: Depending on what data you're trying to extract and in what format, you may be able to do something with Gavin Andresen's bitcointools scripts.

This shell command will show each transaction ID once only, preceded by a count of the number of times it appears.  The IDs which occur most often will be at the end:
bitcoind listtransactions '*' 999999 | grep '"txid"' | uniq -c | sort -n


text:
How can I "redeem" a private key without downloading a client?
Let's say that I have generated some private keys offline and use them for my savings. For my spending money I prefer to use an online wallet instead of downloading the client.
Is there any service online where I can enter

My private key
A destination address (the online wallet)

and simply click a button to send the whole balance to the destination address?

It [edit: was] possible to redeem a private key at MtGox. Under "Add funds", choose "Redeem private key" and pick the format that you want to enter the private key in. The full amount of the private key will be added to your MtGox account.
Update: It is also possible at My Wallet (blockchain.info).
Update2: Mycelium wallet for Android app has a "cold storage" feature.  You simply scan (or enter) the private key, then scan (or enter) the Bitcoin address t send the funds to.  Hit send and you are done.

I'm accepting my own answer here since it's the closest I have found to my requirements. If anyone finds a better service that doesn't require you to open an account to use it, please add that answer. I'll be happy to change the accepted answer if such a service turns up.

Also, EasyWallet.org, accessed from a Mobile, will do a Scan to redeem a private key.  A fee is assessed, however.

Not that I know of. But so long as you transfer the full balance, that does seem like a reasonable service to provide.

I am "emptying" the balance on the private key so there is no change. I won't use it again so it doesn't matter if they store it. The point is pretty well outlined in the question I think. I don't want to bother with having an installed client but I don't want to trust all my money with an e-wallet. Generating a bunch of private keys to use for savings is a one time task.

Ah, that would be doable and make sense. If it were a "dump" that then left the account empty, that would avoid the problems. I adjusted my answer.

That would, of course, require trust that the site actually honors your request to send the funds to the address you provided rather than their own address -- so there is a level of trust required, just as there would be with an eWallet or exchange.
I don't know of any service yet [Upate: Mt. Gox and Blockchain.info/wallet both offer this], but because the patched Bitcoin client with this feature has been available for quite some time, the technical difficulty in providing this as a web service is not significant.

Yes, but the level of trust required is so much lower than with an e-wallet. If they don't honor the requests of sending funds people would find out very soon. They would not be able to steal a lot of money. An e-wallet can build up trust, gather lots of money from different people, and then steal it all in a second.

Mycelium wallet for Android has a feature called "Cold Storage" that does exactly what you are looking for.
You simply scan (or enter) the private key, then scan (or enter) the Bitcoin address t send the funds to. Hit send and you are done.

If you know what you're doing, you can craft a raw transaction manually using just your private key, a list of unspent outputs associated with your source address, and the destination address. There are open-source tools that allows you to do that securely offline (e.g. brainwallet.org).


text:
Is there some way to merge two wallets or to import/export addresses?
I've got one wallet.dat from my laptop and another on my desktop, each containing various (different) receiving addresses that I use pretty often. I'd like to merge them into a single wallet.dat so I can see all my balances in one place.
If there isn't some piece of software that can truly "merge" the two, is there some way to at least export an address/keypair from one wallet and then import it into the other?

This functionality is eventually planned for the main client, btw.  But good question.

I chose D.H.'s answer over Stephen's only because a solution separate from the client, which can be run on a separate (offline) machine where I can be 100% sure nothing malicious is happening with my wallet.dat seems superior to patching my client, which by nature must manipulate my wallet.dat file and generate internet traffic. Also I speak Python so I can verify/tweak the code myself if necessary. Both are valid solutions, though and I wish I could check two answers.

Pywallet is a python script that (among a number of other things) can export and import key pairs. It's not as complicated to use as it might sound, some python stuff has to be installed but that's almost automatic and once it is done the tasks can be performed using a web interface. From the linked forum post (updated 8/23/11):

Currently you can:

Dump your wallet, see your pubkeys, privkeys, their labels, etc
Dump your transactions to a json file
Import a key/address into your wallet, with a label, or as a
  reserve key
Import a transaction into your wallet
Import transactions from a json file
Delete addresses from your wallet
Delete transactions from your wallet
Get info about a privkey, i.e. see address, base58 privkey,
  hexprivkey, pubkey and hash160, using the network you want
Sign and verify string, files, and binary string
Read a device to find deleted keys (CLI only)
Print the balance of a bitcoin address, read from blockexplorer

Merging 2 wallets using Pywallet would require to dump one wallet and then import manually each private key? Sounds like a lot of work.

Note that Pywallet does not work with encrypted wallets yet.

Pywallet does not run on Mac OS except with a lot of hacking to make this relatively small program work. I had issues installing macports and I don't want to go there again. I am so wondering why anyone should have to go through all this trouble. If wallet.dat were a text file, then none of this would be necessary.

A patch for the bitcoin client for this:
 - http://github.com/bitcoin/bitcoin/pull/220


text:
Why am I getting this make error w/ 0.4.0rc1 on Ubuntu
Building 0.4.0rc1 in Ububtu via make -f makefile.unix returns the following errors/warnings:
ui.cpp: In member function 'virtual void CMainFrame::OnIconize(wxIconizeEvent&)':
ui.cpp:488:25 warning: 'bool wxIconizeEvent::Iconized() const' is deprecated (declared at /usr/local/include/wx-2.9/wx/event.h:2150)
ui.cpp:456:43 warning: 'bool wxIconizeEvent::Iconized() const' is deprecated (declared at /usr/local/include/wx-2.9/wx/event.h:2150)
ui.cpp: in function 'void SetStartOnSytstemStartup(bool)':
ui.cpp:1808:39: error: 'class boost::filesystem3::path' has no member named 'native_file_string'
make: *** [obj/ui.o] Error 1

Does anyone know how I could fix this? I'm guessing it's an issue with my libraries...

The first two lines are just warnings that can be ignored. But the error is a known issue caused by Bitcoin's use of a deprecated API that was removed in your version of Boost. The fix is to modify src/ui.cpp around line 1809 as follows:
  {
     if (!fAutoStart)
     {
-        unlink(GetAutostartFilePath().native_file_string().c_str());
+        unlink(GetAutostartFilePath().c_str());
     }
     else
     {

(Remove the line marked with a - and replace it with the line marked with a +.)

Thank you David for your pinpoint accuracy and help. Your time is valued, and your contributions to the community are appreciated!

Depending on your version, here are a few resources.
For 10.04 there is a good guide here and an additional resource here.
For 11.04 this question may be a duplicate.

I am running 11.04, but this is not a duplicate of that question. Thank you for the 10.04 resources though - maybe I will find something in there


text:
Is there empirical data about a relationship between bitcoin price and difficulty?
There have been claims that Bitcoin price and difficulty correspond. Is there empirical data to support or refute this?

This doesn't answer your question, but: The logic for why this happens is not obvious. When the price of Bitcoins is higher, people are more likely to mine, especially people whose costs are close to their expected proceeds. The greater number of miners drives up the difficulty. Price drives difficulty, not the other way around. (If this is correct, it should be empirically verifiable -- which rises first?)

I will second David on this, we have seen this recently with the price drop being followed by a decrease in network hashrate.

@Alex Waters: Well that's an answer then, isn't it? If a price drop is seen to be followed by a decrease in hash rate (which obviously will lead to a difficulty drop) then that's empirical data relating price to difficulty.

If you look at the network hash rate, you'll notice that it fell off after the Bitcoin exchange rate dropped.
This leads to the conclusion that price drives difficulty. A drop in price caused a drop in difficulty. I have noticed this same correlation on another occasion; about two months ago.
Also, the reverse is probably true. When the price soared to $30+; the network hash rate accelerated greatly. The higher prices clearly attracted miners.

please check out my website http://bitcoinx.com/charts/ where you have both difficulty and price in one diagram. Mining profitability is available, too.

@phelix - Just what I was looking for. How did you compile the data for these charts?

This relationship can be seen visually, though it is a rough correlation.
In the all time chart (scroll down) you can see the orange being the price at Mt. Gox, and the grey line that steps up and down being the difficulty.
Summary: AFTER the price moves, the difficulty follow the same direction, ... lagging two to five weeks roughly:
 - http://tvori.info/bitcoin/charts
The green line shows profitability, which is not part of your question but is the most important line in that chart so I wanted to point that out.
Incidentally, following the traders on the #bitcoin-otc marketplace gives the anecdotal evidence that

When profitability is high miners are hoarding (they are saving their bitcoins and if adding capacity will do so using their cash to purchase)
When profitability is low miners are generally selling off.  They have electricity bills to pay, credit card bills for the hardware they purchased, etc, and with less profits they liquidate their holdings. This of course, increases price volatility -- especially without any decent Bitcoin derivative instruments (e.g., an options market).

Here you go!

https://docs.google.com/spreadsheet/ccc?key=0AmcTCtjBoRWUdHVRMHpqWUJValI1RlZiaEtCT1RrQmc

Click the tab at the bottom Difficulty Versus Price for a chart view.
As-of Jul 4, 2012 here's those charts:

The purpose of the difficulty is to ensure a blockchain solution is produced roughly every ten minutes. If there is a lot of hashing power available then solutions will be found quickly which causes a correction to make it harder, or conversely to make it easier.
So the nub of the question is what causes variation in the hashing power? The short answer is the efficiency of solving the problem. This introduces other aspects:

Cost of efficient solution finding systems (CPUs, GPUs, FPGAs, ASICs, supercomputers, mining trojans etc)
Level of altruism in the system

Assuming that most miners are in it for the money rather than just being enthusiasts, then the primary concern is profit margin. So long as a miner can turn a profit that exceeds other available investments then he is rational to continue mining. He then faces the problem of maximising his profit margin above the break even point.
Once way is to find and exploit a super-efficient way of solving the hashing problem just a little ahead of other miners then his operating costs are reduced without unduly affecting the difficulty level.
Another is to reduce operating costs, perhaps by taking advantage of free electricity. He may even enjoy the side effect of heating his home during cold winter months, this reducing his operating costs further.
This would mean that hash rate would be invariant against mild fluctuations in the price of a bitcoin.
So, in short, it is individual profit margin to miners that drives the hash rate, not the naked price of a bitcoin.

Yes, difficulty should be a laggy indicator of price because of the time it takes to get new rigs online and the unwillingness to take them offline. It will probably also be "sticky up", as even if bitcoin plunges into unprofitable to mine category, there will be people who will still mine at a loss in the hopes that bitcoins will increase in value (even though in that case they are better off shutting the miners down and buying bitcoins with the money they are spending on electricity). A psychological thing.


text:
What is the difference between BitCoin, Bitcoin, and bitcoin?
I've seen several capitalizations of the term "bitcoin". What do all these mean?

See the meta discussion: http://meta.bitcoin.stackexchange.com/questions/21/how-do-we-capitalize-bitcoin-or-bitcoin-or-bitcoin

The following answer seems to be the consensus judging from this question on the meta site.

Use Bitcoin (with a capital "B") when talking about the
  concept/technology.
Use bitcoins (no capitalization) when talking about the unit of
  currency (4 dollars - 4 bitcoins).
Never use BitCoin or BitCoins

Pretty much agree. It should be noted that some support library projects use internal capitalisation, such as BitCoinJ. These are unlikely to change and should not affect Bitcoin discussions.

To complete the above consensus, let's add that the “BTC” denomination is a construction by analogy mimicking ISO 4217, a standard published by the International Standards Organization, which delineates currency designators, country codes (alpha and numeric), and references to minor units. E.g. GBP, Pound Sterling, USD, dollar, CHF, Swiss franc, etc.

The word Bitcoin was created by Satoshi Nakamoto when he published his paper. He did not  explain any terminology details so there is not an "official version" of how it is spelled.
These variations that you saw were created by different people that sometimes try to distinguish the Bitcoin project from the Bitcoin currency or the Bitcoin client. Which is which can usually be understood by the context of the phrase or by asking the person who wrote it.

There is a consensus that BitCoin is wrong spelling, incompatible with the original Satoshi article. The Wall Street Journal and The Chronicle of Higher Education advocate use of lowercase bitcoin in all cases, and this convention was also accepted by Wikipedia editors.

Best answer! New words with unclear meaning are often capitalized. This was the case with "internet" and "web" in the 90's https://www.wired.com/2015/10/should-you-be-capitalizing-the-word-internet/ and the case with many nouns in the 1800's https://english.stackexchange.com/questions/10522/capitalisation-of-nouns-in-english-in-the-17th-and-18th-centuries


text:
Is there a remote Bitcoin API that doesn't require anything to be stored locally?
What I imagine is a trusted centralized server (say run by Mt. Gox or some other exchange), that exposes a simple medium/low level API (let's say in JSON):

getTransaction(fromAddress)
getTxDetails()
executeTransaction()
...

I know BitcoinJ does't store the whole blockchain, but it does store and update the headers. The method I seek will save me the hassle of managing any local data except the actual keys/addresses.
I would not have to give this transaction my private key, but rather use some sort of Offline Transaction equivalent. Is there something close to this? Is somebody building this? (If not, someone should!)

This seems to be a start in this direction: https://bitcointalk.org/index.php?topic=55822.0

Is this the same question? Bitcoin over HTTP?

@D.H. - Might be. Still, I don't like how that question is formulated ... to me at least, it's a bit harder to understand it than my qusetion. What do you guys think?

Followup - http://bitcoin.stackexchange.com/questions/2334/what-bitcoinjs-exit-nodesexist

Hmm, so you want something like a Blockchain Browser that provides data for addresses in your wallet (list of txs, and their details) and accept you sending your own txs, that you generate on your own client? Well, guess I'm slowly working on something like that...

@ThePiachu - There seem to be several such efforts. The key point is that I want to run some minimal stateless code to generate transactions, and then forward this TX to the API. What are you working on? Care to share?

@ripper234 I'm working on Bitcoin implementation in Go - https://bitcointalk.org/index.php?topic=55722.msg662703 . I'm aiming to handle standard Bitcoin messages as HTTP POSTs.

@ThePiachu - Nice, keep us posted.


text:
Manually creating transactions
Due to complete lack of documentation on the subject, how would the pseucode for creating a transaction look using the following functions: createrawtransaction signrawtransaction and sendrawtransaction.
I receive the user transaction for incoming coins on IncomingTxID, when I create a raw transction I want to include at least some of those coins so if they won't confirm, neither will his payout.

Related: C# API for Bitcoin

How to do this is documented in Mastering Bitcoin (1st ed.), §"Using Bitcoin Core’s JSON-RPC API from the Command Line", §§"Creating, Signing, and Submitting Transactions Based on Unspent Outputs".

I am assuming you want to accomplish something akin to what SatoshiDice does. Here is how it can be done, using API calls with the Bitcoin-Qt/bitcoind client:

listunspent - you get the list of all unspent transactions
You determine which ones you want to spend
You use createrawtransaction to create your inputs / outputs, taking txid and vout from the list of transactions that you have that are playing, as well as a list of transactions that constitute a "money supply" for you.
Use signrawtransaction to sign the created transaction
Use sendrawtransaction to send the signed transaction

That should be pretty much it. I have implemented some of that code myself and it is pretty easy once you get a hang of it all.

One bit of caution -- in the raw transaction, any inputs used that are not fully spent go to the miner.  So be very careful when composing raw transactions.

How about fee calculation?

@Shamoon http://bitcoinfees.com/ - you base them on the number of inputs and outputs.

A good way to see this (and also a non-automated method to do this) is available through BrainWallet:

http://brainwallet.org/#tx

One bit of caution -- in the raw transaction, any inputs used that are not fully spent go to the miner.  So be very careful when composing raw transactions.


text:
Peergroup download of the blockchain stalls?
I'm using bitcoinsharp to build my client. I try to download the blockchain in a peergroup network. Download starts, but when progress is 98%, the download is stopped & the client is waiting (2 hours without any change). The size of the downloaded blockchain file is 4.5 MB.
I use the following code:
PeerGroup peerGroup = new PeerGroup(blockStore, @params, chain);
peerGroup.AddAddress(new PeerAddress(IPAddress.Parse("84.38.65.102")));
peerGroup.AddAddress(new PeerAddress(IPAddress.Parse("83.23.15.71")));
peerGroup.Start();
peerGroup.DownloadBlockChain();

Any ideas?

Are you using the latest libraries?

yes ,  I checkout http://code.google.com/p/bitcoinsharp/source/ ..

And i try BoundedOverheadBlockStore, DiskBlockStore , MemoryBlockStore  create blockchain but same result.

Hi Stephane,
Try your edited version and  dont finished download.

Maybe it's just because there are so many transactions it's taking a while?

can you segment the download?  The block chain is really several chunks, divided by transaction groups and it could very well be an issue that the size changed over time.  Basically treat the block chain as a download of unknown file size?

The library is abandoned 7 years ago, and I don't see that anybody picked it up for maintenance https://github.com/search?utf8=%E2%9C%93&q=bitcoinsharp&type= Try to base your application on a library that is still maintained.

The question was also asked 7 years ago.


text:
How to know when a payment has been received by bitcoind?
I want to create a website which involves the creation of a new single-use address that a user would send bitcoins to. I'd like to know programmatically when the user has sent bitcoins to the address so the website can post a "thank you" note (or do whatever else). What is the best way to do this?
The flow would be:

Website creates and shows user a new single-use address and says, "send bitcoins here"
User sends bitcoins to the address
As soon as the address receives bitcoins, the website says "thank you for sending 0.3 BTC!"

I suppose I could poll the address in question every few minutes, but this is problematic because the user may abandon the website after step 1 (i.e., never send any bitcoins), so the website might end up polling forever.
I am using the official bitcoind client now, but I'm open to using something else.
I understand Blockchain.info provides an API to get push notifications on a given address activity, but I'd rather not rely on a third-party service.

I'd be really interested if there is a push method but I don't believe there is any support for this at this time built into the client.

@JayWest  at this time there is no push method.  At the current time the only option is to create the illusion for the end user that push notification is occurring by using a background process to continually pull data from bitcoind (either getreceivedbyaddress or listtransactions depending on the usage.

Beginning with v0.6.0 of the Bitcoin.org client was -BlockNotify.  Beginning with v0.8.2 of the Bitcoin.org client was -WalletNotify which provides transaction-level notification.

0.8.2 supports -walletnotify. Thank you, Stephen!

listsinceblock is more convinient - it can be used incrementally.

Is this in the mainline client?

Or listunspent 6 144 to get unspent (6-)confirmed transactions from the last 24 hours (e.g. if you move incoming transaction to a offline wallet after "registering" them).

Hey, this is exactly what I am trying to do, store deposit transactions for each unique user address from the output received from listsinceblock. I would like to ask, when computing the sum of deposits for each unique user address, does one consider transactions only of category receive and generate and ignore all other transactions categories like orphan, immature and send?

You might want to do amortized polling: use listtransactions to poll the latest transactions over all accounts. So instead of issuing one poll for every account you do it for all of them at the same time. This combined with a timeout to slow down polling if no payment will be received should work fine.

Thanks, cdecker. I'm going to wait and see if anyone responds with a push method to do this (rather than polling).

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


text:
Connect mined blocks with various addresses
From code:
 // Create coinbase tx
 CTransaction txNew;
 txNew.vin.resize(1);
 txNew.vin[0].prevout.SetNull();
 txNew.vout.resize(1);
 CPubKey pubkey;
 if (!reservekey.GetReservedKey(pubkey))
     return NULL;
 txNew.vout[0].scriptPubKey << pubkey << OP_CHECKSIG;

 // Add our coinbase tx as first transaction
 pblock->vtx.push_back(txNew);
 pblocktemplate->vTxFees.push_back(-1); // updated at end
 pblocktemplate->vTxSigOps.push_back(-1); // updated at end

How I can connect mined blocks with various addresses in base58? Not only with miner address.
I want send part of mined value to one address (developer fund), different of miner address.
add vtx[1]?
Only check it in connectblock and createnewblock functions?

I am not sure I understand what you are asking: Is this question about how to send the mining reward to more than one address?

Yes. Send part of getblockvalue() to selected address.

This isn't a complete answer but I might be able to point you in the right direction:
It seems like you have:
CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)

So you're taking a CScript  as a parameter. Some additional relevant links.  I think you would either use that to create multiple outputs, or you would use
txNew.vout[1];

https://en.bitcoin.it/wiki/Transactions#general_format_.28inside_a_block.29_of_each_output_of_a_transaction_-_Txout
https://en.bitcoin.it/wiki/Script
https://dev.visucore.com/bitcoin/doxygen/script_8cpp.html
https://dev.visucore.com/bitcoin/doxygen/class_c_transaction.html
(and follow the links to CTxIn/CTxOut from there

Also see how they do it here:
 - https://dev.visucore.com/bitcoin/doxygen/miner__tests_8cpp_source.html


text:
How long for an ASIC cluster to generate most private keys
So if I understand correctly Bitcoin is based on private keys. These private keys can be generated programmaticaly at a rate of billions per hour (or per ms perhaps with a clever ASIC cluster).  Once a private key has been generated, the Public Key and Address can likewise be generated.
privK = f(x)
pubK  = g(privK)
addr  = h(pubK)

where:
f: Private Key Generator
g: Generates the unique public key from the given private key
h: Generates the unique address from the given public key

So if some clever ASIC designer ran an address generator for the next 140 years, how much of the total address pool would he generate.  I ask, because if an ASIC cracker ever "randomly" generated any address that is already in the block chain, he could claim any of those unspent funds.
At what difficultly level with ASIC key-mining be more profitable then ASIC block-mining?  I think this would be the point at which the bitcoin economy falls apart.
Am I missing something?  Has this been discussed before.  It isn't in any of the "double-spend" studies I've found.

The private key space is really, really big.  Assume your ASIC cluster can do a billion keys per millisecond, and we'll give you your 140 years.  That will result in around 4.5*10^21 keys, or 4*2^70.
Private keys are 256-bit, so at the end of your 140 years you will have covered about 1/1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 of the keyspace.

Note that you only need a preimage on the address, and not on the full key, so it's only 160 bits that matter.  Still less than 1/300,000,000,000,000,000,000,000,000 of the space after 140 years, though.


text:
How do I unlock, decrypt, Bitcoin wallet?
I'm new to Bitcoins and I downloaded the new beta version with the encrypted wallet.  I encrypted my wallet but I have no idea on how to decrypt it.  It is locked.  How can I unlock/decrypt my wallet?
Moreover, I added a few new addresses for payments but I would like to delete some of them.  It won't allow me to delete them, however.  How can I delete addresses I never used and no longer need?

Close Bitcoin
Find your wallet.dat
Rename to wallet.old
Start Bitcoin
Copy the address from the new empty wallet
Close Bitcoin
Rename (new) wallet.dat to wallet.new
Rename wallet.old to wallet.dat
Start Bitcoin
Send all your Bitcoins to the copied address from new wallet
Enter your password
Close Bitcoin
Rename wallet.dat to wallet.old
Rename wallet.new to wallet.dat
Start Bitcoin
Your new wallet should now be unencrypted and all old addresses gone.

This solves both your problems.

You cannot delete addresses with the standard client, however:

You can delete addresses with Pywallet.
If you never received payment with those addresses and never posted them anywhere, you can simply use them the next time you need a new address, just change their label.

I don't think you can delete address in the official client.
As for encryption, try restarting the client, and making a payment - you should be prompted to enter a password.
The wallet is only unlocked briefly, in memory, to make payments.

The wallet might get decrypted for the transaction, but this is not useful if you want to save it as an unencrypted wallet.


text:
Do we know enough about Casascius to trust their physical coins in the long run?
Casascuius offers an attractive product, a physical coin storing a private key. From a CNET article and the website itself, we learn the company is run by

Mike Caldwell, 2901 Little Cottonwood Road, Sandy, Utah 84092,

who appears to be a trusted member of the Bitcoin community.
They provide a digitally signed list of Bitcoin addresses and claim that this makes Mike  legally accountable. (I'm not sure how the GPG key used can be connected to a real person.)
The only form of payment, they accept directly is Bitcoin.
Such a service allows for two types of fraud:

At some point in time, they stop sending physical coins in exchange for BTC received and disappear. This is a very common risk when making payments in advance and it is particularly obvious if the form of payment is designed not to allow chargebacks.
The risk here is not different from shopping at many other businesses online. However, the relatively simple website and the connection with Bitcoin, is likely to raise alarms with customers.
Although they claim otherwise, they could easily keep a copy of the private keys. This would allow spending the balance on all coins that have not been spent yet at some point in the future.

What should the Bitcoin community expect Casascius to do to render the scheme trustworthy?

I can't speak for the community, but if I wanted additional measures of protection against fraud, I'd go for:

Start a company and state its details, so it can be reached and sued if worse came to worse.
Process of creating the coins should be audited to ensure no data is kept.

I'm not sure whether I understand your third point "Provide public keys associated with the hidden private keys, so anyone can check if there are any coins in the key, or has someone stolen them.". The Bitcoin Address is sufficient to know the balance on this address.

Hmm, guess I didn't notice the printed addresses on the coins. And Bitcoin Addresses are public keys.

wrt the suggestion that I put up a website with the name and address of the founder, this information has consistently been displayed on the home page since I put up the site. Agreed, there exists a theoretical possibility that I could scam and there is little anybody can do about that, even if my processes were to be audited, it's still impossible to know I didn't keep a copy somewhere at some moment someone wasn't looking.  On the other hand, I am known to care about the success of Bitcoin, and own a fairly successful payroll software business independent of Bitcoins, and (especially with my signed list of addresses) have the means to be held accountable and be ordered to pay restitution in the event of fraud. If this is unsatisfactory, then of course you should not buy the coins. I indeed hope I spur successful competition (my life career is not in making coins), this has been a neat project thus far.

Dear Mike, nice to see you here. The question I am asking here is not primarily whether I can trust you. In fact, I'm likely to place a smallish order very soon. The question is how we make sure that legitimate businesses stand apart from the scammers. Revisting your website, I realize that your personal information is indeed displayed onsite. May I suggest that if your product becomes popular and you can find the time, you try to improve the website to make the connection with your identity and reputation more obvious.

I think you can place a high amount of trust in Mike Caldwell and his coins in the short term. I've met Mike in person to discuss some possible joint ventures with my coins (CoinedBits.com). I judge him to be an honest smart person. He genuinely wants to move the Bitcoin movement forward. Scamming anyone would counter his true motives.
For the long run, there is a good chance you might not be able to put as much trust in the coins themselves. The more popular they get the higher the risk of counterfeiting.

As I see it, Casascius coins are not supposed to be a top class product, tamper resistant and impossible to counterfeit. Like Casascius wrote:

Me doing physical bitcoins is just to say "hey world, guess what,
  tangible bitcoins are possible, they're not just imaginary".  I will
  have simply pioneered the physical bitcoin (with all due respect to
  BitBills).  Someone else will do a leaner, meaner, badder, cheaper,
  more secure physical bitcoin

These coins are assembled by hand by casascius himself and only a few thousand coins were made. You should look at them more as a symbolic token, rather than as an official physical bitcoin.
Obviously this does not invalidate the trust problem, but Casascius is a well known member in the community (if you want to look at him, here is a youtube video). If he decided to make the project disappear, he would be legally charged for his crime, like it is stated in the FAQ.
Ultimately, it is up to you to decide if you should trust him or not. Just remember that you are not supposed to buy thousands of these coins (besides, there aren't that many).

I agree that at this time, those physical coins have a merely symbolic value. (You don't want to pay 85% markup plus shipping for any practical payment scheme.) However such a symbolic token is great way to spread the idea. Now, if Casascius coins look fraudulent, this makes the whole Bitcoin look like a major scam to the general public.

I note that currently, you can buy physical coins worth 25 for 27.50 (if you buy at least five of them), which is a 10% markup, plus a flat rate for shipping.


text:
How do you find historic VWAP at a given time in a specific exchange?
Suppose I want to find the VWAP of BTC-USD in a specific exchange (e.g. Bitstamp) at a specific point in time (e.g. 1/1/2013 00:00:00).
What's an easy way to do this?

VWAP isn't calculated at a specific point in time, it is calculated over a period of time (commonly 24 hours or 30 days). A "24-hour VWAP at 1/1/2013 00:00:00" is actually the VWAP over the period from 12/31/2013 00:00:00 to 1/1/2013 00:00:00.
To calculate it, you'd want to use the exchange's API to get a list of the trades that were executed on the exchange during this period, where for each trade you have the execution price and the amount of BTC traded.
You then find the average of the price, weighted by volume; that it, you multiply each price with the corresponding amount, sum all these values, and divide it by the sum of all amounts traded.
Other sources can provide you with the needed data using their API, such as http://bitcoincharts.com/.
Bitcoincharts also offers this information via its web interface. For Bitstamp data, for example, go to http://bitcoincharts.com/charts/bitstampUSD, and click on "Load raw data" below the graph. You will get a table with each interval (day by default) and its "Weighted Price" in the last column. If the default chart does not contain the date you are interest in, you can change the date range with the "Time Period" control at the top.

Thanks, I am aware that a VWAP is defined over a period. Is there a page on bitcoincharts where I can choose a date and easily find that exact VWAP for that date?

@ripper234: ETA. If that's what you wanted all along, you should have said "find" rather than "calculate".

What do you mean by "ETA"? You're correct, I'll edit my question.

@ripper234: ETA = Edited to add, it means I edited my answer to address your clarified question.


text:
In the blockchain split of March 2013, where should miners mine, 0.7 or 0.8?
I want a clear cut answer + references so they is no confusion.
Today March 12 2013, on which fork should miners mine, 0.7 or 0.8?

No more fork.  So it doesn't matter anymore.  Well, both are mining the same blockchain, but v0.8 nodes could still be configured to mine a block that v0.7 won't accept.

You should go to 0.7, despite the fact that this is the version containing the error. This choice was made because it should be much easier to get the few who upgraded to bleeding-edge 0.8 to downgrade than to get everyone to upgrade all at once.
Sources:

https://bitcointalk.org/index.php?topic=152030
http://codinginmysleep.com/blockchain-all-forked-up/
http://bitcoin.org/chainfork.html

Yes, I agree to David


text:
What block numbers & hashes were discarded by the March 2013 blockchain fork?
When exactly (GMT) were these blocks mined?

I suppose it would be more accurate to say "what block hashes" were discarded, since block numbers are "reused", and a block hash is always unique

The following blocks were abandoned (along with a few more along that chain as the quickly dwindling set of 0.8.0 miners plugs along) when the 0.7 blockchain caught up with the 0.8.0 blockchain at 2013-03-12 06:19:32.  Thankfully, you can see that the 0.8.0 chain has slowed down to just one block in the two hours after 03:28:41 UTC.
Also note that, as I understand it, most transactions are showing up in both blockchains.
Source: https://blockchain.info/blocks/1363065244022  (where the ones to abandoned were labeled "Main Chain" until the current "Orphaned" chain caught up, at which point the labels swapped)
Update: I added 7 more blocks since the 0.8.0 chain was abandoned, up to 225461.  The rate of continued mining there is a bit less than one block per hour.
Update 2: As of another day later, there haven't been any more blocks in the orphaned chain.  There is only one block at height 225462 (http://blockchain.info/block-height/225462) so the orphaned chain may end at a record 32 blocks.
Height  Time (UTC)             Hash

225461  2013-03-12 16:21:02  00000000000002d74c31d9c9f8e4768c0b51c3f145be07be7e77af0146144c30
225460  2013-03-12 15:05:56  00000000000002afb9088485b05a2b8a1dfa6b82e3e915fa0765879a05061461
225459  2013-03-12 14:36:39  000000000000036e459f26b1dc02683c9beeb061eedf18689995143354467245
225458  2013-03-12 12:18:23  00000000000000620d78c08bd345aa489b02a52c5f823f0324d3c42212577c24
225457  2013-03-12 09:48:00  0000000000000067fa40b890799ef9814e1e427abd5fc9f4751ffb3ef6512d14
225456  2013-03-12 07:59:29  000000000000031ce5f5c447dbe06ebd62f988c6718e1a17d14b9dcd8ff9605c
225455  2013-03-12 07:14:21  000000000000009d2dee89c7732b5bc912845d96a6bee38cab815949cfa60d23
225454  2013-03-12 05:17:11  00000000000000df96f272c3b1e9dd15272b55750966cbd239219b94756c73ec
225453  2013-03-12 03:28:41  000000000000031803e492a0103154d243c9945ef78dbdba42a1ecfdb5bc5dbb
225452  2013-03-12 03:05:29  0000000000000190f5944e56c52600e9d8d4d5416432e03b324bc85c51629bcd
225451  2013-03-12 02:06:07  00000000000003bdcc4424dea94de83e9f54ca158ae3eac59c2e97c2f90a32ad
225450  2013-03-12 02:01:28  000000000000026a105de544bfbe71bca0820ac3963ba132c75ec40411b5f162
225449  2013-03-12 01:50:05  00000000000001f15726ea57dc7702407a3ebc097ed801cb3d7b0e8a450807cb
225448  2013-03-12 01:38:10  00000000000001f9fd0b0cab82deca5f53030911b33ba7dd7ce3fd77ad2c5a55
225447  2013-03-12 01:34:55  00000000000000ec24f812807f81aadb7a665ef4ab8b8aa49df5ef789cdc13ff
225446  2013-03-12 01:30:40  00000000000000757de9173ee2f01c9f957c8aa3b4f71b901b0fa19683ab1fa1
225445  2013-03-12 01:14:54  00000000000000ec0df675972dddf0c2bdb1d436064672a6f0b79ce65ffcade6
225444  2013-03-12 01:07:00  00000000000003381ed79de2fa810c0e4f0e9c0cd5d307380b779e2b5ffa982e
225443  2013-03-12 01:05:42  0000000000000213874009d269b90be16ea5c1f6a83a79ae2be3813d8972a2a3
225442  2013-03-12 00:50:25  0000000000000229cd059490b7607ca4c191c52bb40405fa052c48d72bfda8b0
225441  2013-03-12 00:39:25  0000000000000372a4c37e27587255ca77a6377391c1974f13ea55ec1d3bc01b
225440  2013-03-12 00:20:11  00000000000003264ac7a6a74ca779997ee637b30f84debcb6ba6c26e2d09f4b
225439  2013-03-11 23:49:08  000000000000015aab28064a4c521d6a5325ff6e251e8ca2edfdfe6cb5bf832c
225438  2013-03-11 23:47:25  000000000000019881625f04eac2046512fa1e1bd7193f56f39595d802bbbd04
225437  2013-03-11 23:34:58  000000000000000016b3a292d63f9eea6b8177b8ba8dfd621d36fd828e5cb187
225436  2013-03-11 23:34:35  00000000000001a23b3f38106f210493795a1ef6b21dd559f87ada8dfc84181b
225435  2013-03-11 23:22:47  00000000000000947452b814ed008f750023e64c8fd03bb19b3865716eeb243d
225434  2013-03-11 23:08:53  00000000000002528688a366a9f42c07089268cd8a474961c49f787cb385807e
225433  2013-03-11 23:07:54  00000000000001b3c862fd66689712bc1cdd44fc004c008ada6c1b51367686f2
225432  2013-03-11 22:56:44  00000000000002c9e42c23f6eed2b9f9152a440610dcfaf992357c3cbff3689c
225431  2013-03-11 22:46:35  00000000000002d2012cc1b3fc0cceb8c156f0e698db40bf4413a210eca056c3
225430  2013-03-11 22:39:09  000000000000015c50b165fcdd33556f8b44800c5298943ac70b112df480c023

I very, very earnestly hope so (that no transactions will be lost.)

225445 (Orphaned)
225444 (Orphaned)
225443 (Orphaned)
225431 (Orphaned)
225430 (Orphaned)

225430  2013-03-11 23:39:09


text:
Where can I find how much one XRP (Ripple unit) is worth?
XRP are the units of the new Ripple.com system.
Where can I find how much they're worth right now? Historic charts?

Update 2: There are now more traditional price / volume charts:

BTC:Bitstamp/XRP at RippleCharts.com
USD:Bitstamp/XRP at RippleCharts.com

Update: Ripple Live Orderbook and Charts by webr3 provides various bitstamp style charts and orderbooks for various XRP/xxx pairs.
Update: The Ripple Ledger Explorer by melvster shows a graph of Ripple vs Bitcoin prices.  It also shows recent ledger activity.

Early on there was also a manually-updated list at:

Ripple: XRP Price Tracker

The discussion there had a nice example of what an order book snapshot from the ripple client looks like, with headers.
The #ripple-market irc channel at freenode.net also shows real-time trades via a "Streaming exchange feed for notable #ripple gateways" all trades.  You can see it via

freenode Web IRC

A trade example looks like this:
< ripplebot> TRD bitstamp 730.698114 @ 48,713.2076 BTC rwdLV79WzXmFuzP2cBwTG6mtXcfSnCjtoF #142

I assume that means that the price for that transaction was 48,713 XRD per BTC, and I'm guessing that 730 XRD were traded at that price via bitstamp, but I haven't seen good documentation yet.
Here is an example ASK report:
ASK bitstamp 347.152555 @ 41,854.251463 BTC rwdLV79WzXmFuzP2cBwTG6mtXcfSnCjtoF #143

The code for ripplebot can be found at

rippleFoundation/ripple-watch · GitHub

That thread is terrible, people arguing about stuff.

@Lohoris Yes indeed.  But it is so far the only place I've found where you can get an instant view of the trend.  So just pay attention to the first post, and hope it is updated, and correct.  If you really care, watch the IRC channel, or get a funded account from which you can observe the order book.

This new ripplecharts.com is good!

I just made a simple website which shows XRP price for different gateways. No historic charts yet.. http://xrpvalue.com/

This is my new favorite "what's the price of an XRP" site.

Thanks :). I'm open to suggestions and pull requests on github. https://github.com/vhpoet/xrpvalue.com

You can check Ripple (XRP) market chart at Bitcoincharts.com/market/Ripple

Since the internal trade history will be public, I guess a service could be built to show price statistics. You would watch the prices of the most traded IOUs, presumably from gateways. Examples: wexUSD, wexBTC, wexEUR, etc.
The site could have several tools to group several currencies of the same denomination (but different issuers) averaging by volume or something like that. It could be similar to bitcoincharts, but pulling the data from the ledger instead of the exchange's servers.
I guess the core needs to be released first.

The orderbook (found inside the Ripple client once you're logged in and funded) does in fact show the price, it's just a huge spread and confusing UI that makes it difficult to understand now.
Right now, the best bid is:
10BTC   10BTC   5,000.00000XR
And the best ask is:
43,998.00000XRP 10BTC   10B
Which means someone is proposing to buy BTC at the price of 5000 XRPs, and another person is offering to sell BTC at the price of 43,399.8 XRP. So, the spread is huge, but one can still say the "price" of 1 XRP right now is somewhere between 0.000002 and 0.0002 BTC

Seems like a typo there - do you mean 43,998 XRP rather than 43,399.8?  And do you need to divide by the units there (10 BTC) or is that actually the total price?

@nealmcb - could be. Anyway the answer isn't the price at any point in time, it's just a place where the price can be found out.

Unfortunately, the price spread you link to can only be found out after opening an account and getting "funded" with 300 ripples.  So while I appreciate the concrete helpful nature of this post, it would help even more if it was internally consistent and indicated what the columns mean.

I realize I'm replying to a post of 2013. I'm looking for historical Ripple pricing in USD from it's launch in February 2nd, 2013 till the end of 2013. Does anyone know where I can find this?

It will be worth different things to different people in different instances. There won't be any global price just like there isn't any global price for bitcoin. Multiple exchange rates exist on multiple exchanges. MtGox is just the biggest and thus often quoted. Some people are paying more some people are paying less than the MtGox rate. This creates opportunities for arbitrage.
This only accounts for other currencies and not for example how many gallons of gas a bitcoin is worth.

Mmmh no, actually there is a global BTC exchange rate: arbitrage makes them all converge to the same. If some rate is higher or lower there is always a reason, such as higher operation costs, no API access, etc.

Arbitrage will make them converge, but not perfectly, otherwise it by definition would no longer occur. As long as it still occurs there must be multiple exchange rates.

You can find how much one XRP (ripple) is worth at...
http://www.RipplePrice.com and also at http://www.DigiPrices.com
The rate shown is the mid-market rate at Bitstamp.
Disclosure: I created these sites. I'd appreciate any feedback.


text:
Where can I find a roadmap of the main bitcoin client?
Wallet encryption is long overdue, and AFAIK is coming in the next client version (0.4.0). What are the next planned milestones in the development of the main client and/or protocol? Where can I find information about that?

This question is too localised in time.  Voting to close.

Any ideas on editing this question so it is timeless?

Not really.  The closest I can think of is "does there exist a roadmap for development of the Bitcoin client?" so that the second answer can be on-topic.  Even that's not super amazing though, since the linked roadmap is basically just an email Gavin wrote in August.

Currently, they are working on:
 - wallet encryption
 - private key import/export
 - test suite for testing bitcoin clients/libraries
 - m-of-n signature "standard transaction"
Source: mailing list

You can read the Roadmap and the status before v0.4 release
They discuss the development at
http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development


text:
How does one document Bitcoin investments for tax and other legal issues?
If Bitcoins are used as a store of value or investment vehicle, what legal documents should the investor require/keep? To date, no jurisdiction has special laws concerning cryptocurrencies, but investors may want to implemented best-practices to avoid later hassle.
Personally, I'd expect a receipt for any fiat-BTC transaction indicating

full name and address of the other party or exchange,
amount in BTC and fiat currency, and
any fees and taxes incurred.

Is this reasonable? Do larger exchanges, Mt.Gox or Bitcoin-central, issue a printable document with this information?

What legal documents to keep?  That's really a question for your accountant and/or attorney. One could reasonably expect to need about the same level of documentation as would be required for an investment in stamps or coins.
Most likely the exchanges comply with AML (Anti-Money-Laundering) statutes in their own jurisdictions, but the onus is probably on the individual to obtain documentation of all transactions.

I'm not sure what exchanges offer in this area however both mybitprices.info and LibraTax offer a mechanism by which you can find all transactions for your wallet and their historical fiat prices no matter the source in downloadable format.

Do larger exchanges, Mt.Gox or Bitcoin-central, issue a printable document with this information?


text:
Can I create a deterministic wallet and export/disclose indiviual keys without compromising the wallet?
Scenario:

Create a deterministic wallet and a larger number of private keys and associated bitcoin addresses on a safe (e.g. offline) computer.
Backup the seed securely. Store the private keys securely (e.g. on a piece of paper).
Note addresses and send Bitcoins to a number of different addresses. (They are now in cold storage.)
When needed, take one of the private keys and import it from an online wallet (e-wallet, cellphone, etc.) (This includes the risk of the private key getting stolen by malware or the e-wallet operator. However, such a theft would only apply to a small amount, not your total fortune.)

If one private key of a deterministic wallet gets compromised (known to an advisory), are the other keys (and the seed) still secure?
By design, this is not the case for the electrum deterministic wallet and the developers are aware of this. How about other deterministic wallets, e.g. Armory?

Jan, in the comments above/below might have misunderstood why they are doing something that looks like key = seed + hash(sequence). See here for more info: https://bitcointalk.org/index.php?topic=19137.0 They are basically using a property of ECC keys. The thing outside the hash function is not the seed but a public key when generating public keys and a private key when generating private keys. (note: I don't have commenting karma)

The proposed standard for hierarchical deterministic wallets (see BIP 32) is designed to allow this (and more).
It is not yet implemented, but several authors of clients have agreed to adopt it, once it becomes final.

Towards the end of your link, they acknowledge "Alan Reiner for the implementation of this scheme in Armory [...]." Does this mean that current versions of Armory do already use this scheme (or something cryptographically equivalent)?

Had the same need and could not find easy to use solutions so I ended up rolling my own. I am new to bitcoin and crypto so use with care:
https://github.com/pavlos-christoforou/bitcoin

I will assume that you are able to create your own wallet, as you said. Under such circumstance, I would suggest that you follow the logic below.
First of all, let's suppose that someone has coded (as blockchain website released some tools into their API section) a software able to create bitcoin addresses for external users. In such a scenario, if the algorithms contained in such software, hosted in a server, can create a multi-signature wallet for the users, in the meaning that certain user would need both private keys (2 keys per each address) created by the software in order to spend the coins from such a single-address wallet, and if for example the server keeps the private key A and deliver to the user the private key B, then we would have the situation of a "hybrid online wallet" where only the user can use both keys, A + B, in order to create, sign and broadcast transactions related to his bitcoin address. I speak here about the case where only the user is allowed to proceed in order to spend coins.
Such a system would be pretty secure for the user if the software owner would have no knowledge or interaction with private key A (or B) and if the encryption used before storing that private key A would make useless to any third party (even if reaching there) any access to that stored key from the server's database.
Now, on the other hand, the sole way to construct a transaction and to sign it with both private keys might take place only in the server (this being a very important condition, as I will explain later in this scenario).
If the software owner is willing to let the users to leave the server with both keys (for example, just to delete their accounts and establish such addresses as some truly cold wallets), he might employ two options.
One would be to release directly to the user the private key A, thus empowering him to use elsewhere (if and when needed) the keys A and B for signing transactions, or the other (somehow better one) in which the algorithm allow to create a third key, the C key, which could be used in conjunction with key B in order to spend coins from that address. In other words, the user leaves again with two private keys in his pocket, enough for him to use them for depleting the corresponding address (public key). That can be realized either by using a seed (certain "D" private key), unique to the server (or to the user account), or establishing as seed even the key A. If the key A is used as a seed, then practically anyone with access to the source code of software could replicate the entire range of addresses created for the specific user (if the key A is "user-account-specific" and not "address-specific"). I see the last one as impossible to be used by any decent sysadmin (if he has the smallest idea about the risks incurred in such a low level security choice). So let's assume the server creates seeds with higher privileges (aka user-specific). That, again, could have catastrophic consequences for any careless user that would import that key A into any wallet from a device infected with malware. (Maybe that reminds us somehow of the Electrum wallet ? :/ ...)
The last option available which stands is that where the server has an own seed key (with highest privileges) which cannot be accessed by any third party, and that combined with at least another one (server protected with multi-signature, too).
Back to your situation, you should have the key B offering elevated privileges (enabling you to create keys D, and further, but anyone using the D to not be able to create other keys). Because, though, such thing would be a burden to code, I would suggest some simpler option : the one way - one size shot - transaction. Which means that you import in any wallet of your choice the keys after some sweet cleaning of the basic functions. As once said Henry Ford about his cars "you can order any color, as time as it is just black".
The imported address, wherever be it stored, might be coded such as to make possible one single operation: send a payment of precise amount solely toward another address X of you (for example, only can send each time about 0.1 BTC toward your hot wallet -- pocket money). Need something more ? Another fixed tranche of 0.100 BTC, toward the same address. Just that. A perfect tweak. Of course, the X address might be stored in a hardware wallet, fully secure. Other kinds of spending might be made possible only using the server itself (as to unlock the full control over the address balance).

It all depends on how your deterministic wallet was created, if it's somthing hash based it would be secure. What you need is that it is impossible to discover the seed with the actual private keys, so it must use an one way function (i.e. hash function).
And in general compromising a private key in a wallet does not comprise the rest of the wallet.

That's what I was thinking. However, after reading the electrum source code, I realized that you have to be wary: They use something like KEY = SEED + HASH(sequence), making it possible in some circumstances to calculate SEED.

Just an idea: would KEY=HASH(SEED + offset) work also? That way neither SEED nor the other addresses would be guessable.

@cdecker I would think so, but don't take my word for it. Better implement a scheme that has been reviewed by cryptography experts.

@cdecker Yes this is something that would be secure because you hash the seed along with another parameter, thus changing the whole resultant hash.

@Jan If electrum use this way I would not recommend it for any use the seed is compromised in all the private key which is awful from my consideration.

Armory wallet allows this, and it doesn't compromise the security of the wallet at all. It does compromise the integrity of your backups tho. Deterministic wallets are useful because you can make a single backup right at the start (before using it) and it will be a good backup forever.
That is, unless you import addresses from somewhere else. Those new addresses won't be in your old backup, so you have to make a new backup at that point.


text:
Are Bitcoins destined to forever increase in value?
The idea of a currency with a limited number of units seems to me to be fundamentally different to existing currencies.  While other currencies are generally based on permanent inflation - more 'units' coming into the currency pool - which causes each unit to be worth less, Bitcoin is based on a fixed number of 'units', never changing.  Does this mean that, as usage increases and time passes, each 'unit' will necessarily be worth more and more and have to be split into smaller and smaller amounts?

"Are Bitcoins destined to forever increase in value?" Looking at the chart at MtGox over the last month: apparently not.

In theory yes. If demand grows at a steady rate this will certainly be the case, as less coins will be produced making what is available more desirable.
In reality there are other factors which could affect the value of bitcoins.

Alternate chain could supersede bitcoins (unlikely at this time)
Vulnerabilities like what has appeared (with hacking) already in the main markets
Overspeculation of market trends

Think of it more like gold than a fiat currency in the likelihood of behaviour (nb. my opinion, may not be the case)
If the value does keep increasing it can split into eight decimal places to make a very large number of potential units of currency.

This generally boils down to supply and demand.
When the supply is fixed the value would increase with the demand.

The will go up in value as long as more people continue using them and the demand outpaces the creation of the supply. But once the market is saturated (i.e. the whole world) then the value of bitcoins would become stable, and would only move by market conditions such as a change in the world population, and lost bitcoins which are effectively disappearing from the system will contribute to a continued trickle of deflation.

This is correct, adoption (and therefore value) will tend to follow the pattern of a Sigmoid curve.  However, rising value is referred to as deflation, not inflation.

If demand continues to increase and supply is constant, then yes. But supply is not going to be constant, that's a wholly unrealistic assumption. Already, alternative currencies and online wallet services are increasing the effective supply of Bitcoins.
If an Altcoin is reasonably predictable valued at .1 Bitcoin, why should I care whether you give me 10 Bitcoins or 1 Altcoin? (The value might go up or it might go down, but so long as they're equally likely, I don't much care.) Thus each Altcoin increases the effective supply of Bitcoins.
Similarly, I don't care if you give me 10 Bitcoins or a Mt. Gox code to claim 10 Bitcoins. Thus Mt. Gox codes act as Bitcoins as well.
Once shorts are available, interest-bearing accounts will be possible. This will allow the two sides of a short to cancel out, require no bitcoins, and the long side will also act as a supply of Bitcoins. I may consider a promise to pay 10.2 Bitcoins next month just as good as 10 Bitcoins today. I may consider a promise to pay the value of 10.2 Bitcoins next month in US dollars just as good as 10 Bitcoins today. (Assuming both promises are backed by an exchange and tracked as exchange assets.)

Alternative blockchain-based currencies tend to cannibalize each other, as there's only a small group (relative to Bitcoin) of speculators involved in them.  When a new alternative is created, it tends to drive the price of the other alternatives down without affecting the Bitcoin price very much.

That's true today, but I don't think that will be true forever. But I guess we're arguing over whose crystal ball is clearer. Every argument why I wouldn't want Altcoins instead of Bitcoins is an argument why someone would be willing to give me more of them as well.

This probably isn't the place to argue the point, so I'll just phrase it this way: if blockchain-based currency is a natural monopoly, then the creation of a Bitcoin clone won't affect the price of bitcoins.  Also, in the case of bitcoin-denominated debt (claim codes, shorts, etc), the amount of outstanding debt should be roughly proportional to the supply of currency, so this wouldn't represent an ongoing source of inflation either.

Although limited total number of bitcoins implies that they will be deflationary in the future. Meaning they will increase in value due to limited supply. They are currently inflationary as about 7200 bitcoins are released into circulation every day. This trend will continue for some time before supply starts to slow down.
This means that there is a great deal of downward pressure on the value of bitcoins (lots of supply). This could lead to the prices going down long before they go up again due to limited supply.


text:
Where can I find a graph of the current size of mining pools?
Where can I find a graph of the estimated size of each mining pool relative to the overall hashrate of the entire bitcoin network?

The http://bitcoinwatch.com/ site gives a pie-chart of the hasrate distribution by mining pool.

This answer is outdated. Bitcoinwatch doesn't show a mining pool chart anymore.

Hashrate distribution An estimation of hashrate distribution amongst the largest mining pools

http://blockchain.info/pools

Time for an update! At the moment, the following sites feature charts about the distribution of mining pools:

Bitcoinity (hash rate)
Blockchain.info (number of blocks mined)
Blocktrail (number of blocks mined)
Coin Dance (number of blocks mined, including support for proposals)

Disclaimer: I didn't check the accuracy of the data, and a pool's hash rate will vary over time. The number of blocks mined will vary randomly, of course.


text:
Got a malware and need help
Someone sent me 1000$ but when I pasted my adress this happen:

15nTPsVp3EGk78FUGcmAyqCnFCsfv6shLb (mine)
15QrWeM7HcJz8haNQUtq6KU23GDSHn8xxx (hacker)

It's been 6 hours and still unconfirmed on blockchain and it's not on blockexplorer.
Is there anything i can do or sender to cancel the trade?
I've watched videos about how to double spend but I'm afraid it will help the transanction go through.

First of all do a malware scan to remove the malware. https://www.malwarebytes.com/mwb-download/

@Fyah Very smart thing to propose. If something has to be done within a few minutes with every second counting and costs you 1000 $ if you don't succeed, better do something that takes at least hours first.

It's not clear what you mean since your address has no transactions and the address of the hacker is censored but I assume that someone transferred the money to that addresses instead.
The sender can send the money someone else with a high fee. It's really important to do this as soon as possible because once the transaction is included in a block, you cannot undo it. It might be necessary to back up the wallet and re-import it because this is double spending and wallets usually prevent it so all your payments can go through and you don't try to spend more than you have (which will not work out for all payments anyway).
However, in this case you want to double spend so the first transaction doesn't go through and the second transaction does. For this, include a relatively high fee in the second transaction so it will be picked by the miners, not the one the hacker made.
Edit: I just saw that you posted this 12 hours ago, so this answer is probably too late. Sorry for your money. But it might be that the sender is trying to rip you off by sending the money to one of their own addresses and claiming they tried to send it to you. Don't pay!


text:
Do BitCoin wallets generated by websites have validity?
Is there a way to generate my own Bitcoin address offline without using the websites?

You can save the bitaddress.org site and load it offline and it will still work.
You can also use VanityGen to generate "vanity" addresses.

Yes you can use just about any bitcoin client to do this - bitcoin-qt, electrum, multibit, armory etc. They can all generate private keys and addresses offline.


text:
Electrum use from third-party Computer
I understand that electrum offer the amazing ability to use the 12 words seed to fully restore a wallet, but that is really dangerous because it doesn't require any password.
Is there a good way to digitally store a backup that enable to regain access to my wallets by entering a password?
P.S. I can export public keys to have a safe read-only wallet backup, but if I export also the private keys will these be password-less and enable anyone who posses them to gain full control of my wallet or do they need to enter the password I provided during the creation phase?

You can set a password for your Electrum wallet by clicking the padlock symbol in the bottom right corner.

This can be a different password for each wallet. The password isn't just a barrier like the PIN of a bank card but the private keys actually are encrypted using it and AES-256-CBC (Source) which means that the password is needed to spend money. However, your transaction history, your own addresses (and therefore how much money you have) can be seen without knowing your password. This is the reason Electrum can give you this info (like your total balance) without requiring you to enter your password first.
If you want to back up your wallet, you can literally just do that because an Electrum wallet is just a single file.
The Electrum folder is ~/.electrum on Linux and Mac and described without slashes for Windows as UsersYourUserNameAppDataRoamingElectrumwallets on the official Electrum website but you'll probably find it. In it, there is a folder named wallets which is the default location for Electrum wallets. The wallets are text files which have the same name as the wallets.
Backing up the wallet files has the added advantage that you get your note-like data back (description of sent transactions, receiving notes, contacts). This obviously can't be generated from the seed because it's data entered by the user after the seed is set. However, it's written to your wallet file and if you copy it to a different computer (or the same computer later on after its hard drive exploded) you get the note-like data back.

When you generate a new seed in Electrum 2 you can select "Options" and choose to add your own words to Electrum's wordlist. The word(s) you add could be a password (passphrase). If someone finds your Electrum wordlist, they can import a correct bitcoin wallet, but they would also need to know your password/passphrase to recreate the wallet that you are using.
Be aware that while many Bitcoin wallets (Trezor, Ledger, Mycelium) use the BIP32/BIP39/BIP44 specifications to create a wordlist, electrum unfortunately uses its own method and worlist. Therefore you cannot import an Electrum wallet to e.g. Mycelium.


text:
List of all currencies which can be mined by a SHA256-based ASIC miner
Lot of information over this scattered over the internet, but can someone list complete list of currencies that can be mined by an AntMiner U2 apart from bitcoin, or any other SHA256-based miner?

You should try to touch this
https://coinmarketcap.com/currencies/views/all/
Need to filter out those which aren't sha256d though.

Superb List! I wish they had listed the currency algorithms

Yep, hope in the future they will have it :D


text:
Receive unconfirmed transactions using Insight API
I am new to Insight API. I want to receive unconfirmed transaction that are being broadcast to confirm by a miner to add in a block.
I am using Insight API using RPC client.
How I can get unconfirmed transactions similar to the ones shown on blockchain.info.

It is relatively easy to build a simple program that connects to some peers in the network and receives transactions that are being broadcast. You do not need a third party service to do so.
Pycoin includes some simple examples that connect to the network and receive inv messages, all you'd have to do then is to send getdata to the peer announcing the transaction. Disclaimer: I am the author of pycoin.

You can do it without any third-party api.
Take an example here: https://github.com/sebicas/bitcoin-sniffer (I haven't checked it)


text:
Other server wallets than bitcoind recommended for a ubuntu server
I currently run bitcoind on my server that is hosting an online browser game where bitcoin is integrated. The problem I have right now is that we are running out of diskspace with the increasing size of the blockchain and upgrading hardware is not an option at this point.
Is there a server wallet that is not downloading the entire blockchain like bitcond does? If so which ones?
Our current integration is through PHP so it would be good if there is support for that.

The easiest solution would be to upgrade to the recently released version 0.12.0 which allows running a wallet while in pruning mode (which was not possible with 0.11.2). That way you can limit the required diskspace, still have a fully validating node, and don't need to do update your integration.
After the upgrade to 0.12.0 you just start bitcoind with -prune=<n> where <n> gives the amount of MiB of blockchain data you want to store. Be sure to leave some more diskspace for other data, the other files in the bitcoin directory don't count toward the limit.

@Piranha: You're welcome. If my answer solved your issue, you may accept it, so that the question appears as solved.

related: What do pruning nodes contribute to the network?


text:
In the QBundle Burstcoin Wallet, why is a fee of 1 BURST required to set the account info?
The QBundle Burstcoin Wallet (v2.0.4, installed to Windows 10) requires a fee of 1 BURST to set the Name, Description, and Passphrase for the wallet.
Admittedly, the fee is very low (worth about 2.5 cents at the moment), but why is a fee required? Who receives it?

Are you referring to the online wallet or, the packaged windows launcher version?

@Willtech The Windows version

You are claiming an address on the blockchain. The fee makes sure no one will (try to) claim all addresses on the network.

Does the fee just go to the miners?

sorry for the delay but yes. the fee goes to the miner of the block

I can only speculate that it is a means for the developers of the wallet to draw a profit without having to actually sell the wallet software.


text:
Bitcoin Cash testnet version of insight API
I was wondering if anyone know a testnet version of Insight API for Bitcoin Cash?
For mainnet there are those:

https://bch-insight.bitpay.com/api/
https://bch-bitcore2.trezor.io/api/

But I cannot find one for testnet.
Thank you very much.

Murch has voted to delete my answer but on the same link (blockdozer) which I mentioned in answer has option for bitcoin cash test network by clicking on ecurrency

With a trial & error procedure I've found this one :-)
Prefix for APIs is https://test-bch-insight.bitpay.com/api
For example:
https://test-bch-insight.bitpay.com/api/addrs/2MzrMhMEPN9KYsZHgijMqekPa8kmvwsuEVm,2N1w811DgtWzjHdwtP1zzbXqJdh9vNK3sk9,2N3rs2KJBYxZQifg5TY6Bjb8CGcvmYTppsG/utxo

Returns 404. The root works but not the /api

That's only the base url, full api call works, I've edited comment adding one example

It's not working, any updates?

Bitpay did a large refactor of Insight/Bitcore so both BTC and BCH run off the same backend. The new URLs are:

Block explorer: https://insight.bitcore.io/#/BCH/mainnet/home
API: https://api.bitcore.io/api/BCH/mainnet
API Docs: https://github.com/bitpay/bitcore/blob/master/packages/bitcore-node/docs/api-documentation.md
Swap mainnet/testnet and BTC/BCH slugs as required

Example: get UTXOs for some random address I grabbed out of a recent block:
$ curl -s https://api.bitcore.io/api/BCH/mainnet/address/qz09ljd3fthvuuasw3tchnhm8a5z5ppm9vc4t6s5pe/?unspent=true | jq

[
  {
    "_id": "5cae0b7912025b0a3983bf75",
    "chain": "BCH",
    "network": "mainnet",
    "coinbase": false,
    "mintIndex": 2,
    "spentTxid": "",
    "mintTxid": "81d1e58956eb5ba269ad3ac6394382825bd9d9b4d3a22eca03133eef19446b72",
    "mintHeight": 577661,
    "spentHeight": -2,
    "address": "qz09ljd3fthvuuasw3tchnhm8a5z5ppm9vc4t6s5pe",
    "script": "76a9149e5fc9b14aeece73b074578bcefb3f682a043b2b88ac",
    "value": 7000000,
    "confirmations": -1
  },
  {
    "_id": "5cae0f6212025b0a3988a698",
    "chain": "BCH",
    "network": "mainnet",
    "coinbase": false,
    "mintIndex": 0,
    "spentTxid": "",
    "mintTxid": "b8b72fa7defb89824f9c31d6294e3764c4675ac085668604113f4b6394d8cdde",
    "mintHeight": 577664,
    "spentHeight": -2,
    "address": "qz09ljd3fthvuuasw3tchnhm8a5z5ppm9vc4t6s5pe",
    "script": "76a9149e5fc9b14aeece73b074578bcefb3f682a043b2b88ac",
    "value": 1111,
    "confirmations": -1
  }
]

tesnet endpoints are still working!


text:
Electrum setup problem
I was trying to install electrum, and for some reason, I wanted to see what multisig wallet was, and now I'm stuck on the master public keys window, I can't cancel and select standard wallet. Every time I open the installer it asks me to input the master public keys.


text:
What are some open source blockchain projects?
I was trying to build a blockchain to host my cryptocurrency.For that I was searching for some open source blockchain projects and I came across Best blockchain open source projects which mentioned names like :

Eris
MultiChain
HydraChain
OpenChain

I was concerned whether these projects allow you to build your own blockchain or they just let you build something like a Dapp on their blockchain?

The most famous open source Blockchains are Bitcoin Blockchain and HyperLedger Blockchain.

Thanks.Bitcoin allows you to make your cryptocurrency on their blockchain. But as I asked, I was willing to know whether these projects allow you to create your own blockchain. I don't think bitcoin allows you to create your own public blockchain ( I am not considering the option of cloning their blockchain and making changes to it) but MultiChain provides facility of making your own blockchain. But I am not sure about others and that I was concerned about.

I don't believe @Farghaly meant creating a currency on top of the Bitcoin network, but rather modifying the Bitcoin source code to create your own p2p network and blockchain.  After all, that's the point of open source software in the first place.  For example, say you were too change the source so that it uses a different TCP port number, and then run a few nodes to seed newer nodes.  Even though your new network follows all the same rules, it is now a separate p2p network and therefore a separate blockchain.


text:
Are there any revenue sharing blog websites that pay out in Bitcoin?
There are plenty of revenue-sharing blog websites out there (ie they share advertising revenue with the bloggers) but it would make a lot of sense for payments to be made out in Bitcoin, as transaction fees would be very low and the minimum payment amount could be kept small. It would also easily allow participants of any nationality.
Are there any blog hosting sites that share revenue and payout in Bitcoin?

I'm voting to close this question as off-topic because it is a shopping list question, to which there never can be a definitive answer, and which invites spam.

StrongCoin Wallet pays affiliates a share of revenue. https://strongcoin.com/en/blog/strongcoin_affiliate_program

Not a blog site, but it could be used on any blog I suppose... thanks!

You can use https://anonymousads.com/ on a blog site. They pay in Bitcoin but don't host anything themselves as far as I know

Site didn't load for me when I tried it just now... (just hung)


text:
How safe is a brain wallet?
Edit: The answer is that they are unsafe and have been attacked. Please don't use them!
Brain wallets can be created with a (minimum 15 character) pass phrase at https://www.bitaddress.org
There are no warnings given on the site about the safety of this. How secure are brain wallets?
A recent contest provided 5 bitcoin (receiving) addresses generated with a brain wallet pass phrase, with each address holding 1BTC as a prize.
The challenger did give some hints along the way, but within 7 hours, the first prize was taken, and after around 18 days, all of them were taken.
The author of the blog summarises that brain wallets are generally safe, but is this really the case?
With a well indexed database of the existing Bitcoin addresses that hold a positive balance and a well-tuned script for trying out likely pass phrases, surely there's some quite long phrases that would still be easy to guess?

just memorize your private key then delete all traces of it. it doesn't get any more secure than that does it?

This article was written recently: http://bitcoinblog.de/2014/03/28/brainwallets-a-cautionary-tale/

This question is marked as answered, but it was answered back in 2013.  The answer has changed since then.  Here's a reply from 2015.
Brainwallets are hideously insecure.  Don't use them.  EVER!
Don't take my word for it.  Here are some references:
http://www.coindesk.com/new-cracking-tool-exposes-major-flaw-in-bitcoin-brainwallets/
https://en.bitcoin.it/wiki/Brainwallet#Low_Entropy_from_Human-Generated_Passphrases
If you want an easy-to-memorize phrase, use Electrum or BIP0039.  Don't use a brainwallet.

The flaw has been exploited: http://arstechnica.com/security/2016/02/password-cracking-attacks-on-bitcoin-wallets-net-103000/

Yes its inseucre if your using the old method of generating brain wallets. Using the warp wallet generator for brain wallets has proven secure with an unclaimed 20BTC reward. See Max Krohn's answer below. https://keybase.io/warp

They can be made a heck-of-a-lot safer with simple key-stretching.  The WarpWallet runs Scrypt on your passphrase, and outputs a string in the full 256-bit keyspace.  It's at least 1000x more expensive to guess a WarpWallet address than a standard brainwallet address.  And if you had access to high-end scrypt-computing hardware, you're probably better off using it to mine litecoins rather than go after WarpWallets.  See https://keybase.io/warp.  There's a 20BTC challenge to solve an 8-letter WarpWallet passphrase that's been open for almost a month.

As of today, it's still there.

98 days and still safe so far (note that half the reward is held separately): https://blockchain.info/address/1AdU3EcimMFN7JLJtceSyrmFYE3gF5ZnGj

1000x safer doesn't sound like a lot. It's just a few more character or one more word.

It is worth noting that if the brain wallet generates BIP 39 seed words (see https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-mnemonic-new), the BIP 39 synthesis process natively uses PBKDF2 using 2048 rounds of HMAC-SHA512 which adds computational stretching that supports and additional passphrase. However, the base brainwallet phrase needs adequate entropy (~128 bits), and should not exist elsewhere on the Internet.

There are no warnings given on the site about the safety of this. How secure are brain wallets?

As secure as you make them, in my opinion. Let's say you use all 92 characters in your password, and it's 30 letters long. That gives you an entropy of 92^30, or 195 bits. It would take more energy than can possibly be produced on earth to brute force it.
https://crypto.stackexchange.com/a/1160

These numbers have nothing to do with the technology of the devices; they are the maximums that thermodynamics will allow. And they strongly imply that brute-force attacks against 256-bit keys will be infeasible until computers are built from something other than matter and occupy something other than space.

Of course, there are probably side-channel attacks against it. However, I don't know enough about the implementation he's using to say.

With a well indexed database of the existing Bitcoin addresses that hold a positive balance

You don't need one. You just need a bloom filter with every bitcoin address ever seen in the blockchain, which can actually fit in 50 MB or so.

What do you mean by 92 characters in the password, especially in relation to bits?  26 letters in the alphabet * 2 (uppercase/lowercase) * symbols doesn't equal this (AFAIK - unless you're speaking of chars that aren't typical ASCII)

@makerofthings7 You're forgetting numbers, and ><?:"{}|_+-=[]\;',./ Speaking of which, I forgot three more: \~` and space.

92 characters is nice and all but as hotly debated as the XKCD password theory is, I have to admit there is some truth in saying that a long password you can remember is much better than a short one you can't.

@DavidPerry My point is merely that you could create a very secure brainwallet. This doesn't mean that a password of 'asdfasdfasdfasdf' is secure.

what if you made a brain wallet with chinese characters? or ascii codes that aren't on the keyboard?

If anything, then the contest just proved that brainwallets is more secure than one would think. After a few hours the "lorem ipsum dolor sit amet" address was "cracked", after two weeks the rest wasn't cracked.
The author of the contest (linjaaho) gave A LOT of hints, but even though that, it took around two days for the rest of the addresses to be cracked (and seriously 4 * "fuck", 3 * "testing", 3 * "aurinko" (sun), 3 * "goatse" is very easy passwords especially for someone knowing the hints).
So in the end, I would say that the contest just showed that brainwallets is way more safe that I would have thought. However, if you use a weak password then of course it would be better to use random. Also note that the default behaviour of bitcoin-qt (send charge to a new address) has some privacy and security advantages: https://bitcoin.stackexchange.com/a/8192/2785

Bit-for-bit, a human-generated password/passphrase will be lower entropy than a randomly generated one.  This means that you will need to come up with a pretty long string (minimum of 30 characters, preferably longer than 40) and truly use your brain to create one.  You need to minimize the use of full words, avoid sentences and common phrase structure, mix information (don't just use one piece of information to encode, use three or more), and generally make the string as random-looking as you can.  The trade-off is that the closer you make it appear to a random one, the less likely you will be able to commit it to memory.
Ideally, you want to construct your password/passphrase offline, just in case.
As an example of the kind of password you are looking to construct, consider this:
cyFtlt9nuLeet$dyKtyt0tuWtec#iaGiab9maEnaE(ejnnbsyscaaa
This was created with 3 pieces of information related to three formerly popular songs, by three different artists.  It is not random, and it is constructed from information I already have committed to memory.  If I forget this password, I can always reconstruct it from the same base info.
If you can create a long password in a similar vein (using information only you have intimate familiarity with), and your computer is not compromised in some way, then you can create a secure brainwallet.  If you can't, then I wouldn't recommend it.  Memorizing a 12 word BIP39 recovery seed might be more up your alley.