Bitcoin wallet shows empty after I installed Windows on SSD My PC stopped working a while ago (BSoD on every restart). I bought an SSD and installed Windows 7 64-bit on it (same as I had on my HDD). I then attached the HDD back into my PC and intended to back up everything important before I formatted it. All my old files are still on the HDD, including Bitcoin-Qt and my wallet.dat. Which is why my coins should also be there, right?

I now opened my wallet, but I noticed it shows my balance is 0.00 BTC. It hasn't yet synchronized fully with the web (about 23,000 blocks left as I'm writing this), and shows it's not up to date. It also shows none of my transactions or anything.

Previously (before buying the SSD) the wallet still showed my BTCs despite it not being fully synchronized.

I have tried to run Bitcoin-Qt with the -rescan command, but this didn't help.

Is there anything I can do to see if my coins still are there and to get them back? I'm afraid that if I let it synchronize fully then all this becomes somehow permanent..

Depending on how recently you purchased/mined your bitcoins, the fact that your client hasn't synced might be why you don't see any balance being shown.

The reason for this is that your wallet doesn't actually contain any physical data representing coins, it simply contains keys that allow you to spend the values associated with a specific address. The way that the bitcoin network determines the number of coins associated with an address is by traversing the entire blockchain and summing all of the transactions including that address. When the bitcoin qt client is syncing, it is downloading this blockchain. Therefore, if all of your transactions happened in the blocks that you have not downloaded yet, it will look like your wallet contains no coins.

This means that the solution to your problem may be to just wait until the bitcoin client has fully synced. If/when your client downloads the blocks with your transactions in them, your balance will be updated. If your client syncs and you do not see your balance change, that means that the bitcoin client is not reading the correct wallet. Make sure that you have copied the wallet.dat file from your old hard drive to the correct place on your new one. NOTE: Make sure that the bitcoin client is CLOSED when you copy the wallet.dat file.

If your client has fully synced and you are sure that the correct wallet.dat file is loaded, and you still do not see your balance updated then you are probably out of luck. If you have lost the cryptographic keys stored in your wallet.dat file, the damage has already been permanently done.


Retrieving BitCoin Payments, Confirmation Question I'm receiving BitCoin payments via the blockchain.info api.

I notice it sends a confirmations parameter, and it also continues to call the callback url until the response is *ok*.

Instead of manually checking every x minutes via a third-party site to see whether or not txid has x confirmations, would it be possible to just not output *ok* until there is x confirmations?

I'm not sure whether or not the blockchain stops sending the callback, and was wondering if this is possible or not.

Cheers.

Yes, you can do that. Yes, it will eventually stop sending callbacks.

Expected Response
In order to acknowledge successful processing of the callback the server should respond with the text *ok*. If the server responds with anything else the callback will be resent again every new block (approximately every 10 minutes) up to 1000 times (1 week).

https://blockchain.info/api/api_receive


How to connect to a node using PHP I want to make a simple PHP script that connects to a node (on my server) so that I can receive the data it relays.

However, I am new to sockets, and I am having difficulty with the handshake process. This is what I've got so far:

1. Version Message

I have contstructed my own version message. The result looks like this:

Config
------
version:      60002
node:         85.119.83.25:8333
local:        90.213.66.225:8333
start_height: 0

VERSION MESSAGE
---------------
Header:Array
(
    [magicbytes] => F9 BE B4 D9
    [command] => 76 65 72 73 69 6F 6E 00 00 00 00 00
    [payload_size] => 55 00 00 00
    [checksum] => 18 32 C2 E4
)

Payload:Array
(
    [version] => 62 EA 00 00
    [services] => 01 00 00 00 00 00 00 00
    [timestamp] => 18 A3 CA 57 00 00 00 00
    [addr_recv] => 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 55 77 53 19 20 8D
    [addr_from] => 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 5A D5 42 E1 20 8D
    [nonce] => 87 58 8D 22 00 00 00 00
    [user_agent] => 00
    [start_height] => 00 00 00 00
)

Serialized:
F9BEB4D976657273696F6E0000000000550000001832C2E462EA0000010000000000000018A3CA5700000000010000000000000000000000000000000000FFFF55775319208D010000000000000000000000000000000000FFFF5AD542E1208D87588D22000000000000000000

Are there any obvious mistakes? Things I'm unsure of are:

What is my addr_from port meant to be?

2. Socket Connection

Next I'm trying to send this version message to my node, and get a version message back. Here is my code:

$socket = socket_create(AF_INET, SOCK_STREAM, 6);
socket_connect($socket, $node_ip, $node_port);
socket_send($socket, $message, strlen($message) / 2, 0);
socket_recv($socket, $buf, 2000, MSG_WAITALL);

var_dump($buf);

All of the socket functions appear to be successful, but the result of var_dump($buf) is NULL.

I suppose my biggest problem is that I'm not receiving any error messages, so it's difficult to troubleshoot where I'm going wrong. Can you point me in the right direction?

Here's my PHP script so far: http://pastebin.com/q7zf4NMj

I was sending the data across the socket in hexadecimal format, but it appears that it should be in binary.

This does the trick: hex2bin($message)

Link to just-about-working script: https://bitcoin.stackexchange.com/a/48399/24926


Is there any advantage to owning physical bitcoins? The title pretty much says it all? Is there a security advantage to owning physical bitcoins such as those offered by Casascius? If so is it significant enough to justify the price difference between electronic and physical bitcoins?

Is there a security advantage

Kinda. On one hand, you don't have to worry about getting a virus and losing your coins.

On the other hand, you need to trust that the person who made those physical bitcoins doesn't still have a way to spend them. (They could have saved a copy of the private key for claiming those coins before writing it below the hologram.)


Byzantine fault-tolerant consensus - Why 33% threshold Can somebody tell me why in dbft the threashold is 1/3 for malicious nodes? I mean that seems pretty abitrary. I have no problem if it is abitrary but is it?

Note: I'm not referring to Bitcoin. I chose this Forrm, because there is not game-theory or Antshares/Neo-forum.

We have a mathematical proof that to tolerate n malicious nodes, you need 2n + 1 good nodes. The full proof is found in G. Bracha and T. Rabin, Optimal Asynchronous Byzantine Agreement, TR#92-15, Computer Science Department, Hebrew University. It's also well known in the industry. It is not possible for an asynchronous system to provide both safety (the guarantee that all non-malicious nodes will eventually agree on what progress was made) and liveness (the ability to continue to make forward progress) with more than this number of malicious failures.

You can trivially ensure safety by simply making no forward progress at all. And you can trivially make forward progress unsafely by just letting each node do whatever they want. Neither of these modes of operation are useful.

Let's take a step back to make this answer more helpful:

Why do you need a distributed agreement algorithm at all? Well, you need one in cases where there is more than one way a system could validly make forward progress and you need all the participants in the system to agree on which one of them.

Consider a simple example: I have $10 in the bank, and I write two $10 checks, one to Alice and one to Bob. Either one alone is valid, but we can't let them both go through.

If we had a central authority, they could just clear whichever one they saw first. But what if we don't want a central authority or don't want a single point of failure? And what if we have potentially malicious participants?

Well, you could just sort the checks after representing them as binary data. But that's where the asynchronous component bites us. When do we sort them? Say I see both checks and sort them. How do I know that one second later I won't see a third check that sorts first? And maybe someone else already saw that one. Ouch!

So, we have the following requirements:

1) Our system is asynchronous.

2) Some participants may be malicious.

3) We want safety, that is, we do not want one honest participant honoring one check and one honest participant honoring the other.

4) We want liveness, that is, it's not fair just saying we never clear any checks. Sure, that's safe, but not useful. We want to be sure that we eventually agree on which checks to clear.

So, now the question arises -- how many dishonest partcipants can we tolerate in our asynchronous system and still guarantee both safety and liveness?

As a simple way to get the gist of the proof, though it is not rigorous:

Suppose we have n nodes of which h are honest and d are dishonest. Obviously, n = h + d. Now the system needs to come to consensus on which of two checks to clear.

Think about the case where all the honest nodes are evenly split about the two directions the system could make forward progress. The malicious nodes could tell all the honest nodes that they agree with them. That would give h/2 + d nodes agreeing on each of two conflicting ways the system could make forward progress.

In this case, the honest nodes must not make forward progress or they will go in different directions, losing safety. Thus, the number of nodes required to agree before we can make forward progress must be greater than half the number of honest nodes plus the number of malicious nodes, or we lose safety.

If we call t the threshold required to make forward progress, that gives us: t > (h/2) + d. This is the requirement for safety.

But the malicious nodes could also fail to agree at all. So the number of nodes required to agree before we can make forward progress must be no more than the number of honest nodes or we lose liveness.

This gives us t <= h. Or h >= t. This is the condition for liveness.

Combining the two results, we get:

h >= t > (h/2) + d
h > (h/2) + d
(h/2) > d
d < (h/2)

Thus the number of faulty nodes we can tolerate is less than half the number of honest nodes. Thus we cannot tolerate 1/3 or more of the nodes being dishonest or we lose either safety or liveness.


Why binary trees? Is there any particular benefit to using binary trees instead of some higher radix? Bitcoin stores transactions in binary Merkle trees. They take O(log2 n) to traverse.
If I used something like a ternary tree, where each node (including the root) references three branches/leaves instead of two, it would take O(log3 n) to traverse. Why not pick a radix higher than 2? Is it because of space efficiency for SPV, or something like that?

Bitcoin transactions are not stored in a Merkle tree. That is just one way of representing them.
The most common serialization for blocks is just:

Header (prevhash, merkleroot, time, nonce, difficulty, version)
Number of transactions
Concatenation of all those transactions

This serialization is used on the P2P network in block messages, as well as on disk for various software implementations. Other serializations exist, for example BIP152 compact blocks serialize them as a concatenation of transactions, where most of them are replaced with a short identifier, hoping that the receiver already have them.
The Merkle tree is relevant to block's commitment structure; the question on how you compute the hash of a block from its contents. That's all - the tree is never actually materialized.
This matters for one purpose only: being able to give short proofs inclusion of a transaction in a block. To do that, you must provide the transaction, as well as all partners that transaction is hashed with, so the receiver can recompute the parent, recursively, until they hit the merkle root (which they knew ahead of time).
What happens if you'd use a ternary tree? Yes, you'd have log(3)/log(2) times fewer steps in the tree, but for every inner node, you'd need to give two partner hashes. Using any higher number just makes the bandwidth cost worse.
In short: in terms of inclusion proof size, binary Merkle trees are best.


How to reward mining in a blockchain that doesn't store currency? I understand the bitcoin blockchain motivates mining because there's a bitcoin reward for the miner who solves the pending block.

What if a blockchain doesn't store currency data but some sort of ownership data that cannot be represented by currency, e.g. tweets or land and stock ownership.

It would probably be too much to reward a miner with the ownership of land. And even if it were appropriate, there could also be other cases in which the blockchain doesn't store data regarding any kind of asset ownership.

Is it possible to offer reward that is not coupled to the data of the system?

There are several blockchains that already do this. Colored Coins (on bitcoin blockchain), Counterpary (on bitcoin blockchain), NXT, BitShares, Ethereum and others allow to represent any asset you wish like land, cars, consultancy hours, etc., using digital tokens (e.g. the "data" of the system as you called it) which is irrespective/decoupled of the reward they get.

See Colored Coins for how you can use metadata in a bitcoin transaction to achieve that result. It is especially easy to implement using Counterparty.

So, you can already store the kind of data you want in parallel to a digital token that rewards the miners.

If you meant, only having the asset in the blockchain and no reward then the answer is no, you cannot: you always need something in digital form that can be securely shared to the contributors**.

Hope this helped.

**For an internal reward, you have to give something of value to the contributors within the system. Say, that you don't want to give money/currency but instead some service. In order to keep a proper count of the rewards for each contributor you would need a digital way of representing the reward, ie. by using a digital token. To securely keep track of the rewards you need to also put them in an immutable structure, ie. the blockchain.

Thus, whether you want to give money or chickens or some kind of service to the contributors you have to digitally represent it (tokens) and secure it (blockchain). The token represents the reward and it does not need to be money. However, it is very practical to think about it as money since this is the unit of exchange that most of us are used to.


How do I disable mining in `bcoin`? When running bcoin, how does one disable mining by default? I just want to run a full node without mining. There seems to be no config options to control it.

Mining is disabled by default, it must be switched on with RPC commands:

https://bcoin.io/api-docs/#rpc-calls-mining

Keep in mind without additional hardware, bcoin can only effectively generate blocks on test networks (like simnet and regtest). A bcoin full node can be used by a mining pool operator to generate block templates and ultimately find valid blocks, there has been at least one block mined on mainnet with a bcoin full node.


Block Hash and Nonce generated by GenesisH0 python script is incorrect After running GenesisH0 python script to generate the Genesis block for a local testnet (using v0.15.1), I got the following results.

merkle hash: 09a3e8eee58b90dba48f458a5e6bc04359b3630bbebdd5289c11818c756d5417

pszTimestamp: Yahooo 02/Feb/2018 SUV's accelerator sticks at speeds up to 100 mph

pubkey: 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

time: 1518480000

bits: 0x1d00ffff

nonce: 3318186986

genesis hash: 0000000007783526b2049ea1ce5720e6f7486a9bb48a60bb2e93b892dd229984

When placing this information in chainparams.cpp and running the bitcoind after compiling it failed. The nonce produced by the script produces a different block hash when CreateGenesisBlock is executed.

Does anyone know why this script no longer works to create the genesis block for version v0.15.1?

You need to add -v option putting the coin reward value and multiply it with * 100000000. Example you have a block reward of 50 it would be -v 5000000000.

python genesis.py -a scrypt -z "Yahooo 02/Feb/2018 SUV's accelerator sticks at speeds up to 100 mph" -p "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" -t 1518480000 -n 0 -v 5000000000 -b 0x1e0ffff0

Try this and it will give you the correct Genesis hash. Note I replaced the nonce with zero, you can put another nonce on it or just let it be.


Bitcoin Core client upgrade from V0.7 2-beta to latest 0.15.X (Oct2017) - ‘wallet.dat’? I need to apply an upgrade to my Bitcoin Core client From V0.7 2-beta to latest.

I've got some advice that I need to make that upgrade a 2 step process
(i) V0.7 2-beta' TO Bitcoin Core 0.14.2
(ii) Bitcoin Core 0.14.2 to Bitcoin Core 0.15.X

My questions is regarding my ‘wallet.dat’ file in this 2 step process.

Does the wallet.Dat file need to be put back in AFTER phase (i) and resynched ?
OR
Can I put the wallet.Dat file back in for the first time only after phase (ii) and synch ?

Cheers

You don’t need to touch the wallet file (but back it up), the format hasn’t changed and is safe to upgrade on top of.


How do I get set up on Signet? I have heard about Signet here and here.
How do I get set up on Signet?

You have two options to get set up on a Signet. One is to set up your own independent custom Signet that you can control. The other option is to use the default Signet set up and administered by Kalle Alm and AJ Towns. I will focus on the latter here.
Currently as of the time of writing (August 2020) the Signet PR has been merged into Bitcoin Core, but is not in a release yet, which means you need to compile Bitcoin Core's master branch yourself.
Build instructions for Bitcoin Core are here (Windows, Mac OS, Linux).
Once you have successfully built the master branch you should be able to use the -signet flag e.g.

./src/bitcoind -daemon -signet

./src/bitcoin-cli -signet getnewaddress

To obtain some Signet Bitcoin there is a Signet faucet here: https://signetfaucet.com/
You can track Signet transactions with the Signet block explorer here: https://explorer.bc-2.jp/
For more details see Kalle's workshop at Advancing Bitcoin 2020 that shows you how to make Taproot transactions on Signet and debug Taproot scripts using Kalle's Bitcoin script debugger btcdeb. (Beware that the workshop is from before Signet was merged into Bitcoin Core, so some of the details are outdated.)


Error in creating bitcoin raw transaction I am creating a raw transaction to send amount from from_address to to_address. While sending a transaction I got an error. I posted the detailed process of creating a raw transaction. Could anyone tell me where it was going wrong?

from_address = '2NAvmqmZmodXKDHyWQaRufsFptZ6cDPVaPQ'
to_address = '2MyTfwJFbWYueyFpDjdN8cJ4ZwsSA7UfN8s'

Unspent of from_address

[{'txid': '421ac74f3fb137ea0f65d20e71825abefd463322b4e4a9033057e78e2a27bb69', 'vout': 1, 'address': '2NAvmqmZmodXKDHyWQaRufsFptZ6cDPVaPQ', 'account': '', 'redeemScript': '00140363a5b9ce91754185b3d39d292f262ac3f417c5', 'scriptPubKey': 'a914c1f4f356a6c6d28742dd1e80270edd55e6a5b0c687', 'amount': 0.5455, 'confirmations': 108, 'spendable': True, 'solvable': True, 'safe': True}]

creating rawtransaction

bitcoin-cli createrawtransaction [{'txid': '421ac74f3fb137ea0f65d20e71825abefd463322b4e4a9033057e78e2a27bb69', 'vout': 1}] {'2MyTfwJFbWYueyFpDjdN8cJ4ZwsSA7UfN8s' : 0.0495 ,'2NAvmqmZmodXKDHyWQaRufsFptZ6cDPVaPQ' : 0.4955}

signing the transaction

bitcoin-cli signrawtransaction '020000000169bb272a8ee7573003a9e4b4223346fdbe5a82710ed2650fea37b13f4fc71a420100000000ffffffff02f0874b000000000017a9149ca7d200ee0b4e751d1de0c56fd3cf8defde173d87b012f4020000000017a914c1f4f356a6c6d28742dd1e80270edd55e6a5b0c68700000000' [{'txid': '421ac74f3fb137ea0f65d20e71825abefd463322b4e4a9033057e78e2a27bb69', 'vout': 1, 'redeemScript': '00140363a5b9ce91754185b3d39d292f262ac3f417c5', 'scriptPubKey': 'a914c1f4f356a6c6d28742dd1e80270edd55e6a5b0c687', 'amount': 545500}] ['cR5YAMiTGaAwFgrEHeXK2MpEm8SEBFXm7pf2R2m6SNBx3sRqvPYw']

sendrawtransaction

bitcoin-cli sendrawtransaction '0200000000010169bb272a8ee7573003a9e4b4223346fdbe5a82710ed2650fea37b13f4fc71a4201000000171600140363a5b9ce91754185b3d39d292f262ac3f417c5ffffffff02f0874b000000000017a9149ca7d200ee0b4e751d1de0c56fd3cf8defde173d87b012f4020000000017a914c1f4f356a6c6d28742dd1e80270edd55e6a5b0c68702483045022100ccf694b3439a163ca100743c749ba80e6732d96e2f1dc951ea38c6aba7624cf102203463130bec546cd5cf5d0a18067b51cdd63b879eb34cbecf61b2883ee58021110121034fb6dfc450dd53dcb083cb38ad8ad4d5ad744e3da6c93b579eb19354c3ff2e6600000000'

Error:

raise Exception('Error in RPC call: ' + str(responseJSON['error']))
Exception: Error in RPC call: {'code': -26, 'message': '64: non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation)'}

You provided the amount incorrectly. The amount is 0.54551 not 545500. This is important as Segwit inputs include the previous output's amount in the signature. Providing the wrong amount will result in the wrong signature which will then fail validation.


DigitalNote Wallet Stuck on last node (415608) I've downloaded the 1.0.12-beta (last) version of the XDN Wallet from the official website, got the address, transferred 70€-worth of XDN in it using Changelly. The transaction worked fine and I got the confirmation from Changelly.

My wallet has the "not sync issue" that everyone else has (digitalcoin wallet won't sync), I tried to fix it by downloading the latest blockchain data and replacing the .dat and .bin files with the ones downloaded, then restarted the wallet.
The wallet started creating the cache, then it blocked showing "Synchronizing 415608/415608".
The digitalnotewallet.log's last lines shows the following error:

[node_server] Failed to connect to any of seed peers, continuing without seeds

So I'm stuck again without my updated balance.

Is there any way to access my wallet online using my private key, as can be done using a file with MyEtherWallet?

I hope it helps you, but the current version should fix that.
https://github.com/xdn-project/digitalnotewallet/releases

If this does not help, can try to change the p2pstate.bin file,
located in
C/Windows/Users/Your username/AppData/Roaming/digitalnote
with the file from this one
https://drive.google.com/drive/folders/0B4t0S1ES9L-RUUUzX2ZjUW5Xems
and should not help it all, say something!
And if needed, the current addresses should be:

176.9.2.145:8480,
73.187.10.116:42080,
176.9.147.178:8480,
148.251.51.113:8480,
122.173.153.251:42080

Best regards


How do I keep my miners from doing duplicate work? Someone has n machines to mine for bitcoins. What's the simplest way to ensure that mining work isn't duplicated?

(Will separate machines naturally work on different hashes even with the same recipient of rewards, or will there need to be some sort of pool software running organising nodes? Would having each new node create a wallet first be sufficent?)

My understanding of the mining mechanism is this:

The miner connects to a Bitcoin client (or pool) and submits a getwork request
The client (or pool) responds with a chunk of data containing the block data, including the randomized bits, and the nonce (the bit which the miner changes)
The miner increments the nonce multiple times until it either finds a solution or overflows, at which point it submits a new getwork request to the client (or pool)

Since the client/pool is responsible for handing out the getwork requests, the client/pool is also responsible for guarding against duplication. Since the entropy of the data handed out by getwork must, by definition, be greater than or equal to the output entropy of SHA256 (2^256 bits) it should have the same or lower chance of collision (1/2^256).

In this case a "collision" would be handing the same work to multiple miners and so we can say that multiple miners being given duplicate work has so low a risk of occurrence as to be a negligible risk.

One of my favorite comp sci professors once told me that the chance of such a collision (per unit of work) is about the same as winning the state lottery 11 times in a row, then being struck by lightning, surviving and being elected president. And he had the math to back this up...


Bcoin - Database backend not found /root/BCoin/node_modules/bcoin/lib/db/backends.js:16
    throw new Error('Database backend "' + name + '" not found.');
    ^

Error: Database backend "leveldown" not found.
    at Object.get (/root/BCoin/node_modules/bcoin/lib/db/backends.js:16:11)
    at Function.getTarget (/root/BCoin/node_modules/bcoin/lib/db/ldb.js:118:21)
    at LDB (/root/BCoin/node_modules/bcoin/lib/db/ldb.js:32:20)
    at new ChainDB (/root/BCoin/node_modules/bcoin/lib/blockchain/chaindb.js:58:13)
    at new Chain (/root/BCoin/node_modules/bcoin/lib/blockchain/chain.js:91:13)
    at Object.<anonymous> (/root/BCoin/p2p_pool.js:7:13)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
root@NoobEngine1:~/BCoin#

This happens when your dependencies get twisted up, especially when bcoin has an update where leveldown gets upgraded. You should be good with a npm rebuild leveldown to fix the dependency tree, but if that doesn't work rm -rf node_modules && npm i


In stratum mining pools, are most miners working on the same set of transactions? When miners connect to the server, they get a "job" message back with a merkle_branch field that has hashes that correspond to transactions that will be included in the block being worked on.

What I'm wondering is, does the pool server bother changing that transaction set very often, or do they just wait for a block to be solved, and only then broadcast a new job with a different list?

In other words, in between block solvings, is everyone in the pool generally working on the same set of transactions?

The stratum pool managing software I'm familiar with is https://github.com/zone117x/node-stratum-pool, so I can tell you what they do. Stratum is a protocol, though, so multiple pieces of software could implement it differently.

This parameter is controlled by the blockRefreshInterval in the config. Every blockRefreshInterval milliseconds, the stratum server checks the bitcoin core node, via RPC, for new blocks using getblocktemplate. If there hasn't been a new block since the last time getblocktemplate was called, then it sets the current job, which is returned to all new requests for work.

The polling interval suggested in the config is every 1 second. Miners may request work at very different rates as well, so some may be working on older work. As long as it's work for the next block, it's considered valid though. The pool does use the same node and mempool data to build blocks, though. So, given all these variables, miners most likely won't be working on the exact same transaction set.

Relevant bits of code:

https://github.com/zone117x/node-stratum-pool/blob/02e78da1ab53a2409bbb8721f9771346c373482b/lib/pool.js#L555-L562
https://github.com/zone117x/node-stratum-pool/blob/02e78da1ab53a2409bbb8721f9771346c373482b/lib/jobManager.js#L138
https://github.com/zone117x/node-stratum-pool/blob/02e78da1ab53a2409bbb8721f9771346c373482b/lib/pool.js#L492


Why do other miners check block validity along with proof of work? I am new to blockchains and bitcoins. So, please pardon the lack of understanding. Assume I am a miner who adds a bogus transaction (say a transfer from my account which has 0 balance to my other account). I get lucky and solve the proof-of-work puzzle first with this bogus data. I know that the other miners check if my block's data corresponds to my proof-of-work but do they also check if my data is valid? What happens when they realize that my block (which has been added to the blockchain) is invalid? What incentive do they have to perform this check instead of spending the computation power on solving the next block?
Other similar questions don't talk about the reason why other miners don't simply assume that a block with correct proof-of-work is valid and save time by not validating the data?

Miners are incentivized to validate both transactions and proof of work because if they start mining a new block on top of an invalid block any block they successfully mine won't be accepted by the full nodes and other miners on the network. Therefore the energy expended on finding a proof of work will be wasted. (Each block header refers to the hash of the previous block and so one single invalid transaction in a previous block would make all blocks mined on top of it invalid also.)
In addition, miners have made large investments in hardware (ASICs) and so their long term interests are aligned with the network. Even if all the miners on the network colluded to include an invalid transaction in a block, not only would some full nodes reject it but it would also be an attack on the long term viability of Bitcoin. Bitcoin only works if invalid transactions are not included in the blockchain.


Building libbitcoin libraries on Arch linux fails I'm trying to build libbitcoin libraries on Arch linux.
First I tried to download AUR packages. I successfully installed libsecp256k1 and libbitcoin. But if I try to compile libbitcoin-system and libbitcoin-database, compilation fails. The problem is conflict between libsecp256k1 and secp256k1 packages. The first is dependency of system and second of libbitcoin. If I trick the checking of secp256k1/libsecp256k1 library presence, the compilation fails on unit-testing. I'm also quite confused when looking on AUR repository. There is always  and -git (e.g. libbitcoin-database and libbitcoin-database-git). I tried every possible combination, but was never successful.

I also tried to download sources from github. First of all: I don't know whether to run standard ./autogen.sh && ./configure && make -j4 && sudo make install or rather sudo ./install.sh.

Again I successfully installed library secp256k1 and libbitcoin using the first approach, but when running ./configure in libbitcoin-database, i get error

configure: error: Package requirements (libbitcoin >= 4.0.0) were not met

Please has anybody successfully installed libbitcoin libraries on Arch linux?

Library modules provided by github/libbitcoin (incl. forked version of libsecp256k1) are by default installed using prefix /usr/local. configure script, that is run during build process, however, doesn't by default search for dependencies in /usr/local. So in order to make configure find other modules, one has to change the prefix for each module or tell the configure script where to look for the libraries - e. g. by setting variable PKG_CONFIG_PATH before running the script:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig.
pkgconfig directory contains configuration files with all needed information for those affected dependencies, so if the variable is set correctly, configure script will find them and compilation will be successful.

P. S. the compilation of libsecp256k1 needs to be done with flag --enable-module-recovery so as to be compatible with libbitcoin.


Electrum: "restoring" a wallet from a seed Suppose I set up a wallet with a deterministic seed passphrase. I then use it, moving bitcoins around, sending some change to change addresses. Electrum will apparently create more addresses when required; suppose it does so.

I later on 'restore' the wallet on a new Electrum install by entering the existing seed. How does Electrum know how many addresses to create? It may be the case that the original 8 addresses are now empty (0 BTC), and my btc are in addresses created later on. How does Electrum know how many deterministic addresses to create in order to see all of my existing btc?

One possible technique I can imagine: Electrum looks at the blockchain for the first addresses in the wallet. If it sees traffic to those addresses, it knows to keep trying more of the deterministic addresses until it sees no more traffic, at which point it stops generating addresses in your wallet.

Electrum uses a gap limit to stop looking for addresses in the deterministic wallet. The default gap limit is set to 20, so the client get all addresses until 20 unused addresses are found.

Change addresses have a gap limit of 3 and this is not modifiable by the user.


What are the differences between Bitcoin and Litecoin? What are the differences between the Bitcoin and Litecoin algorithms and protocol?

Litecoin is exactly like Bitcoin, but:

The hashing algorithm is CPU-friendly, meaning that having powerful GPU doesn't let you mine fast.
The difficulty of the blocks is set so they would be mined about every 2,5 minutes, instead of 10.

Other differences are cosmetic, like aiming to generate more Litecoins than there will be Bitcoins, using different port, etc.


Bitcoin Core coin control via RPC (CLI) Bitcoin Core introduced nice Coin Control feature accessible via the GUI client. To my surprise though, I don't see any obvious way how to make use of Coin Control via RPC/bitcoin-cli.

How can I pick a particular unspent output when creating a transaction via RPC?

You can, but the process is broken up into multiple RPCs.

First you use the listunspent RPC to find outputs to spend.

Then you use createrawtransaction with the inputs you want, and the outputs (destinations) you want.

If you didn't select all inputs and outputs already (including change, if necessary - any difference between inputs and outputs goes to fees), you can use fundrawtransaction to add more inputs using the normal coin selection algorithm, or to add change.

Then you use signrawtransaction to sign your inputs.

When all is ready, you can broadcast your transaction using sendrawtransaction.


Valid asset_pair for Kraken.com Im trying to utilize Kraken's API.
I'm looking for a list of supported asset_pair.

Example: query_public('Ticker', {'pair': 'XETHZEUR'}) will return ticker info for ethereum in relation to euros. The asset pair in this example is XETHZEUR.

Does anyone have access to such a list?

the list is found here:
https://api.kraken.com/0/public/AssetPairs

Also here's a list of assets:
https://api.kraken.com/0/public/Assets


When you create a multisig address from existing addresses, do the funds move there? If you have three addresses, lets say A, B and C and they each have 1 BTC. When you create a multisig address out of the three addresses, will it have a balance of 3 BTC or do you have to send the bitcoin from each address to it for the balance to be 3 BTC?

wil it have a balance of 3 btc

no

  or do you have to send the bitcoin from each address to it for the balance to be 3 btc?

yes


Can't restore Multibit HD 0.4.1 wallet into Electrum, Electron-Cash wallet for BCC I've followed some advice from messageboards and stackoverflow on how to transfer my Multibit HD wallet into either of these 2 (Electrum, Electron-Cash) clients, and I keep coming up with 0 btc (before I drained my Multibit HD wallet) or bcc in both with no transactions or history. I have the password and all the wallet words for the Multibit HD wallet, but it seems like that's of no help.

The things I've tried:

Seed words into either client, BIP39 seed option checked, changed derivation to m/0', FAIL
https://iancoleman.github.io/bip39/, put seed words into BIP39 Mnemonic, BIP32 tab selected, Multibit HD as the client selected, copy-paste BIP32 Extended Private Key into either client, FAIL
Same as 2, look through over 10,000 derived address to see if I could match any of the public addresses to ones in my wallet so I could write down the private keys, no derived addresses match the ones in my wallet, FAIL

Has anyone successfully obtained BCC from a pre-chain split Multibit HD wallet, or even transferred a wallet from Multibit HD 0.4.1 to Electrum (which would then be an easy copy to Electron-Cash)?

As a side note, I have sent all funds in the Multibit HD wallet to an Electrum wallet on another computer, so I'm free to experiment with the Multibit HD wallet without any risk of loss of funds.

I'd be willing to give the first person to successfully help me get the BCC, $25 of BCC as a little thank you. Not much, but then again I didn't have much Bitcoin to begin with :\

MultiBit HD uses a different derivation path from all other wallets; it does not use the BIP 44 standard for derivation paths. Thus you cannot use your MultiBit HD mnemonic or extended private key with other wallet software because they use different derivation paths and no wallet currently allows you to set an arbitrary derivation path.

The only way that I know of for you to get the MultiBit HD private keys is to use https://iancoleman.github.io/bip39/. Enter your seed words, choose the BIP 32 tab, and choose the option for MultiBit HD. If you don't see your addresses, try toggling the Hardened Keys option and see if that makes a difference.


technical requirement to running a Bitcoin node I want to run a full node in order to support the network, however i am wondering about what are the technical requirements to do so.

how much RAM(for utxo) do I need? and what internet throughput will be sufficient?

Bitcoin.org suggests the following minimum system requirements:

  Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux.
  145 gigabytes of free disk space
  2 gigabytes of memory (RAM)
  A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second
  An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesn’t exceed its upload limits. It’s common for full nodes on high-speed connections to use 200 gigabytes upload or more a month. Download usage is around 20 gigabytes a month, plus around an additional 140 gigabytes the first time you start your node.
  6 hours a day that your full node can be left running. (You can do other things with your computer while running a full node.) More hours would be better, and best of all would be if you can run your node continuously.


How to understand wallets? I'm trying to generate a mnemonic seed, and everything that goes with that. I'm using c++ / libbitcoin, using the following code - https://github.com/libbitcoin/libbitcoin-system/wiki/Examples-from-Addresses-and-HD-Wallets

When I compile & run the following code - get this output

Address, WIF, Wallets:
13ggzjqKyFGQZtxNWUoG4BFDPAgdBijUe4
L5PbbAgFUENjW7XjzPBSMUwtVpV8S62cXq14cwUGDdCq1xt1SiNU
13ggzjqKyFGQZtxNWUoG4BFDPAgdBijUe4
L5PbbAgFUENjW7XjzPBSMUwtVpV8S62cXq14cwUGDdCq1xt1SiNU
1

Mnemonic Word Lists:
family episode combine ask flee weekend sword spatial vibrant leg style fancy

When I take that generated mnemonic and put it in this site - https://iancoleman.io/bip39/

I am getting completely different paymeny addresses.

Digging through the source code of libbitcoin it has very little function documentation & this is the only code sample I could find. So can someone help me generate a wallet in libbitcoin where the data is recognized by other wallets/services? Thanks.

The address 13ggzjqKyFGQZtxNWUoG4BFDPAgdBijUe4 is generated from a different word list, not the one you mentioned.


Withdraw bitcoin to Philippine bank account I work as a virtual assistant and live in the Philippines and my employer is in the US. We've been using Paypal to send payments to me and my employer mentioned using bitcoins instead.

So I downloaded this Bitcoin wallet on my PC (we haven't done any transactions yet using bitcoin cause I want to understand it first) and was wondering how can I transfer the bitcoin money from that wallet to my bank account here in the Philippines?

Currently, the list of exchanges in the Philippines includes https://buybitcoin.ph/ and https://coins.ph/. Both of those allow you to sell Bitcoin and have the proceeds deposited as PHP into your bank account.

The way the process works is that you send Bitcoin from your wallet to the wallet of the Exchange, where it gets sold for PHP.

https://www.coinxchange.ph/ will be opening soon.  Disclosure: I'm an employee of CoinXchange.


Bitcoin mining by using solar energy. Is it possible? I have a peculiar question concerning about bitcoin mining, for example, in Brazil it is unfeasible due to the high cost of electric power. Is it possible to do mining by using solar energy?
Does someone know how much energy is necessary to setup a basic unit of bitcoin mining?
It sounds interesting for me, since solar energy is cheap! Of course you will have the investment with batteries, solar panels, cables, etc..  but I think it still possible..  any ideas?

EDITED

I'm looking for a basic project about mining bitcoin using solar energy.

It largely depends on what machine you want to power with those solar panels. You're definitely going nowhere with GPU based mining. As PCs consume a huge lot of energy, and those who don't, are equipped with Atom and Intel graphics, meaning mining won't get you far with that equipment.

However, it may be possible to run a USB ASIC miner based on a Raspberry Pi. I think those kind of machines consume very little energy. However, you may also need an Internet connection, but I'm assuming you already have a router you can connect to.

In that case, I'd buy one Raspberry Pi for each USB ASIC stick you want to buy.

The initial cost may be a bit hefty, though, and I'm not sure the performance would be that great, because there's just so much hashing power already in the Bitcoin network.

I'm sure you're better off mining Litecoin, Dogecoin or Feathercoin anyways. But well, there's no USB ASIC miner for scrypt cryptocurrencies, so you're out of luck for those alts.


Supposedly 'Satoshi' was found in Australia… is there any way to verify this? So far I can't tell what's true about all this.  It also seems like it'd be easy for someone to claim to be the pseudonymous creator of Bitcoin.  I've only seen information about this from main stream sources.  Does anyone know anything beyond the current main-stream narrative?

If someone purporting to be 'Satoshi Nakamoto' wanted to prove it, he/she could do so by signing a message using one of the same signing keys that 'Satoshi Nakamoto' used to sign one of his early messages during the release of bitcoin.  Or, he/she could announce that they will make a bitcoin payment from an address believed to belong to 'Satoshi Nakamoto' to some other address, then actually do so.


Why is Bitcoin better than other cryptocurrency? If there too many types of such kind of currency, will them be very cheap?

I have 4 BTC and since the current BTC price waves a lot, I am wondering this.

Thanks,

Only time will tell if Bitcoin is the better.
For sure is the first introducing this concept and the biggest market cap at the moment.

Be sure to understand the "cheap" concept. Absolute value means nothing

Suppose at time t1 there are 2 coins and their prices are:
A 1000$, B 1$

After some time this are the coin prices
A 2000$, B 1.5$

At time t1 coin A was the cheapest!


My bitcoin transaction has not cleared in almost a month because I accidentally set the fees too low. What can I do? Transaction ID: 050b5ba38506f8b5fb9054ff2f338999a082236a95f388449e1b8049c72e4f10

Like the title says, I have some bitcoin in a limbo transaction due to ever increasing numbers of unconfirmed transactions with a much higher fee than mine.

My ideal scenario would be to somehow cancel the transaction and have the coins return back to my wallet.

I was told from another source that Bitcoin Core evicts transactions after two weeks by default. However, it seems like that is not the case since it has been over 3 weeks now.

I was also told a method called "child pays for parent" but I am not sure if my situation would work for that.

Any help is greatly appreciated. Thanks!

You can spend in another transaction the outputs used in the limbo transaction. Off course, you need to put an higher fee so the new tx will be confirmed and the old will be invalid.


How do can I create a bitcoin wallet with a already created address and private key? I have a bitcoin address and a private key. What wallet can I use to import the key and address I already have? Every wallet I tried only lets you create a new address or use a 12 world recovery phase to access another wallet.

What wallet will let me directly import my private key & address?

Bitcoin Core supports importing private keys. Use the importprivkey RPC.


What is the best way to generate bitcoin wallet? I am trying to create a cold storage, and I'm becoming so paranoid about everything on software and hardware (also afraid of myself forgetting/losing the wallet) related to the setup.
I have read some information online about cold storage setup, and I have come up with these questions:

What is the safest way to generate bitcoin wallet? From the existing software such as bitcoin-core? electrum? (I thought of writing my own codes to generate bitcoin wallet, but there are so many types of bitcoin wallet BIP32, BIP39, etc which makes me think that it's not a good idea to do so)
How are we sure that bitcoin-core and electrum is generating a safe wallet? (not pre-seeded)
Which standard is the safest way to generate bitcoin wallet? BIP32, BIP39?
Does bitcoin-core uses BIP32 to generate the wallet? if not, which one does it use?
Does electrum uses BIP39 to generate the wallet? if not, which one does it use? (I read that electrum is using an extended BIP39.
I also read that bitcoin-core is not using BIP39 because it is not sure, but why BIP39 is still used in many wallets?
Is it possible that a hardware (CPU, motherboard, SSD, old computer that has been used by me before) is infected with a malware (from previous use or even from the manufacturer)? This malware might be able to mess with the entropy and create something like a pre-seeded wallet?

Thank You

What is the safest way to generate bitcoin wallet? From the existing software such as bitcoin-core? electrum?

Ensure you are using open source hardware and nothing is backdoored. I am not an expert but Luke Dashjr might help you with this considering some interesting tweets in past.

Ensure there are no malwares on system you use for bitcoin wallet. You can also use virtual machines or Qubes OS to keep things separate. Example: One virtual machine for bitcoin cold storage, One for hot wallet, One for social networking, One for office related work etc.

Don't use VM images from random sources, it can be backdoored: https://www.reddit.com/r/Bitcoin/comments/jrxgj8/bitcoin_core_node_hacked/

Use open source bitcoin wallet with more usage and active development, compile it yourself after reviewing the code for important things atleast: https://bitcoin.stackexchange.com/a/99480/

Create multiple backups for your wallet, test those backups and keep them safe.

Do not enter seed or anything on any website that helps other people get access to your bitcoin. Avoid entering seed on any online device.

Use hardware wallets like Coldcard if you find them safer compared to other things.

I also read that bitcoin-core is not using BIP39 because it is not sure, but why BIP39 is still used in many wallets?

https://bitcoin.stackexchange.com/a/88244/


Restore BIP39 mnemonic in Electrum using command line and custom derivation path? How would I restore a bitcoin wallet using the Electrum command line on Linux with a BIP39 mnemonic and custom derivation path?
I need to use m/0' for legacy and m/1' for native segwit?
I cannot find anything in the documentation about BIP39 mnemonics or using a custom derivation path without using the GUI interface of Electrum.
Thanks!

You can't do it from the console, but you can do it through the python API.  Stuff like this is done in their test scripts all the time.
Look at the test_bip39_seed_bip84_native_segwit in their github repo for some hints
Another alternative would be to convert your bip39 seed to an xprv and use the restore command line option with the newly minted xprv.
Here's some sample code to convert your mnemonic to an xprv.  Obviously change the derivation path and mnemonic seed:
#!/usr/bin/env python3
from mnemonic import Mnemonic
from pycoin.symbols.btc import network as btc

code = ("abandon abandon abandon abandon abandon abandon" +
        " abandon abandon abandon abandon abandon about")
path = '84H/0H/0H'
mnemo = Mnemonic("english")

xprv = btc.keys.bip32_seed(mnemo.to_seed(code)
           ).subkey_for_path(path).hwif(as_private=True)

print("Issue the Electrum commands")
print(f"\tconvert_xkey {xprv} p2wpkh-p2sh")
print(f"\tconvert_xkey {xprv} p2wpkh")

Do keep in mind that Electrum imports are assumed to be at the Account Extended Key level.  This means that importing an xprv at the derivation path m/5' level (random example) will have you a first receive address of m/5'/0/0 and your first change address of m/5'/1/0.  Only way around this behavior would require importing the WIF keys one at a time.  A simple change to the pycoin code, but there is no simple xprv way to do it.


Lost my wallet password. Is there anything I can do? I lost my bitcoin wallet password, it was stored on a USB and I've lost the usb. Luckily I have a backup of my wallet. Are there any way possible I can get my coins back? Is there a bitcoin wallet cracker available?

Also the version was bitcoin-qt 0.50, I've heard there may be vulnerabilities in the code that could be able to get my coins back?

Are you saying you still have a backup of the wallet.dat file ? If so, did you secured your bitcoin-qt 0.50 with a passphrase ? If not, install the latest version of bitcoin-qt, start the program once, exit it after it has appeared on your screen, and replace the wallet.dat file that has been created with the backup. Then restart bitcoin-qt and wait till the blockchain has been completely downloaded. This could take hours, but your BTC should appear again.


Is there some way to merge two wallets or to import/export addresses? I've got one wallet.dat from my laptop and another on my desktop, each containing various (different) receiving addresses that I use pretty often. I'd like to merge them into a single wallet.dat so I can see all my balances in one place.

If there isn't some piece of software that can truly "merge" the two, is there some way to at least export an address/keypair from one wallet and then import it into the other?

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

  Currently you can:

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


Is there api for ripple.com to authentificate with username & password? I'm googling, and looking for such option, to authenticate to ripple.com with out secret key, but username and password.

I've found only with secret key:

# curl -X POST -d '{ "method" : "sign", "params" : [ { "secret" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", "tx_json" : {"TransactionType":"Payment",  "Account":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount":"200000000", "Destination":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV" }} ] }' http://s1.ripple.com:51234

How properly to authenticate with username and password only?

Usernames and passwords are client wallet functions. They have no meaning to the Ripple network and servers would have no idea what to do with them.

In fact, servers do not have permission to obtain encrypted wallets because if they did, they could attempt to brute force decrypt them, negating the security advantages of the blob vault. By design, is is as difficult as possible to ask someone else to obtain your wallet, purportedly on your behalf. This is necessary to prevent malicious web sites from sending javascript to your browser that causes it to brute force other people's wallets as you browse the Internet.


bitcoind crashing due to insufficient memory? EDIT 3

Bumping my VPS to 1GB of physical RAM stopped the crashing issue... UNTIL said VPS ran out of disc space.

I added prune=10240 to my ~/.bitcoin/bitcoin.conf file such that the blockchain file would start pruning transaction history upon reaching 10GB filesize (1024 MB * 10 = 10GB).

EDIT 2

This seems to be a memory issue, not a VPN networking issue. I turned OpenVPN off and restarted bitcoind only to see it silently crash again.

I've now added a 1GB swapfile to expand the available memory space (risk is this will cause performance issues for the OS). Will update once again if this solves the issue. If not, I will probably end up trying to upgrade the VPS instance to 1GB of physical RAM from 512MB.

EDIT
Found some interesting stuff in the log relating to tor...

root@sf-vps:~# cat ~/.bitcoin/debug.log | grep tor -i
2016-11-13 16:52:21 Default data directory /root/.bitcoin
2016-11-13 16:52:21 Using data directory /root/.bitcoin
2016-11-13 16:52:21 Using at most 125 connections (1024 file descriptors available)
2016-11-13 16:52:29 torcontrol thread start
2016-11-13 17:08:43 Default data directory /root/.bitcoin
2016-11-13 17:08:43 Using data directory /root/.bitcoin
2016-11-13 17:08:43 Using at most 125 connections (1024 file descriptors available)
2016-11-13 17:08:50 torcontrol thread start
2016-11-13 17:08:50 tor: Error connecting to Tor control socket
2016-11-13 17:08:50 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect
2016-11-13 17:08:51 tor: Error connecting to Tor control socket
2016-11-13 17:08:51 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect
2016-11-13 17:08:52 tor: Error connecting to Tor control socket
2016-11-13 17:08:52 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect

I've installed the Bitcoin software on Ubuntu 16.04. I'm able to run bitcoind -daemon for a few minutes, but after a while the process crashes.

Interestingly, I don't see any reasons in ~/.bitcoin/debug.log explaining why the program might have terminated.

I suspect a couple of things:

Not enough disc space to store the entire blockchain. However, I don't think this is the case as running df - h shows a combined total of only ~41% disc consumption:

root@sf-vps:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            241M     0  241M   0% /dev
tmpfs            50M  3.1M   47M   7% /run
/dev/vda1        20G  6.3G   13G  34% /
tmpfs           247M     0  247M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           247M     0  247M   0% /sys/fs/cgroup
tmpfs            50M     0   50M   0% /run/user/0

Server is not able to receive inbound messages as I'm running a VPN. Is it possible that I'm experiencing a networking issue, e.g. inbound traffic to port 8333 (the default for bitcoind) is not being allowed through my VPN? I can't remember how to change the VPN config to allow connections on specific ports, but that's where I'm looking next...

root@sf-vps:~# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         159.203.240.1   0.0.0.0         UG        0 0          0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG        0 0          0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.12.0.0       0.0.0.0         255.255.0.0     U         0 0          0 eth0
159.203.240.0   0.0.0.0         255.255.240.0   U         0 0          0 eth0

Thanks in advance for your help :)

Are you sure 9051 is the right port for tor? 9050 is the default port.
You can check it by using sudo netstat -plnt | grep ':9051'.

And is the tor service active?

When it still doesn't works try disabling selinux(If you are running linux). I had some problems with tor because selinux was blocking it. But don't forget to put it back on. If it is selinux you can make a rule for tor/bitcoin in selinux.


USDT transfer at BTC address from binance exchange I am transfer USDT to BTC address by mistake but since last 3 month USDT missing .how I will take back in my account.
  Binance not help me for get back my USDT.or BTC. They r saying when your transection abnormal or cancel you contact us.since last 3 month I am reading these by binance.

The btc address you transferred the coins to, does it belong to you or binance? If it is yours, then you can be able to recover it without needing binance.


Explanation of Blockchain Payment systems Trying as much as possible to understand what Blockchain technology is (As i am trying to see if i can be a Blockhain developer) and I just worked on a money transfer system myself and i hear everyone talking about blockchain being the next to important thing in order to develop a money payment system.

following what i read on the internet , a system using blockchain technology should have the following capabilities,

1.) After making the Payments should generate the block and generate the block hashes and save them to be used as a transaction Log Later on, in order to trace the history of the payments from the beginning till its present state... 2.) Peer-to-peer Allowing users to make payments and view track of the transactions etc

Now i want to understand in its short meaning, its this what blockchain is all about?

A block chain:

Block - a chunk of data

Chain - a sequence of links

So you need some data, and you need it to be inviolably linked to another block of data (repeatedly) forming a chain. In essence you take your first block of data, hash it, and append the first hash to the first data. For your second block of data, you include the first hash in the second block of data, the ph hash the whole lot to get your second hash. The second hash forms part of the data in the 3rd block. In pseudocode

Hash1=calc_hash(Data1)
Block1=Data1+Hash1
Hash2=calc_hash(Hash1+Data2)
Block2=Data2+Hash2
Hash3=calc_hash(Hash2+Data3)
Block3=Data3+Hash3

This is how the chain link between blocks is established - the hash from block N is involved in calculating the hash for block N+1. If you alter the data for block N, the hash will fail. If you calculate a new hash and try to pass it off as legit, the hash for block N+1 will fail.. and so on

It’s not new.. for many years longer than bitcoin has existed credit card terminals in certain countries have been communicating using a protocol that hashes each transaction and uses part of that hash in hashing the next transaction. It provides tamper deterrence/checking and also allows some nifty tricks such as telling the bank in a subsequent transaction whether the previous transaction was voided or not. Bitcoin might well pack many transactions into a block but it doesn’t have to- the credit cards terminals I mentioned for example, have a single transaction per hashed block


How to recognize dependent transactions sitting in the mempool? I am trying to find out the relation among dependent transactions in the mempool.
I have already used the "depends" field and tracked the transaction ids to go through.
But I still can not clearly figure out how and when this field is modified or updated to show the dependencies.
I am looking for a scenario for that as well.
Thanks

getrawmempool
getrawmempool(true)
Returns all transaction ids in memory pool as a json array of string transaction ids. If we use verbose as 'true' it returns more than just transaction ids and one of the result is 'depends'.
"depends" : [(json array) unconfirmed transactions used as inputs for this transaction "hex",(string) parent transaction id]
Example:
"2004b140d4b4eb1048cdb7def895a211c279711e47cc402c64f91f1c0d20f0dc": {
    "fees": {
      "base": 0.00000446,
      "modified": 0.00000446,
      "ancestor": 0.00000892,
      "descendant": 0.00000446
    },
    "vsize": 142,
    "weight": 565,
    "fee": 0.00000446,
    "modifiedfee": 0.00000446,
    "time": 1598036451,
    "height": 1807966,
    "descendantcount": 1,
    "descendantsize": 142,
    "descendantfees": 446,
    "ancestorcount": 2,
    "ancestorsize": 284,
    "ancestorfees": 892,
    "wtxid": "4e680766ede2535b53e868c95d1483a443f9ab7f8b9d9ef4fcb355a768faba16",
    "depends": [
      "8b72e7045466d79a60ea13c9700b268ae0d695a7666008fc0c454775d7d95561"
    ],
    "spentby": [
    ],
    "bip125-replaceable": false
  }
}
Child transaction:

Parent transaction which had Unconfirmed input in above case:

Both transactions got confirmed in block 1807995.


Bitcoin transaction stuck I sent a bitcoin transaction and after sending it I realized that the fee was too low.

https://www.blockchain.com/btc/tx/a398c4a2db165bd35435e381a6d185a14aa7a3df40aeca157dd89e4efd2e20d1

in an attempt to correct it, later on, I sent another transaction to the same address with a higher fee.

https://www.blockchain.com/btc/tx/92b33d498a35d47f03eee14f258cf9b3f015a5d12856eb05e47534e664344239

as I read about Child pays for Parent, but still it didn't work. The second transaction went through and the first one is still there. Did I do something wrong? Is there anything I can do to correct it?

A child pays for parent (CPFP) transaction is based on the assumption that the child actually spends the output created by the first transaction.

In your case, your second transaction does not actually spend the output of the first transaction - this allows it to be confirmed without any relation to the previous one.

That said, your fee is not so low that it will never confirm - transactions with that feerate are cleared out every day or two, usually. You will likely be fine if you just wait.

If you are in a hurry, you can use your wallet to make another transaction spending the unconfirmed output - note that this is not an option if the address you sent the coins to belongs to an exchange or hosted wallet where you cannot control which outputs/keys are used for a new transaction.


Is the bicoin: URI scheme an URL scheme as well? Hi given that bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK is a valid URI. Is it a valid URL (locator!) as well?

I tend to say yes when I compare sending bitcoins to a bitcoin: URI with sending mails to a mailto: URI. The latter is according to RFC 2368 an URL scheme.

I took a look this. Bitcoin doesn't reply fit any of these perfectly, but I think it is a URI in that it uniquely identifies a Bitcoin account. The issue is that Bitcoin doesn't really have a location function. I suppose you could say that you can locate Bitcoin address history, but that's not really the purpose of a bitcoin: link. I'm going to say no, it is not a URL. It is however a URN.

EDIT: mailto: is a URL the same way a HTTP URL is. It has a domain name and states the location for sending something. Given this example, I'll change my answer to yes.


Why do bitcoin mining companies sell hardware if the hardware they are selling makes them money? Why do bitcoin mining companies sell hardware and make ASICS if the hardware they are selling makes them money? Surely they would hold onto the profitable hardware and sell it when it's less profitable?

Does this actually happen?

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?


How can I stop websites running an integrated Bitcoin miner without disabling javascript altogether? "Bitcoin Plus" is one example of a javascript bitcoin mining client that can CPU mine bitcoins through a browser when viewing a website. Here is a screenshot from 4bitcoins dot com which automatically starts the miner when you load the page:

It could be considered a form of theft for a website to profit from the extra electricity used by a viewer of the page, and definitely isn't environmentally friendly as CPU mining through javascript is hugely inefficient and any revenue earned doesn't even come close to covering the cost of the electricity consumed (and besides, in this case the benefit is to the website, and the cost is to the user).

Doing some quick maths I'd estimate that the mining would earn the website owner around 0.12 US cents per 24hrs running, at a cost of around 17 cents to the user in power (assumed 1BTC=$5US, difficulty around 1.8m, power 14c/kWh).

In short, it's desirable to block such functionality from running without the user's consent.

How could such integrated mining be disabled without blanket-disabling javascript on all websites? Bear in mind that even though the miner is visible on 4bitcoins dot com, it doesn't need to be visible to work.

ps: I didn't use standard syntax for the website name, as that will only encourage search engines to send more traffic there!

You can use Adblock Plus to block the miner script.  In this case it would be:

http://www.bitcoinplus.com/js/miner.js


What causes seemingly normal transactions to not be confirmed? I seem to be having an issue with transactions lately. Here is the most recent one. I paid 0.0004 BTC in fees, and I see there are quite a few inputs, but this seems like a normal transaction and should clear. However, I submitted it through a Multibit wallet about 15 hours ago and it has still not been included in a single block. Two other transactions I attempted recently have also been rejected, not even showing up in blockchain.info. What is the problem?

What, generically, is going wrong here and how can it be prevented?

Priority is an outdated concept and most miners don't use it anymore. Similarly, the standard fee is out of use.

Today, miners appear to be selecting transactions based on transaction fee per data size measured in [satoshi/byte].

Your transaction gave a fee of 0.4 mBTC and was 3471 bytes. This computes to 11.5 satoshi/byte. Currently, the predicted fee to get into the next block is 40+ satoshi/byte. Transactions with 11-20 satoshi per byte are predicted to have a 90% chance to be confirmed with a delay of 1-18 blocks.

If your MultiBit wallet is not up to a current version, you might experience better fee estimates by updating. A lot of wallet providers have vastly improved their fee estimations lately.


Why isn't there a fast blockchain update inside a LAN behind a router between two Bitcoin clients? This is the scenario:

2 computers on a LAN with private IPs (192.168.X.X)
router forwards port 8333 only to one of them (the 2nd one).
one computer has the full blockchain updated in its Bitcoin client,
the 2nd computer has only half the size of the block chain (Bitcoin client has not been run for a long time).

Why doesn't the Bitcoin client from the second computer detect the first computer and receive the remaining missing blocks at high LAN speed?

What i see is a very slow update of the chain on the 2nd computer.

Because the bitcoin client tries to avoid being "fenced in" by an attacker who wants to control all the information flowing to it. It does this by connecting to more distant nodes, i.e. nodes which don't share the first two octets of the IP address. (update: the new address manager code still defends against this type of attack, but probably not in exactly the same way any more.)

If you know of a trusted nearby node, you can configure it with the -connectcommand line option or the connect= setting in bitcoin.conf.


How to make Bitcoin-Qt client portable? (Windows) It is a nice project and all, but I think in 2013 it shouldn't be a challenge to save all of an application's files into its own folder (maybe even by default), so you can use it without installing/uninstalling.

I just don't have that much space on drive C. I use drive D for stuff. Is there a solution?

Google just brought me to this discussion which lead to all the fancy alternatives to the original client. I just want to try original Bitcoin-Qt first.

Would no one be interested in a portable Bitcoin-Qt? It would be very useful in my opinion.

Put the bitcoin-qt.exe binary in the folder
Create a bitcoin.bat file
Open the file with notepad
Add the following line: bitcoin-qt.exe -datadir=.
From now on you can start by double-clicking the bat


How to get block headers from block hash using P2P API? I have been experimenting with getheaders and one thing I can't seem to figure out is how to get a header for a specific hash, because getheaders doesn't provide this feature.

According to the documentation (and from my own experiments), it looks like the start position provided to the API is NOT included in the header results.

  Return a headers packet containing the headers of blocks starting right after the last known hash in the block locator object, up to hash_stop or 2000 blocks

I get that this is for the purpose of synchronizing, so the semantic is "I know about this block hash, so send me all the rest I haven't seen yet, which doesn't include this hash".

But with this there's no way to figure out a block header from a block hash, I always need the previous block's hash to get the current block header. Is there no P2P API (or any trick) that lets me take a block hash and get block headers back?

The block header is part of the block, so you can request the entire thing and just consider the first 80 bytes. Software generally shouldn’t need to do this though.


How is nbits calculated? When generating a new block, how is the nbits field in block header calculated? Is nbits calculated for every new block like:

nbits=nbits of last block * (timstamp of lastblock-timestamp of (lastblocknum-2016))/20160

Or, nbits is only updated every 2016 blocks like:

if(currentblocknum%2016==0)
    nbits=nbits of last block * (timstamp of lastblock-timestamp of (lastblocknum-2016))/20160
else
    nbits=nbits of lastblock

And when a node receives a new block, it will calculate the correct nbits itself for the new block (instead of using the nbits in the received block) before verifying the hash result, right?

I have not read the source code of bitcoin, and am confused by the introduction of nbits in some books.

Difficulty is only recalculated/updated once every 2016 blocks.
The node itself should only calculate the difficulty once every 2016 blocks.


What RPC can I use to query the balance of an arbitrary address How do I get the balance of an arbitrary address using Bitcoin RPC calls? From the RPC calls I can see you are required to have the private key or an account to use the RPC.

For illustrations sake, if you could demo querying this address:

1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v

That would be great. Here is the actual balance for this address.

This has already been answered here:

Calculating address balance
How to get an address's balance with the bitcoin client?

The pull request for this feature (support for watch-only addresses) can be found at: https://github.com/bitcoin/bitcoin/pull/4045


Bitcoin Cash difficulty before first hard fork: Emergency Difficulty Adjustment (EDA) What were the network rules regarding the difficulty adjustments of the Bitcoin Cash chain, before the first hard fork was implemented on November 13th, 2017?
There was a rule that was a function of the time taken to find the last 2016 blocks, and one based on the Median Time of the last 11 blocks. What was the effect of these rules?

The first rule is well understood.
The second rule, ensures that difficulty gets readjusted quicker if the MTP between blocks is big (12h.)

In practice:
Check the MTP of the current block (mining time of a block 6 blocks earlier)
compare to the MTP time of a block mind 6 blocks earlier
if the difference is 12 hours then difficulty will reset
for example:
block 478574 has an MTP of Aug 1 14:39: UTC
block 478568 has an MTP of Aug 1  11:52 UTC
so not yet 12 hours apart

also see: https://medium.com/@jimmysong/bitcoin-cash-difficulty-adjustments-2ec589099a8e (edit: fixed link)


Why don't cryptocurrencies create inflation if there are so many of them? One of the advertised advantage of bitcoin is that it can't create inflation. Governments can't print more money because bitcoin is fixed at 21 million.

But how about creating other crypto currencies when 21 million bitcoins is reached? There are at least a thousand crypto currencies in existence now. Isn't that a form of inflation? You are creating more money although not of the same type.

Other crypto currencies are their own entities, like each country contains their own currency each crypto currency is self contained. While others (fiat currency) depend on the rise and fall of the US backed dollar. Other coins aren't hinged inherently on the rise and fall of bitcoin, these coins depend on their own usage, efficiency, or adoption.

More reading here.
https://www.coindesk.com/bitcoin-explained-global-currency-wall-street-veteran/


What Bitcoin exchange is the real bitcoin value? I have seen a lot of Bitcoin exchanges, BTC-e, Coinbase, Bitstamp,  LocalBitcoins and Bitfinex. (I saw those on blockchain.info)  But which one of them is the real bitcoin value?

There is no such thing as a the "real" value.

The value of Bitcoin as denoted in another currency (USD, EUR, etc...) is based on how many people are buying and selling, and in what quantities.  On different exchanges, there are different numbers of people buying and selling different amounts of bitcoin.  Each exchange calculates its current posted value based on the quantity and amount of the bid and ask orders currently on the exchange.  The results will be different from exchange to exchange, because people are buying and selling differently on these exchanges.


Why does Armory enforce a minimum transaction fee? When I send coins using the standard bitcoin.org client I can set the transaction fee to 0.  However in Armory client there is a transaction fee of .0005 and you cannot override it to less.

I was under the impression that transaction fees were set by the user, and that the transaction fee determined the priority of your transaction on the network...so why does Armory force this?

In fact when I sent coins with fee of 0 via bitcoin client it went through faster than when sending the coins back with a fee of 0.0005 with armory...?

If the coins it is using have a lot of confirmations, the less likely a fee is going to be needed.

In the instance reported here, when the payment was sent using the Bitcoin.org client the funds had many confirmations and no fee was required.

When a payment for that same amount was then created using Armory, the funds did not have many confirmations and thus the client insisted on there being a fee.

This is not a difference between Armory and the Bitcoin-Qt client.  This is a difference between sending coins which had lots of confirmations versus sending coins which had fewer confirmations.   The same thing would have happened regardless of which of the two clients was being used.


How are gridcoin transactions validated? Bitcoin uses it's calculations to validate transactions but apperently gridcoin doesn't take any transaction data into the calculation of BOINC projects.
On the wikipedia page of Gridcoin the following is stated:

  Gridcoin (sign: Ǥ, symbol: GRC) is an open source network protocol using blockchain

It says blockchain is used but how? How are transactions validated?

Gridcoin is a proof-of-stake coin. Transactions are bundled and signed like any other blockchain, but with proof-of-stake the chance to sign is determined by coin balance and the time since your last block staked rather than by a simple hash race like Bitcoin. The freed-up electricity is encouraged to be directed toward BOINC; if you stake a block and you are also running whitelisted BOINC projects, you will receive bonus amounts of GRC on top of the basic stake reward (which is itself a simple 1.5% annual percentage of your current balance).

So no, BOINC is a software development kit used by distributed computing projects to distribute work and track results. Gridcoin doesn't use BOINC for anything other than bonus reward calculations; the two are symbiotic, not interdependent. If every BOINC project was shut down tomorrow, Gridcoin would work just fine forever as a basic proof-of-stake coin like Blackcoin (which it was forked from) or Peercoin.


What can I do with Account Extended Private Key and Account Extended Public Key? I have been reading about Account Extended Private Key and Account Extended Public Key that derives from the Master Private Key and Master Public Key, but I still have some question about their security.

I read that Account Extended Private Key should be kept private because if others got hold of it, they could sign the transaction with the key, effectively stealing your cryptocurrency. How does this work exactly? Is there an application that I can import other's Account Extended Private Key and send certain amount to my other wallet's address?

Also, I read that Account Extended Public Key should be kept private as well because exposing it to others allow them to go through the transactions. How does this work? Is there an application that I can import to view the transaction history?

I read that Account Extended Private Key should be kept private because if others got hold of it, they could sign the transaction with the key, effectively stealing your cryptocurrency. How does this work exactly?

  Also, I read that Account Extended Public Key should be kept private as well because exposing it to others allow them to go through the transactions. How does this work?

Extended keys allow for private and public keys to be derived from them. This is done using the algorithm described in BIP 32.

Your Account Extended Private Key is used to derive child private keys which are the actual private keys for your addresses. If someone gets ahold of this extended private key, they can derive all of your private keys and thus spend your Bitcoin.

Your Account Extended Public Key can be used to derive all of the child public keys in a similar way to how the Account Extended Private Key can be used to derive all of the child private keys. Knowing the public keys means that the addresses can be derived and thus anyone who has your Account Extended Public Key will know all of your addresses. They can thus observe every single transaction you receive and make.

  Is there an application that I can import other's Account Extended Private Key and send certain amount to my other wallet's address?

  Is there an application that I can import to view the transaction history?

You can import extended keys (public or private) into Electrum which will scan the blockchain for transactions related to child keys derived from those extended keys.


Is one lightning network channel equal to one transaction? I understand how a lightning network channel is like opening a bar tab, where you can make multiple transactions off-chain between two parties, and closing the channel puts the total tab on-chain. However, if I'm visiting 20 different stores and making one transaction at each store, wouldn't I need to open 20 different channels and end up publishing 20 different transactions to the bitcoin blockchain anyway?

No you don't need to open a channel with everyone whom you want to pay.
The lightning network is a network of payment channels. This means that you can use the first channel to send money to other participants in the network as long as there are sufficiently liquid paths of channels from your node to the recipient.


Have all hashes of unlocked difficulty levels of cryptocurrencies been mined? I'm wondering if all the hashes of a previously unlocked difficulty level of a cryptocurrency, such as

  0000000000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx BTC

, have been completely mined, where x is a placeholder for a constituting HEX digit, such that all the possible combinations of digits in that difficulty level have been mined.

No, and this will not happen in the foreseeable future.

Any given hash calculation will result in any one of 2^256 possible numbers. That means, the odds of finding any one exact number is 1/2^256.

Even at today's hashrate of ~47000000 TH/s, it would take you 7.812×10^49 years to find a preimage for every one of those 2^256 numbers, assuming each hash you find is unique (no collisions).


Are there minimum transaction fee, and is it based on the number of input transaction (UTXO)? I know probably everyone give an extra transaction fee, but are there minimum transaction fee that one must pay, and is it based on the number of input transaction (UTXO)?

And I have read that wallet developers tries to eliminate small UTXOs when preparing a new transaction. So is there harm for having too many small/dust UTXOs?

are there minimum transaction fees?

No, you could also pay no fee but your transaction will probably not be included in a block then. This is a pretty old example-transaction with no fee paid: https://blockchain.info/de/tx/8131ffb0a2c945ecaf9b9063e59558784f9c3a74741ce6ae2a18d0571dac15bb

  and is it based on the number of input transaction

Not on the number but on the size in Bytes.

  So is there harm for having too many small/dust UTXOs?

Yes. You can see it at the moment. People pay around 1.80$ for a "one address to one address"-transaction. More inputs/outputs means a bigger size. Bigger size means higher fees.


Should I use a large random value for i in BIP 32 instead of sequential? BIP32 doesn't have any guidance on how to choose the i value for child keys.

Is there any benefit to using a random value for i ?

Other than documenting and saving the value of I for various purposes such as auditing and child keys, is there any reason that it should be sequential, or why it shouldn't be a large random number ?

Sequential has the advantage of being able to recover without scanning for 2^32 keys.


Is it possible to recognize conflicting 0-confirmation transactions with the Bitcoin client or other available software? Is there already a way to detect conflicting 0-confirmation transactions? I'm assuming at least one transaction goes to my wallet.

I would expect the client to list the transaction as conflicting but from what I understand from What does the Bitcoin client do when it receives conflicting transactions? it currently does not do so? Is there any other way available?

A merchant can lessen the risk of being defrauded in a race attack (on 0/unconfirmed) by:

Using an explicit list of peers to connect to (with most of the known IP addresses of miners)
Not allowing incoming connections (turn off uPnP)

this still leaves the merchant vulnerable to a 51% attack that all transactions below 6 confirmations are subject to but also to the Finney attack and another type of attack even where 2 confirmations is required (as described by vector76 here: https://bitcointalk.org/index.php?topic=36788.msg463391#msg463391 )

What you are asking for is a solution that would be useful for merchants who can absorb some risk that comes with accepting a bitcoin transaction at 0/unconfirmed.  Currently there is only a trivial number of merchants that accept bitcoin at a retail establishment.  And thus, no solution provider -- yet.

There is an API to the service http://transactionradar.com which might make it possible to monitor for double spend attempts.

Some useful conversations related to this topic:

http://bitcointalk.org/index.php?topic=36788.0
http://bitcointalk.org/index.php?topic=39562.0
Has there ever been a successful double spend attack on the Bitcoin network? If not, is it really necessary to wait for confirmations?
http://sourceforge.net/mailarchive/message.php?msg_id=27899173
http://sourceforge.net/mailarchive/message.php?msg_id=27964471
Can bitcoins be counterfeited?
http://bitcointalk.org/index.php?topic=69520


What is the request limit number in the blockchain.info API? I'm planning to use https://www.blockchain.com/api, precisely single block https://www.blockchain.com/api/blockchain_api for testing purposes on my script.
I noticed there this line on the the API site 'Request Limits: To bypass the request limiter, please request an API key', the registration for an API key required me to have a website or app but I don't have any.
I'm planning to use their API to run a script for a few days to test.
So I'm wondering: does anyone know what is the current request limit for their API? I see no mention about the request number on the website or document.

Should be 1 request every 10 seconds:
https://www.blockchain.com/api/q


What is the minimum transaction fee used for? I have the bitcoin-qt client running on Ubuntu 12.10 and I see a transaction fee box in the preferences, but I am unsure of what it actually means - the wiki is overly complex, and I am unable to find another help website about this.

Can anyone give a easy to understand explenation of a minimum transaction fee. Do I have to pay it, or the sender? Etc.

Under Options of the most recent release, v0.7.1, reads:

  Optional transaction fee per kB that helps make sure your transactions
  are processed quickly. Most transactions are 1kB.  Fee 0.01
  recommended.

  Pay transaction fee: 0.00000000 BTC

What that field does is always add at least N BTC fee to every transaction.

When sending a transaction, the Bitcoin.org client will do a computation and insist on a fee to be paid if it determines the transaction will not be processed promptly unless a fee is paid.

Not all transactions require a fee.  If the amount of the payment is not small or the coins are not newly received (or both), then you can likely send a transaction using the Bitcoin-Qt client without paying a fee.

But there's always a chance that without paying a fee that your transaction will not be processed in a timely manner, as it is up to the miner or pool operator whether or not to include your transaction when mining.

So some people will use this optional fee field to make it so that every transaction goes out with a fee and thus no transactions sent will be delayed for the reason that no fee had been paid.

So do you have to pay a fee?   The Bitcoin.org client will generally tell you when you do need to pay a fee and when it does, then yes -- you must pay it or use some other client that doesn't perform this check.   But if it doesn't tell you to pay a fee, then you don't need to pay a fee but your transaction could still end up being delayed as a result.


Transaction haven`t got 5 days ago some Pokerroom sent to my Bitcoin Core wallet a slight amount of bitcoin. I checked it on Blockchain, it's OK. But, unfortunately, still there is no bitcoins in my wallet. I've also sent email here - contact@bitcoincore.org with explanation of the problem.

Who's already gone through situation like this please give me advice on what to do.

Many thanks,
Kirill

Your Bitcoin-core wallet will need to finish syncing with the network before it will display your balance.


Checkout time for consumers in stores accepting bitcoins If the general practice is use to different bitcoin address for every new transaction, does it mean that merchant in a retail store that accepts bitcoins has to change his QR code for every new customer in the line. Would it not increase the checkout time for consumers significantly

Why should it increase the checkout time?  In such a situation, the QR code would normally be displayed on a computer or tablet screen, not printed on paper, so a new one can easily be displayed for each customer.  Generating a new Bitcoin address doesn't take much time - a few milliseconds, maybe - and can be incorporated into the merchant's point-of-sale software so that it happens automatically as soon as the clerk touches the "customer paying with Bitcoin" button.  Alternatively, the addresses can be generated ahead of time and used one by one, which would be even faster.

The merchant does have to keep track of a separate private key for each address; but this is easily handled by software.  Bitcoin wallets are designed to efficiently handle large numbers of private keys, and automatically select coins from the many available addresses when sending a transaction.

What would increase the checkout time is if the merchant feels it's necessary to wait for one or more confirmations of the transaction.  Each confirmation takes, nominally, an average of ten minutes.  Most people assume that this wouldn't be used for small purchases; for large purchases, the customer might be asked to wait after sending the coins (but of course other customers can be served in the meantime).


bitcoind -- how can i get the number of peers to exceed eight? Presently I am running bitcoin-qt 0.5.1 on ubuntu 11.04, and am running with seventeen peers. But if I run bitcoind (still 0.5.1 on ubuntu 11.04) I can't get more than eight, no matter how long I leave it on. Why is that, and should I do anything about it?

8 peers is the number of outbound connections the client makes. So if you always have 8 connections, that probably means that people can't make inbound connections to your machine. This really has no harmful effects. You can't at all trust people who connected to you anyway. (You might have 70 inbound connections that are all from the same miscreant.)

The most likely reason for the difference is that one client has UPNP support and the other doesn't or doesn't have it enabled. If your machine is behind a NAT device that supports UPNP, that's probably the reason.


What is this 3d design of Bitcoin? Lots of places online have a ray-traced, photorealistic image of an elaborate Bitcoin mint of the same design:
https://www.insiderfinancial.com/wp-content/uploads/2016/06/Two-Bitcoins.png

What is that design? where can i get a 3D model of it or a heightmap image of it?

I don't think that's a rendering. I think that's an actual copper coin with a bitcoin/circuitry theme.

Googling the text on the back, "AOCS APPROVED MJB 2013," finds this site, which gives the designer's name, Mick Bruce. Presumably "MJB" is his initials.

Googling that turns up this thread on BitcoinTalk, which is pretty similar to your coin.

I can't turn up a 3d model, but the designer, Mick Bruce, might have it. You might be able to contact him via the email in this thread, or by this onename.


Do you lose money when transferring between wallets? I just recently 0.0306 BTC from a friend, but the weird thing is that he sent me 0.0316 BTC.

I got 0.0306 BTC, 0.0010 BTC less.

So do you lose money when transferring in the blockchain ?

This is the blockchain link of my transaction.

Bitcoin transactions always pay fees. Your friend had 0.04488434 BTC, he sent you 0.0306 BTC, paid miner fee 0.00036984 BTC and his change was 0.0139145 BTC

  So do you lose money when transferring in the blockchain ?

Bitcoin transactions are not free


How to develop a crypto exchange leveraging on third party API like coinbase, blockchain.com I got a request as a developer to develop a bitcoin exchange site like https://mypatricia.co/ or https://instantcoins.ng/ I am to leverage on third party API like Coinbase, blockchain, it could be anything reliable API.
Users will be able to buy and sell bitcoin. For instance USER A makes an offer. USER B is interested in USER A's offer. When USER B clicks a button, with be a switch from USER A's wallet to USER B's wallet. Before the EXCHANGE is done. USER B is prompted to make payment in local currency.
I have been looking at https://developers.coinbase.com/api/v2#introduction https://api.blockchain.com/v3 I dont know how to go about it.
Is there any other better ones to work with?
There will be some other endpoints like
Where users get list of their orders
check wallet etc
I will appreciate your contribution

I think you are somewhat confused on what you want to build. You can either (try to) build an exchange that sources Bitcoin from an exchange like Coinbase or Blockchain and then sells them on for a markup. Or you can build a P2P exchange like Bisq, Paxful, LocalBitcoins etc. If you do the former it isn't P2P and it is subject to limits enforced by the API provider. If you do the latter you have no use for an API from Coinbase or Blockchain. Bisq is open source so you could look at their code if you want to understand how their P2P exchange works.


What are the rev00000.dat files? I've created an application with bitcoinj that extracts all addresses which have been used out of the block chain files created by bitcoin-core.

I'm extracting the transactions only out of the blk*.dat files. Do these files really contain any transactions or are there further transaction in the rev*.dat files?

What does the rev*.dat files contain?

They are files to assist reversing additions to the blockchain, handling reorganisations. They essentially contain the references needed to quickly reverse a block being accepted and it’s changes being made to the nodes UTXO. It does not contain transactions.


Can I do mining with a normal PC? Can I do mining with a normal PC in my house?

I will setup Linux (Ubuntu) for mining. It will be open 24/7. I don't have too many expectations. Maybe 0.1 in one week?

Can i do mining with a normal PC?

Yes, you can.

  I don't have too many expectations. Maybe 0,1 in one week?

No, not possible. You will effectively compete against all computational resources on Earth, that are now cracking this nut. If I can estimate, a humble home PC will produce around 1 - 100 MH/s, based on CPU or GPU mining stats. This range covers different CPUs and single-GPU computers. You can compare hash rate with the profit estimate using this calculator. Based on the hash-rate, your electricity bill will much out-weight any profit from mining.

To achieve a 0,1 BTC/week you'd have to invest in a pretty expensive, power-hungry ASIC box that can produce tens of GH/sec, subject to ever-increasing complexity.


Running another instance of bitcoin-qt dedicated to testnet/regtest? Is it possible to run another instance of bitcoin-qt dedicated to testnet/regtest? If so, how do i do this?

My question is similar to "Running two bitcoind instances for different nets," but I want to associate bitcoin-qt, not just bitcoind, with the testnet/regtest.

Depending on your OS you can start a 2nd bitcoin-qt acting on a non-mainnet with ./bitcoin-qt -testnet or ./bitcoin-qt -regtest (from a shell). You can also define a custom datadir and place a bitcoin.conf there (use bitcoin-qt -datadir=<path>).

On OSX/Mac you would need to use Terminal and run something like /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -regtest


Why aren't early adopters intervening in the market in order to stabilize the BTC price? They have every motivation to do so.

Extreme volatility is bad for confidence and can hurt the chance of Bitcoin becoming a respected currency.

Say for the sake of argument that Satoshi owns 500,000 BTC. This is a conservative estimate.

Someone holding that much BTC could easily dampen the wild price swings we are seeing at the moment by selling large quantities when the price spikes and buying them back when it crashes.

By doing this they risk losing a fraction of their bitcoins.  However, this would also increase the probability of bitcoin’s success and them becoming multimillionaires.

Which would you choose?

50% chance that you own 500,000 BTC worth $500 Million USD in 2017. 50% chance that bitcoin fails to take off and they are worth $5 Million USD.
80% chance that you own 300,000 BTC worth $300 Million USD in 2017. 20% chance that bitcoin fails to take off and they are worth $3 Million USD. Plus $16 Million USD profit right now.

Note: The above numbers are not meant to be scientific. They are just simplifications meant to illustrate the gist of my argument.

I don’t see how any rational person would choose option (1), unless they have some really crazy lopsided utility function for money.

So why isn’t it happening? Why are most coins mined in 2009 practically untouched?

I think the idea is to have a system that is not subject to manipulation. Highs and lows may be what I consider growing pains but will eventually diminish provided there is confidence that the system is a true free market system. This means free of manipulation. Let the free market reign and value will be real. Manipulate it and we basically have another ponzie scheme like we have now with the US dollar.