text:
Do these new ASIC miners really pay for themselves in 5 days?
The Bitforce 50GH/s miner costs $2,500 today, and according to the following calculation it would mine enough coins in about 5 days to pay for itself.
I am sure I am missing something here. Why would they even sell this hardware at all? Surely it makes more sense to keep the hardware and just set it loose on calculating coins and cash them in.

There's a factor called Difficulty, the more hashing power exists on the network the more difficulty exists, therefore it's harder to mine coins. Right now The difficulty factor would let you recover your money fast  because almost no one has ASIC chips, when they ship in bulk the difficulty factor will rise to 30-120 million during the year. To know by how much the difficulty will rise it's impossible, so it's your call.

Perhaps they are selling pre-orders and while that's happening using their own hardware to rake in the coins. By the time the hardware ships the difficulty may have racked up making their hardware less valuable but they've double recouped in the meantime (early access to the hardware + sale of the hardware).
The upfront investment in these chips must be pretty big though - still quite a risk for the hardware vendors.

Not if you don't have one already.
The trouble is that you don't know when you'll receive your device and, as @user3418 says, the difficulty will be rising in the meantime.
Butterfly Labs (who manufactures the device you're talking about) has only just started delivering devices, and already has a large number of pre-orders. You probably wouldn't receive your device for at least several months, and there's a possibility the device will never earn enough to pay for itself.

ASICminer did decide to keep the hardware and mine. They're selling shares with intent to payout the dividends from whatever profit is made.
However, Avalon and BFL didn't choose the same path. As to why, some people believe it's far better to "sell the shovel" than "dig for gold". No one knows what the exchange rate or mining difficulty will be in 3 months (things that affect profits for miners, along with electricity), but none of that matters to the hardware companies, since their profit will already be in the bank.
And the increased difficulty is precisely why the machines won't pay for themselves in 5 days. The might if you had one right now, when difficulty is low. But the network hash rate is going to increase by a large factor once all the ASICs have shipped by this summer.
Eventually, your single 50GH/s machine will be unprofitable as new, more efficient technology debuts and the network difficulty continues to climb.

It will take time for you to get your miner, and difficulty might rise during that. Also, please use comments to comment on another answer. I recognize that you can't do that until you have 50 rep, but please wait until then.

They would if yours was the only one delivered.
Claim is made based on current difficulty rate.  When ASIC miners ship to many people, difficulty rate changes rapidly.  Total sum of profits all  miners remain same, no matter what miners buy.

if you really want to see what you are going to make with such a device, use this calculator http://www.coinish.com/calc/ and set the Delivery Time to whenever you think your Miner will arrive, lets say 4 months.
You will see that with the current trend, breaking even will take much much longer

Link is down :-(

works now, it is a nice calculator

If you sell them on ebay they may pay themselves. I think a better way to get into mining is to try cloud mining with cexio at least you don't have to wait, you can sell and buy GH/s whenever you want (maybe making a profit out of it) and you don't have to spend time taking care for the machines.


text:
Bcoin - chain database location
'use strict';

const Chain = require('bcoin/lib/blockchain/chain');

const chain = new Chain({
  network: 'main'
});

(async () => {
  await chain.open();
  console.log(chain.tip);
})();

The result is:
{ hash: '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f',
  version: '00000001',
  prevBlock: '0000000000000000000000000000000000000000000000000000000000000000',
  merkleRoot: '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b',
  time: 1231006505,
  bits: 486604799,
  nonce: 2083236893,
  height: 0,
  chainwork: '0000000000000000000000000000000000000000000000000000000100010001' }

Where is the database for this located?

Chain accepts parameter db, which can have multiple backends.
By default it will be stored in memory. So this tip is coming from memory.
If you want to store it to File(For example full node stores it in PREFIX/chain) you need to pass db with backend(ldb for example) and specify either prefix or location.
prefix stands for general directory where chain and wallet will be stored.
location specifies DB directly.
So if we wanted to store this db in /tmp/testnet-1/chain.ldb We could specify:
const chain = new Chain({
  network: 'main',
  db: 'leveldb',
  location: '/tmp/testnet-1/chain',
});

or
const chain = new Chain({
  network: 'main',
  db: 'leveldb',
  prefix: '/tmp/testnet-1'
});

source: Stack Exchange

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

sort: votes


text:
Bitcoind doesn't find transactions / synchronize / update until last block from Testnet
I set up bitcoind as server. It downloads the testnet blockchain but it is inconsistent with public data:
http://blockexplorer.com/testnet/q/getblockcount

182951 (As of 18/02/14)

And
bitcoind getblockcount

53317

My testnet accounts receive bitcoins from public faucets:
http://blockexplorer.com/testnet/address/mjDutNstJpZo929nLdZGKPh75fWKuTQNi1  (form 2 different faucets)
But
bitcoind listreceivedbyaddress 0 true
[
...
{
        "address" : "mjDutNstJpZo929nLdZGKPh75fWKuTQNi1",
        "account" : "3",
        "label" : "3",
        "amount" : 0.00000000,
        "confirmations" : 0
    }
]

Any help?
bitcoind getinfo
{
    "version" : 32400,
    "balance" : 0.00000000,
    "blocks" : 53317,
    "connections" : 2,
    "proxy" : "",
    "generate" : false,
    "genproclimit" : -1,
    "difficulty" : 0.55300531,
    "hashespersec" : 0,
    "testnet" : true,
    "keypoololdest" : 1392632512,
    "paytxfee" : 0.00000000,
    "errors" : ""
}

Solution
Please read the accepted answer.
Dont do apt-get update and install (at least in Ubuntu 12.04.4 LTS)
Instead:
sudo aptitude install python-software-properties
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo aptitude update
sudo aptitude install bitcoind

It looks like you are using version 0.3.24 of the bitcoin client, which is extremely old (released July of 2011).  The latest version is 0.8.6.
Versions prior to 0.7.0 (released April of 2012) used a different testnet blockchain (called testnet2), which is no longer in general use.  Since 0.7.0, everyone uses testnet3, which has a new genesis block and a separate block chain.  So the coins you received are waiting in that new chain, but you're looking at the old one.
Upgrade to the latest version of bitcoind.  Then copy your wallet.dat from .bitcoin/testnet2 to .bitcoin/testnet3.  After synchronization, you should see your coins (and avoid a lot of other issues too).
I'm actually pretty surprised your client found enough testnet2 peers to get a complete copy of the testnet2 block chain!

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


text:
Installed Bitcoin-QT on windows2008r2 server, but it won't snyc anything at all
Installed Bitcoin-QT on windows2008r2 server, but it won't sync anything at all. No connections to network, no blocks, no movement full stop. I have OK'd it in windows firewall, tried connecting through the socks proxy option / turned socks off - no dice - added nodes in bitcoin.conf file etc. Everything I can think of, I have no doubt its probably a server issue - but I still have no idea what to do! It's just doing literally nothing - any ideas? I set TCP and UDP rules, which were auto created in firewall, to allow all ports to the client.
It says, in the client:-
No connections to the network available. Catching up, processed 0 of 250000.
Thx in advance.

I think this should be better placed over at Server fault. Probably not related to Bitcoin.


text:
Multi-currency wallet api
I need a api or an application that can generate and handle (send/receive and so on...) multi currency wallet.
For an example: It can generate dogecoin address, bitcoin address, litecoin address, peercoin address and so on... and handle them. Like send/receive/check balance.

The RPC API is identical for almost every client...

There are a few API providers that do multi-currency / wallet integration. The first that comes to mind is https://www.block.io/ they support LiteCoin/DogeCoin and Bitcoin. There may be others that have even wider digital currency support.
The way that most people do this is by running separate instances for each client blockchain and then using the RPC interface. There are similarities between most of the coins that forked Bitcoin. So although more resource intensive you could run each client you were interested in and use the native interface to communicate with them individually.

Hmm... I dont really want to run all client program for each currency becuase to generate a address...

Its easier to use an external API, mostly because you don't have to manage the underlying infrastructure. But the address generation is the same, you run the getnewaddress rpc call on the node for the type of address you want.

I am developing an open source wallet that handles multiple currencies and stores the keys in a deterministic key chain (BIP44).
It is currently on Android but it is written in am modular way so that the core library could be used in any java application. The library is based on a slightly modified Bitcoinj and for the blockchain queries it uses Electrum servers. It supports BTC, LTC, DOGE and in beta PPC, DRK, RDD and I am adding now NuBits.
Check out the repo from here: https://github.com/Coinomi/coinomi-android. At some point I will separate the core lib from the android app.
enjoy

@john-l-jegutanis great work you did there, by the way. we are all using your wallet!


text:
How does Bitcoin have an intrinsic value?
I have read several articles about how Bitcoin have an intrinsic value. Aside from the fact that some of those articles confuse "intrinsic value" with "benefits of adoption", I found that none of them could prove that Bitcoin is actually money and not a currency.
Take this example, if I take my Bitcoin from the US to Yemen, it would be the equivalent of taking absolutely nothing to Yemen. Why is that, you ask?
Because Yemen has no Bitcoin bank/supplier/merchants, no one cares about Bitcoin. Now, if I take Gold to anywhere on Earth, people will take that. In the case of Gold, the supply is limited but the demand is unlimited (everyone accepts it) for two reasons. One reason is that Gold is money in itself (if the country uses Gold standard, which I don't recall any that does), and two, is because even if Gold is not money in the country, it's still a commodity to be sold to get money!
So Gold indeed has a value just for being Gold! Bitcoin is a supply and demand currency, which Bitcoin.org clearly states ("The price of a bitcoin is determined by supply and demand"), yet they also say "Much of the trust in Bitcoin comes from the fact that it requires no trust at all", that's illogical as it's dependent on the demand of people which varies by location, i.e. you need to trust that that place has a Bitcoin bank!
If people of that country don't have Bitcoin bank, then that immediately means that Bitcoin value is almost 0 in that country. If Bitcoin's value is zero, no bank would want to spend money to build a branch there. So it's more like fiat currency!
I wouldn't go very far with a Dollar in the country that doesn't have its currency tied to Dollar (even though I don't recall any that doesn't, except the Islamic State, which recently announced Gold and Silver money). This proves several things, that Bitcoin is a currency, that it's dependent on the demand (specifically the location of the market), and thus, that, very much, takes the "universality" it's so much praised for when people talk about how you can make international transfers so easily. You really can; but the problem is that you probably wouldn't do so to most countries that actually need that capability; due to the nature of those countries and the lack of a Bitcoin bank. The only reason why one might want to get Bitcoin in countries where no Bitcoin bank exists, is to buy stuff online. But then again, this has never been the main problem. Credit Cards have solved this for a long time.
So I guess the question is, does Bitcoin have an intrinsic value (is it money) or does Bitcoin have "location value"/trust value (is it a currency)?

Trust in the context of bitcoin usually has to do with security in that you don't need to trust anyone with your money. You don't have to trust a bank or Western Union and such. The trust in your context is about whether there's enough supply and demand to be able to trade your bitcoins for goods or services or other currency. That of course is location dependant. It also started out as a  chicken and egg problem but that is quickly being overcome by the rapid growth. The network effect is huge, but the world is still a big place so it takes a bit of time.

Talking about intrinsic value is always a difficult discussion. What gives Gold or really anything intrinsic value?

It is of limited quantity. Bitcoin also has a limit to the total
amount in circulation, and so has an element of digital scarcity
built into its design to mimic physical scarcity.

You can't counterfeit it. (Actually you can create gold, it just costs way more than just buying it) Bitcoin can't be copied through
any known process. You can't transmute lead to gold, nor simply
convert a random collection of bits into Bitcoin.
People accept it for Barter You can use Bitcoin with merchants all over the world, as well as person to person payments. The number
of people accepting and transacting in Bitcoin is growing every day.
You can build physical products with it While not a direct correlation the Bitcoin network is a highly secure trust network.
Nothing like it has existed before on its scale, and it seems clear
that quite a bit can be built on top of it. That gives the network
real value for companies emerging in various new sectors, and how do
you get access to this network? Bitcoin.

If people believe it has value, trade in it, and it lets you do things that were previously impossible it seems like it has intrinsic value by any definition.

This is an interesting answer. I'm still in dilemma about whether it's money or currency though (this has huge consequences, that's why I'm mostly stressing this point). But this is interesting in the sense that Gold has acquired its value from its historic use (as well as the other qualities of it). So the supply is limited, while the demand is dependent on people's acceptance, which has grown through time. Bitcoin may acquire the same degree of acceptance through time, especially where it's meant to be used, the Internet. I'm fluctuating in my Bitcoin stand just as much as the Bitcoin price.

Because Yemen has no Bitcoin bank/supplier/merchants.

If Yemen would not have any gold suppliers/merchants, gold would also have no value, other than being a paper weight. Only because you 'trust' someone else will accept gold as a form of payment, gold has value for you.

...if I take my Bitcoin from the US to Yemen...

The bitcoins would still be worth the same amount of USD as they would in the USA, since Bitcoin is a digital commodity. (You cannot move it.) Using / sending / accepting bitcoin is not limited to any country (or planet...) so you could still trade your bitcoin for fiat currency in Yemen.
(As long as you have an internet connection...)
Edit: If you directly want to buy something in a store in Yemen, you'll have to look for a store owner that accepts bitcoins. The human factor is the limiting factor here, not bitcoin as a protocol / way of sending value from one place to another.

No one cares about Bitcoin.

Just because a large group of people does not care about it, does not make all of 'us' not care about it. You obviously care enough to ask this question.

Now, if I take Gold to anywhere on Earth, people will take that.

How is this any different than bitcoin? It does not matter where on earth you are, right now and in the foreseeable future there will still be people accepting your bitcoins.

if the country uses Gold reserves, which I don't recall any that does

The Netherlands (De Nederlandsche Bank / DNB) still do. You can't actually walk into the bank and ask for a ten euro note to be exchanged for a portion of gold. (The DNB bank is actually only a bank for banks.) So it is not exchangeable in that way. A bank however does need to have 'proof' of insolvency, so that's why they still carry gold. Most Dutch consumer banks (ABN Amro / ING / RABO Bank) don't actually hold gold anymore, they now have a database in some basement that says they are worth an x amount of money. They exchange money with the DNB and all of this is done digitally, so the gold is pretty much out of use nowadays.

So Gold indeed has a value just for being Gold! Bitcoin is a supply and demand currency

Gold has value, just because it has value? Wrong. It is a supply and demand product. It also has a value that fluctuates up and down. Yes, bitcoin has a supply and demand. Today it might be worth more than it will tomorrow, but gold and bitcoin have the same amount of value for just being gold and bitcoin.

So I guess the question is, does Bitcoin have an intrinsic value (is it money) or does Bitcoin have "location value"/trust value (is it a currency)?

It is not money, it is like gold, except you can't actually touch it.
It is not a currency in most countries, since most countries state that a currency is only a currency, when it is backed by the government of that country. (In the Netherlands, being a currency also means a merchant cannot decline this form of payment. I do not possess enough knowledge of other countries to imply knowing how it works there.)

I don't want to make this a debate. Though all of what you said is contested by what I wrote. I suggest you read it again. About the "no cares about Bitcoin", I meant in Yemen (and places where Bitcoin can't be cashed out nor can be used in its current form to buy goods). I obviously care (very much) about Bitcoin, and I know millions do. So yeah, not to make this a debate, thanks for the answer. Although it doesn't answer whether it's money or currency. You haven't provided objective evidence but subjective ones. (Also, thanks for the Netherlands info)

A lot of countries still hold gold in their vaults. But a lot (most? all?) don't directly back their fiat money with it. I don't think you can walk into the Dutch central bank and exchange your euros for gold (as used to be theoretically possible in the old days).

@mars Of course it's supply and demand, just like with gold, as mr Jones said. One has been in use for thousands of years, the other only a few. Also don't get hung up on the word intrinsic as that means nothing. Nothing has intrinsic value. A bottle of water floating in space is worthless to a thirsty guy in the middle of the desert. Value of anything is what people are willing to do or exchange for it. And that is always location, time, mood and weather dependant. Although you can argue that bitcoin makes at least one side of any exchange location INdependant as it's not physical.

@Mars, not trying to create a debate, just trying to clarify the 'difference' (or lack thereof) between gold and bitcoin. We are all just sheep, mindlessly seeing gold as something valuable, when in fact it is no different than bitcoin.

Take this example, if I take my Bitcoin from the US to Yemen, it would be the equivalent of taking absolutely nothing to Yemen.

You don't need a "bitcoin bank" to exchange Bitcoins with the local currency. You just need to find one guy who is willing to buy the Bitcoins from you in exchange for the local currency. I'm sure there is at least one guy in all of Yemen who knows what Bitcoin is and would be willing to trade with you.  If you can , you just turned "nothing" into however much a Bitcoin is worth in Yemeni rial.

So I guess the question is, does Bitcoin have an intrinsic value

No. You can't eat Bitcoin. Bitcoin has advantages over other forms of barter, but that doesn't give it intrinsic value.

So Gold indeed has a value just for being Gold!

I agree. Gold has uses besides as a medium of trade. However, the market value of gold is far higher than its intrinsic value. If I had to guess, I'd say that gold's intrinsic value is about $100 per kilogram.

If people of that country don't have Bitcoin bank, then that immediately means that Bitcoin value is almost 0 in that country. If Bitcoin's value is zero, no bank would want to spend money to build a branch there.

Bitcoin didn't have any value immediately after it was created. Yet, there are still companies that exchange Bitcoins for other currencies. So, there's something wrong with this argument.

is because even if Gold is not money in the country, it's still a commodity to be sold to get money!

Um, by this logic, xylophones and bananas are money.

I don't know what the first is, but bananas are a commodity, not money. Read up on what makes something considered money.

@Mars I'm saying that one can apply your argument to 'prove' that bananas are money. This is clearly ridiculous. http://en.wikipedia.org/wiki/Proof_by_contradiction

Bitcoin is NOT money. It does not fit all the qualifications of money (Being tangible is one of those, bitcoin is not)
Bitcoin is simple a currency, backed and fueled by other currencies (all currencies of which are fiat and have no intrinsic value besides the small amount of heat it gives off when you burn it)
People have been fooled, and as soon as the ledger size out paces storage capacity of technology, it will start to back up, slow down, and eventually fail.
Hope you internet doesn't go out!

So, you're saying that online-banking or PayPal balances are not money either, right?  The definition is usually along the lines of "Any item or verifiable record that fulfills the functions of medium of exchange, unit of account, and store of value can be considered as money." We can argue about those properties, but I don't think that tangibility is actually a criteria for money.


text:
Funds and Wallets
If I load bitcoins to my wallet and the funds are there, and I go back to load more Bitcoins with a new address for my wallet are the funds from my first wallet going to merge with the newly added funds from the new generated wallet ?

I think you have an incorrect view of the way wallets work.  A wallet is a collection of addresses, so whenever you receive any transfers by any address in your wallet it is added to your 'collection' of transactions.  So yes, if you use two different addresses pointing to the same wallet the sum total of the two transactions will be added to your wallet.


text:
Why is the disappearance of Mt Gox a problem?
I'm sorry if this is a stupid question, I'm not a bitcoin user and may lack important information. My understanding was that each bitcoin user has a wallet on his harddrive or wherever, where he stores his bitcoins with the transaction history proving that they are his.  So the system is pretty decentralized. Then why is it such a problem that Mt. Gox disappears? Don't the people losing money have it in their own wallets, if so why?
Edit to add: In case the question was unclear, I was asking for why people lost money with Mt. Gox - not about the wider ramifications like potentially lost trust in *coin etc.

http://bitcoin.stackexchange.com/questions/2743/pros-and-cons-of-using-mt-gox-as-an-e-wallet?rq=1 contains all I need to know, I think.

an interesting related question, how could a trading entity like Mt Gox be built such that this type of failure can be mitigated or avoided, or is it possible? what types of safeguards are in place at other exchanges that are superior?

The other related question is why so much money rests in Mt Gox, when it's mostly needed as an intermediary.

To actually try and answer your question, Mt Gox acted as a trusted middleman in btc trading, and thus had to have control over their users money.
Let's say dude A has a few btc he wants to sell, and dude B has a few dollars he wants to buy btc for. B doesn't want to pay until A sends him the btc, and A doesn't want to send his btc to B until B pays. Unless they trust each other, they can not do business.
By putting money and btc in the hands of a supposedly trustworthy middleman (Mt Gox), A and B can do business. As soon as they agree on the price, the middleman, who has access to both the btc wallet of dude A and the dollar wallet of B, can make sure that both transfers are made, so that each person gets what they agreed on.
So essentially, users had dollar accounts and a btc accounts at Mt Gox, and it is from these that things seem to have gone missing.

As has been pointed out below, it may be that accounts still show the right balance, but Mt Gox doesn't have that money anymore.

+1 for explaining why people stored their money with mt. gox

Well, it's not that money/coins are missing from people's accounts, it's that they don't have access to those accounts.

So it's roughly the equivalent of Google Wallet or Paypal shutting down?

@svick As I understand the various news stories, Mt Gox dealt with transaction malleability the wrong way (or rather, didn't deal with it at all) and so bitcoins are actually missing from some people's accounts...

@Izkata The way I understand that issue, the coins are missing from the actual Mt. Gox's bitcoin wallet, but not from random people's accounts. That means everyone's account will show the right amount, but Mt. Gox wouldn't be able to pay everyone if they all asked for their coins at once.

People had bitcoins loaded on Mt.Gox internal trading accounts (trading wallets). This goes both for fiat currency and bitcoins.
Bitcoin withdrawals were shut-down for a few weeks now, which created concepts like "goxbucks" or "goxcoins" as you could not get any Bitcoins out.
Now, the Mt.Gox is closed completely, so you cannot get either fiat currency or Bitcoins out at all. People speculate that they will never get their funds back, as MtGox would have lost these assets they manage for their customers.

"LOST"...hehehe. Pretty sure some guy is now really happy with all that money. And he got away clean, no traces, no nothing. Angry geeks won't assassinate him either. Seriously, best business in 2013-2014 is stealing bitcoin. Even a steal like this gets away.

It also shakes confidence in BTC both for the BTC community and the public in general. When I say BTC I am encompassing all other *coin. It is analogous to the failure of a large bank--except without any insurance.

Very similar situation happened to online poker when FullTilt Poker got shut down by the FBI and turned out to be insolvent. Players had hundreds of millions of dollars stuck in the site for years. Online poker has not recovered from the scandal to this day.

The short answer to the question is that it is NOT a problem.  That is unless you are a Mt Gox customer that had deposits held by them on your behalf - then you probably do consider it a problem.
Mt. Gox in essence is like a bank holding bitcoins on people's behalf.  Apparently many of those bitcoins have gone missing and Mt Gox is now insolvent and unable to honor all its liabilities.  It is very much like a failing bank in the 1920's.
Assuming that Mt Gox really is done for is a set back for bitcoin and may slow its a adoption but just like the failure of banks in the 1920's did not destroy the dollar neither will this destroy bitcoin.

In answering the question related to a mass panic (for the financial concern: money might have been lost on the trading system if it wasn't stored off of it - same with currency), what was the reaction to US bank failures in 1929?  Bitcoin doesn't have as many exchanges as there were banks in the United States in 1929 (to my knowledge), but the reaction to bank failures caused a massive panic and also ended up resulting in the FDIC system.  MtGox, for a while, seemed to be leading the pack as far as its price (it was used a lot in places like Preev, for a time to calculate the price of bitcoin), so it would be like the largest bank in 1929 failing.  That would scare some people.
Note that this isn't to say bitcoin is in trouble, just that it's a similar scenario to a bank failure and some people respond by abandoning the system.

The bank failure of 1929 caused more government regulation and FDIC insurance (which is not free). Bank audits, reserve minimums, etc. But it seems that the Bitcoin community does not want government regulation, it want's to be free of it. It want's anonymity but that means you can't ask to be insured/reimbursed. You can't have both.

@Zaph Agreed; and the hope of those users that want anonymity is that that users who may have lost don't try and ask politicians for help, which would still be limited considering what bitcoin is.

The question of what this means has already been answered for the most part. People are dumping their Bitcoins now. This actually makes the US Dollar and other currencies worth slightly more, so if you don't have any crypto currency, don't worry :)


text:
Cannot synchronize with Bitcoin in testnet mode
I downloaded Bitcoin-QT for Windows 7 into:
MYUSERNAME/Downloads/bitcoin-0.8.6-win32/bitcoin-0.8.6-win32

I want to run Bitcoin in testnet mode, so I created bitcoin.conf with only the following content:
testnet=1

I put copies of bitcoin.conf into the following folders:
MYUSERNAME/Downloads/bitcoin-0.8.6-win32/bitcoin-0.8.6-win32
User/MYUSERNAME/AppData/Roaming/Bitcoin

When I double clicked on the Bitcoin-QT icon to execute the following, Bitcoin-QT starts up but it does not appear to be in testnet mode.
MYUSERNAME/Downloads/bitcoin-0.8.6-win32/bitcoin-0.8.6-win32/bitcoin-qt.exe

Can anyone tell me why it does not seem to go into testnet mode?
I went to Start > cmd to get the DOS prompt. I entered the following and it worked:
C:\User\MYUSERNAME\Downloads\bitcoin-0.8.-win32\bitcoin-0.8.6-win32>bitcoin-qt.exe -testnet

Bitcoin-QT launches in testnet mode.  However, it is not synchronizing with the network.  At the bottom, it shows "No block source available...155 weeks behind".
I tried adding the following to bitcoin.conf and restarted bitcoin-qt.exe -testnet but it didn't make any difference.
addnode=1.2.3.4
checklevel=2

After a few hours, it still shows "No block source available...155 weeks behind".  How do I get this to synchronize?

It can take more than hour to synchronize. Does "X weeks behind" change?

It has been a few hours now and it still shows "No block source available...155 weeks behind".

For your first question, I would suspect that you haven't put your bitcoin.conf in the place where the Bitcoin client is looking for it.  The correct folder should already contain files named like debug.log, peers.dat, and several others.

@NateEldredge I have bitcoin.conf in the User/MYUSERNAME/AppData/Roaming/Bitcoin folder.  This folder has the peers.dat, wallet.dat, db and debug files as well.  There is no debug.log file.  Do you have any ideas on why it is showing "No block source available"?

Typically this means it is not able to connect to any peers on the Internet.  One possible cause is bad proxy settings, which is why I wondered if it was using a bitcoin.conf different from yours.  Otherwise, could there be firewall settings or something similar preventing the application from communicating with the Internet?

@NateEldredge It did not have a bitcoin.conf file.  I created it.  Bitcoin-QT is running in Windows 7, which is running in VirtualBox, which is running in my Mac OSX. There seems to be no issue with any firewall in Windows 7 as my browser works fine. I have LittleSnitch running on my Mac, which tells me if a program is trying to access the internet.  It told me that Bitcoin on my Mac and a program on Windows tried to access the internet, which I allowed. On my Mac, my Bitcoin-QT (in testnet and mainnet) synchronized fine. On Windows, Bitcoin-QT for mainnet, but not testnet, can synchronize.

That's very strange.  My only other idea would be to look at User/MYUSERNAME/AppData/Roaming/Bitcoin/testnet3/debug.log and see if there is a helpful message.

@NateEldredge debug.log does not exist, but User/MYUSERNAME/AppData/Roaming/Bitcoin/testnet3/debug does.  It has a lot of messages.  Do these provide any clues?
2014-01-26 01:15:49 trying connection 93.93.135.12:18333 lastseen=149.6hrs
2014-01-26 01:15:51 No valid UPnP IGDs found
2014-01-26 01:15:51 upnp thread exit
2014-01-26 01:15:54 connection timeout
2014-01-26 01:15:54 trying connection testnet-seed.bluematt.me lastseen=0.0hrs
2014-01-26 01:15:59 connection timeout
2014-01-26 01:16:04 trying connection testnet-seed.bitcoin.petertodd.org lastseen=0.0hrs

I also have the same issue @NateEldredge . But proxy isn't a problem for me. I tried by changing the proxy several times but its of no use ( I use college internet ). It works fine when I run it using my mobile data. I don't know why. I opened a question for the same with clear explanation and debug logs here, https://bitcoin.stackexchange.com/questions/52906/unable-to-connect-to-peers-nor-synchronize-the-network

I got it to work by adding
[test]
addnode=104.237.131.138
addnode=151.80.205.132
addnode=192.155.82.123
addnode=74.220.255.190

to the config file.
The reason is your wallet needs to connect to nodes to connect to the blockchain. Usually it comes with all the nodes required to connect, but sometimes the devs failed to include the nodes or released a new node list after an update (try looking in the bitcointalk page or the official website listed by the coin developers), so you have to add them manually.

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


text:
What are the qualities of a country that might make it more or less likely to freely allow Bitcoins or crypto-currencies?
As some examples which seem logical to me, but should only be taken as examples:
A government that is susceptible to commercial lobbying is probably more likely to be pressured by banks to disallow competition with their services.
Governments that have a corruption problem might also be quietly bribed to legislate against a currency that competes with the official one.
Countries that support open source software might tend to have a "for the good of the community attitude" that matches the philosophy of Bitcoins.
For this question, it's probably important to provide references/examples (such as information about who is trying to stop use of bitcoins and why).
I see the need to ask this question to help provide a foundation for this one: Is there a list of countries that are not likely to persecute bitcoin businesses?

I think this question isn't really a good fit for the SE model, as the answer should be a list of things, and is unlikely to be contributed by a single author. People might like to add to it over time, but for now I will just accept an answer.

Countries which have strict AML (anti-money laundering) laws are less likely to freely allow Bitcoin use and exchange.

I suppose on a Bitcoin forum we are supposed to know what AML stands for ;-) Comes with the territory.

@Thilo - sorry, expanded now.

I believe the Swedish government would be less likely to crack down on Bitcoins. I believe they have a political party called the "Pirate Party", which as far as I know, got elected as a reaction to the crackdown on Pirate Bay. I would love for someone to comment, in order to confirm this.

Currently the Swedish Pirate Party holds seats in the EU parliament, not on the Swedish one. It is spreading to many countries anyway, most notably Germany.

I think whatever views comes up will always be views - why? Because decisions come from groups of people unless its a dictatorship!
What we are seeing is a East - West divide. More eastern countries are portraying Bitcoin in a negative light whereas the west is embracing it more and more.
Ultimately governments represent their people. If this was 2009 and Bitcoin just started and governments were aware, then I don't think Bitcoin would be here.
But because it had room to grow, it is at a stage where people are starting to have needs for it, so governments have to consider that view - is it positive for its citizens or not.
Not the hopes and wishes or wants, but practically. Today Bitcoin has a good appearance. Many people interested, so it has a chance to become something big like Facebook.
Ultimately though its all our actions with these technologies. If too many people abuse it, then it will be more restricted.
It's easy to see. If too many services close and coins disappear (MtGox anyone), then it will bring regulation which will stifle the Bitcoin world.
If too many people use it for grey/shady/black market use, then it will cause certain things.
Overall the best thing for Bitcoin or any of these related technologies is for those responsible to act responsibly and for the consideration for humanity rather then self.
Then Bitcoin will thrive like the internet thrives.

Thanks for the answer. Not sure I agree with regulation stifling the Bitcoin world though; it was deregulation that is thought to have caused the GFC (though dollars have hardly been stifled because of it!).

I think that regulation of Bitcoin related businesses will ultimately make it safer to use Bitcoin as a store of money and thus will be essential for a breakthrough to the mainstream. I don't think that Bitcoin transactions will be regulated much in the future beyond tax demands on the value gain between purchase and sale – simply because laws that can't be enforced only serve arbitrariness.

@HighlyIrregular I did not say anything about regulation stifling bitcoin. GFC... not sure what that is. Perhaps you was answering another answer?

GFC = Global Financial Crisis (see http://en.wikipedia.org/wiki/Financial_crisis_of_2007%E2%80%9308 ). Your words were "...it will bring regulation which will stifle the Bitcoin world". Speaking of which, I'm still surprised about the lack of a market response (ie a drop) to the US IRS announcement to treat bitcoins as property when it comes to capital gains tax. Maybe it just hasn't been publicised enough yet?


text:
What is the exact difference between a Bitcoin and Bitcoin Cash raw transaction to address sighash_forkid?
Bitcoin Cash apparently uses sighash_forkid, such that if you don't implement that into your raw transactions, the bitcoin cash network won't accept it.  How would one need to alter (what to add and how to get it) a transaction made to bitcoin tx specifications, to make it work on the Bitcoin cash chain?
It has been suggested that in an answer to this question:

The SIGHASH_FORKID is an addition to the sighash type and simply means that the sighash type must have bit 6 set.

What is it to "have bit 6 set"?  And set to what?  What is an example of it being "set" and not being "set"?  Instead of "01" can I just type ĹéêŤ or does it need to be a "01" or a "02" or what can it be or not be?

Bitcoin Cash changes the sighash preimage to the one that is used by segwit. This is specified in BIP 143. OP_CHECKSIG on the Bitcoin Cash chain must use this new sighash preimage creation algorithm, but OP_CHECKSIG on Bitcoin uses a different sighash preimage creation algorithm (the original one), so they are incompatible with each other.
The SIGHASH_FORKID is an addition to the sighash type and simply means that the sighash type must have bit 6 set.


text:
Can I, and how do I query the Bitcoin Core wallet to give me a list of all transactions for any specified address?
I've read some conflicting things on this.  Given any address, what would be the json command and or how would I import into python, such a query to my bitcoin core wallet for an array of all the tx id's for all tx's associated with any given address (whether part of my wallet or not)?
Or is there even a way to do that to begin with?

You question deserves a very long explanation :-) Instead of repeating what was already discussed, I put some links here which will help you to begin.

Given any address, what would be the json command and or how would I
  import into python...

first it is important to understand, that the wallet that you talk to (via RPC) is not the blockchain. You can only fetch information for the known addresses in the wallet.

... for an array of all the tx id's for all tx's associated with any
  given address (whether part of my wallet or not)?

This is a repeating pattern here in the forum, a quick search revealed this.
And how to send python commands to RPC is described here. A quick search for "RPC python" reveals many more sources of information.
The RPC commands themselves are well described here and here.
For sure we can't write the code for you, so maybe show us a bit how far you got, and then we can easily follow where you got stuck, and maybe even provide the help you are looking for.


text:
Submitted a raw tx that was already on the blockchain, to test it. I got 'missing inputs' instead of 'already exists'. Why?
In an attempt to more fully understand raw transactions etc, I went to look at tx 518c41d5e59114f6a23383afbe95f02cdd09cb50cabd8390bdd9162a890435b3 in its raw form being:

01000000017871f56f7be2743293abb1adccf21526265e4ad793fddbc08508417293fd6b4e000000006a47304402201f3b98d55c16a1ff9e66cbdd5533fd74d18362477f50dbce357d66e1233ba469022066fd837cf7e1e030f5aab0f22fec06c7d98ee948fd8b9aba185512426079e0a201210284ca3e364bebb4cafb9fa76624927078e16a4244314f824ea8acff0ef1ba4627ffffffff0220a10700000000001976a91488d924f51033b74a895863a5fb57fd545529df7d88ac81f1d909000000001976a914db4c1f7949870fae5cdc366a45e2ea39c084547c88ac00000000

I then tried to submit that raw form, just copy and paste into my bitcoin wallet program to "sendrawtransaction" and got the error missing inputs (code -25).  This seems odd in it of itself because since this is an exact copy and paste of the raw transaction that is on the blockchain, shouldn't it not be missing anything at all?  Also, shouldn't I be getting a "transaction already exists" error instead?  Or do I not understand something about how raw transactions are submitted?

Bitcoin Core has no idea which transactions already exist in the chain. It does not maintain a full index, because... it doesn't need to. In fact, when running in pruning mode, it doesn't even have the chain or its transactions at all.
The only thing it has is the set of unspent transaction outputs. Since you're trying to replay an existing transaction, all the inputs are already spent by its previous instance. As a result, the expected and correct response is that inputs are missing - i.e. your transaction is a double spend, and thus invalid.
I'd say that this is one of the advantages of the UTXO model: a replay and a double spend are one and the same, and there is no need to distinguish.

In that case, what is the point of fHaveChain in https://github.com/bitcoin/bitcoin/blob/master/src/rpc/rawtransaction.cpp#L950 which throws RPC_TRANSACTION_ALREADY_IN_CHAIN ?

@MeshCollider If I'm reading it right, if some of the outputs of the transaction exist in the blockchain and are unspent, then sendrawtransaction fails with that error, instead of failing with the missing inputs error.


text:
How do you create a scriptsig for a new raw tx?
Could someone please explain how to do this is in a detailed step by step manner that correlates to a real linked transaction such that a n00b can comprehend?  Is it just copy and paste a particular identifiable portion of the previous tx from the raw tx thereof or is it more elaborate?

Okay, turns out my research has led me to answer my own question, mainly from here though it did lack a bit of explanation or didn't explain, I think, as clearly as it could.  So here's my reading/interpretation/translation thereof.  (Go to that page to see the source of my data if need be).
NOTE:  This process may have changed after the addition of "segwit" either in its "lock-in" or its "activation".  I cannot speak to that.
A Quote from that page:

The final scriptSig contains the signature along with the public key for the source address (1MMMMSUb1piy2ufrSguNUdFmAcvqrQF8M5). This proves I am allowed to spend these bitcoins, making the transaction valid.

Step 1.  The signature in a given transaction will begin with 473044
(these are standard from what I can see).
Step 2.  Then you must append 0120 to the end of that number to get 4730440120
SIDE NOTE: There are variations upon this which are demonstrated in old transactions and may still exist where you do NOT put that in and you put a different number instead.  I cannot account for and or explain those instances except to say that the "01" designates this as the first integer, and "20" designates the integer length of 32 bits (the "20" is in hex, just convert it to integer to get 32).  32 bits means there are 64 hex alphanumeric characters (0-9 and or a-f).
Step 3. Then you must append the hex value of "r" from the ECDSA signature (which is 2cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff713), resulting in:
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff713
Step 4. Then you append '0220' to the end of the previous code, resulting in
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff7130220
SIDE NOTE: There are exceptions to adding merely "0220" that may exist or have existed in previous transactions throughout the block chain.  The only tool I can give to explaining them is the "02" is in reference to the "second integer" and the "20" designates the integer length of 32 bits (the "20" is in hex, just convert it to integer to get 32).  32 bits means there are 64 hex alphanumeric characters (0-9 and or a-f).  This is just as the "0120" is.  So if there is a third integer I think it would be preceeded by a "03" and if the integer is longer or shorter than 32 bits (or 64 hex alphanumeric characters) then the "20" should be changed to the hex value of half the number of the hex alphanumeric characters.  Just count them, divide by two, then convert decimal to hex to get the correct number to place here, if the need were to arise.
Step 5. Then you must append the "s" value from the ECDSA signature (which I will not get into in this post) which is 6c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e82
Resulting in:
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff71302206c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e82
Step 6. Next you append a '01" which is "SIGHASH_ALL".  I don't know what that really means or fully stands for.
Step 7. Append "41" which is "Pushdata41".  I don't know what the really means or fully stands for.
Step 8. Append "04" to reference the type of public keys you are going to represent for the public key that this transaction is coming from.
NOTE:  "04" is in reference to a particular uncompressed "public key".  Bitcoin usually uses "02" at this point in time.
STEP 9. Append the X value followed by the Y value of the public key, in this case the values are:
14e301b2328f17442c0b8310d787bf3d8a404cfbd0704f135b6ad4b2d3ee7513
and
10f981926e53a6e8c39bd7d3fefd576c543cce493cbac06388f2651d1aacbfcd
NOTE:  If you were using a compressed public key, you would only show the first one.
Result:
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff71302206c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e8201410414e301b2328f17442c0b8310d787bf3d8a404cfbd0704f135b6ad4b2d3ee751310f981926e53a6e8c39bd7d3fefd576c543cce493cbac06388f2651d1aacbfcd
I did not go into the S or R creation as I felt that they should be done in a separate post to keep things organized.

+1 for solving your own question. There is a very good "reference" here:
http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
https://en.bitcoin.it/wiki/Protocol_specification#tx
http://bitcoin.stackexchange.com/questions/3374/how-to-redeem-a-basic-tx

The 47 at the beginning is the length of the following string (in hex),  here is some explanation of this ASN.1 structure:
# ASN.1 STRUCTURE FOR PRIVATE KEY:
#   30  <-- declares the start of an ASN.1 sequence
#   74  <-- length of following sequence
#   02  <-- declares the start of an integer
#   01  <-- length of integer in bytes (1 byte)
#   01  <-- value of integer (1)
#   04  <-- declares the start of an "octet string"
#   20  <-- length of string to follow (32 bytes)
#           7d 86 0c 9a 9b 19 47 9b 19 1f 99 23 a7 12 ... df f9 43 43 58 f2 26 23 bc
#           \----------------------------------------------------------------------/
#            this is the private key
#   a0   <-- declares the start of context-specific tag 0
#   07   <-- length of context-specific tag
#   06   <-- declares the start of an object ID
#   05   <-- length of object ID to follow
#   2b 81 04 00 0a <-- the object ID of the curve secp256k1
#   a1   <-- declares the start of context-specific tag 1
#   44   <-- declares the length of context-sepcifc tag (68 bytes)
#   03   <-- declares the start of a bit string
#   42   <-- length of bit string to follow (66 bytes)
#   00   <-- ??
#            04 f1 44 f0 dc 00 80 af d2 b7 3f 13 37 6c ... 05 49 cd 83 f4 58 56 1e
#            \-------------------------------------------------------------------/
#             this is the public key


text:
Are there immediate plans to make Bitcoin more accessible to Forex traders?
Most people trading in foreign currencies are not technical, and will not learn how to operate the "technical jungle" that is Bitcoin.
Are there any known plans to expose Bitcoin to Forex while staying in their comfort zone - e.g. any existing foreign exchanges that plan to support Bitcoin (instead of forcing them to go to websites specializing in Bitcoin?)

I would imagine that a real problem is that the bitcoin market is just not large enough for most forex traders to care. If there are around 8 Million BTC out there with BTC in the $4-5 range the total value is to small for people who are used to taking out Million dollar positions

You'd be surprised how quickly people can learn new stuff if there is serious money to be made after doing so

As far as I'm aware most bitcoin exchanges don't adopt fiat currency as it requires them to be licenced with the money markets.
The same goes for the forex markets which exist such as IG Index or Capital Markets. The situation which would allow them to trade bitcoins for money is not suitable as it's not recognised as legal tender and organisations such as the IMF would not accept trading on licenced exchanges.
It's rather safe to assume for major players in the money markets would be unable to adopt bitcoins due to the red tape involved.
A small quote from the best exchange I am on
"Financial Regulation
Our business and services are buying, selling and trading virtual goods and commodities. We are not currently regulated as a financial institution."

What does it mean "most bitcoin exchanges dont adopt fiat currency"? In all exchanges you can exchange fiat currencies (e.g. USD) for Bitcoin.

By this I refer to exchanging one currency for another, unable to buy GBP against USD or similar.


text:
How can you buy XRP with BTC if you don't have any XRP?
As far as I know the best way to buy XRP for BTC is from the Ripple client ... which requires some XRP to begin with.
If you own 0 XRP and some BTC, how can you get started acquiring XRP?

Shortly, gateways should be able to fund accounts for their customers. XRP are in short supply right now, but the giveaway will accelerate.

You can buy some Ripple (XRP) from Bitstamp. At the time of writing, they were selling 50 XRP / 1 USD.

I haven't created an account there, but I can't see any mention of Ripple on their site. Can you provide some more detail as to how this can be done?

@HighlyIrregular: Arrange to have USD in your Bitstamp balance (deposit BTC and sell some for USD or wire/deposit USD directly) and then go to "Buy/Sell"->"Buy ripples" (or direct to: https://bitstamp.net/market/xrp ). Enter some number of USD and a Ripple address (brand new and un-funded or existing; doesn't matter).

Note, as of Sept 30th, 2013 Bitstamp requires a verified account to to Ripple deposits.

Dealing with someone directly might be your best bet: he would send you the ripples you need, and you would send him the bitcoins. This works because you don't need ripples to receive ripples.
Another way would be to wait for OpenCoin (Ripple's owners) to open another faucet: the only one opened so far granted some ripples to the users of Bitcoin's forum.

It's a bad sad, but Ripple might not directly support what I want in-network. I wonder if there's a technical solution that would.

http://bitcoin.stackexchange.com/questions/7939/could-the-ripple-protocol-be-modified-to-allow-funding-your-initial-account-with

You can also purchase XRP for Bitcoin from https://xrptrader.com.
I'm not tied to the service, but it's a very easy way to do it, and the price tends to be reasonable.
Edit: The price has not been so reasonable lately. I would get my initial xrp via Bitstamp:USD.

This is the most complete answer I've seen so far regarding how to get a Ripple account funded.

you can also purchase XRP on website : www.ripplewise.com


text:
Where can I find some reputable resellers of Casascius.Physical Bitcoins?
Casacsius stopped selling physical bitcoins directly on April 1st 2013, and instead refers people to resellers.
Where can I find some reputable resellers?

Casascius has resumed selling individual and rolls of coins on the official website, https://www.casascius.com/. Individual coins will be sold for a limited time only.
It is still possible to save money on individual coins by buying through resellers.

https://www.goldxcash.net/buycasasciusbitcoins.htm
Casascius Physical Bitcoins, physical coins loaded with bicoin buy online.

What is your experience with this reseller? Why do you recommend them?

Reliable Casascius and Recalescence coins reseller! Our store has been working from 2012 and is now shipping to European countries. Take a loot at https://btcstore.eu

Using escrow in the markets on the Bitcoin forums is a safe and easy method. Markup is quite high at this time, December 2015.

You should be able to find sellers on bitmit.net.  You can also use esgrow there to assure that you have no issues with your transaction.


text:
Bitcoin Intellectual Property Threats
Are any known threats related to Bitcoin intellectual property?
(While unlikely, I guess one long shot threat is that one or more governments would ban the use of the technology.)

Related question: http://bitcoin.stackexchange.com/questions/1042/would-it-be-possible-to-patent-bitcoin

+1 @Gary Rowe: Yes, I'd search for related questions before asking, which while related, is a different question.

According to our good friend Wikipedia (my emphasis):

Intellectual property (IP) is a term referring to a number of distinct
  types of creations of the mind for which a set of exclusive rights are
  recognized—and the corresponding fields of law.1 Under intellectual
  property law, owners are granted certain exclusive rights to a variety
  of intangible assets, such as musical, literary, and artistic works;
  discoveries and inventions; and words, phrases, symbols, and designs.
  Common types of intellectual property rights include copyrights,
  trademarks, patents, industrial design rights and trade secrets in
  some jurisdictions.

So to attack Bitcoin you'd need to produce evidence that someone else got there first, or that Bitcoin is mis-using an existing technology beyond it's remit (breaking terms of a license for example).
This would be hard given the unique nature of Bitcoin, the open source license it was released under (MIT - a very permissive license) and the well-established cryptographic protocols and algorithms it uses (SHA-256, RIPEMD-160, elliptic curve DSA) all of which are taken from worldwide standards (think IEEE, ISO, FIPS etc).
However, I am not a lawyer, and the law varies across the world. It may be possible through some convoluted mechanism to attack it and lay claim to a patent of some kind, but it would take obvious collusion on behalf of the respective court of law to ratify it which may serve to discredit the attacker.

+1 @Gary Rowe: For the "our good friend Wikipedia" line... :-) ...one thing I've wondered is how if the creator of Bitcoin is unknown, how is it under a open source license. Clearly beyond the scope of the question, but just one of the oddities I've pondered. (I am not a lawyer either, though I play one in real life.)

@blunders An interesting point. Note that the Satoshi paper does not contain a copyright notice, therefore it is public domain. However, the official "Satoshi" client on gitHub (https://github.com/bitcoin/bitcoin) does contain several copyright notices. From this, I'd say that anyone can implement Bitcoin from the Satoshi paper, and the specific reference client is licensed as open source by a variety of developers.

+1 @Gary Rowe: In the US, it's my understanding that a copyright is given on creation, and submissions to the US GOV only makes it easier to defined a claim.

If history is any guide, it is more likely that bitcoin would itself be tied to "theft" of intellectual property as an enabling technology which should be "regulated." Of course, there are many other ways to accomplish the same thing. So the main non-legislative threat, even greater than technological attacks by well-financed parties, remains that posed by the manipulation of public opinion. This is particularly effective in the United States, where the public has been very effectively conditioned to be easily swayed by fear.


text:
Fraud Detection & Prevention

What are controls that are in place to detect and/or prevent fraud within the bitcoin system?
Are there any know exploits, or potential threats to the system?

This question is pretty open-ended and vague. Is there a particular type of fraud or exploit you are concerned about?

Attacks pretty much fall into three categories. Double spending attacks, exploiting client bugs, and defects in the cryptographic operations used. The most interesting (because they're unique to cryptographic currencies and thus less well studied) are double spending attacks.

The primary mechanism of attack in most financial systems, Bitcoin included, is a "double spend" attack which essentially allows the spending of the same money in multiple places either by duplication of funds or by revocation of the earlier of two transactions. We've actually addressed a number of such attacks on the StackExchange site here. Try looking at questions with the doublespend tag.
The two most commonly discussed are the 51% attack and the Finney attack.
The 51% attack requires the attacker to hold 51% or more of the complete hashing power of the Bitcoin network. Once the attacker holds the majority of all hashing power he/she may spend bitcoins and then fork the blockchain in such a way as to not include the block they were spent in. This is incredibly expensive and not arbitrarily done. It would also be somewhat detectable as the forking blockchain would regularly cause problems with other transactions until the 51% attack completed.
The Finney attack can be done by a solo miner without 51% of the network hashing power. The miner waits until they solve a block and place a transaction in that block in which they send all their coins to another address they control, but withhold their result. They then spend coins from the originating address elsewhere and then release the block. This essentially breaks the order of operations and makes the valid transaction impossible since the originating address no longer contains an adequate balance to have sent the coins.
These have both been discussed at great length and from many angles here on the StackExchange site. Again, try looking up the doublespend tag.


text:
How to validate a Bitcoin address is a real one?
Is there a code snippet that validates a bitcoin address?
I'm looking for both javascript and java snippets. The code should support both testnet and real addresses.

For Java, have a look at the validateAddress(String) method in this class:
https://github.com/jim618/multibit/blob/master/src/main/java/org/multibit/viewsystem/swing/action/Validator.java

also, the official client bitcoind has a 'validateaddress' command. see https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list
you could call that from your code if you happen to have bitcoind running already.

I won't be running a bitcoind instance, but thanks regardless.

part of https://github.com/mikegogulski/bitcoin-php/blob/master/src/bitcoin.inc
 private static $hexchars = "0123456789ABCDEF";
 private static $base58chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

public static function checkAddress($addr, $addressversion = "00") // hex byte
{
    $addr = self::decodeBase58($addr);
    if (strlen($addr) != 50) {
        return false;
    }
    $version = substr($addr, 0, 2);
    if (hexdec($version) > hexdec($addressversion)) {
        return false;
    }
    $check = substr($addr, 0, strlen($addr) - 8);
    $check = pack("H*", $check);
    $check = strtoupper(hash("sha256", hash("sha256", $check, true)));
    $check = substr($check, 0, 8);
    return $check == substr($addr, strlen($addr) - 8);
}

private function decodeBase58($base58)
{
    $origbase58 = $base58;

    //only valid chars allowed
    if (preg_match('/[^1-9A-HJ-NP-Za-km-z]/', $base58)) {
        return "";
    }

    $return = "0";
    for ($i = 0; $i < strlen($base58); $i++) {
        $current = (string)strpos(self::$base58chars, $base58[$i]);
        $return = (string)bcmul($return, "58", 0);
        $return = (string)bcadd($return, $current, 0);
    }

    $return = self::encodeHex($return);

    //leading zeros
    for ($i = 0; $i < strlen($origbase58) && $origbase58[$i] == "1"; $i++) {
        $return = "00" . $return;
    }

    if (strlen($return) % 2 != 0) {
        $return = "0" . $return;
    }

    return $return;
}

private function encodeHex($dec)
{
    $return = "";
    while (bccomp($dec, 0) == 1) {
        $dv = (string)bcdiv($dec, "16", 0);
        $rem = (integer)bcmod($dec, "16");
        $dec = $dv;
        $return = $return . self::$hexchars[$rem];
    }
    return strrev($return);
}

For BitcoinJ (Java) it should be something like this:
public boolean isValidAddress(String address) {
    try {
        new Address(params, address);
        return true;
    } catch(AddressFormatException e) {
        return false;
    }
}

API for address can be found here: https://bitcoinj.github.io/javadoc/0.11/com/google/bitcoin/core/Address.html

For Javascript, you can use http://bitcore.io/ library. Here is an example:
https://github.com/bitpay/bitcore/blob/master/examples/browser/example.html

above link is dead


text:
Can the blk0001.dat and blk0002.dat files be deleted?
I have a Bitcoin installation on an SD card, and the blockchain files (blk0001.dat specifically) take up nearly 4 GB of disk space.
Can the blk0001.dat and blk0002.dat files be safely deleted to free up space on my SD card? Will the blockchain just be downloaded again next time I run my bitcoin client?

You can use a symlink to put the wallet.dat on your SD card while the rest of the data files are including the blockchain are on your hard drive, if you wish.

Good idea @StephenGornick!

It's a bad idea to symlink wallet.dat! If your client ever shuts down non-cleanly, you may end up with a corrupt wallet.

You can delete them just fine, as long as you delete blkindex.dat too. They will be downloaded and processed again. This will take a while, these days, though.

Thanks! A while meaning hours... or weeks? :-)

@Josh: YMMV but may be about a day. For this purpose you should consider trying a lightweight client.


text:
Deposits to an Offline Wallet
What happens when I put a deposit into my wallet, while my computer is offline?
Lets say for example, I automatically deposit btc from a pool to the wallet on my computer, but I shut my computer down for a week/month/ or whatever.
Will the Bitcoins be in some kind of "cloud" until my computer/wallet is online again?
How does this work?
Thanks!
-Kevin

Bitcoins are stored in a decentralized ledger called the blockchain.  When your computer is shutdown the blockchain stores the balance in your associated public key also known as an address.  If you are using the reference client (Bitcoin-qt) you will be able to spend your Bitcoins once the computer is turned back on and the blockchain has downloaded all of the transactions that have occurred since it was turned off.   So while your PC is off yes you can still receive Bitcoins because the rest of the network has seen the transaction that is incoming to your address and they will continue to store that information indefinitely.

All bitcoins are on the cloud. Otherwise, no-one would know if you have the balance you claim you have - they're not just going to take your word for it.
All you have locally, is the private key.


text:
Bitcoin RPC RegTest not validating addresses
I am attempting to use Bitcoin RPC in regtest mode, however, when I try to validate a bitcoin address with the following function
public function validateAddress($address)
{
    $command = new \Nbobtc\Command\Command('validateaddress', [$address]);
    $response = $this->client->sendCommand($command);
    $contents = $response->getBody()->getContents();

    return $contents;
}

it returns...
Array ( [result] => Array ( [isvalid] => ) [error] => [id] => )

Any ideas why the isvalid value is missing?
I could have sworn this was working a day or two ago...

can you add more details?

Thank you for taking a look, Did you have a specific questions about my question? =]

you use the same address for the testing in the mainet and regtest?

yes sir i do, i copy and pasted it

You may be trying to validate a mainnet address on a testnet/regtest client.
For the benefit of others:
<?php

require '/tmp/vendor/autoload.php';

$command = new \Nbobtc\Command\Command('getinfo');
$client  = new \Nbobtc\Http\Client('http://username:password@localhost:18332');

# legacy testnet address
#$address = "mvM368BXwRNx4HcYdL8XbU8hAX274gMKcq";
# bech32 address
#$address = "2Mzm5MPhGWTxNcZPGfpW7URR4mASKzsCZ3k";
# mainnet address
$address = "1KJFgSXpPvUthy3a7NxyM66szTkqHabpYB";

$command = new \Nbobtc\Command\Command('validateaddress', [$address]);
$response = $client->sendCommand($command);
$contents = $response->getBody()->getContents();

echo $contents;
?>

I observe that bitcoin 0.18.1 will return as OP describes when attempting to validate a mainnet address on a testnet/regtest client, and return correct details otherwise.
If not, could you edit in to your question the actual address and the bitcoin.conf you're using.
Edit: I notice there IS a difference. I'm getting
{"result":{"isvalid":false},"error":null,"id":null}
vs OP getting
Array ( [result] => Array ( [isvalid] => ) [error] => [id] => )
Perhaps there is some post-processing you're doing to $contents that is losing the value?

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


text:
Bitcoin-cli -regtest getaccount, listaccounts, setaccount, method not found
I just setup bitcoind (0.18.1) and put it in regtest mode, I am trying to work with accounts, but the account commands are not found...
setaccount
 jlroberts@mixerregtest:~$ bitcoin-cli -regtest setaccount 2NDCk4d7BYGztagf812gUdWqqPSMymdH4rS one
 error code: -32601
 error message:
 Method not found

getaccount
jlroberts@mixerregtest:~$ bitcoin-cli -regtest getaccount one
error code: -32601
error message:
Method not found

listaccounts
jlroberts@mixerregtest:~$ bitcoin-cli -regtest listaccounts
error code: -32601
error message:
Method not found

getblockchaininfo
{
  "chain": "regtest",
  "blocks": 303,
  "headers": 303,
  "bestblockhash": "77d7169d013574a1254ccf472389b40c3393f41498ddc6f84b8d078c740d3da3",
  "difficulty": 4.656542373906925e-10,
  "mediantime": 1568636861,
  "verificationprogress": 1,
  "initialblockdownload": false,
  "chainwork": "0000000000000000000000000000000000000000000000000000000000000260",
  "size_on_disk": 92175,
  "pruned": false,
  "softforks": [
    {
      "id": "bip34",
      "version": 2,
      "reject": {
        "status": false
      }
    },
    {
      "id": "bip66",
      "version": 3,
      "reject": {
        "status": false
      }
    },
    {
      "id": "bip65",
      "version": 4,
      "reject": {
        "status": false
      }
    }
  ],
  "bip9_softforks": {
    "csv": {
      "status": "locked_in",
      "startTime": 0,
      "timeout": 9223372036854775807,
      "since": 288
    },
    "segwit": {
      "status": "active",
      "startTime": -1,
      "timeout": 9223372036854775807,
      "since": 0
    }
  },
  "warnings": ""
}

What could I be doing wrong?

What is your bitcoin core version? also, can you try bitcoin-cli -regtest getblockchaininfo?

using the latest, 0.18.1

I don't know the listaccounts, getaccount and setaccount commands inside the Bitcoin core 18.1.
I think you have used the wrong commands with the bitcoin 18.1, perhaps the equivalents are:

listaccounts -> getwalletinfo
setaccount -> importaddress

But before you use this command look the official documentation rpc framework

ah I was using the documentation from https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

accounts method was deprecated in v0.17 and was removed since v0.18. accounts was replaced by label and it provides more flexibility as compared to before such as setting label on any address, not just receiving address. It also irons out issues raised in the past. If you are used to using accounts to mimic separate wallets, you now have an option to use separate wallets in separate wallet files in Bitcoin Core.
So according to the commands you are looking, you will replace them by:

getaccount with getaddressinfo
listaccounts with listlabels
setaccount with setlabel

You can see the full documentation of accounts vs labels in the v0.17 release docs.


text:
What is the transaction rate bottle neck?
I recently read (Scalability link) that bitcoin can do 3.3 to 7 transactions per second...
I am curious, what is the bottle neck for the transaction rate?
Is it verifying the signatures? or maybe it's verifying sufficient funds?
My question is, what process is hogging the resources limiting the amount of transactions per second...
EDIT:
I know several people have chimed in and said that it is the block size that is limiting the transactions per second, but that doesn't make sense to me, I don't see, nor understand, what block size has to do with transactions per second...
The answer to my question should be something like, verification of sufficient funds per transaction input address takes 0.1 seconds, or as a whole verification of each transaction takes 0.3 seconds.

I know several people have chimed in and said that it is the block size that is limiting the transactions per second, but that doesn't make sense to me, I don't see, nor understand, what block size has to do with transactions per second...

A block can hold no more than 1 MB of transactions. This sets the network's transaction speed limit.
A block is generated once every 10 minutes on average. We can calculate the block chain's write speed with:
w = s * g
where w is write speed MB/hour, s is block size limit in megabytes (1 MB/block), and g is the rate of block generation per hour (6 blocks/hour).
Plugging in the value yields:
w = 1 MB/block * 6 blocks/hour = 6 MB/hour

Converting to bytes/second, that's:
6 MB/hour * (1 hour/60 minutes) * (1 minute/60 seconds) * (1,000,000 bytes/1 MB) = 1,700 bytes/second

In other words, think of the blockchain as a hard drive. We can write to this hard drive at a rate of 1,700 bytes/second.
Even if we develop faster computers, we can't write data faster than this because the network rejects any block larger than 1 MB. We need to make some allowances for SegWit, but for now, let's keep things simple.
A one-input, one-output Alice-Pays-Bob transaction requires ~ 200 bytes. This is the absolute best case. We can, therefore, obtain an upper bound on the transaction rate using:
v = w / z

where v is the maximum transaction volume, w is the write speed calculated above (1,700 bytes/second), and z is the average size of a transaction (200 bytes/transaction).
Plugging in the numbers:
v = 1,700 bytes/second * (1 transaction / 200 bytes) = 8 transactions/second

The answer to my question should be something like verification of sufficient funds per transaction input address takes 0.1 seconds, or as a whole verification of each transaction takes 0.3 seconds.

The network might appear to have a limit based on hardware or validation, but it does not. At least not directly.
As to why we should limit the block chain's write speed in the first place, the answer has to do with network security. Increasing write speed means:

data flows through the network at a higher rate;
more data must be stored by every node;
more transactions must be validated by every node.

Every node sends and receives every block, and every block must be stored. Increasing the blockchain write speed means that every node pays the price. Some won't be able to keep up, regardless of write speed.
Transaction validation is a resource hog due to signature validation and UTXO set manipulation. Storage space and bandwidth are also considerations, but less resource-intensive than validation.
Now, if you're asking why we have a 1 MB limit given XXX computer has such-and-such technical capabilities, that's the realm of the Never Ending Debate. Calculations have been done and simulations have been reported. They are not hard to find. They are, however, hard to believe given their wildly-differing claims and underlying assumptions.
The best thing I can recommend is to download a copy of Bitcoin Core 0.16.0 and try syncing a node from scratch. Report back when you're done.
The write speed limit we see is a compromise between inclusivity (more people using bitcoin) and security (difficulty of double-spending attacks). The limit may not have been set correctly, but figuring out where (or even how) to set it is exceedingly difficult. Not because of lack of ideas, but because of too many and lack of widely-accepted selection criteria.

After reading the existing answers, and your comments on this, I believe what you're looking for is this.
Your question is based on a misunderstanding. The figure "Bitcoin can process 7 transactions per second" is not a burst rate. It is talking about the long-term network-wide average, and results from the fact that (a) blocks are limited in size and (b) the block production rate is limited.
Individual Bitcoin node implementations can process far more transactions per second than that, but they necessarily need to be many times faster than the rate at which the whole network operates.
When a new block is created, nodes in the network need to be able to process it quickly, in order to not delay how long it takes before other miners can start building on top of that block. Due to the inherent variance in block production, the next block has a small but significant probability of being found just seconds later. If network nodes can't verify the previous block within that time, they are disadvantaged. However, the miner who created the block himself has no such penalty (he already knows his own block is valid). Generally these delays in processing tend to benefit the larger and well-connected miners proportionally more than smaller ones - an effect that is very detrimental to decentralization of the network, so to be avoided at all cost. For that reason, the time between blocks must be many times larger than the time it takes to verify the transactions in it.

I was in the same situation you are a month ago but reading around carefully and giving time to things seeping in has actually helped me understand a lot.
I'll try and keep my answer completely non-technical, just for better understanding purposes.
For a technical explanation, Andrew gave a good overview, Rich gave the exact calculations behind the scenes and Pieter explained where you might be misunderstanding the transaction's process.

Q1. I recently read (Scalability link) that bitcoin can do 3.3 to 7 transactions per second

A. The metric used to calculate the transaction speed is incorrect. What we can actually calculate is how many transactions are appearing in the blockchain every 10 mins, as the acceptance of each block to the blockchain takes approximately that much time. Hence, with the size of the block being 1MB and it getting added to the chain every 10 mins, currently, we can store only a limited amount (whatever 1MB can fit) of transactions every 10 mins.

How can this improve?

There are newer technologies, like SegWit, being added to the Bitcoin's core, which helps in breaking the data into useful information (transactions) and redundant information (signatures). There are also new hashing algorithms, like Schnorr, which are under speculation to reduce the data usage of the block per transaction. There is also a second-layer on top of the Bitcoin blockchain, that handles transactions (even micro-transactions) separately altogether, a good example of which would be the Lightning Network.

Q2. I am curious, what is the bottleneck for the transaction rate?

A. People have correctly "chimed in" while saying that the bottleneck is the block size.

Going a little deeper...

For once there was a proposition of increasing the block size to eradicate the scaling problem 2MB block size in SegWit2x. You can find 'Bitcoin scalability problem' as a linked article in the 'see also' section on Wikipedia.

Q3. Is it verifying the signatures? or maybe it's verifying sufficient funds?

A. No, verification of the signature occurs almost instantly and the sufficient funds part is handled by the client (maybe some wallet software or some exchange) you're using.

Still not convinced that it happens locally?

Here are a few references to back my claims: How to calculate signature generation, signature verification, transaction verification speed? , How much time it takes to verify a Bitcoin signature in the Satoshi client? , How do nodes verify Bitcoin Transactions? , Verification of transaction once trasaction is broadcasted

Q4. My question is, what process is hogging the resources limiting the number of transactions per second?

A. The process called 'Proof of Work' is limiting the number of transactions per second (actually per 10 mins to be more precise)

If u still don't trust what I say...

Please go through this wiki - Proof of Work (PoW) as it'll briefly introduce you to PoW - "The difficulty of this work is adjusted so as to limit the rate at which new blocks can be generated by the network to one every 10 minutes".  You can even read through other pages in that wiki for better understanding.

I hope this clarifies each and every question of yours.

The bottleneck is the number of transactions that can fit in a block, and the frequency of blocks.
You can create an infinite number of transactions per second and broadcast them to the network, but that is irrelevant because those transactions are not considered final. They are considered reversible and insecure.
For a transaction to be considered final and secure, it must be included in a block. So the transaction rate that is often cited as being 3 to 7 transactions per second is limited by the number of transactions that can fit in a block and the frequency of blocks as that metric only considers transactions that are final and secure.

The actual number of transactions per second that bitcoind can verify is somewhere in the thousands of transactions per second. Transactions can be verified very quickly and the limiting factor becomes hardware. Furthermore, it depends on your hardware; a slow CPU could be the bottleneck for some devices, while a slow hard drive may be the bottleneck for others.
However the number of transactions that bitcoind can verify is irrelevant as those transactions are not confirmed and thus not final, which is what really matters. The rate at which transactions become confirmed and final is limited by the block size as explained earlier.

Thank you for your answer, however, I am more interested in the technical details of the bottleneck, I have updated my question with some examples of what I believe the bottle neck might be

No, there is a hardcoded limit to the size of blocks, and blocks above that size are simply rejected by nodes that validate them. The reasons for why that limit exist are already answered in several other questions.

ok, I understand that, but that doesn't tell me why bitcoind doesn't process more than 7 transactions a second...

No more than a certain number of transactions can fit in a block, which are found, on average, every 10 minutes. Since "processing a transaction" means including it in a block, the bottleneck is in the number of transactions that can be included in a block and the amount of time required to produce a block. When you take the maximum number of transactions that can fit in a block and divide that by the average time to find a block, then you get a number that is around 7 transactions per second.

So what you are telling me, is that if 10 transactions get broadcast in one second, then bitcoind can include them in the next block within a second? What if a 100 transactions were broadcast in one second?

@JeffreyL.Roberts blocks get mined every 10 minutes. A typical 1-input-2-outputs transaction takes around 250 bytes. Each block has 1MB room for transactions so it can take around 4000. 4000/10minutes = 6.67/sec

hrmmm, my last comment, my apologies, but to me, that is the average amount of transactions per second, not the transactions per second rate

The transactions per second rate that is commonly cited is exactly that: the average amount of transactions per second.

So what is the max? Im guessing hardware plays a role in that, but there should be a range, the range ive found is 3.3 to 7 transactions per second, now back to my question, what is the limiting factor or resource hog that limits bitcoind to 7 transactions per second?

As has been stated multiple times in this answer, the limiting factor is the number of transactions that can fit in a block. This is completely unrelated to bitcoind, it is related to Bitcoin's consensus rules. bitcoind itself can verify many thousands of transactions per second with the limiting factor being your hardware. But for the network as a whole, the limit is in the consensus rules.

What exactly do you not understand about the answer? You keep asking the same question over and over again. Please clarify what you don't understand about the answer.

I think something is getting lost in translation here, you keep offering me the average number of transactions per second, and I am looking for the limiting factor of the actual number of transactions per second...

The  number that you have cited (which I assume is what you believe is the "actual number of transactions per second") is actually the average number of transactions per second. The actual number of transactions per second that bitcoind can handle is very large, on the order of thousands of transactions per second and varies highly due to hardware.

I know comments are not for thank-you but, I wanted you to know I upvoted your answer anyway.

I am curious, what is the bottle neck for the transaction rate?

If I broadcast several thousand valid transactions per second onto the Bitcoin network;

Those transactions will be validated when received by each node and enter each node's individual mempool until the individual mempool resources are exhausted, in which case each node has its own rules about how to handle additional new transactions. Some nodes with slower hardware may not keep up but that is irrelevant as the mempool is not ever in consensus.
A miner draws a number of transactions from their own mempool using any selection criteria that they wish (transactions in mempool have already been validated), not more than the maximum block size in block weight per consensus rules, constructs a proposed block and attempts to make it valid by incrementing nonce (simplified). This process of solving a block takes on average ten minutes and is regulated to maintain that average block time per consensus rules. Ten minutes is currently considered the optimum for security and reliability.
Since there is a fixed maximum block size in block weight AND a regulated average interval, this is the limiting factor for transaction bandwidth rate since a non-infinite number of transactions may be compiled into a valid block and will take an average of ten minutes to solve. This can be shown as:
(average number of transactions that will fit in a block in block weight)/average block time in seconds = approximately 7 transactions per second maximum, however, this ideal figure would be seldom possible to maintain using real data.

Note that I have marked valid at the top of these statements in bold.

My question is, what process is hogging the resources limiting the amount of transactions per second...

It is not a process, it is the application of consensus rules.


text:
How are 'excessive' numbers of inputs and outputs handled in bitcoin transactions?
I wrote a bitcoin transaction parser in python and it flips out when transactions have more than 255 inputs or outputs.  Some transactions have their number of inputs/outputs represented by a 1 byte hex string, others are represented by more.  How do I know (and how do I program my parser to know) whether a tx's representation of inputs/outputs is 1 byte or more?

The number of inputs/outputs is encoded as a "var_int" or "variable length integer".
Start by looking at the first byte. If it's 252 or less, then that's it, that's your number (like you've been using), there are no more bytes to read.
If the first byte is 253, there are 2 more bytes following it, which are a 16 bit little endian integer. 254 means 4 bytes following it (5 in total), which is a 32 bit integer. 255 means 8 bytes follow, i.e. a 64 bit integer.
You can read more here: https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer


text:
In manual raw tx creation, how do you specify the amount of the bitcoin to be sent?
According to this
You can specify the amount of bitcoin with an (apparently) 16 alphanumeric hex representation.  It is stated you must specify the bitcoin you want to send in units of Satoshi.
Here is the quote:

We then write an 8-byte field (64 bit integer) containing the amount we want to redeem from the specified output. I will set this to the total amount available in the output minus a fee of 0.001 BTC (0.999 BTC, or 99900000 Satoshis): 605af40500000000

How did they get 605af40500000000 from '99900000 Satoshis' when that hex code = 6943130077857054720?  I can find no conversion calculator online which demonstrates what they are switching it from or to.
I got the hex code from https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

99900000 in hex is 5F45A60. Padded out to be a 64-bit integer makes it 0000000005F45A60. But Bitcoin uses little endian for most things, so this will need to be converted to little endian by byteswapping. So the final value put into a transaction is 605AF40500000000.

Congrats on your 200th answer. :)

Thank you again.  You wouldn't, by chance, know of a website for doing that conversion easily would you?  It looks self explanatory but I could swear I've seen some byteswaps in bitcoin that change a hex number/letter sometimes in addition to moving them around.  Speaking of which, yours even added a "0" between the 4 and the 5.  Yes!  I'm not crazy!

Byteswapping will not add characters. Bytes are represented with 2 characters, so to byte swap, you reverse the string in 2 character chunks. This means that the last 2 characters become the first two, the second 2 characters becomes the second 2, and so on. So if you look carefully at the byteswapped string, where you see 05 is actually the 05 that was at the beginning of the hex originally. The 4 is part of F4. So it used to look like F45A, but now swapped they are 5AF4 which makes you think a 0 was added between the 5 and 4, but it's really a different byte that you are seeing.

So I'm not crazy, but I'm still wrong, lol.  Thank you

authors: Вячеслав Никитин


text:
What does "16: mandatory-script-verify-flag-failed (Non-canonical DER signature)" error mean?
What can this error mean?  I've read through the code for it, and several of my transactions have not met the criteria for the error, yet are still rejected.  I've tried decoding via several means (none are super detailed though) to no avail in discerning the problem.  Some have claimed by reading the bitcoin debug log one can find a more detailed reason, but my log says nothing about my rejected raw transaction.
Yes, there is another question very similar to this, but he provided code so as to get an answer for his specific code and the answers didn't address what could have caused it nor how to discern, more specifically, what may be causing it within the code.
Everything in my transactions that I've been trying are manually created.  But they meet those criteria specified.  I'm remaking some right now, but I was kind of wondering if there are other checks being done besides those you have referenced for this particular error.
I have even considered I got the wrong numbers in my manual creation of the variables, but I would think that would cause it to fail under a different error if that were the case.

What can this error mean?

This error can only mean that this function returned false:
bool static IsValidSignatureEncoding(const std::vector<unsigned char> &sig) {

When does this function return true? When all of these conditions are satisfied:
/**
 * A canonical signature exists of: <30> <total len> <02> <len R> <R> <02> <len S> <S> <hashtype>
 * Where R and S are not negative (their first byte has its highest bit not set), and not
 * excessively padded (do not start with a 0 byte, unless an otherwise negative number follows,
 * in which case a single 0 byte is necessary and even required).

How are you generating your signature?


text:
Is there still a shortage of available inbound connection slots?
David Schwartz's answer to this question states the following:
"For some reason that isn't well-understood, the Bitcoin peer-to-peer network is consistently short of available inbound connection slots. This makes it more difficult for newly-started clients to establish a resilient connection to the Bitcoin network."
Is that still a problem? If so, could it be because of some sort of attack (or selfish behaviour) on the Bitcoin network?

It is due to a lot of people not port forwarding from their routers to their Bitcoin machines. Without the forwarding the client can only make outbound connections to those client that have port forwarding enabled. The limited number of such clients is probably due to people not realizing this need and now knowing how to change their router options.

What are the consequences of the problem, and how will it affect the future of the Bitcoin network? Thanks!

If nothing changes, Bitcoin will rely on a fraction of the network being the backbone of it. Probably won't be too bad, as the fix is not hard if the person know what they are doing.

authors: Илья Фивейский


text:
How can I verify the the PGP signature of bitaddress.org?
bitaddress.org appears to have a versioning system and a PGP signature to confirm the source code hasn't been hacked.
If I save the source code for the page (so I can run it on an offline computer), what steps do I need to take to verify the version I've downloaded matches the signature?
This assumes that the signed version of bitaddress.org is not malicious as answered in this question.

I'd like to propose this question gets reopened. The question proposed as a duplicate doesn't ask for, or offer, a method of verifying the current version of the code. It's just a technicality really, as I do have the answer I want!

who has actually verified the code is not malicious in the first place?

There are many eyes on it from cryptographers, javascript programmers and more.  But there has been no commercial party or individual who claims to have vetted the page to assure that there is nothing malicious.
As far as verifying that the website is serving the same release as the version control repository shows, that can be verified as follow:
Verify that the BitAddress.org website has been updated and returns the same HTML from the commit with the description vx.x in github:

https://github.com/pointbiz/bitaddress.org

Here's an example of verifying in which the version was v2.4:
First check the sha1sum hash of the html returned by a request to http://bitaddress.org:
$ wget --quiet -O - http://bitaddress.org|sha1sum
1d5951f6a04dd5a287ac925da4e626870ee58d60  -

$ GET -eSd bitaddress.org|grep -i "200 OK"
GET https://www.bitaddress.org/bitaddress.org-v2.4-SHA1-1d5951f6a04dd5a287ac925da4e626870ee58d60.html --> 200 OK

Then from my bitaddress.org repo:
$ git checkout master
$ git pull
$ git log --pretty=oneline|grep "v2.4"
eeed4db91edd9eda5eb4277a61aa16ad80bdcdcb v2.4 French translations

$ git checkout eeed4db91edd9eda5eb4277a61aa16ad80bdcdcb
$ git rev-list --max-count=1 HEAD
eeed4db91edd9eda5eb4277a61aa16ad80bdcdcb

$ sha1sum bitaddress.org.html
1d5951f6a04dd5a287ac925da4e626870ee58d60  bitaddress.org.html

As long as that sh1sum matches the filename and also matches from github, then you can you know have the exact same version as was distributed from github.

I don't quite understand this approach. The website mentiones PGP signatures. Should I not import these signatures, verify that the .asc files are from a valid source and generate a SHA256 hash over the HTML file in plain HTML?

I now read over this post over and over again and searched extensively on the internet. Are you really sure you are correct? Your approach does not use PGP or GPG in any way. The author asks specifically about the verification of a PGP signature. How would I do this when I only calculate SHA1 checksums?