What happens to the fees in Bitcoin?

In Bitcoin, the transaction fees paid are added to the block reward so, if a miner solves a block they currently get 12.5BTC block reward plus the sum total of all fees. If the fees add up to 12.5BTC also then, the miner gets 25BTC in total.


Where is SIGHASH_TYPE serialized in SegWit?

Is 1 byte appended to the signature in the the same way, but in the witness data rather than the legacy part of the transaction?

Yes. The signature serialization (which includes the sighash type) remains exactly the same.

Look at the first example in BIP 143, the generated signature (before serialization) is 304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee. When it is serialized, it becomes 47304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee01. Notice how when serialized there is an additional byte appended to the signature; that is the sighash type.


How do I ask other nodes for their stale blocks?

You can’t. Nodes don’t respond to messages about stale blocks because this would be a fingerprinting vector.


How to access bitcoin client from ruby using Rpc client?

I've solved the problem by changing the url as follows.
http://'rpcuser':'rpcpassword'@127.0.0.1:8332'


Every bitcoin is locked by output script. Only when the result of output script returns true, bitcoin is allowed to spend.

In your case first bitcoins are locked with Alice's private key. Which means output script will return true only if Alice had signed the transaction with her private key. Alice signs the transaction with her private key to Bob's public key, and this will unlock the bitcoin as Alice has provided her private key and new output script will be generated for this bitcoin, which can be unlocked by Bob's private key.

Now, when Bob wants to spend bitcoin which is locked by his private key, he can sign the transaction with his private key to Charlie's public key.


Asymmetric revocable commitment's revocation key

The revocation key is actually a blinded key that is calculated from the two parties' revocation basepoints and generated per commitment keys.

So for A's revocation key for a commitment, the public key is calculated from B's revocation basepoint and A's per commitment basepoint. B does the same but with A's revocation basepoint and B's per commitment. This results in a revocation public key who's secret requires a component from each party so each party individually does not know the key.

When a commitment is revoked, the two parties will exchange the per commitment secrets so they will only be able to know their respective revocation keys. Since the revocation basepoint secrets are not shared, each node cannot know the other revocation key.

The full details of the key derivation algorithm can be found here.


Bitcoind allows you to house multiple and separate accounts in a single instance of the bitcoin client. Using the accounts feature is probably what you're looking for.

https://en.bitcoin.it/wiki/Accounts_explained


Bitcoin Core chooses peers in the P2P network in a few ways:

it tries to connect to peers it already knows about, or
it connects to peers it learns about by querying volunteer-run DNS services, or
it connects to one of a number of hardcoded seeds

Once connected to the P2P network, peers rumor possible other nodes they know about, and the node builds a picture of the network using these responses. On a fresh installation there's no known peers, so the discovery begins at the seed nodes.


Is there a way to maintain a continually updated copy of blockchain without running a wallet?

You could keep two wallets, an 'updater' wallet and a 'secure' wallet, and use the same blockchain with both using the following instructions:

Separate wallets sharing the same blockchain?

The updater wallet would run most of the time, and then you would switch to the secure wallet when needed. Heed the advice about not running two wallets on the same blockchain at the same time.


If you used the japanese bank its not a european transfer, but an international wire, and intermediate banks took their share on those fees.

I often say "with international wire, expect to loose 2-8% on random intermediate bank fees", sorry to tell you that but, thats the traditional obsolete banking system of the real world.

Afaik the mtgox fee for that is more or less 15.46 euro,you probably had around 25 more euros on "intermediate bank fees", ask for more info to your bank about international wires.

Actually receiving 900 for 940 sent is not so bad for an international transfer, be happy I seen worst ;)

Also, even with those "intermediate" added fees, it could be worth it when all other withdrawal options are delayed, like sepa or okpay taking 1-2 weeks .


Colored coin adds meta data to OP_RETURN. Why isn't this frowned upon?

I think I get it now. So Blockchain.info's wallet use to have a field for adding custom messages via a public note field.

(https://blog.blockchain.com/2014/05/09/tutorial-how-to-send-bitcoins-using-our-web-wallet/)

This was "potentially" creating lot of un-spendable outputs. Ie bloating the blockchain in a bad way.

  "Yes, please don't create lots of unspendable scriptPubKeys. There are
  more prunable ways of embedding messages into transactions. And there
  are even better ways of associating messages with transactions, so
  only people involved with the transaction can read the message (if
  that's desired).

  In other words, lets figure out how to do this the right way. The way
  you're doing it now will stop working as soon as the network upgrades
  anyway (0-value outputs are nonstandard as of the 0.7 release)."

(https://bitcointalk.org/index.php?topic=40264.msg1162402#msg1162402)

When the OP_RETURN drama eventually passed, this allowed any kind of meta data to be stored on the blockchain to the tune of 80 bytes in a "friendlier" way.

Coloredcoin (and others) then made extensive use of this but because it uses the OP_RETURN code, this means that transactions are not stuck in limbo in UTXO and in addition, they can be removed or "pruned" with no detrimental effect.

In summary, adding non-bitcoin/ledger related data to the blockchain is only frowned upon by the people in the "use the bitcoin blockchain only for financial data" camp. With OP_RETURN, it is not such a big deal now because it can be pruned and keeps the people who want to put meta data on the blockchain happy.


How do I provide proof of a transaction for tax purposes?

I suppose that you want to (legally, not scientifically (Big difference!)) prove that you issued a certain transaction.

First off: State the transaction ID so it can easily be looked up.

You can prove that you are in possession of the private key which issued the transaction by signing a message using that private key. How easy this is depends on your wallet and if your wallet doesn't support it, it depends on your operating system and the software available for it.

With Electrum, it's super easy:

Just right-click the address you sent the money from and choose Sign/verify message.

This window opens:

Enter a message which says that you (state your full name) issued the transaction:

Click the Sign button. You will be prompted for your password. After entering it, the signature will be printed in the bottom text area:

State this signature along the message you entered (Every character needs to be exactly the same!) and the transaction ID.


Have a look at these. I think this may help you.

https://github.com/owstack/bch-explorer-api

https://bch.btc.com/api-doc


How can I transfer tether(USDT) using omni JSON RPC API?

So for Omni layer token you do this omni_send
https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md#omni_send
This is what you need (at least on Kraken and Bittrex USDT is Omnilayer token). To send Omnilayer transaction you need to have some BTC on the same address for transaction fee. And you also need to know USDT propertyId which is 31 (https://omniexplorer.info/asset/31)

Just in case:

For ETH token you do eth_sendTransaction(different methods are possible like eth_sendRawTransaction) https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction. You need to know contract address of the token and it is your parameter to, from is normal address from here is the funny part - token transaction is defined in data. Lets take an example https://etherscan.io/tx/0x6fcf7dc3f6bc2b7e8a9e6b13689d042e659b2d016a3bdf7beffd033ab9b6db1e
this is 2.55 BNB(contract address 0xB8c77482e45F1F44dE1745F52C74426C631bDD52,  parameter to) token transfer(method name encoded in data as first 10 digits 0xa9059cbb) from 0x0861d1b074eb2489dd7878a5d6d869db5896a5f0 (parameter from) to 0x4283f315788b09a357ca83b8134cd48bde8b556f (middle part of data with some padding 0000000000000000000000004283f315788b09a357ca83b8134cd48bde8b556f). Last part of data is token amount in wei. BNB has 18 decimal places and the best way to explain that IMHO is this python assertion:

assert int('0x00000000000000000000000000000000000000000000000023803234a2f38c00', 16) * 1e-18 == 2.55809979


Is there a bitcoin explorer that can visualize where the coins are flowing from one address into another?

Every transaction on blockchain.com has a clickable "View Tree Chart" link, eg:
3414e5f55d89959978575713446072b0d4b3e86b75be5e894b8614c6526d1218 -- this shows bitcoin addresses and even IP address that first broadcast the tx (if known).


Address starting with 2, what mode I am in?

Both regtest and testnet use the same address prefixes for the legacy and p2sh-segwit address types. Addresses beginning with 2 are p2sh, and if retrieved via getnewaddress, are guaranteed to be p2sh-segwit.
For bech32 type addresses, the regtest prefix is bcrt and on testnet it is tb. You can try fetching a bech32 address to see what the prefix is and be more sure of which network you are using.

shouldn't the address start with 1 if its really regtest mode

No, and that would be dangerous.
Both regtest and testnet intentionally use different prefixes than mainnet. You will never see mainnet prefixes in those modes.


Because the data is already serialized in a pretty compact way and large parts of that data are hashes which are effectively random numbers as far as compressability is concerned. (Random data is not compressable.)

Also when you search for for example a transaction id in an index, it will point you to the exact location in the blockchain. Having to read a whole bunch of data around that area and decompress it before being able to access the transaction that you wanted, adds disk I/O, CPU overhead and memory consumption. That severely limits the dictionary size any compression algorithm could use, and therefore the compression ratio.

Give it a try by zipping the whole blockchain file, but remember that any usable live compression would have a lower ratio than what you would find.


What kind of private information would a bitcoin "middleman" ask from clients?

When dealing with established companies as a middelman (usually an exchange), it is common to go through a form of know your customer (KYC). This usually involved some form of national ID, and a bank statement or other proof of residence/address, and is usually done to comply with local laws regarding movement and sale of currencies.

You should, however, be extremely wary of dealing with random companies or people. Make sure you are dealing with a reputable exchange (check review on reddir, yours.org, steem, and other such platforms), and as far as possible, keep any BTC or other crypto in a wallet where you control the private keys (such as electrum, Ledger, Trezor etc). If someone offers to do mining on your behalf, it is almost certainly a scam. If someone says you need to pay to unlock the BTC, it is a scam.

Verify you are dealing with a legitimate entity.


What's the most popular Namecoin exchange?

Almost everyone seems to use the Bitparking Namecoin Exchange.


There is no expiration date for when an output can be spent.


Why is the hash rate pumped near difficulty calculations?

It's more likely either a quirk of the difficulty calculation, or just coincidence. There's no reason, and indeed no way someone would make spikes like that, short of having massive amounts of reserve hashing power for the opportunity. There's no positive or negative of this sort of behaviour, so it's hard to believe anybody would.


Running bitcoin node in docker behind NAT

Root cause.

The root cause of the problem is default settings in docker container. More precisely, network settings mode which has bridge mode by default. In bridge mode all incoming connections are seen from inside docker container as coming from the same IP address (which is 172.17.0.1). There are multiple hard forks out there so a foreign node running BCH or other forked bitcoin stuff would connect to your node and try to propagate invalid transaction(s). After few attempts your bitcoin node puts such misbehaving incoming connection in a blacklist. Having one connection banned, your node effectively bans all other incoming connections as they are seemed to come from the same IP address.

Confirmation from a technical point of view (via RPC).

To confirm such situtation we can setup RPC to call bitcoin node. Configuration options such as -rpcconnect and -rpcauth can be put into bitcoin.conf file so I skip them here. The command

bitcoin-cli listbanned

shows list of blacklisted misbehaving nodes where we can see only one address.

In my case the output was like that

[
  {
    "address": "172.17.0.1/32",
    "banned_until": 1572109811,
    "ban_created": 1572023411,
    "ban_reason": "node misbehaving"
  }
]

After a successful diagnosis it's possible to clear blacklist with the following command to temporarily clear blacklist

bitcoin-cli clearbanned

Having blacklist cleared we can run another test here https://bitnodes.earn.com/#join-the-network and confirm the node is now visible from outside.

Solution.

Network settings in docker.
The most proper solution.
In my case, running on a Synology NAS, I had to recreate the container to switch off the bridge mode.
Schedule (eg, via cron) a task to clear banned.
Whitelist the only address docker accepts connections from.
Couldn't find a way to permanently implement it.

PS. Can someone tag the topic with a 'nat' and 'docker' tags. It looks like I need some reputation to make it happen.


If it was your wallet, you'd have no issue, a BTC address can hold and spend BCC, but you sent it to coinbase's wallet in effect which you do not have the private keys for.

By Jan 2018, they have said they will support BCC. I would hope that would be when you would see it, but no guarantees as they operate off-chain, who knows how they work internally. So I would contact their support for clarification.


If there is a source online saying it is a scam, and with PROOF, then, there is not much you can do then try and get others over to the article/video for them to see it is a scam.

If the scam has a forum on it, make as many posts as possible detailing it as a scam, and putting links to a article that has proof of it being a scam. This will hopefully bring many users to their senses, and save them from using hard earned money

Hope this helped!


Actually, the answer on the linked question states that it is possible, but that one should be careful not to return money back to the sending address, because said sending address might not be associated with the personal wallet, but rather owned by the service itself.


lightning network funding transaction clearification

the input of the funding tx is just an input that is able to spend some UTXO which either Bob or alice controlled. Theoretically we could have Inputs from Bob and Alice but I believe that is not being implemented yet.

The workflow goes as follows. For example alice decides to open a channel by creating a funding tx. The output of the funding tx is a 2-2 multisig P2SH so before broadcasting the funding tx there will be 2 commitment tx created. one for alice and one for bob (in order to be able to ascribe blame in case auf malicious behavior) only if the commitmet tx are successfully signed the funding tx will be broadcasted to the bitcoin network and only if it has enough confirmations the channel will become operational.


Constructing, signing, and pushing a Bitcoin transaction by using pybitcointools with Python

OK, so first off:

Use Python 2.7; there's numerous pieces of code which doesn't work with Python 3.4, namely make_request
Check out this pybitcointools fork, as there's a lot of added functionality (see the README.txt file)

The functions you've named work as so:

mktx(ins, outs) where ins is an array of "hexTxIdString:index" and outs is an array of {"value": 12345, "address": 1base58addressString}
mksend(ins, outs, txfee, 1changeAddress) where txfee is again in Satoshis

sign(unsignedtx, index to sign, privkey for utxo) where index is the input index to sign

We'll start by making the ins:

utxos = [(utxo_txid, utxo_index), (txid2, i2)....]
ins = ["%s:%d" % utxo for utxo in utxos]
change_addr = "1thisIsAChangeAddressYouOwn123"
txfee = int(0.45 * len(ins) * 10000) # you may want to check this 10000 value, it could be 100000
rawtx = mksend(ins, txfee, change_addr)

Right, so let's assume, you have the UTXOs' TxID and corresponding vout for each private key. Make an dict of privkeys ={ 'TxID:vout' : privkey, 'TxID2:vout2': privkey2 } Then finally, signall(rawtx, privkeys) to get your signed Tx. Then to broadcast it, use pushtx(signedTx, source="bci") or pushtx(signedTx, "testnet", source="blockr") for Testnet. Done!


Operation not valid with the current stack size

Your transaction only has 0x51 (just OP_1) in its scriptsig,  the OP_IF consumes the 1, and OP_SHA256 then operates on an empty stack, causing this error.


Are there any blockchain parsers which calculate virtual sizes of transactions?

It is unclear, why someone has down voted, without leaving a comment...

When I look at the original bitcoin specs, I can see:" Added in Bitcoin Core 0.13.0 - The virtual transaction size. Differs from size for witness transactions". I tried to run through the page "https://bitcoin.org/en/release/v0.13.0", but there was no mentioning of virtual size. So it seems to be hidden in one of the many SegWit additions. On https://bitcoincore.org/en/segwit_wallet_dev/ I finally found this:

Transaction Fee Estimation

- Instead of transaction size, a new metric is defined, called “virtual size” (vsize)
- vsize of a transaction equals to 3 times of the size with original serialization, plus the size with new serialization, divide the result by 4 and round up to the next integer. For example, if a transaction is 200 bytes with new serialization, and becomes 99 bytes with marker, flag, and witness removed, the vsize is (99 * 3 + 200) / 4 = 125 with round up.
- vsize of a non-segwit transaction is simply its size
- Transaction fee should be estimated by comparing the vsize with other transactions, not the size.
- Developers should be careful not to make an off-by-4-times mistake in fee estimation.

Then I looked into

blockchain.info
block explorer.com
live.blockcypher.com
www.blockcypher.com
www.blocktrail.com

just to find out, they don't provide this value...


You seem to understand the concept of decentralization, but also seem to be struggling with the concept of consensus.

  But lets say I own one Bitcoin (an hash). What stops me to sell this one on different chain instances? As long as I understand, they are decentralized and dont have to synchronised at each transaction.

What you are missing is that all the decentralized chains are really the same chain.  For the most part, there are no "different chain instances".  Yes, there can be a fork, where half the network thinks block A is the tip of the chain, and half think that block B is the tip.  However, this almost always gets resolved when the next block is found.  It is very difficult to pull off a double spend, and virtually impossible if the recipient is being cautious.  Most merchants/exchanges will wait for at least a single confirmation, often times more for larger value transactions.  Even before a single confirmation, double spends are very difficult.

Bitcoin is more than just a protocol for decentralizing a ledger.  More importantly, it is a protocol for coming to consensus on the state of that ledger, even when the participating nodes do not trust one another.  It is this ability to come to trustless consensus without a centralized source of truth that makes Bitcoin revolutionary.

As for the size of the chain, your personal blockchain can be pruned to require less data, an improvement is underway to allow it to be pruned even further, and the price/Gb of storage is still decreasing.  This is a concern, but it is being addressed, and is unlikely to become a major issue for some time.


Is a script spendable if multiple items are left on the stack?

Yes, this is the problem.

Pre-segwit there is a standardness rule in Bitcoin Core that requires a single element only on the stack after execution.

In P2WSH, this is part of the consensus rules.

The reason for this is that without such a rule it is trivial to malleate any transaction: just prefix the scriptSig with additional garbage elements, which would never be inspected by the locking script, and thus just passed through.


Open-Transactions is a free software library of financial cryptography primitives, used for implementing cryptographically secure financial transactions.

Open-Transactions also includes a server and client API.

Open-Transactions can be used for issuing currencies/stock, paying dividends, creating asset accounts, sending/receiving digital cash, writing/depositing cheques, cashier's cheques, creating basket currencies, trading on markets, scripting custom agreements, recurring payments, escrow, etc.

Open-Transactions uses strong crypto. The balances are unchangeable (even by a malicious server.) The receipts are destructible and redundant. The transactions are unforgeable. The cash is untraceable. The cheques are non-repudiable. Etc.

Open-Transactions is able to prove all balances, as well as which instruments are still valid, and which transactions are closed, without storing any transaction history (other than the last signed receipt.)

OT can be used to build wallets, market exchanges, and many other things. Basically anywhere you want to build secure transactions, you can use OT.

  how does money get into the open transactions network?

Any user choosing to act as an issuer can issue his currency onto OT servers by uploading a signed currency contract and then issuing a number of units. Then any other user can use the same currency contract to open asset accounts denominated in that same currency. (In practice, most users will not issue their own currencies, but simply use existing ones.)

Upcoming additions will enable currency units based on blockchain-based currencies to be issued on OT without an issuer, since the backing reserves will be stored in a multisig voting pool on the blockchain itself. For details on how this will work, see: https://bitcoin.stackexchange.com/a/834/6473

You may also be interested in this: How can Open Transactions benefit Bitcoin?


How can a government ban trading in bitcoin since the people can trade in overseas exchange?

They can't entirely ban trading for all of their citizens worldwide, but a government can ban trading within the country itself. This means that it will be much harder for people to trade and thus drastically reduce the number of people within the country that are trading.

However while you can trade anonymously, any earnings made from trading are usually taxed. Not paying your taxes (even for illegally earned money) is a good way to get a government coming down onto you.

Furthermore, in order for someone to even use the money that they earned, it must go through the banking system which governments usually have control over. Thus they can force banks to make it difficult, if not impossible, for people to deposit and withdraw their money from exchanges.

Without any way for people to get their money out of an exchange, most people won't change since trading anonymously just means that any earnings you get are almost entirely unusable to you.


Connecting to Bitcoin wallet outside of LAN to 'Solo' Mine

You just need to throw this into your bitcoin.conf
rpcallowip=1.1.1.34 where the allowed ip is your friends and also make sure the port isn't going to be blocked by the router.

Is it solo mining? When there is a second party it now becomes pooled mining.


What percentage of Twitch tipping now occurs with Bitcoin?

Unfortunately this is something only Twitch could publish.

They don't even mention Bitcoin in their 2015 Retrospective, but maybe they will for the 2016 one.


Is there a generally agreed on protocol for creating proof of solvency?

Greg Maxwell has described a way in which this is possible using a blind solvency proof, allowing users to verify that their amounts of Bitcoin are being stored by the system without revealing to an outsider what they are and how many users exist in the system. Clients of the service are able to individually prove their own balances in the tree and raise the alarm if they are not included or if the information is not correct, with the tree then becoming a proof of fraud. The scheme pointedly doesn't verify these funds exist and are spendable by the service.

Details about the system have been collected from IRC quotes, and at least two implementations by molecular and olalonde exist on github.

  While proving that one owns the required amount of coins is fairly easy

One exchange, BitStamp has taken it upon themselves to try and create their own "proof of reserves" system by periodically (every few months) accumulating all of their Bitcoin holdings into a single output, in an attempt to prove tht they actually hold all the Bitcoin they should. This mirrors something Mt Gox did in 2011 by moving 424242 BTC at the request of users on IRC. In the process, BitStamp is putting themselves at huge risk of losses. Bit flips errors are pretty common in computers, if they have even a single one when signing that transaction all of their customers money will be destroyed. It reduces their customers privacy, opens them up being physically attacked during that period, all sorts of nastiness. It's not really a solved problem, though it looks simple on the outset.


What is the algorithm behind multisignature address?

OK, I found the answer I needed: https://bitcointalk.org/index.php?topic=317569


What means "messege" in the bitcoin blockchain? [elliptic curve cryptography]

The signed message will be some portion of a Bitcoin transaction.  The Bitcoin code has specific rules for what the signed message needs to be.  The signed message needs to include any data that you don't want to be modifiable by a third party, so it should include all the output addresses/scripts and the Bitcoin amounts being sent to those outputs.  The message cannot be the entire transaction, because the transaction includes the signature itself (before segwit came along) and the signature cannot sign itself.  I don't know the exact details, but you can read up on the Bitcoin transaction format to learn more.


In some cases. Mixing services have actually been shown to be able to trace the inputs all the way through the many outputs until its final destinations.
Its hard work for a person, but there is software available that can do it with good success rate on several mixers

Buying some giftcard is closer to the more obscured route of transfers, where you simply change your currency into another, and use this until you need to change it back some other place. A gift card would probably give to big a loss. A far better improvement to this technique, would be to use one of the few cryptocurrencies that offer anonymity, like Monero or Dash. Then you could use the route:

BTC (1) -> Monero (1) ---anon-send---> Monero (2) --> BTC (2)

Of course if you are able to use Monero or Dash instead of Bitcoin, you can simply just keep these and skip the last conversion back to BTC. This will make it cheaper when using it as payment, since you don't get stuck with the extreme-fees situation that Bitcoin is facing right now.


Best options for stabilizing cryptocurrency asset value

Are fiat currency pegged cryptocurrencies a viable and practical option?

Absolutely not. That kind of pegging means you have to trust the people behind it (who are unregulated), meaning those people are guaranteeing a certain price by buying or selling at that price. Meaning they are easy victims to market manipulation, meaning they are guaranteed to lose money, meaning they will stop guaranteeing the peg, meaning you will be stuck with worthless fake-dollars.

Something like that would only be trustworthy if done by a large bank or central bank where they control the issuance and keep a 1-to-1 backing with "real" Dollars or Euros. And even then insofar you trust that (central) bank to not go bankrupt.

  Are there better ways to attain such value stability while sticking to decentralized digital methods/assets?

I guess you could go short or use options to cover your exchange rate risk, but that means you'd have to put the Bitcoins on some exchange and exchanges are a risk of their own as they often get hacked or go bankrupt etc.

Maybe once the ETF trading kicks off, you could hedge your BTC position by shorting some ETFs. There you're trusting the ETF provider and exchange/regulators I guess, but if they screw up you probably have bigger problems anyway.


Why do transactions send coins to the same address as they spent it from?

Likely the sender didn't have an unspent output that had exactly the amount he wanted to send. So he choose an unspent output that had enough and sent the remainder back to himself.

Accounts do not automatically combine the funds they receive. They have a bundle of unspent transaction outputs which they can only use by completely consuming them.

You might ask the same question if you see a person pay with a $10 bill and get a $5 bill back. You might wonder why they didn't just pay with a $5 bill. Well, probably it's because they didn't have one, so they got a $5 bill back as change. Essentially, each of the transactions you have received remains available to you as an input to a future transaction. But using an output as an input consumes it, so if it has too much, you send the remains back to yourself as "change".


How can I send bitcoins with Bitcoin-QT using the API?

To send bitcoins using the API:

It is recommended to have some knowledge of AJAX if using this method

WORD OF WARNING: Using this method can cause large amounts of inputs being set as miners fees. I suggest you continue with caution and start by using small inputs.

That being said...

Using the commands listunspent, createrawtransaction, signrawtransaction and submitrawtransaction.

To access the Bitcoin-qt console:

launch your bitcoin client as usual and wait for it to load the blockchain and start up
click on 'help' in the menu bar (top right)
click on 'debug window'
select the 'console' tab

Use listunspent to get an array of you spendable inputs in your wallet
This is where you set you transaction fee: Use createrawtransaction to generate a transaction in the form createrawtransaction [{\"txid\":\"[txid of the input transaction]\",\"vout\":[vout that relates to the txid of the input transaction]},...] {\"[address to send your bitcoins to]\":[amount of bitcoins to send to this address],...} All inputs that are not spent in a transaction are used as miners fees.
Use signrawtransaction [the output of createrawtransaction] to sign your generated transaction Note: Your wallet must be unlocked to perform this command. If not type walletpassphrase [your passphrase] 21600
Use submitrawtransaction [the output of signrawtransaction] to send your signed transaction to the network to be included into a block

You can see your transaction by going to http://blockchain.info/tx/[txid output from submitrawtrasaction]


Your future self could memorize some SatoshiDice secrets after they are revealed.  This would allow him to win every dice bet he placed after travelling back in time, since knowledge of a day's secret allows one to determine whether a bet will win or not before placing the bet.

There is a theory that this has already happened.


How to install bitcoind (Bitcoin Core) on Ubuntu?

useradd bitcoin and passwd bitcoin
link /home/bitcoin/.bitcoin to external HDD with chown -R bitcoin:bitcoin
git clone bitcoin core in /home/USER/GitStuff
add bitcoin ppa repository
sudo apt install libdb4.8-dev && sudo apt install libdb4.8++-dev
/autogen.sh in /home/USER/GitStuff/bitcoin
/configure --withoug gui
make
make install
10 su bitcoin
start bitcoind (as user bitcoin)
curl -sL https://bitnodes.earn.com/api/v1/nodes/me-8333 | jq


As per the source, the parts of that output are:

tx_hash/tx_out_index/script/coin_value/block_index_available/does_seem_spent/block_index_spent


how base point of bitcoin public key x , y formed

They are defined by the standard. See http://www.secg.org/SEC2-Ver-1.0.pdf page 15, section 2.7.1.


Can nLockTime TX be used to flood Mempools?

There is no size limit to the mempool from what I can find. It might be possible to flood it but rather difficult and expensive / slow. I see two approaches:

A) minimum relay fee

connect to 1000 nodes
send plenty of txs that meet the minimum relay requirements

how many?: 32 000 000, 32 000 on each node
nLocktime in the far future so they don't get into blocks
tx fee: minimum relay fee: 0.0001
amount: very low
size per tx: 250bytes

mempools are filled with 8gb of dust

It would take a while to generate that many addresses and tx and get them broadcasted. Also it would cost at least 3200BTC.

B) 0 fee txs with minimum output of 0.01 so they still get relayed

Mempool is gated by a rate limiter for free tx:

// Continuously rate-limit free transactions
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
// be annoying or make others' transactions take longer to confirm.

// Use an exponentially decaying ~10-minute window:
// -limitfreerelay unit is thousand-bytes-per-minute

// At default rate it would take over a month to fill 1GB

So this will be at least very slow. Also you need to have 320 000 BTC for 8GB. :)

There might be ways to artificially make txs larger. Alternate clients might do things differently.


Bitcoin core stopped sync'ing (without downloading all the data). How can I make it resume the synchronization?

There are pretty much two stages. The first stage is to download (catch up) the whole blockchain that has 64.4 GB.

Once you have that the verification stage checks all payments ever made.

Both these things are pretty painful but once both are done you can backup your blockchain for example to external disk and you won't ever have to do it again.

Don't delete your wallet file.  Backup your wallet.dat file.

So delete everything, restart bitcoin, let it run for a few days and hope it doesn't get stuck.

Good luck.

Edit: do you have enough free disk space?

Edit2: don't delete the wallet


Can Bitcoins or other coins be transferred back to US dollars?

Bitcoin is just like anything else you can own.  You can buy it using any currency that a seller is willing to accept, and you can sell it for any currency you are willing to accept.  You aren't transferring, you are trading.  A bitcoin is always a bitcoin, and a dollar is always a dollar.  You simply need to exchange it with someone.


Bits target, Increase/Decrease in ease of mine

Decreasing the target makes finding the correct block hash harder because the range of possible values is smaller. There are less numbers for 1 to 10 than there are from 1 to 100. So by making the target smaller, it becomes less likely for the correct hash to be found and thus the difficulty increases.

Increasing the target makes finding the correct block hash easier because the range of possible values is greater. By making the target larger, it becomes more likely for the correct hash to be found and thus the difficulty decreases.

The relationship between difficulty and the target is inverse.


difference between Master Public/private Key and Public/private Key?

With "Master public key" you probably refer to deterministic key derivation after bip32.

The correct term is "Master extended private key" (acronym xpriv) and "Master extended public key" (acronym xpub).

The acronyms are "xpriv" and "xpub" because the base58 check prefix results in those 4 characters for a mainnet extended pub/priv key.

The difference between a extended public key and a normal public key is that it also contains information about the bip32 chain (deterministic chain/hierarchy).

It contains:

The depth in the hierarchy (1byte 0x00 for master nodes, 0x01 for level-1 derived keys, ....)
A fingerprint (4 bytes, possible identifier)
The chaincode (32 bytes, = link used for the hierarchy)
The child index ("number" of the key at the current hierarchy level)
The private or public key (32bytes for private-, 33bytes for public-key)

A normal private- or public-key only contains the last element (32/33byte [public|private]key).

A (simplified) example how you would generate addresses:

Take the extended master private key (m/)
Derive an account extended private key (m/0')
Take this account extended private key (m/0') and derive the first extended private key on the next level (m/0'/0).
Use the extended private key of (m/0'/0) to generate the extended public key and take out the "normal public key" (33 bytes) and encode a P2PKH address (or P2WPKH, multisig, etc.) out of it.


Recovering and transferring Bitcoin to new wallet

Bitcoin Core to Electrum:
walletpassphrase "your_pass_phrase" "timeout"

dumpwallet "full path:dump_test1"

{
  "filename": "full path:dump_test1"
}

File with all the private keys dumped:

I will use private key for one of the addresses, you can enter multiple private keys here.

Address: tb1qpc8wx9sec3s7sm3j949eeg2pj3e6n3df9c5w2u
Private Key: cRGkMQJfJiBhj1Fq83cNX4pUAerB1dJSJWkvfcDuGtqwb2M6L5WK
Derivation Path: m/0'/1'/21'

Bitcoin Core to Bitcoin Core:
Backup Wallet or copy wallet.dat


I used quickbitcoins.net successfully 4 times. They are gone now. The 800 number is disconnected and their e-mail address returns nothing. Try to find the http: website on Explorer or on tor and neither can find it! Site no longer exists! If you send coins to them without checking you will loose your money!


First of all, your understanding of segwit is incorrect. There is not extended block, the witness data is still part of the transaction.

Segwit also does not "make the blockchain faster". What part of it does is it redefines the maximum block size metric to be something called block weight. Witness data is weighted differently from non-witness data, which means that a block containing witness data will have more spare weight units to contain more transactions. This means that Bitcoin's transaction capacity will increase, as will the size of blocks.


How do I get money on and off of harborly?

You cannot store your fiat currency directly on harborly. They're a lot like coinbase in that they allow you to sync your bank accounts with your wallet. Instead of sending money to them, then buying and selling, whenever you buy or sell they directly credit or debit your synced bank account.


Why do I have to update my node version if I am up to date?

Your node is not up to date: the latest release of Bitcoin Core is 0.19.1 which is a newer release than 0.19.0.1.

You appear to be using a RaspiBolt. The RaspiBolt project's FAQ addresses your question here: How to upgrade Bitcoin Core?.

Regarding the reachability, your best bet is likely to raise an issue on the project's GitHub page (which it appears that you have done already).
There are some issues asking about nodes being unreachable on the project's github page, but I don't know more about that.


Generate private key from a bip-39 seed phrase?

https://github.com/iancoleman/bip39

"A tool for converting BIP39 mnemonic phrases to addresses and private keys."


ANSWER-2: when B broadcasts his new block, B by default accepts its own generated block (N+1) and immediately start to mine block N+2 upon that (at the time when B has not received A's block yet.) Then B receives A's block (N+1), in this case, B should keep A's chain but still continue to mine at his N+2 block height.

This is basically correct. B will receive A's block, validate it, and if it is valid, he will store the block. However he will not change his view of the blockchain to include A's block. He merely holds onto A's block just in case more blocks are found on top of it which would then require B to change his view of the blockchain.

B's view of the blockchain will remain with his N + 1 block and continue to mine his N + 2.

In general, when two blocks are found at the same height around the same time, nodes will update their view of the blockchain to include the block which they saw first. The view of the blockchain only changes if there exists a blockchain that has more cumulative work than the one that the node currently sees as the correct blockchain. If the two blockchains have the same cumulative work (i.e. orphan race as described in this question), then the node uses the one it saw first.


The mybitcoin.com domain existed no earlier than 2010-04-25, according to the domain name registration record (whois).

According to the mybitcoin.com history at archive.org, the domain first appears to have useful content sometime in early February 2011.

In case the above archive.org url doesn't work (seems to have a problem for me), copy and paste it from here:

https://web.archive.org/web/20110315000000*/http://www.mybitcoin.com


Hypothetical Scenario - How long does a network correction take?

Details about difficulty adjustment can be found at https://en.bitcoin.it/wiki/Difficulty and https://en.bitcoin.it/wiki/Target.  Difficulty adjusts every 2016 blocks, with the goal of keeping the average block time at 10 minutes (so that 2016 blocks takes 2 weeks).  At each adjustment, the difficulty can change by at most a factor of 4 (up or down).

Let's assume the worst case: that this disruption happens immediately after a difficulty adjustment.  With a 90% drop in mining power, each block now takes an average of 100 minutes to mine, instead of the usual 10.  So the next 2016 blocks take 20 weeks instead of 2.

After 20 weeks, there is an adjustment, and presumably difficulty will drop by the maximum factor of 4.  Now the average block time is 25 minutes and the next 2016 blocks will thus take 5 weeks.

At this point the difficulty can drop by a factor of 2.5 and we are back on track, with an average block time of 10 minutes.

So it takes 25 weeks to get back to normal.

Of course, in your situation, a more likely outcome is that Chinese miners will quickly sell their mining hardware to people outside the country, where electricity is still plentiful, and the total mining power will recover.  (Or they'll set up their own offshore mining facilities, and just ship the hardware there.)  If not, then mining hardware producers would try to quickly ramp up production so as to fill the void.  After all, everyone can see that difficulty will drop by a factor of 4 in 20 weeks, which will increase mining revenue by a factor of 4 and make it far more profitable (assuming the price of Bitcoin remains constant).


The only risk would be that somebody owes you money and doesn't pay you back. If someone lets you owe them money, they are taking all the risk. You have to choose to take a risk, but normally you'd have no reason to want to control whether other people take risks.

  a) I trust you to lend me XXX in quantity up to N units.

This is the type of trust you extend when you create a pathway.

  b) I trust you to borrow from me YYY in quantity up to M units.

If you mean you trust them to pay you back, they would have to agree to pay you back and you would have to accept and act on that agreement. That would take place outside the Ripple system. The Ripple system just tracks balances, the terms on which those balances are paid back is outside the system.

I'm not sure why you would worry about someone giving you money without you having any agreement to pay them back. All the risk is on them.

And to this comment:

  Incidentally, when people just send me XRPs or BTCs to my ripple address at ripple.com, or when I do the same to them, no trust setup is involved.

No trust is required to hold or transfer XRPs. They're a native currency in Ripple. And no new trust is required for someone else to transfer balances to you where that money is held by someone you already trust. You set up trust in the first place so that payments will "just work".

It's basically this simple: If you want to hold BTC on Ripple, pick a gateway you trust and create a pathway to them. Set a limit. So long as you don't create any other pathways or reach that limit, people can pay you BTC is by making that gateway owe them to you. If you create only one pathway for each currency and it's to a gateway you trust, everything "just works". You can receive payments from and make payments to anyone who is reasonably well connected.


How does the Bitcoin client encrypt the wallet.dat file?

A detailed explanation can be found in the application's README: https://github.com/bitcoin/bitcoin/blob/6b8a5ab622e5c9386c872036646bf94da983b190/doc/README

In short:

The passphrase is converted to a key/iv pair using EVP, with a dynamic number of rounds
This key/iv pair is used to encrypt a randomly-generated master key, using AES-256-CBC
The secret part of wallet keys are then encrypted using that master key, again with AES-256-CBC


I know it is a bit old but anyway, use this repo to build it for you:

https://github.com/radix42/zcash-block-explorer


bitcoin full nodes vs simplified payment verification

If by individual you mean users I would argue the contrary as many wallet are SPV based or have a centralised backend running a full node (form of lightness as any client does not run a fullnode).Only few desktop bitcoin wallet such as bitcoin core or armory run as fullnode. Fullnode are necessary for miner but it's still good for anyone to run it as it does apply rules on new blocks/transactions whereas SPV's node doesn't which result with an healthier network. SPV's node needs full node to exist but worth to keep it mind that an SPV has to trust its peers as it does not verify/apply rules.

Quoting Mastering Bitcoin:

  An SPV node can definitely prove that a transaction exists but cannot verify that a transaction,
  such as a double-spend of the same UTXO, doesn’t exist because it doesn’t have a record
  of all transactions.

[...]

  A full blockchain node verifies a transaction by checking the chain of
  thousands of blocks below it and checks that the UTXO is not spent,
  whereas an SPV node checks how deep the block is buried by a hand‐
  ful of blocks above it.

A typical a merchant accepting bitcoin would rather be 100% that there is no attempt of double-spending which is not possible with an SPV's node.


How does bitcoin manage the money supply?

The number of bitcoins in existence is limited to 21 million. This is the equivalent of M0, the monetary base. Whatever institutions do with it, creating M2, M3 etc. is not something that Bitcoin can or will control.

Here is some more info on the Bitcoin wiki: Controlled Currency Supply


By Wallet key, do you mean private key ? If you have private key, you can use any bitcoin wallet to import the private key https://en.bitcoin.it/wiki/How_to_import_private_keys

A common bitcoin private key looks like this:

5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF

If your key doesn't look like this, its probably a password for the bitcoin service where you created the wallet. You need to locate that service and login into it with Wallet Name/Key to get to those bitcoins.


double spend attack: Is this actually true for the more time progress the higher the probability of success for attacker

I believe you are asking if the inter-block interval matters for the success rate of a high hashpower reorg attack.

It does, because if it is too fast the honest participants will spend a substantial fraction of their time not working on the same (honest) chain, because they haven't heard of each others blocks or have created their own blocks before other honest blocks arrived.

So the attacker pillages the village while the defense is diluted and not working together perfectly.

Slowness in this case is always relative to the overall processing and propagation time. So a system which worked without substantial dilution normally could run into problems when flooded with transactions or if an attacker started also DOS attacking nodes.

Mining a block is memoryless, but mining a chain makes progress. But both the attacker and the honest network make progress, so when considering their relative advantages their success depends on their relative hashrates.  If in fact the honest network takes longer (due to bad luck) to mine this particular block then it is easier for an attaker to be successful during that time.

So, for example, in your risk calculation if you observe that blocks have been slower than expected recently it may be reasonable to require more confirmations for two reasons: One reason is because if the honest network was unlucky an attacker with a secret chain might have done better with only average luck. Another reason is because the reduced block speed may in fact be because part of the network has split off to attack.


Why the nonce is difficult to find in Bitcoin?

Miners try many block candidates per second. Every candidate is different in some way, but the nonce is only one of the ways in which they differ. Other ways include the timestamp, and - most importantly - the selection of transactions. In particular, the first transaction in the block is the coinbase transaction, which includes the miner payout, and the extranonce.

In practice, miners at the lowest level just increase nonces, because that's the easiest way to modify a block. However, as you point out, any modern hardware will run through all 232 nonces in less than a millisecond. So to continue searching, they will modify the extranonce inside the coinbase transaction any time they run out of block header nonces. This requires more work, as it means the Merkle tree has to be recomputed.

At the time of writing (January 2018) only one block candidate in 829 quintillion is valid. This means that all network miners combined, every 10 minutes, go through over 1.9 trilllion sets of 232 nonces.


Double-spending has nothing to do with double clicking the send button.

It involves a malicious user, who will not use the standard client. It will hack one to avoid any client-side limits, sending two transactions to a different side of a blockchain fork, so both sides don't know about the transaction sent to the counterpart and includes the transaction in their forked version.

If you manage to do so while using both transactions to pay for something and are accepted, after the reorganization (the process by which forks are resolved) only one side of the fork will be mantained, so the blockchain will be OK as only one transaction will be kept, but you got both payments effectively using the same coins to pay two different merchants and one of them will lose what you paid.

As you can see, it is not an usual scenario. Forks are more or less common but not really deep as they typically get resolved within a single block. That's why it is recommended to accept a transaction only after six confirmations, as a fork of six blocks is almost impossible to appear under normal circumstances. But do note that even this has happened, when a bug between software versions kept some miners from agreeing to mine on what would otherwise have been the consensus branch.


Blockchain over 36GB and causing disk space issues

Depends what you want to do. Remember, to use bitcoin you don't necessarily need a full-node. You can use many of the lightweight clients that exist out there which rely on Simplified Payment Verification (SPV). But if you want to be a full node (perhaps you're mining or you want to verify transactions yourself), then you need to download the entire blockchain which is almost 35GB large: https://blockchain.info/charts/blocks-size


What encoding or format is the private key in Dumpprivkey?

The format is base58check, with 0x80 as version byte (for Bitcoin mainnet, at least), and an optional suffix 0x01 byte to indicate that the corresponding public key is compressed. So combined:

base58(0x80 | 32-byte big-endian secret parameter | checksum) for uncompressed public keys
base58(0x80 | 32-byte big-endian secret parameter | 0x01 | checksum) for compressed public keys


You could most certainly spin up your own server :) Included in the Github repo is a Vagrantfile that uses Ansible to deploy and provision an instance of hive-js. This can be handy not only for creating a local test instance, but also for deploying to more public environments such as DigitalOcean or AWS.

Alternatively, because Hive Web implements BIP32/BIP39, other wallets implementing the same standard should allow for compatible 12-word seed phrases to be moved between clients. In addition to being a high priority item for Hive OSX, it seems that most if not all Bitcoin wallet developers are striving to implement these same standards.

If all else fails, you could use something like http://bip32.org/ to manually recover your master extended key and sweep the funds elsewhere.


PHP - Bitcoind sets up wrong transaction fee

The value you specify for custom fee is in fee per kilobyte. Until recently, the "size" for fee computations was always rounded up to 1 kilobyte anyway, leading some people to believe that the amount they're setting is the absolute amount instead.

Your transaction is 225 bytes, and pays 0.000045 BTC fee. That is exactly 0.0002 BTC per 1000 bytes, so it is working as intended.


Synchronising official bitcoin wallet for the first time; at 95% started going backwards

Looks like you were just unlucky in choosing your peers.

When connecting to a peer your client and the peer exchange a handshake message. Part of this handshake message is the height of the longest chain the peer has locally stored. Your client will then starting to download blocks until it catches up to the top of the longest chain. If the peers you connect to happen to be also catching up with the chain you will only see the length of their chains and will be unaware about the real length of the longest chain in the entire network.

Nothing to worry about, you will eventually have an accurate estimate of the real length: as soon as you connect to a peer with the longest chain, or one of your peers has caught up to the longest chain, your client will update its estimate.

Reconnecting also works as new peers are chosen. When you wrote your question, on October 24th, the longest chain was 204'663 blocks long, so the ~10'000 blocks or so were quite a long way off. Hopefully by now you caught up to the head of the Blockchain.


Do full nodes store the complete merkle tree or do they regenerate it when creating a merkle proof?

Bitcoin Core, in its BIP37 implementation, will compute the Merkle proofs on the fly. It does not store the blocks' Merkle trees anywhere (only its root is stored).


It sounds like there is a problem in the locally stored block store file.
You should be able to solve this by doing the following:

Find where MultiBit is storing your user data - this is shown on the very first line in the 'Message' tab when you start up MultiBit. (It is also explained in the help in 'Troubleshooting'.)

Shut down MultiBit

Go to your MultiBit user data directory - worked out above - and delete the file multibit.spvchain

Start up MultiBit again

MultiBit then syncs from a month or two ago and you should be running ok at that point.


What is block weight and how is it different from block size?

Block weight is defined in BIP 141 itself:

  Block weight is defined as Base size * 3 + Total size. (rationale[3])

  Base size is the block size in bytes with the original transaction
  serialization without any witness-related data, as seen by a
  non-upgraded node.

  Total size is the block size in bytes with transactions serialized as
  described in BIP144, including base data and witness data.

The given rationale is:

  Rationale of using a single composite constraint, instead of two separate limits such as 1MB base data and 3MB witness data: Using two separate limits would make mining and fee estimation nearly impossible. Miners would need to solve a complex non-linear optimization problem to find the set of transactions that maximize fees given both constraints, and wallets would not be able to know what to pay as it depends on which of the two conditions is most constrained by the time miners try to produce blocks with their transactions in. Another problem with such an approach is freeloading. Once a set of transactions hit the base data 1MB constraint, up to 3MB extra data could be added to the witness by just minimally increasing the fee. The marginal cost for extra witness space effectively becomes zero in that case.


How to dynamically generate bitcoin receive address with a Nano Ledger S?

You can export your extended public key from the ledger app, by finding the appropriate command in the settings menu. Using the xpub and appropriate software, you can generate many receiving addresses that can be stored on your phone.

Alternatively, you can create many new ‘accounts’ in the ledger bitcoin app, and each will show you a unique address that you could copy to a text file on your phone. (This is a workaround to ledger only showing one receiving address at a time otherwise).

(Originally a comment, but it kinda turned into an answer)


Combined scrypt/SHA256 mining on one GPU

In GPU scrypt mining, the optimized threshold of lookup gap is 2. It means the GPU only saves 0, 2, 4, ..., etc to GDDR (global memory of GPU) and reduce huge amount of time of saving all 128KB data for one scrypt calculation. However, it needs some GPU cycles to re-compute for the elements if the algorithm needs data in the index of 1, 3, 5, ... And remixing those 1024 elements also takes GPU cycles. In the GPU architecture, the hardware scheduler will help to hide the latency of memory read/write. So, the GPU cycles are not wasted.
One of the inefficient part is the parallelized processing with conditional code. For a wave-front or stream processor to compute n-dimension at once, not every core needs and computes the values of odd index of elements. So some cores must be masked as off and they are wasted.

if (j & 1)
    salsa(...);

When GPU computes N elements at once, then every variable j of different thread could be even or odd. So only the thread which has odd number in j needs to run the code salsa first. There is only one shared program counter in the compute unit, so every thread runs the same code. But for those threads that don't need the to do salsa agin, those processors are being masked off like they are not running and compute the code.

So, in the GPU programming manual, it tells you the following is inefficient.

if (A)
    B = 0;
else
    B = 1;

Then the GPU needs to run the code twice. One is for the true condition and another is for the false condition.

It's better to re-write the code as follows.

B = A ? 0 : 1;

However, in scrypt, salsa is not a simple expression can do like this way.


I had $1000 on an encrypted wallet and need to restore it on bitcoin qt

Be very careful. First, shutdown Bitcoin-Qt completely. Rename its current wallet.dat file to something else (you can delete it, but just rename it to be safe). Then put your backup in its place. Start Bitcoin-Qt and you're done.


Blockchain.com wallet was compromised and btc stelon

They only needed to have access to your account a single time to have exported your private key, then that wallet is compromised for good. Your password encrypts the private key as stored on Blockchain.com's server (so that Blockchain.com can't read the key) but it doesn't change the private key itself.


bitcoin cash from fork no longer visible on blockchain.info

I went to 'settings' then 'addresses', clicked on 'archived
  addresses', logged out and in again and there they were.

Possible solution: https://www.reddit.com/r/Bitcoincash/comments/7l2jk2/bch_suddenly_missing_from_blockchaininfo_wallet/


Can I use my Electrum seed without Electrum?

As Electrum is open-source software, we can probably safely assume it will never go away. That is, even if the devs were to take it off of github etc, there are likely thousands of copies of the source code distributed on the nets. But let's say all the electrum servers were taken down and for whatever reason you couldn't run a python interpretter (not very likely). Again because Electrum is open-source, the algorithm for transforming a seed into a private key and the derived private keys is known. So in theory, you could just do the math and generate your private keys manually from your seed. Practically, if you can get hold of a python interpretter, you can restore an Electrum database and dump all of your private keys without ever connecting to the internet. From there, sweep the balances into any wallet such as Bitcoin-QT.


Finding IP addresses of all bitcoin miners

No, it is not possible. IP addresses are not part of the Bitcoin blockchain in any way whatsoever so this data is simply unavailable.


Yes indeed you should back up your wallet, printing out a paper copy of your private keys is a good way to do this because paper can only be accessed physically rather than being hacked via the internet. Obviously it's not safe to store them unencrypted on the cloud or something. The security warnings are there just to make sure you don't do anything stupid with them, to make you double check before potentially giving others access to them.

Bitcoin Core for example allows you to import private keys to restore a backup. If you print them out as QR codes, many wallets allow you to sweep them


How to set the language/localization in the standard client?

EDIT: The correct solution was provided by Matt Corallo but was somewhy deleted. Use the command line argument -lang=en_US.

As far as I know, QT chooses which language to use based on the OS settings. So I think the first thing to try is to configure your OS not to use a Hebrew interface.

If that fails, you should try to figure out how to disable localization in QT circles, since bitcoin-qt's localization inherits completely from QT.

If all else fails, you can recompile without the language in question.


Bitcoin difficulty: One block with very high difficulty vs. long chain with accumulated difficulty

that has higher difficulty than the whole "normal" blockchain accumulated.

That's not possible. The difficulty of a block is solely a function of the timestamps of the blocks in its history. It does not depend on the block itself, it cannot be chosen by the miner, and isn't dependent on how low the hash is. The only thing that matters is if the hash is low enough or not to meet the difficulty target. The difficulty can go up at most 4x, and that happens only when the past 2015 blocks took less than 3.5 days.
In general, if there are two chains and both are otherwise valid, the one with the highest accumulated difficulty will win. There is nothing to protect against here, (short) reorgs are a fact of life, and long ones cannot be prevented. The economic assumptions underlying proof-of-work imply that no attacker will want to pay the cost for such a deep reorg. If that happens to be wrong, we should move to something else.


Is it true that bitcoin could be extremely slow?

In this case, if E wants to send some bitcoins to F, does he have to make a transaction all over again?

Not necessarily. A blockchain reorganization will cause transactions that were not confirmed in the "winning" blockchain to remain unconfirmed and placed back into the mempools of nodes which switched blockchains. So the transaction will still be in nodes' mempools and could still be picked up by a miner. If the fee was very low, the situation would be the same as having a "stuck" transaction.


How does HD wallet protect its master public key?

In typical HD wallet implementations, some kind of hash of the master public key and the sequence number of the child key is added into the private portion of each child key. This makes the interval between private keys unpredictable to an attacker who does not know the master public key and thus the interval between public keys is likewise unpredictable. With this kind of implementation, no number of child public keys will reveal the master public key and there is no way to tell that accounts are part of the same family with only public information.

You can see the scheme I designed for Ripple here.


Can a Butterfly Labs Mini Rig SC cause health concerns if stored in a bedroom?

I don't know the actual design of the Butterfly Labs machines, but I assume that the health risks should be similar to a traditional mining rig. Probably the main concern would be the noise level of any fans installed in the machine, as well as potential electric shock should the machine be operated haphazardly and without proper grounding. You also might be worried about potential static build up, high-temperatures and overheating (should the machine gather dust over a period of time). One way or the either, the common sense would dictate that the machine should generally be safe under normal conditions, but I would keep it out of kids' reach.

Again, I have no practical experience with dealing with any Butterfly Labs hardware, and while I have a technical electronics diploma, I'm not an expert in safety or similar devices.


want to study the Satoshi (bitcoind) code

Take a look at the Bitcoin protocol specification and in more general the Bitcoin wiki. Also, the original paper of Satoshi is a good read.

EDIT: I recently found an article on Bitcoin Talk about the Satoshi client code structure. It's an interesting read too!


It is impossible to know how the hashrate is distributed geographically from just blocks alone. Geographic information is completely irrelevant to the blockchain, as are IP addresses. Thus these are not stored in blocks.

Furthermore, in general it is difficult to know how the hashrate is distributed geographically. Without miners actually announcing where they are located, we cannot know how the hashrate is distributed.

As far as I know, a large portion of miners are located in China. There are many miners also located in Canada and Iceland. There are some miners also in the United States. Generally miners will be located in colder places (as it is easier to cool machines there) with cheap electricity.


Yes, if someone locates the paper wallet and is able to read the key on it, they can spend any BTC sent to that wallet.

The wallet is secure if used correctly. Paper wallets are usually intended to be stored in a safe place, such as a literal safe or bank vault. They are not meant to be left on desks, dropped on the street, etc.

Additionally, you could utilize BIP38 to encrypt the private key on the wallet with a passphrase, that only you know.

Remember, any system is only as secure as its weakest link. Even a state of the art hardware wallet is useless if your seed word backup is easily accessible by an attacker, since they can recover the entire wallet from that.


What are the co-ordinates of generator G in his uncompressed form on secp256k1?

The 04 first byte header indicates this is an uncompressed point (02 indicates compressed).
From there, it is simply an x followed by y representation - The first 32 bytes are x, the following 32 bytes are y. Therefore,
x = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
y = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8

More details on how compact elliptic point representations work can be found in this spec.


What cryptocurrency has the most potential to replace everyday cash / casual transactions?

No blockchain that handles the world's daily transactions can scale because of the sheer size of the blockchain required.
Something without a blockchain (e.g. Mimble-Wimble) might be good enough.

So, for blockchains, the current thinking is that another layer needs to be used. Bitcoin is the most advanced in providing ways to do this: segwit (deployed), lightning network (testing on main net started), drivechains, sidechains etc. This combination looks to be the best design for scale while optimizing cost, security and decentralization.

In the short term you might try faster blockchains like Dash or Ethereum. In the longer term there's no reason to believe these will scale securely though.
You can safely disregard 99% of the alt-coins out there. They're just there to grab some money from buyers.


Why did Satoshi design Bitcoin to be mineable only on specialized hardware, if the goal was decentralization?

Bitcoin was not designed to only be mineable with specialized hardware. When Bitcoin was created in 2009, ASIC miners did not exist, SHA256d ASICs did not exist. Even GPU mining software did not exist because mining was a completely new thing. Bitcoin's difficulty was low enough for Bitcoin to be CPU mined on a laptop.

However over time, as more and more people began using and mining Bitcoin, the difficulty increased. Eventually someone figured out how to do GPU mining and wrote software for it, so Bitcoin moved on to GPU mining. Eventually someone figured out how to mine Bitcoin using FPGAs (Field Programmable Gate Arrays) so Bitcoin moved onto being mined with FPGAs. Eventually someone figured out how to build ASICs (Application Specific Integrated Circuits) for mining Bitcoin, so Bitcoin moved onto ASIC mining.

Satoshi did not intend for Bitcoin to be mined with ASICs (or even GPUs or FPGAs); it was meant to be mined on CPUs, but over time, as technology advanced, people figured out better ways to mine.


Why does the value range of outputs need to be restricted?

If the output value was only constrained by their sum being smaller than that of the inputs, you could e.g. set one output to a negative value and create new money in a second output.
You can also do more creative stuff:
I think the rule might have been introduced as a response to the value overflow incident on 2010-08-15. A transaction in a (now invalid) block at height 74638 created outputs that were so large that their sum overflowed into the permitted range. The transaction created 2×92.2 billion bitcoins.
The original code fix for the value overflow incident can be found here: https://github.com/bitcoin/bitcoin/commit/d4c6b90ca3f9b47adb1b2724a0c3514f80635c84#diff-118fcbaaba162ba17933c7893247df3aR1013
The code for this rule can be found in src/consensus/tx_check.cpp here. The CheckTransaction() function checks consensus rules that don't require any knowledge of the current chainstate.


listreceivedbyaddress missing transactions after restore

I've had the same issue after restoring from wallet.dat. It's probably a bug described in https://github.com/bitcoin/bitcoin/issues/20293. Possible way to fix it is by setting an empty label to the address that became change:
bitcoin-cli setlabel "{address}" ""


What is the different between Open Transactions and Ripple?

I haven't seen the Ripple code so I can't comment on the latest endeavor, but Ripple as a concept (by Ryan Fugger FYI) is the combination of 2 mechanisms:

The ability to extend a credit line to any of your friends, in any currency.
The ability to make payments that hop across these credit lines, P2P, like a "Six degrees of separation" from sender to recipient.

I've always felt like this concept was important because it eliminates exchanges (such as MtGox) as a bottleneck, since it enables people to access the system, and move funds in and out, directly through their own friends.

If the current Ripple venture departs from that in any way, perhaps one of the Ripple guys can post a comment giving further detail. But that's my understanding of it.

Open-Transactions, on the other hand, is a software library for financial cryptography, including a prototype server and a high-level client API (available in most languages.)

The OT server is able to process all sorts of transactions... issuers can issue currencies onto any OT server (or preferably onto many OT servers.) Then users can open accounts in these currencies, and send payments to each other using a variety of financial instruments such as account transfers, cheques, and untraceable digital cash.

Open-Transactions also supports markets (for offers and trading, like you might see on MtGox or other exchanges) as well as basket currencies.

Open-Transactions also features a full client-side scripting engine, so you can create your own financial scripts using the OT API. There are also scriptable contracts ("Smart Contracts"), which can be signed by multiple parties and then activated on an OT server for processing. OT comes with a few sample smart contracts, such as Escrow, and Two-Way Trade.

BTW, it wouldn't be too hard to build Ripple into OT, I already worked it out in my notes here: https://github.com/FellowTraveler/Open-Transactions/wiki/Markets

(Who knows if/when I'll ever get around to adding that, however.)

*edit: article describing the trust differences between OT and Ripple: http://opentransactions.org/forum/index.php?topic=3759.0


Is it likely that bitcoin will implement important changes in the future?

many newer coins that solve some of the shortcomings of bitcoin and
  extend the possibilities

This is technically false; hence this question stems from wrong information.

If you can present a superior algorithm/protocol in your question(purely the explanation minus all buzzwords) community will consider it. Point is, if it exists out there, probably the core devs have considered it already. All the discussion is public w.r.t IRC logs so those might help understand shortcomings of various protocols that asker is arguing for.


Can a miner just introduce a block full of valid predetermined transactions in the blockchain and get rewarded?

This will not work, because a block's content includes the previous block's hash which means that a valid block can only be mined after the previous block is known.

The dummy transactions would not yield a reward to the miner, because the transaction fees are just going from the miner's left pocket to the miner's right pocket. The miner will only gain the newly minted coins, which they would have collected anyway, even with an empty block that included no transactions except for the coinbase transaction. In fact, the miner is suffering an opportunity cost, because they could have collected fees from other transactions instead.


How is a block header hash compared to the target (bits)?


How to upgrade Bitcoin daemon in ubuntu 12.04?

Update

The Ubuntu PPA has been updated with packages for Bitcoin Core 0.9.1.  Ironically, they make the upgrade warning go away, but they do not fix the problem!

The Bitcoin Core packages for Ubuntu do not include a dependency on a fixed version of the OpenSSL libraries.  Therefore, if you have not upgraded OpenSSL on your Ubuntu system, you will still be able to install the Bitcoin Core 0.9.1 packages.  It runs just fine, and displays no warnings, yet is still vulnerable.

So upgrading to the Bitcoin Core 0.9.1 packages is neither necessary nor sufficient to remove the vulnerability.  The one and only thing to do is to upgrade OpenSSL, and then (other than the warning message) it does not matter whether you use 0.9.0 or 0.9.1.  Bitcoin 0.9.1 has absolutely no functional changes versus 0.9.0 (I diffed the sources).

To summarize:

Bitcoin 0.9.1, new OpenSSL: Not vulnerable, no warning
Bitcoin 0.9.0, new OpenSSL: Not vulnerable, displays warning
Bitcoin 0.9.1, old OpenSSL: Vulnerable, no warning
Bitcoin 0.9.0, old OpenSSL: Vulnerable, displays warning.

I will try to find the proper place to report this as a bug.

Previous discussion

The Heartbleed bug is not in bitcoind itself, but in the OpenSSL system library on which it depends.  The bug is "fixed" in Bitcoin Core 0.9.1, but all they did was to require the use of OpenSSL 1.0.1g, which incorporates the actual fix.

However, Ubuntu has not updated their distributed version of OpenSSL to 1.0.1g; instead, they have patched the version that they are using.  The patched version is 1.0.1-4ubuntu5.12.  Ubuntu's security advisory is posted at http://www.ubuntu.com/usn/usn-2165-1/.

Possibly as a result of this, Ubuntu packages for Bitcoin Core 0.9.1 have apparently not been created; but if you upgrade your OpenSSL libraries, it is not necessary to upgrade Bitcoin Core.

If you have the precise-security repository in your software sources (or in /etc/apt/sources.list), all you need to do is install the updates as you normally would, using either the update manager or aptitude update; aptitude upgrade.  If you have unattended upgrades enabled, this has probably happened already.  You can check the installed version by running dpkg -l libssl1.0.0.

Once this is done, you should restart bitcoind.  (In fact, if possible you should probably reboot the system, to ensure that other potentially vulnerable services are also restarted.)

In general, upgrading Bitcoin Core does not require you to re-download the block chain.


What happens when relative and absolute lock times are used in the same transaction?

When a specific locktime is specified in the nLockTime field in a transaction. It means that said transaction cannot be broadcasted/be accepted by miners until either the blockheight or unixtime has elapsed.

On the other hand, when a OP_CSV is used, it means that a transaction referencing said input cannot be spent until some blockheight or unixtime has elapsed.

If we merge both and use them together, basically, we will create a transaction that cannot be broadcasted to the Bitcoin network until some nLockTime has elapsed and it also cannot be spent until some blockheight or duration of time has elasped. OP_CSV specifically targets the spendability of a transaction, whereas a time-locked transaction simply prevents some transaction being broadcasted to the Bitcoin network until its locktime has elapsed.


Automated decentralized exchange between bitcoin and similar currency?

No, this is impossible (so far as we know). But the reason is very, very subtle.
The crux of a decentralized system is that nobody gets to decide what the rules are. Otherwise, whoever gets to decide the rules effectively centralizes the system.
Bitcoin is decentralized because anyone who wants to can use whatever rules they want. Those who agree form a useful blockchain.
The problem with this scheme is that there has to be some mechanism to decide what controls the real bitcoins that back the system. For example, bitcoin and bitcoin cash forked off and nobody got to decide which chain was "real". Both chains now compete in the market.
If your system forks, who or what decides which side of the fork gets the actual bitcoins that back your currency? They can't both get all the bitcoins -- that would require the number of bitcoins backing your currency to double.
There is no known decentralized way to make such a choice.
Think it through -- what do you think should happen if two groups of people using your currency disagree over what the system's rules should be? They can't each get what they want because they are arguing over how a fixed amount of bitcoin should be used.


What is the structure of blk001.dat and blkindex.dat?

While reading the blockchain data directly is possible, you can only do so against stale data files -- as you can't reliably read the files while the client is running.

PyWallet and BitcoinTools are two such methods to do this.

Instead, the Bitcoin.org client (v0.7 and above) provides Raw Transactions support, in which you can decode a transaction to learn of its inputs, outputs and other attributes.  This, along with the rest of the API provides the ability to pull all the data from the blockchain that is needed, against a live instance:

http://en.bitcoin.it/wiki/Raw_Transactions
http://en.bitcoin.it/wiki/Raw_Transactions#decoderawtransaction_.3Chex_string.3E


Crypto wallet for payments with no deposit

There are many layers to this question. Also, I'm going to assume using just Bitcoin, for simplicity. For other cryptocurrencies the procedure would be mostly similar with important differences mostly in the backend.

On the Bitcoin layer, the simplest solution would be to have a separate wallet for the website.

On the interface layer, you can have a simple form on your website where the user can input the address when requesting fund withdrawal.

On the backend layer, your website can use any wallet software with an API or CLI, Electrum should be good, but is just an example. This API or CLI could be then invoked to make payments to users.

Your server would necessarily have access to the private keys for the website wallet, therefore security should be an important consideration. The wallet file on the server needs to be protected and the backend of your website must properly check the withdrawal amounts, properly authenticate users and properly mitigate common attacks. If you don't have experience with website security, there are many potential holes that can open avenues for attack. Elaborating on them is beyond the scope of Bitcoin StackExchange. The important precaution would be not to keep more funds than necessary on the website wallet and deposit more as needed, manually, from a wallet on your own computer.

(This answer was edited by author as a result of a discussion in the comments)


How can I get the date of the last transaction from the blockchain.info API?

This is an ambiguous question as we don't know what your environment is.
If you are using bitcoind, a call to gettransaction will give you a time field which is when the transaction has been seen.

Perhaps if you elaborate a bit more we would be able to answer the question more specifically.


Can I pay someone else to operate a miner on my behalf?

There are lots of them, that's called "cloud mining" - just google the term and you'll probably find your way.  You either rent a miner or pay for mining equipment, or eventually just throw your money into a black box with the expectation that you'll get some reward later - basically mining operators crowdfunding some (or all) of the investments and associated risks.

Be aware that some "cloud mining"-operations have been nothing but ponzi scams - no real mining equipment involved, just a pool of money with early investors receiving fantastic payouts from the pool, and eventually the operators grabbing the whole pool and running when the inflow of new investors no longer can offset the payouts to the earlier investors.


How is Bitcoin/Blockchain programmed to do multi transaction at the same time?

Let's say the hash of the previous block was "11b83f1dbb421b7539f755". If I make a transaction (Transaction A) for about 1 BTC and 1 second after me someone other makes new a transaction (Transaction B), which transaction becomes the previous hash "11b83f1dbb421b7539f755", because it needs 15 seconds till every node knows the new chain?

Not quite.

When you submit a transaction to the network, the network's nodes will check to see if it is valid. If it is, then the nodes will each store the transaction in their local 'mempool' of unconfirmed transactions. Note that a transaction does not reference a previous block, but it will reference some valid unspent transaction outputs (UTXOs) to consume as inputs (which means, it will specify which coins it is spending). It is possible for different nodes to have different mempools, and a node can even elect to not keep a mempool at all.

Miners will select transactions from their local mempool, and attempt to mine blocks which include those transactions. Once a miner finds a valid block with a certain transaction included in it, that transaction is said to be 'confirmed'. Note that a valid block must reference the previous block's hash.

If two transactions consume the same UTXOs, then only one of them can possible be validly included in the blockchain record.

Likewise, if two blocks reference the same previous block hash, then only one of them will eventually become a part of the blockchain record (whichever one is extended first).


how to compile brainflayar in window based Linux

You can use ThePiachu's online tool: https://gobittest.appspot.com/ProofOfBurn

Note that burn addresses are not the same as vanity addresses. Private keys of burn addresses are infeasible to find. Therefore, the addresses you listed weren't generated from private keys. So, Vanitygen wouldn't help in this case.


send payment from one address to another from my website

http://blockchain.info/api/blockchain_wallet_api

The api call to send is:

https://blockchain.info/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$address&amount=$amount&from=$from&shared=$shared&fee=$fee¬e=$note

In PHP, replace all the variables (they start with a $ in example up above) with your actual info. Some of the parameters in the url are optional so visit the page I linked to see which ones are optional. Keep the url as a string and feed it in to this:

$result = file_get_contents($the_url_you_just_made);

This should send a payment as soon as it runs, you may want to read the resulting string, it will contain the error message if anything goes wrong. The response is detailed on the link and you can try out URLs in browser as well, just type in GUID, amount, address, etc in the correct places.


It looks like some of the claims were spurious and had grossly exaggerated values. The accepted claims by the bankruptcy trustee were:

45,609,593,503 JPY

which is more reasonable.


In theory could a pubkeyhash script be solved without the public key in the scriptSig?

It's possible, but:

It's much slower
Pubkey recovery for this kind of application is arguably patented

For a "signature only" scriptpubkey, we already have p2pk.  Hopefully in the future, segwit programs will have bare pubkeys in the scriptpubkey, allowing for similar (and more advanced) constructions.


Can I Find out where I sent my bitcoin from my paxful wallet

I CAN NOT For the life of me figure out or find that website I sent my coins to

Bitcoin is not sent to a website, it is generally sent¹ to a bitcoin-address, which is simply a random number² so far as the Bitcoin network is concerned. Nowadays the receiver of money will generate a new receiving address for each transaction in order to increase privacy and achieve a higher degree of anonymity³.
There is no way for ordinary people⁴ to identify a website URL from a Bitcoin address, The bitcoin network does not record that sort of information.

footnotes:

Strictly speaking Bitcoin is not sent anywhere, what is transmitted is mostly instructions about changes in ownership of amounts of money (changes in control over money).

A bitcoin-address is a kind of pseudo-random number derived by a mathematical procedure that cannot be reversed. All the numbers involved are pretty much indistinguishable from mathematically random numbers. Addresses have a standard prefix and a checksum suffix but neither help identify recipients.

Bitcoin is often described as pseudo-anonymous. It is nearly anonymous, it strives for anonymity and it deliberately makes it hard to identify the people or organisations involved in transactions.

Unless you are a member of a governmental investigative agency or a wealthy individual willing to spend large amounts of time and money on an investigation.


Bitcoin Core says it's synced but Blocks folder goes to only 985

The number 00985 is not the block number.

Bitcoin Core stores its blocks in 128 MiB block files (blk?????.dat), and corresponding undo data in rev?????.dat. Only when one block fills up, a new file is created.


I opened random transaction for this example: https://blockchain.info/tx/c929454d6c83c15ecd9931c005a5a7fbacb1faba69f0a49538ab334d2848c5a1

Input scripts:

ScriptSig:
PUSHDATA(72)[3045022100eb1d36c6fe6c201e5594d90a7bdc73dd9a33d291e7e58ba74fec46ab2139c9c602207a7124819f9a004a36a0a2ac494603cfeecf38b8c12b3c6e3ff6dea74053706101]
PUSHDATA(33)[033f2223c8f6b74e75e4afd05811b8c9f55c8584abef768336e6ad61d931bef548]

First hex-value is signature of transaction. Second value is public key (elliptic curve point). And from this value we can derive address.

If you have another signature that signs something, and this signature has the same public key, that proves, that this is the same guy, who did transaction. Only one who have private key can sign something.

Elliptic cryptography works in the next way: we choose random number, and this will be private key. Then we multiply this number and EC point called generator, and we get public key.


How can I get a private key for this address

There is essentially no way.

  Is it possible for me to withdraw my bitcoin I invested here? I don't have the private key

No.

It looks like you fell for a common scam.

I've been asked to share wallet credentials to participate in mining. Is that a scam?
my money gone from wallet scam
BTC Stolen from Blockchain
"Hidden Wallet" onion site
Recovering the private key from a blockchain wallet address
Where do I obtain private keys?

About watch-only addresses (some of these are also probably victims of this type of scam)

Watch only wallet
how do I transfer from watch only wallet to my other wallets
blockchain account has watch onl on i
I have watched addresses in my wallet..how do i use them?
To generate private key
Unable to get private key for Blockchain wallet


I can't find my bitcoin address and my bitcoin core is out of sync by 3 years

Go to the top left, click File then receiving or sending addresses. There, you can create new adresses and look at your current addresses.


There is an unlimited number of possible candidate blocks since changing any one detail, either the order in which it is presented within the block or, by one bit difference will make a separate candidate block because the random guess and the hash for that block will be completely different. In practice there is usually only one candidate block in existence at a time, sometimes two. Another name for candidate block is potential tip.

Some people refer to the block that a miner is trying to mine as the candidate block, in which case every miner has their own individual candidate block that they work on until it is either a) mined or, b) replaced because a new tip is received.


How does solving reduced difficulty hashes contribute to solving a block?

Contrary to popular belief, mining is not something where there is progress. Each hash has the same probability of being a valid block hash. You could get lucky and find a valid hash with your next hash, or you could not. There is no progress that is made. When you mine on a lower difficulty, the target that your hash must be under is much higher than that of the networks. With enough hashes, someone will eventually find a hash that is lower than the network target, and that hash would also be lower than their pool target. The higher target (thus lower difficulty) is only for tracking who is actually doing work and how much work they are doing so that they can be paid appropriately.


prune allows you to set the size of blockchain data stored, not downloaded. Therefore prune does not affect bandwidth usage.


Bitcoin and bitcoind versions v0.3.14 - v0.3.19 used the first testnet.
Bitcoin, Bitcoin-Qt and bitcoind versions v0.3.20 - v0.6.1 used the second testnet.
Bitcoin-Qt and bitcoind version v0.7.0 and above use the third testnet.


Is it possible to get a service provider , which provide stable, not-changeable BTC address.

With most providers, an address should remain valid indefinitely.  This would certainly be true if you use your own software wallet, instead of relying on an online provider.  If you give your employer one address, they can make transactions to that address as many times as they want, and you'll receive those coins.

It is usually recommended to use fresh addresses for each transaction, because it is better for privacy, and makes it harder for other people to track your activity.  But it isn't required by the Bitcoin protocol.

If your employer (or their payment processor) insists on being given a fresh address for each payment, that is their decision, not a technical requirement of Bitcoin itself; you'd have to take it up with them.


How to Enable Port Forwarding for Litecoin Mining?

There are countless router port forwarding guides on the Internet, this isn't Bitcoin/Litecoin specific.

Anyway, you've got the port right, you need to set your computer up on a reserved local address so that your internal IP address doesn't change when you reboot. Then you need to assign that custom "game or application" you have created to your newly reserved local IP. You may need to allow the port on your computer's firewall too. That should do it.

Saying that, Bitcoin/Litecoin is peer-to-peer and doesn't require the port opening it will function fine without it. The only difference will be that people are able to connect to you which will give your node more peer options so it could make it sync faster. Of course it could also make you sync slower because you'll be helping more peers sync.

Depending on your Internet speed it could be the uploads that are making your downloads take aeons, or it could be a slow/busy disk. Remember, it's not a website - you're not going to download 4Gb from the other volunteer peers at the same rate you might for other downloads.


Is the mtgoxlive depth chart information accurate?

Unfunded orders obviously don't show up in the orderbook. I assume that mtgoxlive is based on the same data provided by the API so it is probably accurate.

If you really want to know, just compare the market depth from mtgoxlive with the ones shown at bitcoincharts and clarkmoody.


Security concerns when downloading the block chain from a 3rd party source?

After the download was finished I noticed that the md5 checksums of the files from the torrent were different then of the files from bitcoin-core.
Why could that be?

The download they provide is a Bitcoin Core data directory. The data directories of two nodes are not likely to be the same.
This is because blocks are downloaded out of order. Since blocks are written to disk in the order that they are received, the blocks will be in a different order from node to node and thus the hash of all of the data will be different.
Furthermore, orphan blocks causes the data to be different because some nodes might have heard of an orphan block but another node did not.

Are there any security related concerns of using a block chain from a 3rd party source?

Yes. They could be providing you a false blockchain, i.e. one that is valid but not the blockchain that all other nodes are following.


Will the lightning network reduce BTC Liquidity due to "locking-up" funds in channels?

Lightning Network payment channels are not really "locking up funds". Your funds are not locked, you can still send money to people and transact over the Lightning Network, even if you don't have a direct payment channel with those people. LN lets you route payments through others. So if you wanted to sell some Bitcoin and you have an open LN channel, then you can route your money to an exchange that supports LN and thereby deposit your coins. Then you can sell them. In your LN channel, you would have 0 Bitcoin, so you have actually sent your Bitcoin elsewhere.


Why outputs' spendable and solvable are false?

The listunspent rpc call returns all unspent transaction outputs (UTXOs) tracked by this wallet. This includes the UTXOs that can be spent by this wallet, but also UTXOs that belong to watch-only addresses tracked by this wallet.

When spendable is false, this wallet does not have the private key to spend the UTXO. This is e.g. the case for watch-only addresses.

When solvable is false, the wallet does not know how to spend the UTXO, regardless of whether it has the corresponding private keys.


In what scenarios can the blockchain size decrease for bitcoin?

It looks like this part of the code is what was adding all those UpdateTip messages:

https://github.com/bitcoin/bitcoin/blob/8fe30fb4d130532d4a0e4c9d143f03e1b85a749e/src/main.cpp#L2234

Essentially, bitcoind thinks another chain with more cumulative work exists on your 4-node network, though from the logs, it's hard to tell how much lower it goes. You'll have to run it for longer in order to find out.


How do i differentiate between a scam and a real bitcoin miner?

Bitcoin mining involves setting up and running highly specialized computer machinery called ASICs (application specific integrated circuits). If you are being told you will be 'mining', but are not setting up and running these machines yourself, then chances are you are being scammed. Pretty much every instance of 'cloud mining' through some website service is a scam.

Consider: you have an ASIC machine, that profitably prints money for you. Do you:

a) use that machine to make money? OR

b) rent the use of the machine to someone else?

If you chose b), then you must expect to make more money than a) by doing so. This extra money must come from the user that is renting the machine, which means the user renting the machine is going to lose money, net.

The reality is, mining seems complicated to new users, so scammers often pretend to run 'mining operations' when they are trying to scam people. Being a 'miner' makes the scammer seem knowledgeable and wealthy, so that new users will be lured in.

  Someone offered to trade for me through bitcoin... with a commission of 10% of profit within 48 hours.

This is the second massive red flag. No legitimate broker would promise a commission of 10% within 48 hours. Professionally managed wealth funds aim for a smaller return than that, annually!

If that sort of profit was guaranteed, the broker would quickly become the wealthiest person on earth. With $1000 invested, after 1 year of 10% returns every two days, the broker would have ~$34,156,133,221. Obviously, this is completely absurd.