How does a share hash compare to a block hash? Can a miner view the contents of the current block?

Yes, a share hash is a hash of a bitcoin block. Some of them are above the bitcoin network difficulty which means the block is valid. Most are not, and can only be used to show that you are mining (and at what rate).

The data being hashed is the block header. The block header contains the merkle root which is created from the transactions. The transactions are not part of the block header. A bitcoin block is the header plus the transactions.

With the GBT (getblocktemplate) mining protocol you do get all the data, including transactions. This could be used to try and detect if the pool is doing something bad. It could also be used as you say to let the user see the transactions he or she is including in blocks. With GBT there is even the possibility for the miner to remove or add transactions, if supported by the pool. Most of this is still not implemented by miners and pools.

Stratum had an extension to allow you to fetch the transactions for the block you are currently mining. I'm not sure if any pools support it, though.

So far Stratum seems most popular, probably due to its efficiency (low bandwidth usage and fast block changes). GBT, which aims for the transparency you are talking about, has a lot more overhead.


Just gather every source of randomness you have all together and apply a 256-bit secure hashing function to it such as SHA-256. The advantage of this approach is that it is as secure as its strongest input up to the limit of the hashing function you use.
There is no benefit to discarding information. Why map 3 and 5 both to 1 and give up some entropy? What benefit would you get?


Unconfirmed BTC transaction / TXID doesn't exist?

In any case, receiver (Coinbase) can't do much to make your transaction confirm faster. Except CPFP, but you can do the same with your change output, if you have it. But, as mentioned above, if tx fee really is 0, it will not be relayed by the network, as default relay fee is 1 satoshi per vbyte. Also, in 7 days it should have been confirmed, as mempool clears out regularly at the moment. I bet you will not see that transaction by txid in any public block explorer either. So, you should just send them again from the wallet you initially send them out.


What is the math behind popular Bitcoin graphs? I want to graph Namecoin (or similar *coin) technologies?

The math behind those graphs is pretty simple, the main problem is crawling through the data and creating readable images automatically.

Difficulty (red line) can always be read from the generated Blocks, no problem there.

1/3/7/14/whatever-window estimates I assume are calculated by counting how many Blocks were generated in a given time period and at what difficulty. In general I guess it should be:

Estimate = (Difficulty * MeasurementTime) / (10 minutes * BlockCount)


Would mining future bitcoins break the bitcoin?

As I understand the bitcoin hash is generated from the ... previous block hash, ...

So, the new block cannot be mined until the block it is building on exists. If a miner can mine so fast it does not have to wait to release blocks, it can just do so. The difficulty will then adjust.


What are pbegin & pend ?

Pointers to the beginning of the data and one byte past the end of the data, respectively. The function it's wrapping takes a pointer to the beginning plus the the size, so it needs to do some math with the pointers.

  What is (I believe it is data, where it comes from ?)

Presumably, if you found this code in a Bitcoin derivative, the data is a block header. This function might also be used to build a merkle tree. (Shabal256 appears to be fast enough for that.)

  What is : pblank[1]

A zero-length string. Presumably, sometimes this function gets called as HashShabal(NULL, NULL), so this is for avoiding a null pointer exception.

  Can anyone please explain the code below with comments?

The purpose of this function appears to be to wrap the Shabal256 functions from Projet RNRT SAPHIR to make them easier to use.


How does blockchain.info associate a message with an address?

This is known as "tags", and it is 'blockchain.info' specific. You can use any web page, or bitcointalk.org user profile or bitcoin-otc Id as link. Your link page should contain your address.

http://blockchain.info/tags


If you do not run a node, you should use blockstream.info to look at your transaction. Type in the TXID, and see if the transaction funds were used again or are sitting in a specific address. Sometimes, transactions simply take a long time to clear, but that doesn't mean you have lost your funds. They will eventually clear.
Alternatively, bitcasino could have either screwed up or been hacked.


I built a miner, got a hash block, now what? Where do I send it?

To submit a valid block to the block chain you don't use the hash, just the block. That's the block header plus the transactions.

Use bitcoind's submitblock RPC call.

> bitcoind help submitblock
submitblock <hex data> [optional-params-obj]
[optional-params-obj] parameter is currently ignored.
Attempts to submit new block to network.
See https://en.bitcoin.it/wiki/BIP_0022 for full specification.

So you hex encode the block and send it as lone parameter to submitblock. That's all.

As the help text says, submitblock is further documented in BIP22


I've looked into this before, and I've never been able to find an explicit rationale from Satoshi, but there are a couple of possible reasons.
For: Simplifies SPV verification
Imagine that rather than using the spent/unspent model, you track the balance of each address. You get a zero-confirmation transaction that pays to you from an address.
Now, to figure out what the balance of this address is, you need to get all of the deposits and withdrawals from it. If you miss one, you calculate the wrong balance.
You could fix that by forcing each transaction from an address to reference the last transaction by hash, but that eliminates an important property of Bitcoin - multiple deposits and withdrawals to and from the same address can be processed at the same time, without coordination between them.
For: Improves transaction privacy in theory
The change output (which you referenced as '8 BTC goes to Alice') is sent to an entirely new address, and in theory it is not possible to figure out which output is the change output. In practice, the real output is usually a nice round number, and the change output is something like 0.00019841.
Against: Makes increasing the fee really complicated
If you've used Bitcoin for long enough, you've probably run into a situation where someone sent you some Bitcoins, but didn't attach a fee.
If the change output were explicitly marked, the sender could just resend the transaction with a slightly smaller change output, and a slightly larger fee. Miners would know that they could safely accept the new transaction into their memory pool without helping anyone commit fraud. Then, we wouldn't need stuff like replace-by-fee or child-pays-for-parent.
Against: Makes the UTXO set much larger
If you have 50 outputs that make up your money, that means that you're taking up 50 times more space than you would if you had a single balance.
TL;DR: It could have been done differently, and there are some reasonably compelling arguments, but it's impossible to change now.


As you've discovered, Bitcoin Core is almost optimally non-performant on shared servers.

The majority of the work done is on a single core, so measuring the total utilization of the CPU is not a good measure.  Database operations are necessarily single threaded, and the majority of the work in the early parts of the chain are entirely consumed by this.
Bitcoin Core is sensitive to disk speed and latency for some operations, which shared servers are often starved of resources for. EC2 especially is well known for atrocious IO performance in even moderately sized instances, other low cost providers suffer similarly.

Security issues with delegating your private material to a third party not withstanding, the best performance is going to be on a dedicated piece of hardware that is not EC2. Otherwise increasing the amount of dbcache increases performance to a degree (more than a couple of gigabytes will not help), but this will not resolve CPU resource starvation which is common for shared hosts.


Why one miner can dig out many blocks continually in one moment?

I suppose it just a succession of lucky event, even if this miner wanted to do a 51% attack, there is not a lot he could have done with it, except as you said break or reduce the trust in the bitcoin network, and someone who have invest that much money into mining equipment must own and will own lots of bitcoin and so have less incentive to try to break it.


getheaders request being ignored by peers

It looks like the magic bytes you are using isn't the Bitcoin magic bytes. You have e3e1f3e8 but Bitcoin's network magic is f9beb4d9.


How does mimblewimble protect the chain state?

The proof of work is definitely not thrown away. All block headers need to be kept to prove the most work chain of headers. What is thrown away is what you would typically think as the content of the block: inputs and outputs.

This works by keeping a current state tracking transaction outputs and various other bits of data and committing to all of that in some Merkle-like tree. The root of the current tree is included in each block header. So when you start a new node and download only the current state, without needing all the transaction history, you can validate that the state you've been given is anchored in the block header chain, which gives you the proof of work.


Why can't altcoins erode Bitcoin's foundation?

Bitcoin has the advantage of the network effect.
More info here:

What if someone creates a new block chain, or a new digital currency that renders Bitcoin obsolete?
Network effect


The -gen flag actually started a CPU miner process in older versions of the Bitcoin client, before CPU mining became obsolete.

What you're probably thinking was more like bitcoind -server or `bitcoind -server -RPCALLOWIP=192.168.1.* -RPCPORT=8333 which would start a listening Bitcoin server from which a proper miner could obtain getworks. Since namecoind is a direct port of bitcoind with only the DNS-replacement functionality added, the flags are the same. Nothing special or fancy required, just follow any old "how to solo mine" tutorial and replace bitcoind with namecoind.


How are off-chain transactions handled by bitcoind?

First of all, there are many types of off-chain transactions. Any movement of value in BTC that does not directly correspond to a blockchain transaction can be classified as one. This includes:

giving someone a computer/phone that has a wallet witg BTC on it
giving someone a private key/physical bitcoin.
giving someone access to a shared webwallet account
sending money from one account to another within the same service (which simply decrements one person's balance and increments another's balance)
payment channels, including Lightning, which negotiate a small number of transactions that correspond to the net effect of many more value transfers.

The move command in bitcoind does not result in an off-chain transaction; it simply increments one internal counter and decrements another. It is off-chain for sure, but it's hard to call it a transaction. All you've done is changed how you're counting the money you already have control over.

A service (like #4 above) could potentially use bitcoind's move command to implement a (simple) off-chain transaction system. But it at least requires having a setup where multiple people have accounts on your system, and them treating you as a custodial for their money.

As for the questions you're asking:

Accounts are a completely independent concept from addresses. From bitcoind's perspective, there is no such thing as an address balance. There is the wallet balance (how many coins the wallet has control over in total), and account balances (which are simply internal bean counters, with no relation to anything on the blockchain). When a new transaction sends M money to address A, and address A is associated with account C, the wallet balance goes up M, and the account balance for C goes up. When you send money with sendfrom, the named account is debited. But the actual on-chain transaction created always uses any coins the wallet has control over. Again: there is no relation between on-chain coins (transaction outputs) and account balances.
The move command used to do a balance check on the to-be-debited account, and fail if it did not have enough counting only transactions with at least minconf confirmations. This functionality was removed a long time ago, and the minconf parameter is ignored now.
Bitcoind treats the whole wallet as owning the coins, and it will use any coins available for any transaction it creates. There is no relation between coins and accounts. sendfrom simply allows you to specify which account balance to decrease.
sendfrom does a balance check on the debited account, and will fail if it would make the account balance negative, counting only crediting transactions with at least minconf confirmations. This feature is not very reliable, as fees can make the account go negative despite the balance check before.
sendtoaddress always debits the "" account, and does not do a balance check on it, so the "" account balance can go negative (as long as the wallet balance - the sum of the account balances - is positive). Again: it does in no way restrict which coins are used to construct the transaction.
Because sendtoaddress does not do a balance check, there is no way in which a minconf parameter would have an effect. Normally, all coins with 1 confirmation (if they come from other wallets) or 0 confirmation (if they come from yourself) are spendable, though for example the spendzeroconfchange setting modifies this).

As already pointed out, the account balance system and the move command are deprecated because they are very hard to understand and use correctly. If you need accounting, implement it yourself on top.


Bitcoin P2P API getBlocks always returns 500 inv items

It looks like you have your block hashes in the wrong byte order. You have them in the display byte order, but the network actually handles block hashes in the reverse byte order, the zeroes are at the end.

I think the blocks that you are getting in response are going to be the first 500 blocks of the blockchain as well.

So what's happening is that a node sees your start hash, does not find it in your blockchain so it starts with the genesis block. It keeps going for each block and finds that it does not find the stop hash. This would be both because the stop hash is in the wrong byte order, and because it is starting from genesis and not your start hash.

So the response you get is the maximum of 500 blocks starting from the genesis block - the most recent common ancestor between your start hash and it's current tip.

  Am I misunderstanding the point of this API ? I was under the impression it returns block details but instead it just returns missing block hashes. How do I then find out what transactions happened in that block?

getblocks gets the block hashes. To get actual block itself, you need to use getdata with the hashes you've received.


So you have bitcoin-cli installed on your local computer? Does the command bitcoin-cli dumpprivkey "address" of an address you know related to the wallet lead to the private key you need?


What is the "value" in a Segwit sig hash?

If I have a single UTXO of value 10,000 sats and I'm using this as an input for a Segwit tx, then when I'm ready to sign the transaction / create the witness section, I use 10,000 as the value? Or is the value the sum of the outputs that I'm sending?

You use 10000 as the amount and don't care about what other inputs are or how much their value is.

Where does the 0046c32300000000 amount (600,000,000 in Decimal) come from?

The "amount" that is being used during signing (and pretty much everywhere else) is always in satoshi as a 64-bit integer. Since the second input being signed had a value of 6 BTC that is equal to 600000000 satoshi. Which is the full value of the input (UTXO) that is being spent.


Does a user have to update blockchain to participate in this situation?

Yes your understanding is correct, the node must update itself with the blocks generated and accepted after it went offline(in your case about a week ago).

Whenever a node receives a new block, it first looks at its header called blockheader which contains the following:

1.Version (32-bit version the node that mined the block was running).
2.Hash of the previous blockheader
3.Merkle root of transaction
4.Timestamp (approximate time of generation of block)
5.Target for block mining puzzle
6.nonce (solution of the puzzle)

To verify a new block each node computes the hash of the previous blockheader and checks for proof of work. In your case the hash of the previous block-header will not match, so the received block will be considered invalid. Also, the timestamp included in the newly received block will be far ahead in future form the last known block of the validating node which will indicate(not explicitly) that the node was out of date for some time.

To come back in the mining game, the recovered node has to query few up-to-date nodes for all blocks generated after the failure time, apply these new set of transactions to the obsolete blockchain, update the UTXO as per required.


While not directly a WebCL miner there is a miner which uses OpenCL via  Java Webstart so is accessible to any internet user with Java installed and apropriate hardware.

http://www.BitMinter.com

The site is both a pool and a custom java miner.
The pool can be used with other miners however the BitMinter miner works only with the BitMinter pool.


Trezor Firmware update just hangs indefinitely

Try it again. If it does not work, contact support and ask for a replacement unit.


What happens if there are no transactions?

A miner can mine an otherwise completely empty block, and still collect the award of 12.5 BTC for completing a block.


Can I build a raw segwit transaction with no segwit inputs?

Only segwit outputs can be spent using segwit inputs.

A segwit transaction is a transaction with at least one segwit input.

You'll first need to create a segwit output to test segwit spending.


How do I properly shut down bitcoind on Windows? I get error: EnvShutdown exception: DB_RUNRECOVERY: Fatal error, run database recovery (-30974)

Send the RPC Stop command:

cd "C:\Program Files (x86)\Bitcoin\daemon"
bitcoind stop

Output

ThreadRPCServer method=stop
Flush(false)
blkindex.dat refcount=0
blkindex.dat checkpoint
ThreadSocketHandler exited
blkindex.dat detach
ThreadMessageHandler exited
connection timeout
ThreadOpenConnections exited
ThreadDumpAddress exited

blkindex.dat closed
DBFlush(false) ended          219780ms
StopNode()
Flushed 12513 addresses to peers.dat  280ms
Flush(true)
DBFlush(true) ended               0ms
Bitcoin exited


How can I create 50,000+ bitcoin addresses in my wallet?

You can have Bitcoin-Qt generate 50k addresses by starting it with the parameter -keypool=50000.

They will not all be visible in the client interface, most will be just hidden as unused backup addresses, but they will all be stored in your wallet.dat.


In overview, what is "Bitcoin Cash" and the hard fork on August 1st 2017?

The Bitcoin blockchain needed some protocol updates and there were several views on what those changes had to be. Because the blockchain is completely decentralized any part of the network can create and maintain its own version of the blockchain, that's called a hard fork, and that is what happened on August 1st.

On July 20th this year, the whole Bitcoin community voted at 97% in favor of implementing BIP 9 (Bitcoin Improvement Proposal) on August 1st, also known as SegWit. This basically changes the structure of the blocks so that the signatures header (the witness) are segregated from the actual transactions. From there it is possible to work out an increased block size. While the majority of the community was ready to implement an increased block size (SegWit2x) through a hard fork around November 2017, some big miners, willing to handle large blocks, decided to go ahead of SegWit2x and hard fork the chain, with blocks 8x bigger, right on August 1st hence creating Bitcoin Cash (BCH).

The fork happened (you can follow the forks here) and the first block was mined around 4PM (GMT) on August 1st. BCH starts trading on the platforms that agreed to also implement the increased block size (August 1st was a rough day for crypto-exchanges, some went down for a while). Because both chains share the same history, any owner of Bitcoin (BTC) technically also owns the same amount of BCH. As of now (August 3rd, 1AM - GMT), 16 blocks have been mined on the new chain, as the miners are waiting for the difficulty level to go down (the difficulty of mining a block on the chain depends on hash power, and the new chain inherited the old difficulty level but with only around 20% of total hash power, it'll take some time to adjust).

A hard fork is an important event because this is kind of an update of the whole network at the same time. Any big players could decide to do whatever they want as the blockchain is not some server that you can just update. This implies we can simply guess the outcome of a hard fork based on what information miners decide to disclose, but always stay aware that they can still change their minds.

The real issue here is that the current protocols running the blockchain are not scalable. For a real mass adoption of Bitcoin and other blockchain related technologies, we need to improve the protocols until we figure something stable and scalable. This might take a while and we will likely see other forks like this one with new ideas on how to scale the blockchain.

On to what will happen, this is complex and evolving everyday, but BCH could actually stay around as a bitcoin-equivalent crypto for a while, or just collapse in a few hours, or maybe BCH will survive as a low value crypto like any other Altcoin... really hard to tell. My view would be that one version of the chain will surpass the other one, and I find hard for the BCT to collapse anytime soon. Some might disagree, I must say I'm pretty new to the game (like a couple of weeks), but I put a lot of effort to try to understand what was happening. It is truly interesting to see how we, as a group, are trying to understand and find the ultimate implementation of one of the latest great technology upgrade that is the blockchain.

Best way to stay informed is the Bitcoin subreddit and for a more technical view on the markets the BitcoinMarkets.


Explanation of "Timestamp Server" section in original bitcoin paper

Is it saying ...

I think you have it right except that for 2.2. the whole new block is broadcast not just the hash.
Actually "broadcast" isn't exactly the right term really. I believe the node transmits the new block to a small number of peers (e.g. ten or so other nodes). These other nodes then pass on the new block if it looks OK to them. Eventually the new block reaches all nodes in the network.
In a comment below, Pieter Wuille has clarified some of the details, "Blocks are announced to all peers. Those peers then fetch the actual block from (typically) the first peer that announces from them."
I haven't found an explicit detailed description of the exact sequence of network actions, but if you read The Bitcoin Wiki's Protocol documentation you'll see that there are many message types and one of them is inv  (inventory)

Allows a node to advertise its knowledge of one or more objects. It can be received unsolicited, or in reply to getblocks.

The inv payload includes an array inv_vec[] which contains a code for a type of data available (e.g. block) and a hash of that data.
So the recipient of that message could presumably see that the sender has one or more blocks that the recipient doesn't and could presumably then issue a getdata message to obtain that new data. As I said, I haven't yet found a detailed explanation of the exact sequence of operations but I imagine the reality is along these lines. So my description of this as broadcasting new blocks is a simplification.

There is little information online trying to research the concept of "timestamp server"

As you evidently know, but others might not, what Nakamoto was describing, under section 3. Timestamp Server, is an activity that we would now refer to as mining.


verifying my modifications to bitcoind w/o broadcasting anything

Mainnet and regtest have different rules for the difficulty.

As their consensus rules are different, the mainnet chain will not be valid according to regtest rules or vice versa.


Interesting find!

  when it happen?

2012-03-09 19:20:14, according to blockchain.info.

  why it happen?

It seems that someone was using a faulty signing process. The R value will only be the same if the same k value is chosen during the ECDSA signing process.

  how it Happen?

Hard to say, as the person who made that transaction is probably hard to find. It could have been done by faulty software, or it could have been done intentionally to see if anyone would recognize it and steal the coins (since using the same k value twice on different signatures leaks the private key).


Can I send btc to a totally offline wallet?

Yes to both questions.

You only need a wallet connected to the internet to remove coins from your account, not to add new ones to it.

A paper wallet can be used with any bitcoin wallet application.


How do you generate a NXT / Ardor address using javascript only?

Codepen Example: http://codepen.io/satoshinakamoto/pen/ObGwXy?editors=1010

Yes, you can generate the nxt/ardor address by using the following function call:

NRS.getAccountId('asdf'); //Generates the

NRS.convertNumericToRSAccountFormat(NRS.getAccountId('asdf')); //Converts that ID to RS (reed solomon) format

Found in html/ui/js/nrs.encryption.js

You will need the following html setup and js files to generate nxt addresses without the need to be online:

<!DOCTYPE html>

    <meta charset="UTF-8">

Welcome


What is the Optimal block size based on 90 percentile block propogation delay?

I think block propagation delay is the only limiting factor in increasing block size.

This assumption is not accurate. While block propagation time is an important parameter for fair competition among miners, the block size also affects initial synchronization times of new nodes, disk space for archival nodes, and bandwidth (especially upload) requirements for all node operators.
Block propagation between miners should preferably take less than a second, but I don't think the block size and propagation are as related as the question surmises and thus consider the main question to be unanswerable.


The Bitcoin / USD exchange rate is determined by users of an exchange. Traders in an exchange can buy/sell at however much they'd like, but if you sell BTC to USD at too high a rate, or buy BTC with USD at too low a rate, your transaction is less likely to occur.


I think the introduction of block has much more a security-related origin:

Currently, getting transactions confirmed costs a certain amount of work for which computer have to run a long time and cost some time, effort and money. Because of this, it is hard to manipulate the chain of transactions. It is hard to find a correct block with a certain set of transactions and cheating will result in your block being refused by the network.

However, when clients just keep lots of transactions, it would be much easier to f.e. set up thousands of false nodes that manipulate the network. A node that only requires memory is much cheaper than one that requires hashpower. With some resources it's easy to add thousands to hundreds of thousands of clients (these don't have to be separate machines but can be virtual ones) participating and entering bogus transactions or leaving some out.

The fact that creating the blocks is "difficult" add a lot of security to the network, making it extremely hard to falsely manipulate the transaction history.


Can you recover seed words with passphrase on bitcoin node?

Bitcoin Core does not use a seed phrase. Your password is simply the encryption password for the wallet.dat file. No private keys are derived from the password. In order to recover your Bitcoin, you must have the wallet.dat file.


try resetting the cache on jaxx and let it re-sync, the coins should show up


If you have access to the hard drive or computer, you can follow the steps here to recover your wallet.


Bitcoin-qt, OS X Mountain Lion, blockchains, and bootstrap.dat

Bitcoin-qt verifies the entire blockchain the first time it starts, to be sure that all the transactions are properly signed, and all the blocks certify an appropriate amount of computation (proof-of-work).  This ensures, for instance, that nobody is feeding you a fraudulent bootstrap.dat.  Depending on the speed of your computer and network, this verification might be the bottleneck, instead of the download.

There is not really any way around this if you want total confidence in your copy of the blockchain.  The bitcoin-qt client generally is designed for greater security at the cost of performance.  There are other "thin" clients that are less paranoid, and are willing to trust the blockchain they get to a greater extent, but there is a security tradeoff.  Whether you think the tradeoff is acceptable is up to you; many people do.


First be very careful seeking help online, don't give the wallet.dat file or its contents to anyone, and don't screen share to get help.

Also, backup the wallet.dat file securely to make sure if you accidentally change the contents, you don't lose the money.

I don't use bitcoin core myself, so the following is just what I have been able to find out quickly.

So from here I can see some information about the wallet.dat file format. I believe it to be plain text, so you can just open in a text editor.

It contains - keypairs for each of your addresses that's what you want.

First, step enter each of the public addresses e.g. 1GwV7fPX97hmavc6iNrUZUogmjpLPrPFoE into a site like https://bitref.com/ to see if they have unspent outputs sent to them, i.e. a positive "balance". Only post the public addresses into a browser, they are the shorter strings, like the example I gave.

Now you know which addresses your money was sent to and that your wallet does indeed contain bitcoins and you can relax a little knowing you have all the private keys required to spend those coins.

There are several options going forward past this point, so I think you should check this first. It's safe if you don't modify the file and, again, only post the public addresses into a browser.


difficulty value vs. computational power

What I am trying to figure out is, assuming we have a miner that has 50% of computational power, will the difficulty value change so that miner still finds a block in 10 minutes?

The difficulty value will change so that a block is found, on average, every ten minutes.

  If that is the case, won't that difficulty value be too high for the miners that have much smaller computational power?

Each miner will still have a probability of finding a block proportional to their hashing power.

Say you're a miner who finds a block every 30 minutes -- you'll be finding roughly one out of three blocks. If the difficulty doubles, you will now find a block every 60 minutes -- you'll be finding roughly one out of every six blocks.


You're looking at the entries that are in gray and marked with an asterisk?  At the very bottom of the page you can see the meaning of the asterisk: "Volume Excluded - No Trading Fees".

It looks like these entries are for exchanges that don't charge a fee to trade.  Their volume figures could be inflated.  Someone on those exchanges could trade Bitcoin for fiat currency and then trade it right back at no cost, a transaction that has no net effect.  This "volume" doesn't really represent someone who had Bitcoin and wanted fiat or vice versa.  So Coinmarketcap has decided not to include those exchanges in their volume total, since they presumably think it could distort the total.


The extra nonce is a value in the coinbase transaction which miners will increment in addition to incrementing the nonce in the block header so that there are more possible hashes that can be tried with a given set of transactions.

The ExtraNonce2 is specifically the part of the extra nonce that the miner is changing while performing work for the pool. There is also an ExtraNonce1 which the pool provides to the miner. That ExtraNonce1 is typically used as an identifier.


I would definitely not do it this way and use a RPC client. A very simple one is https://github.com/aceat64/EasyBitcoin-PHP


Coinbase denies transaction: Please complete verifications to send money

I finally got assistance from the support agent David. He has explained the situation in details and helped me to solve the problem.

To pass verifications, I needed to confirm email & phone on this page

https://www.coinbase.com/verifications

Then I uploaded my ID photo on this page:

https://www.coinbase.com/verifications/documents/new

After that I have filled the following form with correct address & credentials:

https://www.coinbase.com/settings/personal_details

After that I was finally able to send the BTC.

Thanks for patiance a assistance, David!


I've downloaded a Bitcoin Core, why it's recommended to use a new address for a new transaction?

Refreshing address with every transaction keeps your identity more intact as It can't be refereed with any other transaction as the address is new.And it is good for future perspective as when coins are sent to an address, they're sent to RIPEMD-160 of sha-256 of the public key. In order to spend it, you reveal the public key, and then sign with the corresponding private key. Thus, if at some point in the future someone discovered a weakness in ECDSA that allows deriving the private key from the public key.It will be safe as you address is changing so the new public key will not be in the blockchain and it will be not vulnerable.


Broadly speaking, there are two ways of paying pool miners. The first way is to have a wallet and send payments to miners through that when they ask for them.

The second way, which both eligius.st and p2pool use, is to keep track of how many shares people get, and set the coinbase transaction to pay the block reward directly to them once a block is found. This has the advantage that you never have any Bitcoins to steal on your pool server.


What version byte will produce a Base58 encoding starting with X?

I wrote a node.js program to solve this in general.

var cs = require('coinstring')

var hash160L = "0000000000000000000000000000000000000000" //hash representing uncompressed
var hash160H = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" //hash representing uncompressed
function startsWith(version) {
        var hash160Buf = new Buffer(hash160L, 'hex')
        lowEnd = cs.encode(hash160Buf, version).charAt(0);
        hash160Buf = new Buffer(hash160H, 'hex')
        highEnd = cs.encode(hash160Buf, version).charAt(0);
        if(lowEnd == highEnd) {
                return lowEnd;
        } else {
                return [lowEnd, highEnd];
        }
}
var version = 0x00; //Bitcoin public address
for(var i = 0; i < 256; i++) {
        console.log(i + " will produce addresses starting with: " + startsWith(i));
}

Here's the output:

0 will produce addresses starting with: 1
1 will produce addresses starting with: Q,o
2 will produce addresses starting with: o,2
3 will produce addresses starting with: 2
4 will produce addresses starting with: 2,3
5 will produce addresses starting with: 3
6 will produce addresses starting with: 3
7 will produce addresses starting with: 3,4
8 will produce addresses starting with: 4
9 will produce addresses starting with: 4,5
10 will produce addresses starting with: 5
11 will produce addresses starting with: 5
12 will produce addresses starting with: 5,6
13 will produce addresses starting with: 6
14 will produce addresses starting with: 6,7
15 will produce addresses starting with: 7
16 will produce addresses starting with: 7
17 will produce addresses starting with: 7,8
18 will produce addresses starting with: 8
19 will produce addresses starting with: 8,9
20 will produce addresses starting with: 9
21 will produce addresses starting with: 9
22 will produce addresses starting with: 9,A
23 will produce addresses starting with: A
24 will produce addresses starting with: A,B
25 will produce addresses starting with: B
26 will produce addresses starting with: B
27 will produce addresses starting with: B,C
28 will produce addresses starting with: C
29 will produce addresses starting with: C,D
30 will produce addresses starting with: D
31 will produce addresses starting with: D
32 will produce addresses starting with: D,E
33 will produce addresses starting with: E
34 will produce addresses starting with: E,F
35 will produce addresses starting with: F
36 will produce addresses starting with: F
37 will produce addresses starting with: F,G
38 will produce addresses starting with: G
39 will produce addresses starting with: G,H
40 will produce addresses starting with: H
41 will produce addresses starting with: H
42 will produce addresses starting with: H,J
43 will produce addresses starting with: J
44 will produce addresses starting with: J,K
45 will produce addresses starting with: K
46 will produce addresses starting with: K
47 will produce addresses starting with: K,L
48 will produce addresses starting with: L
49 will produce addresses starting with: L,M
50 will produce addresses starting with: M
51 will produce addresses starting with: M
52 will produce addresses starting with: M,N
53 will produce addresses starting with: N
54 will produce addresses starting with: N,P
55 will produce addresses starting with: P
56 will produce addresses starting with: P
57 will produce addresses starting with: P,Q
58 will produce addresses starting with: Q
59 will produce addresses starting with: Q,R
60 will produce addresses starting with: R
61 will produce addresses starting with: R
62 will produce addresses starting with: R,S
63 will produce addresses starting with: S
64 will produce addresses starting with: S,T
65 will produce addresses starting with: T
66 will produce addresses starting with: T
67 will produce addresses starting with: T,U
68 will produce addresses starting with: U
69 will produce addresses starting with: U,V
70 will produce addresses starting with: V
71 will produce addresses starting with: V
72 will produce addresses starting with: V,W
73 will produce addresses starting with: W
74 will produce addresses starting with: W,X
75 will produce addresses starting with: X
76 will produce addresses starting with: X
77 will produce addresses starting with: X,Y
78 will produce addresses starting with: Y
79 will produce addresses starting with: Y,Z
80 will produce addresses starting with: Z
81 will produce addresses starting with: Z
82 will produce addresses starting with: Z,a
83 will produce addresses starting with: a
84 will produce addresses starting with: a,b
85 will produce addresses starting with: b
86 will produce addresses starting with: b,c
87 will produce addresses starting with: c
88 will produce addresses starting with: c
89 will produce addresses starting with: c,d
90 will produce addresses starting with: d
91 will produce addresses starting with: d,e
92 will produce addresses starting with: e
93 will produce addresses starting with: e
94 will produce addresses starting with: e,f
95 will produce addresses starting with: f
96 will produce addresses starting with: f,g
97 will produce addresses starting with: g
98 will produce addresses starting with: g
99 will produce addresses starting with: g,h
100 will produce addresses starting with: h
101 will produce addresses starting with: h,i
102 will produce addresses starting with: i
103 will produce addresses starting with: i
104 will produce addresses starting with: i,j
105 will produce addresses starting with: j
106 will produce addresses starting with: j,k
107 will produce addresses starting with: k
108 will produce addresses starting with: k
109 will produce addresses starting with: k,m
110 will produce addresses starting with: m
111 will produce addresses starting with: m,n
112 will produce addresses starting with: n
113 will produce addresses starting with: n
114 will produce addresses starting with: n,o
115 will produce addresses starting with: o
116 will produce addresses starting with: o,p
117 will produce addresses starting with: p
118 will produce addresses starting with: p
119 will produce addresses starting with: p,q
120 will produce addresses starting with: q
121 will produce addresses starting with: q,r
122 will produce addresses starting with: r
123 will produce addresses starting with: r
124 will produce addresses starting with: r,s
125 will produce addresses starting with: s
126 will produce addresses starting with: s,t
127 will produce addresses starting with: t
128 will produce addresses starting with: t
129 will produce addresses starting with: t,u
130 will produce addresses starting with: u
131 will produce addresses starting with: u,v
132 will produce addresses starting with: v
133 will produce addresses starting with: v
134 will produce addresses starting with: v,w
135 will produce addresses starting with: w
136 will produce addresses starting with: w,x
137 will produce addresses starting with: x
138 will produce addresses starting with: x
139 will produce addresses starting with: x,y
140 will produce addresses starting with: y
141 will produce addresses starting with: y,z
142 will produce addresses starting with: z
143 will produce addresses starting with: z
144 will produce addresses starting with: z,2
145 will produce addresses starting with: 2
146 will produce addresses starting with: 2
147 will produce addresses starting with: 2
148 will produce addresses starting with: 2
149 will produce addresses starting with: 2
150 will produce addresses starting with: 2
151 will produce addresses starting with: 2
152 will produce addresses starting with: 2
153 will produce addresses starting with: 2
154 will produce addresses starting with: 2
155 will produce addresses starting with: 2
156 will produce addresses starting with: 2
157 will produce addresses starting with: 2
158 will produce addresses starting with: 2
159 will produce addresses starting with: 2
160 will produce addresses starting with: 2
161 will produce addresses starting with: 2
162 will produce addresses starting with: 2
163 will produce addresses starting with: 2
164 will produce addresses starting with: 2
165 will produce addresses starting with: 2
166 will produce addresses starting with: 2
167 will produce addresses starting with: 2
168 will produce addresses starting with: 2
169 will produce addresses starting with: 2
170 will produce addresses starting with: 2
171 will produce addresses starting with: 2
172 will produce addresses starting with: 2
173 will produce addresses starting with: 2
174 will produce addresses starting with: 2
175 will produce addresses starting with: 2
176 will produce addresses starting with: 2
177 will produce addresses starting with: 2
178 will produce addresses starting with: 2
179 will produce addresses starting with: 2
180 will produce addresses starting with: 2
181 will produce addresses starting with: 2
182 will produce addresses starting with: 2
183 will produce addresses starting with: 2
184 will produce addresses starting with: 2
185 will produce addresses starting with: 2
186 will produce addresses starting with: 2
187 will produce addresses starting with: 2
188 will produce addresses starting with: 2
189 will produce addresses starting with: 2
190 will produce addresses starting with: 2
191 will produce addresses starting with: 2
192 will produce addresses starting with: 2
193 will produce addresses starting with: 2
194 will produce addresses starting with: 2
195 will produce addresses starting with: 2
196 will produce addresses starting with: 2
197 will produce addresses starting with: 2
198 will produce addresses starting with: 2
199 will produce addresses starting with: 2
200 will produce addresses starting with: 2
201 will produce addresses starting with: 2
202 will produce addresses starting with: 2
203 will produce addresses starting with: 2
204 will produce addresses starting with: 2
205 will produce addresses starting with: 2
206 will produce addresses starting with: 2
207 will produce addresses starting with: 2
208 will produce addresses starting with: 2
209 will produce addresses starting with: 2
210 will produce addresses starting with: 2
211 will produce addresses starting with: 2
212 will produce addresses starting with: 2
213 will produce addresses starting with: 2
214 will produce addresses starting with: 2
215 will produce addresses starting with: 2
216 will produce addresses starting with: 2
217 will produce addresses starting with: 2
218 will produce addresses starting with: 2
219 will produce addresses starting with: 2
220 will produce addresses starting with: 2
221 will produce addresses starting with: 2
222 will produce addresses starting with: 2
223 will produce addresses starting with: 2
224 will produce addresses starting with: 2
225 will produce addresses starting with: 2
226 will produce addresses starting with: 2
227 will produce addresses starting with: 2
228 will produce addresses starting with: 2
229 will produce addresses starting with: 2
230 will produce addresses starting with: 2
231 will produce addresses starting with: 2
232 will produce addresses starting with: 2
233 will produce addresses starting with: 2
234 will produce addresses starting with: 2
235 will produce addresses starting with: 2
236 will produce addresses starting with: 2
237 will produce addresses starting with: 2
238 will produce addresses starting with: 2
239 will produce addresses starting with: 2
240 will produce addresses starting with: 2
241 will produce addresses starting with: 2
242 will produce addresses starting with: 2
243 will produce addresses starting with: 2
244 will produce addresses starting with: 2
245 will produce addresses starting with: 2
246 will produce addresses starting with: 2
247 will produce addresses starting with: 2
248 will produce addresses starting with: 2
249 will produce addresses starting with: 2
250 will produce addresses starting with: 2
251 will produce addresses starting with: 2
252 will produce addresses starting with: 2
253 will produce addresses starting with: 2
254 will produce addresses starting with: 2
255 will produce addresses starting with: 2

You can use 75 or 76. 74 and 77 will work too, but only sometimes.


How can I integrate Bitcoin payments into my website created in C#?

Here is a book which teach you some basics of bitcoin programming https://programmingblockchain.gitbooks.io/programmingblockchain/content/


It seem like you tried to run fallbackfee in the terminal ? fallbackfee is a configuration option and should be put inside a bitcoin.conf file, if you dont have this file on your bitcoin directory you can create it: https://en.bitcoin.it/wiki/Running_Bitcoin#Bitcoin.conf_Configuration_File

Then add your fallbackfee=someValue (without the -) inside your bitcoin.conf file on a new line then restart your bitcoin client and try your command again.


What happens to the difference in compatible buy and sell orders on bitcoin exchanges?

To answer you:

  Does Alice receive $10,010 even though her sell order was only for
  $10,000?

No, Alice will receive $10,000 only

  Does Bob only have to pay $10,000?

Yes

  Maybe they split it down the middle, Bob only has to pay $10,005 and
  Alice receives the same?

No, that is not how an exchange works. The largest bid get's filled first. And the smallest sell order get's filled first.

  Does the exchange just keep the difference? Is this how (in addition
  to the fees) exchanges profit?

No, the exchange is only entitled to get fees for the transaction unless specified otherwise.


Unconfirmed transaction: the status is "0 / unacknowledged, not in memory pool "

The transaction you made is quite large, so also if the fee you paid is not low in absolute term, it is in relation to the space taken on blockchain.
0.00120000 / 11767 = 0.00000010

you have paid 10 sat/vByte that was borderline to be included in a block in the days you should have broadcast the transaction.
As you can check here:
https://jochen-hoenicke.de/queue/#BTC,3m,count
there are some transaction with a fee rate similar to your that have been verified (note that it generally takes 14 days for the transaction to be removed from the mempool if not confirmed), so i'm not 100% sure the fee rate is the reason because your transaction has not been verified, maybe there is another reason (eg. when you made your transaction your client is not fully synchronized and you close bitcoin-core before the transaction was actually submitted).

What should I do in the future?

Be sure that your client is synchronized or at least check on a blockexplorer that your transaction just submitted is in mempool (although not yet confirmed).
Enable Replace By Fee so if the fee you set turn out to be too low you can raise it later.
You can also use the bitcoin-core fee estimation choosing recommended transaction fee and setting a confirmation target no longer than a few hours.
Remember to check that the transaction has been verified before 14 days have passed since its submission.


how to get Received Time of Transaction in validation.cpp bitcoin core

Transactions do not have a time. There is a time that your node received the transaction, but that is not necessarily the time that the transaction was originally broadcast.

To get the time of a transaction being accepted to your node's mempool, you can add debug=mempool to your bitcoin.conf file and then restart Core. Then grep through the debug.log file for any lines of the form "AcceptToMemoryPool: peer=%d: accepted %s (poolsz %u txn, %u kB). Since all lines have a time logged with them, you can get the time that a transaction was accepted to your node's mempool. However this will not include any transactions that are first received in a block.


How is a Butterfly Labs Bitforce Single powered?

It uses ~70W @ 12V of external power. The stock power brick is cheaply made, giant, and inefficient (PF=.5,efficiency~.8). Fortunately, the power brick can run on 240V.  Many people make their own cables to use an ATX or bench PSU (with higher powerfactor and efficiency)

source: https://bitcointalk.org/index.php?topic=67819.msg796852#msg796852


You can’t estimate a fee without a mempool, so blocksonly mode will cause this failure. Explicitly you don’t download transactions with this turned on.


How to have my bitcoin-cli connect to an outside fullnode

configure it to connect to an external full node. Is that possible?

Technically yes, but in practice, no. bitcoin-cli connects to a bitcoind via the RPC interface. This interface is typically not exposed to the internet nor are all IP addresses typically allowed to connect to it (specific IP addresses or CIDR blocks need to be explicitly allowed by the node operator). This connection limitation is because access to the RPC interface allows access to the wallet and can result in potential coin loss. Additionally, you will need to know the RPC username and password in order to connect.

So, in actuality, you probably won't find any bitcoinds with open RPC interfaces that you can connect to, and since the interface is authenticated, you probably won't be able to connect to any node. You will need to have explicit permission from the node operator.


Is there a one-stop shop to introduce businesses to accepting Bitcoin?

I just set up a very website that shows people how they can earn Bitcoins, it's simply called Earn Bitcoins.

Under the downloads section there is a free, easy to use PDF guide that shows brick and mortar shops the advantages of accepting Bitcoins and how they can easily integrate it. Please feel free to use it. I will also publish a print version. The one that's included there right now is better suitable for on-screen reading.

I also run Bitbond.net with my co-founder. We want to use the flyer to spread the word in small shops in Berlin. The plan is simply to walk into shops, show them the flyer and explain them why and how it's good for them to accept Bitcoins. Check out the doc and let me know what you think. :)


SELL means someone sold at the bid price rather than creating an order that is higher than the market price.

BUY means that someone bought at the ask price rather than creating an order that is lower than the market price.

There is never a compliment between the two for exchange markets.


Can replay transactions effect both chains? or just the minority hard fork chain?

Can a seg2x transaction be replayed on the main bitcoin CORE chain?

yes

  only the minority hard fork would need replay protection and that coins on the main majority chain would be safe

(a)this is wrong (b)nobody knows what chain will be major, what minor


From what we have noticed on LBTC Grid, out refers to connecting to coin network and the P2Pool network. In refers to miners connecting to your server.


What is bitcoin core developers solution to the increasing number of transactions?

BIP 100: Jeff Garzik Miners vote on blocksize, constrained between 1 and 32 MB.
BIP 101: Gavin Andresen Blocksize increases to 8 MB, and doubles every two years after that. (This is what XT implements.)
BIP 102: Jeff Garzik Blocksize increase to 2 MB. (Intended as a fallback that everyone can agree on.)
BIP 103: Pieter Wuille Blocksize increase by 17.7% each year, consistent with current technological growth.
BIP 105: BtcDrak Each block increases or decreases blocksize by up to 10%. The change stacks multiplicatively. Voting to increase blocksize requires more proof-of-work, but not voting to decrease. The result is constrained between 1 MB and 8 MB.
BIP 106: Upal Chakraborty If more than half of last 2016 blocks are 90% full, double block size. If more than 90% are less than 50% full, halve block size.
It's a feature, not a bug: Almost-full blocks will encourage people to raise their fees, increasing the reward for miners, and thus increasing the amount of hashpower applied to Bitcoin.


Is the public address for Tesla's wallet known?

No, it's not known, and information like that generally won't be publicly released. Bitcoin addresses aren't generally publicly associated with the real-life identities of their owners.
I would expect a company like Tesla to have the bulk of their cryptocurrency assets stored in institutional custody regardless, for liability and regulatory reasons.


Is that safe to expose public key to the mainnet

To claim (spend) the bitcoin from an address one needs to create a transaction and provide two things:

a public key (from which the address you are trying to access is actually derived from**) and
a signature of the transaction (with the private key that corresponds to the above public key**)

When you spent some money from an address the rest will typically go back to the originating address as change (see section Output here).

You are correct that the public key will be exposed after the first transaction. An attacker would have your public key. However, this poses no threat since the public key can be, well, public without compromising security. This is how public key cryptography works.

It is the signature that provides the real security. To create such a signature one needs the private key corresponding to the public key. And that is never revealed in the blockchain.

The above two links provide a lot of detail of how public key cryptography and bitcoin transaction work.

** Note that a bitcoin address is created from the public key with a one-way function (the reverse is not possible). Similarly, a public key is created from the private key with a one-way function. i.e. with the private key one can re-create the rest.


I am trying to get cgminer on Ubuntu 14.04 and the Guide is troubling me

It sounds like you were not in the right directory. Modify this if needed and see if it helps

cp /home/USER/include/* /home/USER/cgminer-3.7.2/ADL_SDK

Just replace USER with your username. If you are running as root (not recommended) then change /home/USER/ to /root/

If that still says directory not found then I don't think you extracted the package from AMD to the right directoy


First block of blk00000.dat from bootstrap.dat doesn't contain genesis block

The genesis block is hardcoded in the software, as you need a common starting point to start a chain.


add or changed to

rpcallowip=0.0.0.0/0

this will fix most of rpc json 403 forbidden error (this has no security issues if your using it within your network)


How segwit blocks are seen by segwit and non-segwit nodes?

There aren't two part to a block like you describe. The word segregated in segwit means that the witness data isn't included in the TXID computation similar to how it always wasn't included in the signature hash computation. It's still included in transactions and blocks.

With segwit, the signatures are in each transaction in a witness field that is included before the nlocktime field.

When a node relays a segwit using block to a peer that doesn't understand segwit, it strips the witness fields out of all the transactions that have them.  Since they don't have any rules pertaining to segwit data they're perfectly fine with this.

If you were to hand a stripped block to a non-outdated node, it would just drop it and ban you for giving it invalid data-- it knows about the segwit rules and attempts to validate the additional data.


What does this indicator mean in the right bottom cornor of the official Bitcoin wallet?

That icon indicates the state of your connection with the rest of the Bitcoin network. "8 active connections" mean that you are connected to 8 other clients.

Since you got 3 of the 4 bars with 8 active connections, it is enough. As far as I remember, I always had 3 bars, so I guess it's the default setting. Probably, to get the last bar you will have to manually configure more nodes to connect with.

When you have 1 or 2 bars, there can possibly something wrong. Maybe your firewall blocks the port for Bitcoin (8333).


What is the benefit of having a fixed target block interval?

Block mining time is not fixed. 10 minutes is just average value which is aimed by difficulty adjustment algorithm to balance two contradicting requirements:

low transaction time requires low block mining time.
low probability to mine several different blocks simultaneously requires higher block mining time.


How can I build my own get address transactions API?

You can use NBXplorer: https://github.com/dgarage/NBXplorer/blob/master/docs/API.md#address-transactions
How to setup NBXplorer? https://youtu.be/a5ehSfzYkJo
Requirements: Bitcoin Core and .NET Core SDK


How to spend bitcoins From Account and specify Fee

Please don't use bitcoin cores accounting system anymore (especially for new projects). It has been deprecated (and might be removed in near future).

A way of solving your issue would be by calling getaddressesbyaccount (get addresses of a specific account) and then use listunspent with these addresses.
Then you could create your own coin selection and use createrawtransaction singrawtransaction and sendrawtransaction.


How can my NXT client/server send to multiple addresses paying one 1 transaction fee?

At the protocol level Nxt doesn't support sending multiple payments with one transaction. Future versions may have this feature added.


How to recover Bitcoin files from 2011 that were erased using the Gutmann method

Any files erased using the Gutmann method cannot be recovered. The Gutmann method is actually overkill on modern disk drives.
At best, if empty space on the drive has not also been overwritten, you might recover fragments of data from previous versions of files or temporary files. If the files have not been used since 2011 this is extremely unlikely. The more use you make of the computer since the deletion, the less likely any recovery.
The best (and probably only) way to recover control over the money is to simply recreate the wallet using backups of the files or from the written copy of the private keys which you presumably made.


Confirming transactions in the Merkle root and SegWit

But how would someone know which associated transaction is required to hash with your transaction to confirm its validity? And where would you get it from?

Your question is a little vague, it sounds like you are asking how a lite client confirms that a transaction they care about is indeed in a block. The party trying to convince them the transaction is included can give them the required information.

Full nodes already have all the data and don't need to have it provided.

  Also, i'm a little confused about Segregated Witness. As I understand it, the signatures are separated from the transactions and the signatures are hashed in the same manner as transactions. This final signature hashed is either hashed with the final transaction hash to form a Merkle root, or it is contained as another Merkle root in a separate field in the block. But if the Merkle root is always the same size (I assume) how does this save space? If the Merkle root is always 256 bits,

The segwit commitment is down lower in the tree not at the top. This doesn't make any real functional difference but it answers your question about the root always being the same size.

  why does it matter if the signatures are hashed with the transactions or hashed separately?

Because when transactions specify which coins they are spending they refer to it by the txid. If the signature data is part of the txid then changes to the signature (like third party malleation or resigning) invalidate subsequent transactions.  If the signatures are excluded from those txids this problem does not happen.


What would a country adopting Bitcoins as official currency have to reinvent?

TL;DR:

  In the first instance, my belief is that a government would have to
  create their own brand of Bitcoin (i.e. a new version of the
  blockchain) and use that to trade against other currencies. This is a
  useful move because the government retains control over their currency
  (they set the mining rules) and they don't suffer a wealth drain in
  the process.

In more detail, once a country (our mythical Seashell Island from the earlier draft) has decided that it wants to adopt Bitcoin as it's local currency the following timeline is likely to come into play:

Research into Bitcoin

At this time the government will need to look into what benefits and drawbacks Bitcoin is likely to bring to their economy. Assuming that they currently have a weak currency, then adopting Bitcoin early could be seen as a smart move since it gives them lower cost of entry into the Bitcoin marketplace.

Among the obvious advantages that Bitcoin brings with it are:

resistance to counterfeiting
resistance to inflation
easier to track than cash for traditional transactions types (i.e. not including private sales of high value private keys)

Some of the drawbacks are:

economy becomes vulnerable to loss of electricity/networking (true of all electronic transactions at present)
banks have a reduced regulatory role since transactions become largely anonymous
increased potential for anonymous transactions to take place in large amounts

This last drawback is perhaps the most serious since it allows for a vast amount of money to be moved in and out of the country without the knowledge of the government. Admittedly, this happens in the present system although due to the large physical size of cash it usually requires laundering of some kind (conversion to something precious).

However, government resources are significant and it is very hard to remain anonymous for long. Over time detailed statistics analysing transactions could be used by the police to pinpoint individuals reusing Bitcoin addresses. This process is made much easier by the existence of tools like blockexplorer.com and should be seen as an improvement over the existing traceability processes.

Setting up the necessary processes/contracts to obtain some form of Bitcoin

By this stage the government researchers will likely have determined that there are only a few feasible options to get hold of bitcoins (note the lowercase here):

set up their own mining pool (initially paying for it in their own currency) - unlikely
create a suitable contract with a mining pool to buy a large quantity of bitcoins (without including their own soon to be worthless currency - unlikely
encourage their citizens to go forth and buy bitcoins themselves and slowly drain the local currency into foreign hands then pull the plug on it (not exactly above board) - unlikely

Using any of the above approaches at this stage requires a significant transfer of wealth from the country into bitcoins and is probably the hardest part to get right. The problem is that there is no central authority who can control the supply of bitcoins exposing the country to the influence of the market. In the case of Euros, the exchange rate of the participating currencies was fixed well in advance after significant negotiation. When the time came to switch over nobody lost out because all the old currency was replaced with the new, which could be printed at will by the central bank.

It could be argued (by @David Perry for one) that some kind of intermediate value-store could be used, such as gold or silver. However, this still requires all of the country's wealth to be slowly converted to this value-store which will raise eyebrows among those folks selling it in exchange for a soon to be worthless currency. I'd welcome further discussion on this.

There is a significant danger that the country could be declared bankrupt in it's own currency before it is able to complete the operation.

EDIT to cover the most likely path by a government:

if a government made their own blockchain (e.g. SeashellCoin) then they could in theory use scripts to manage trades with Bitcoin.

This would permit a staged transition and essentially solves the value-store problem. The value of a Seashell would be fixed against their SeashellCoin equivalent (probably as 1:1). In my opinion, this is probably the most likely mechanism that a government could take. The government could decide upon their own inflation model, select a Version entry and then throw a supercomputer on the job for 5 minutes to generate a few million coins. Once that's done then they can take advantage of the blockchain approach and off they go.

Setting up the necessary legislation to make them legal tender locally

Once an adequate number of Bitcoins are, somehow, in the government coffers they can then make the announcement that all local debts can be paid in bitcoins and will be accepted by a court of law. This ratifies Bitcoins around the world (assuming the country is a recognised state) leading to a huge increase in the value of Bitcoins. It also opens the door to taxation in bitcoins which would largely operate in the same way as it did before.

Value Added Tax (VAT) (aka sales tax) would continue to be added to Bitcoin transactions by merchants who would then transfer the money to the government at regular intervals, overseen by accountants
Income tax would also stay the same
Accounts would have to be returned along with their transaction IDs to allow verification of truth
Standard statistical methods to detect fraud would remain (relies on most folks behaving themselves)

Managing the transition among the general population

Since it is the government driving this then they are likely to provide all necessary equipment to facilitate the transfer. This would include:

recommendations for mobile phone applications (probably not likely to make their own due to "backdoor" privacy concerns)
provision of Bitcoin Wallet Devices that offer tamperproof private keys and are essentially like smartphones for those that don't have mobile phones (see the original Fred)
provision of EPOS systems that are Bitcoin enabled

All of the above would probably occur via contracts with private companies.

Handled well, the transition to Bitcoin would be like introducing a new contactless payment system. They would still want to maintain a secure location for their bitcoins (most likely a government backed bank) and after a while it would just fade into the background.

Reaping the benefits to the economy afterwards

Much of the long term benefits would stem from

the decreased transaction friction within the existing legal and banking system
better fiscal policy since supply is limited leading to improved standards of living and quality of life
increased long term wealth as an early adopter to a global currency
greater transparency in accounting that can be easily verified
immunity to global currency crises

Just my 2 BTCs.


Retrieve old addresses with coins that were given away for free to friends and family?

Just save a copy of the private key.  Then you can import it into your favorite wallet client to retrieve the coins (and sweep them to a new address, so that the key on the paper will no longer work).

When you give the paper slip to the recipient, you should tell them to import it into a wallet and sweep to a new address, so that they don't have to trust you not to steal the coins back.  (Also, this way their coins are secure even if your copy of the key is later hacked or stolen.)  But if they don't do it, you have the ability to take the coins back.

If you didn't save a copy of the private key, and all other copies have been lost, then it is not possible to retrieve the coins.


hello please let me know whats wrong with this script for find Reuse R value

Use my code located here:

In your working directory (that you cd'd into) create an addr.txt containing your list of addresses separated by space or a newline.
Run it as python3 rscan.py 2>out.txt. It'll print the progress and if anything bad is found it'll be in out.txt in your working directory.


How it is possible to create coins only with the proof of stake system?

The problem you are describing is: how do you mine coins in proof of stake if you have no stake? In essence; you can't, depending on the implementation obviously. If you don't have any coins, you won't be able to mine new blocks. The easiest solution is obviously buying coins from another. If the original creator(s) of a PoS coin simply sell most of their early work, others could start mining as early as the third block (genesis block to finance the creator, second block to transact to others).


With Ripple, can I send IOU without setting a trust?

To pay someone, say, $10, you must deliver to them an asset that they have decided is worth $10. A person can never be made to hold an asset they did not agree to hold. These are core Ripple design rules that apply to all IOUs. The main reason for not allowing the "harmless" payment is that it might not be clear to the recipient that the payment is one he is free to ignore and this can create complexity for the recipient who may be legally obligated, for example, to refund it.

This was a close call though. We could have allowed this kind of payment with a special flag and designed the client to show those payments in a special way, and we could have added an account flag to indicate that you refuse these kinds of payments The added complexity and risk of confusion didn't seem to be justified by any significant benefit.


What keeps the average block time at 10 minutes?

The bitcoin network rules define which difficulty each block has. This is done through a simple formula that only depends on the block chain itself. This means that if you give me a blockchain with blocks 1 through N, I can tell you with 100% accuracy what the difficulty of block N+1 will need to be, and I can reject any block which has the wrong difficulty. This means it is not really "the network" deciding on a difficulty, but really each separate node calculating and enforcing it independently.

The actual formula is this: at every block N which is a multiple of 2016, look at the time stamps of the past 2015 blocks, and change the difficulty for what follows to old_difficulty*(2 weeks)/(time the past 2015 blocks took). Additional rules on which time stamps are allowed in blocks prevent cheating (mostly).

In short, by using a bitcoin client, you agree to its network rules, and those include the difficulty adjustment.


Why do bitcoin mining companies sell hardware if the hardware they are selling makes them money?

http://arstechnica.com/gadgets/2013/06/how-a-total-n00b-mined-700-in-bitcoins/3/

In fact, if it's so profitable, why on earth is Butterfly Labs selling these devices? Why not rent a warehouse, fill it with miners, and make infinity bitcoins?
The answer is two-fold. First, BFL required a great deal of capital in order to design and manufacture the ASICs that power its boxes and then to assemble the miners themselves. This capital was provided in no small part by pre-selling the miners; hanging onto them to do some BTC mining with them is sketchy at best and at worst illegal. Plus, there are practical considerations: a giant BTC warehouse adds overhead costs, and I can't even begin to take a guess at the bookkeeping implications of warehousing capital like that.
However, the second reason is far more practical: bitcoins, for all their current value, are still speculative. A large amount of US dollars is a large amount of US dollars no matter which way you cut it. It can be readily exchanged for goods and services. Bitcoins themselves don't necessarily hold value, and it's difficult to exchange them in large quantities for an equivalent amount of dollars. So selling Bitcoin miners for dollars guarantees a certain number of dollars; investing capital into mining a truly large number of bitcoins might work well as a short-term hedge, but the value of the trade is utterly impossible to predict.
This, I suppose, is part of the nature of high-risk investments. But in this case, Butterfly Labs can simply charge whatever it wants for its gear in order to make whatever margin it deems is sufficient. Why bet on the future of a relatively new virtual currency that may go up or down when you can simply get a bunch of real US dollars?


Decentralized transactions between two decentralized currencies

I have actually been working on this exact problem. My motivation is to achieve a slightly different effect than what you're asking about.

I'd like to be able to "move" some Bitcoins to a different hash chain, allow them to be exchanged in that hash chain (as Bitcoins), and then I'd like the final holder to be able to "re-import" the Bitcoins back into the regular hash chain. The goal would be to create "side-chains" with faster block generation times useful for smaller transactions. (They could also 'expire' after a few months and be forgotten, reducing the size of the permanent hash chain.)

But the basic problem is the same. You need the legitimate holder of some Bitcoins to depend on a fact verifiable only outside the Bitcoin hash chain. In both cases, the existence of a transaction in another hash chain. (In my case, a Bitcoin hash chain but not the Bitcoin hash chain. In your case, another currency's hash chain. But the principle is the same.)

The problem is that the Bitcoin design requires every client to be able to validate every transaction, as they must track coins all the way back to their origin to confirm their validity. This means a transaction must be verifiable with only information every client should have -- and that means only information in the Bitcoin block chain.

A third party could put this information into the Bitcoin hash chain. But you'd have to trust that third party, defeating the point.

I have thus concluded that no solution is possible, unless someone has an idea that breaks my assumptions. I hope that will happen, but I am not clever enough to think of it.


How can I create the input of raw transaction through the previous UTXO hash and the unspent index in bitcoinj？

here's how to create an unsigned raw transaction in typescript with one input and one output.

import * as bitcoin from 'bitcoinjs-lib'

const reverseHexBytes = (hex: string) => {
  const buff = Buffer.from(hex, 'hex')
  return buff.reverse().toString('hex')
}

const fixedPoint = (num: number): number => {
  return parseFloat(num.toFixed(8))
}

const outputAmount = 100
const inputTxHash = 'tx-hash-goes-here'
const index = 5
const fee = 0.001
const numOutputs = 1
const outputAddress = 'address-to-send-to-goes-here'

// input
const txInputs = '01'
const txHash = reverseHexBytes(inputTxHash)
const outputIndex = '0' + txIndex.toString() + '000000'
const script = ''
const sequence = 'ffffffff'
let tx = txVersion + txInputs + txHash + outputIndex + script + sequence
// output
const countHex = numOutputs.toString(16)
const countByte = (countHex.length === 1) ? '0' + countHex : countHex
tx += countByte
const amount = fixedPoint(outputAmount - fee)
const outputAmount = Math.floor(amount * (10**8))
let outputAmountHex = outputAmount.toString(16)
while (outputAmountHex.length < 16) {
  outputAmountHex = '0' + outputAmountHex
}
const outputAmountBytes = reverseHexBytes(outputAmountHex)
tx += outputAmountBytes
const pubkey = bitcoin.address.fromBase58Check(outputAddress).hash.toString('hex')
tx += '1976a914' + pubkey + '88ac'
// lock time
tx += '00000000'

check out the protocol documentation for more specific information: https://en.bitcoin.it/wiki/Protocol_documentation#tx

note: i copied and edited from something i've implemented previously, so if there's a mistake just let me know and i'll update it.


Search for BTC transactions by amount range

Blockchair.com allows for searching by output amount, or transaction total value.


How to check Bitcoin wallet balance without any API

If you are not going to use a 3rd party API, you'll need to run a node and add each address you want to query as a watch only address. If you are looking to create a database with all addresses, similar to a block explorer website, you'll need to parse the blockchain using something like abe, and then continually update your database for each new transaction.  There's also the painful approach of turning on txindex=1 in your bitcoin.conf, and then going through every single block since genesis, that checks all txs outputs and then keeps a record of all addresses and transactions.


How much data does it take to prove a given transaction exists on the blockchain?

In theory, you would only need the data from the block of the transaction, and the ability to prove it the transaction still exists after at least 6 confirmations.

The more confirmations (blocks mined beyond a transaction) the lower probability it becomes possible to reverse. Generally speaking, 6 confirmations is enough to identify a transaction is irreversible.

Here's a quote from Mastering Bitcoin by Andreas Antonopoulos:

  By convention, any block with more than six confirmations is considered irrevocable, because it would require an immense amount of computation to invalidate and recalculate six blocks.

Block vary in size, but in SegWit transactions, the entire block can be a maximum  ~2 MB.

These days there are many online tools that can verify this without needing the entire blockchain.
The bitcoind JSON RPC API also works fairly well in providing transaction data. (Cannot be manipulated like with an online API)


Stratum Mining Proxy - Error decoding message on startup

I use 2 .sh files from teh desktop, one for the proxy to start for Burnside's pool, the other to start the miner.  The basic command is this one line ( as it runs in terminal in Ubuntu 12.04 ) after using CD ( directory ) to get to where I unpacked the proxy.

./mining_proxy.py -o ltc-stratum.kattare.com -p 3333

The next .SH file also used cd .... to get to where I unpaced my miner, teh minerd command is as follows

minerd -a scrypt -o 127.0.0.1:8333 -O nybbler905.1:x

Port 8332 ( local ) is getwork unless otherwise set for the proxy.  The other errors are related to not fully installing python and then the proxy.

 sudo python setup.py install
./mining_proxy.py --help

If you do not get the help info, look in to re-re-re-installing python and the proxy.


Bitcoin - Level DB - Block Index - Parsing value for block hash

Found the logic for parsing the block index here


The exchanges that ASICMiner trades their shares on require you to register with a Bitcoin address on which you want to receive your dividends.

See this answer on where ASICMiner shares can be traded.

When they pay out dividends, the total amount will be shared equally among all shares and payed of all shareholders by the address they gave the exchange to receive dividends on.


Pros/Cons/Limitations of Mnemonic Phrases - BIP39

to answer the first part;

generally speaking people will want to backup their whole wallet, not specific PKs.
so using a HD wallet and making a backup of the seed (either the seed or a BIP39 mnemonic doesn't matter) matches what people using 'normal' wallets do, you backup your whole wallet in 1 place (most wallets have a backup/export file for the whole wallet).

BIP32 - HD Wallets - (and BIP39) isn't supposed to replace being able to split your backups into multiple private keys being scattered around, it replaces a single wallet being backed up in a 'traditional' way, 1 file (or print) for the whole wallet.

also a BIP39 paper backup has the same issues as normal private key backups that you mention, if you loose the passphrase or mispel it ... it's gone ...

But if you want to spread the risk by splitting your bitcoins across multiple backups then you should just have multiple wallets to split them.

BIP39 is also only the process of converting a seed to mnemonic and back, your (above discussed) concerns are actually with HD wallets in general, which is BIP32 ;-)

now your only real concern regarding BIP39 is about the words containing enough entropy!
and they do, because the words are generated from a 128 or 256 bit entropy to begin with, the hex entropy is split into chunks of 11, which means you have a list of 0-2047 integers as a result.
that list of integers is translated to the words (and back to the hex and to the binary entropy when you use it).

Let me demonstrate that by showing you how one of the official test vectors is converted:

hex of entropy: 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f

bits of entropy: 011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111111000

chunked into 11 length parts:
 [0] => 01111111011
 [1] => 11111011111
 [2] => 11011111110
 [3] => 11111110111
 [4] => 11110111111
 [5] => 10111111101
 [6] => 11111101111
 [7] => 11101111111
 [8] => 01111111011
 [9] => 11111011111
[10] => 11011111110
[11] => 11111111000

those parts converted into words using the default word list:
legal winner thank year wave sausage worth useful legal winner thank yellow

the mnemonic together with the password TREZOR converted to a seed hex:
2e8905819b8723fe2c1d161860e5ee1830318dbf49a83bd451cfb8440c28bd6fa457fe1296106559a3c80937a1c1069be3a3a5bd381ee6260e8d9739fce1f607

now the cool part actually is that if you use a different password with the same mnemonic you get a different seed and thus a different wallet, you could have 2 wallets and if you get robbed only hand over the BTC in one of them ;-)


Help me resolve few queries about bitcoin network ( regarding validation, mining and state of transactions...)

A1. It remains in the mempool of those nodes until a miner decides to include it in the block it's attempting to mine. Making a transaction from node A to node B is a little confusing, maybe you meant from address A to address B?

A2. Yes, nodes that share the same consensus rules (have not hard forked) will have the same blockchain (public ledger). The blockchain determines history of transactions, and the order in which they occurred.

A3. Nodes will validate transactions before they enter their mempool. Miners typically will just mine the block presented by the node (with tx's chosen to maximize profitability in terms of BTC fee/kB). The transaction is not entered into the blockchain (ledger) until a miner finds a valid solution and submits that back to a node. The node then begins to propagate the new block through the network.

A4. Yes, but this does not mean that transaction has been mined in a block yet, it will just be in each node's respective mempool.


An off chain transaction is a change in BTC ownership (a payment) that is not a Bitcoin transaction (not just an invalid or non-standard one; it's something unrelated entirely).

If I hand you a private key, or a wallet file, or a physical coin, that is an off chain transaction.

If you and I both have accounts on a USDBTC exchange, and you're buying BTC and I'm selling BTC, the exchange engine may match up our trades, and deduct my BTC balance (and increase my USD balance) while simultaneously incrementing your BTC balance (while decreasing your USD balance). Your total BTC ownership increased, but not transaction was visible on the chain (it's all internally inside the exchange's account database). This is an off chain transaction.

Layer 2 payment channel systems like Lightning work by having a pre-negotiated but unbroadcast Bitcoin transaction that pays two participants. These two participants can choose to renegotiate how much goes to each, which mechanisms built in to prevent either from broadcasting an old version. The updating of that transaction as an off-chain transaction. The result of many combined payments may end up on the chain as an on-chain transaction, but the individual payments are not. This makes it an off chain transactions.

Arguably, if I hand you a signed piece of paper saying I owe you 0.01 BTC, that too is an off chain transaction.

The name is confusing, as it conflates the word "transaction" (in the sense of blockchain transaction) with "transaction" (in the general financial meaning of a transfer of ownership).


Bitcoin "Quits unexpectedly" everytime but only on my account

I expect this has something to do with the file permissions. Your own user does not appear to have read/write access to the wallet or blockchain directory. Simply copy them to a location that is accessible by both of you, or change the permissions to allows your own user access.


BIP39 Manual Phrase Calculations - How are Multiple checksums valid?

You aren't actually encoding the same entropy with different checksums. The last word does not encode just the checksum, it also encodes some portion of the original entropy. For a 12 word mnemonic, the last word encodes 7 bits of the original entropy and 4 bits of the checksum.
In your example, the last 7 bits of the original entropy is 1110010. Combined with the 4 bit checksum of 0001, the corresponding word is tomorrow.
In your second phrase, the last bits of the encoded entropy is actually 0000000 which changes the checksum bits to 1100 so you get a different word, account.
In your third phrase, the last bits of the encoded entropy is actually 0000001 which changes the checksum bits to 0000 so you get another word, acoustic.
So in actuality, BIP 39 mnemonics have unique last word because it is a combination of the original entropy with the checksum which is unique. Changing the entropy bits changes the checksum, and changing the checksum invalidates it.

Original answer which is still correct but not applicable to this question.
A careful reading of BIP 39 shows that there are not multiple words which fit the checksum. Rather the BIP is so broad that invalid checksums are allowed and should only be warned against.
In your example, the second phrase is actually invalid. But BIP 39 says that such invalid phrases should be allowed, and so the wallet software will allow it. The checksum is effectively ignored and not checked (which kind of defeats the purpose of a checksum).


How do I change the default blockchain Database download location for NXT?

From nxtforum.org "Move blockchain location" at http://nxtforum.org/nrs-client-how-to-help/move-blockchain-location/

  look in /conf/nxt-default.properties.

  In the #### DATABASE #### section, you will find by default

    # The nxt_db folder is expected to be in the current working directory, will be created if missing.

    nxt.dbUrl=jdbc:h2:nxt_db/nxt;DB_CLOSE_ON_EXIT=FALSE

  NRS will create the database folder in D:/nxt_db.

  You can also leave nxt-default properties with default values, and create a user properties file called "nxt.properties" in the same /conf folder. Any values in nxt.properties will override defaults in nxt-default.properties, so a nxt.properties file defining nxt.dbUrl will work the same as the previous edit.

Hope this helps.


Imported Multibit HD wallet into electrum - Bitcoins are gone!

Try restoring again. To do that you have to create a new wallet file via file > new/restore, enter a unique filename and click next. Then be mindful of the following things:

On the seed entry step click on options and check bip39. Pay attention to the message next to the options button in this step. When it says bip39 checksum OK you can proceed to the next step.
In the next step enter a derivation path of m/0' . That’s a zero and a single quote.


added security/safety to multiple blockchain.info wallets

For large numbers of coins, software wallets (online or desktop), no matter how well designed, are not safe. Online clients aren't safe because the ones that are encrypted your side (like blockchain) might somewhat be susceptible to man-in-the-middle attacks. As Lohoris mentioned, Blockchain uses js verification with Github, requiring both websites to be compromised - of which there is a slim chance. Standard desktop clients are inherently not safe either, not when you're storing thousands of $/£ in coins. Even with all the safeguards in place, the absolute safest storage method is to keep the keys offline.

You would be much better off generating a large number of keys using an offline computer and storing them on encrypted flash drives in safe locations. This is what the biggest known BTC hoarders (Winklevoss) do.

You can then add the addresses without the keys to Blockchain for easy monitoring and zero risk.


Bitcoind with -txindex=1 still no mempool transactions

According to your debug.log file, txindex is not enabled:

2018-04-22 20:40:34 LoadBlockIndexDB: transaction index disabled

This indicates that your bitcoin.conf is incorrect. Make sure that your bitcoin.conf file's full filename is actually bitcoin.conf (not bitcoin.conf.txt or with some other extension).


where in the source code is the the proof of work checking the blockheader hash and nonce?

Where in the source code do we check whether
  hash(blockheader*nonce) < Difficulty

The function you are looking for is in pow.cpp:

bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params& params)
{
    bool fNegative;
    bool fOverflow;
    arith_uint256 bnTarget;

    bnTarget.SetCompact(nBits, &fNegative, &fOverflow);

    // Check range
    if (fNegative || bnTarget == 0 || fOverflow || bnTarget > UintToArith256(params.powLimit))
        return false;

    // Check proof of work matches claimed amount
    if (UintToArith256(hash) > bnTarget)
        return false;

    return true;
}

  a) this is not the code that miners use to perform the check; it probably is the validation on node-side ?

This is on the node side. Miners do not use Bitcoin Core software for mining, this check is implemented as part of the ASIC design, so not even software at all.

  b) here the "hash" refers to what exactly ?

Here the hash is the function used to calculate the block hash. In Bitcoin, this is 2 rounds of sha256, sometimes called hash256. See Bitcoin Wiki - Bitcoin Hashing Algorithm

  c) why is this value tested against nTarget ? rather than Difficulty ?

Difficulty is just an abstraction of the nTarget, which represents the actual 256 bit value that the header must be less than (or equal to). The header is a 256 bit value, so it must be compared to nTarget. The conversion between nTarget and difficulty is difficulty = difficulty_1_target / nTarget, where difficulty_1_target is the target of the genesis block. See Bitcoin Wiki - Difficulty

  d) this check is usually advertised in media as "<"less rather than "<=" less than equal. But seeing how this line is coded , it means HASH<= nTarget is OK.

correct.


How do I keep my transaction from my CC to Bitcoin anonymous

Not likely, your bank will see whom the funds are sent to and the amount you are spending. After all they do need to send that money to the exchange that you are using to buy and sell on. Also many exchanges have to abide by know-your-customer and anti-money-laundering statutes that apply in the exchange's and your jurisdictions.  In the US buying from an individual with cash is the best way to anonimize your transaction.


Is there a Bitcoin bank, which gives interest on my deposit?

Please Take Note: Flexcoin has been hacked and is no longer operating.

Original Post shown below:

Right now, the closest thing you can find to a bank is Flexcoin. If you keep your money there, you will receive a variable interest (they call it discount for legal matters) every month. They also have a user defined cold storage service available for those who want to keep their funds offline.

Here is how it works. Every time you withdraw money from Flexcoin, you pay a fee:

  Fees:

  Flexcoin to Flexcoin = FREE
  Bitcoin to Flexcoin = FREE
  Flexcoin to Bitcoin = 0.01 BTC or one half of one percent of the transaction amount (whichever is greater)
  Cold Storage Transaction Fee (outbound) = 0.02 BTC or one percent of the transaction amount (whichever is greater)
  Cold Storage Transaction Fee (inbound) = 0.01 BTC or one half of one percent of the transaction amount (whichever is greater)

This fee is used to pay miner fees and keep the service running. The rest of it is distributed among clients:

  Discount Payout:

  70% of the fees collected are disbursed to the account holders as
  discount payments on any fees already paid or any potential future
  fees, based on the following formula…

  (your account balance / total balance of all flexcoin accounts) *
  ((all fees collected – miner fees) * 0.7)

Here are two bitcointalk threads about the discount payments for the first two months.

As a final note, I would like to say that I personally think that this kind of service is not very useful right now because the Bitcoin price is too unstable. For example, yesterday the price dropped 15%. Any interest you might earn becomes irrelevant in this scenario.


I finally found how access the node from my laptop I just adding the following to the litecoin.conf file

rpcallowip=0.0.0.0/0

I saw it in this Answer


Best way for anonymous purchases (for small amounts only) with credit card or Paypal if you have Bitcoins to spend? Bitcoin-OTC? No name credit card?

Taking a quick look here: https://en.bitcoin.it/wiki/Selling_bitcoins reveals that BTC-E is capable of doing PayPal withdrawals.

I'm not sure how closely it meets your requirements, and PayPal clearly requires you to provide personally identifiable information, but it could be helpful.


Why do websites such as satoshimines and bustabit generate new addresses every time?

There are privacy advantages of always generating a new address.

You can easily accomplish this with the use of HD wallets.


Why is my /Library/Application Support/Bitcoin directory missing?

Try going to your Local, User directory of the Library.

i.e. try this: ~/Library/Application Support/Bitcoin/

You'll see a path similar to this:

"/Users/myname/Library/Application Support"


Why was the upper limit of 21 million bitcoins put in place?

There are a lot of reasons and I don't think it's known what factors led to the final decision.

For one thing, when the basic Bitcoin mechanics were designed, there was a significant risk that Bitcoin would never be adopted. By giving a fixed term to mining and a fixed supply of Bitcoins, the original designer(s) increased the chances that people would want to acquire Bitcoins. The prospect that future scarcity would increase their value likely induced people to mine even when the economic argument for doing so was quite thin.

It's also possible that there was hope that people who didn't like inflationary currencies would be drawn to Bitcoin. There are people who see inflation as a theft or tax. The ultimate lack of inflation in Bitcoin attracted people with those views to the currency.

And, of course, some way was needed to distribute the currency. Using the initial distribution of the currency as a way to build sufficient computing power to use proof of work to secure the currency until transaction fees could take over was probably Bitcoin's biggest bit of genius.

It appears this strategy worked, at least so far.


How to start multiple altcoin rpc daemons at once?

in seven different ctyptocurrencies

Not a good idea. Trust me. Bitcoin is enough, and for that you don't need any daemons. Bitpay or blockchain.info can handle it for you.

Well, here is what I do to start Litecoin daemon:

  "C:\Program Files (x86)\Litecoin\litecoin-qt.exe" -server -rpcallowip=127.0.0.1 -rpcuser=user -rpcpassword=password -rpcport=1488


Are there any legitimate cloud mining services?

Most of the cloud mining services are scam and doesn't stays in the long run. You can check out this thread to avoid cloud mining: https://bitcointalk.org/index.php?topic=878387.0

Good luck.


How many Bitcoin addresses are/have been carrying a balance?


CLion only supports using the CMake build system. However Bitcoin Core uses the autotools build system. Without some special configuring, it is unlikely that you will be able to build Bitcoin Core using CLion as the default CMake config will need to be modified to work with Bitcoin Core.

Instead of using CLion to build and debug it, you should be able to build Bitcoin Core in a terminal and then execute the resulting binary in CLion's debugger.