Hot answers tagged

28

I couldn't find the results of the Coin Selection written out anywhere, and just finished piecing it together from the code. It works as David mentioned, but here are more details. The Coin Selection Algorithm logic to transfer Target amount If any of your UTXO² matches the Target¹ it will be used. If the "sum of all your UTXO smaller than the Target" ...


28

This is not a thorough schooling on Tor and only shows how to configure it to work together with Bitcoin Core. Bitcoin Core includes Tor integration When Tor is correctly setup on your system, Bitcoin Core automatically identifies Tor and creates an anonymous service. Little configuration is required to be 'off the grid' and, just a tiny bit more to be ...


25

By default, what is maintained by the 0.8 blockchain engine is: All blocks A database with all block headers, and the positions on disk for each block A database that represents all unspent transaction outputs (UTXOs), indexed by txid, at the current tip of the block chain Undo files that allow rewinding the effects of blocks on this set of UTXOs. Nothing ...


19

Yes, you can have two keys generate the same address. There are 2^160 possible addresses, and 2^256 possible private keys, so each address corresponds to roughly 2^(256-160)=2^96 private keys. Any of these will generate the same address and thus be able to spend the money owned by that address. Since 2^160 is so large, however, it would take a near-eternity ...


18

Here: https://en.bitcoin.it/wiki/Bitcoin-Qt https://www.google.com/search?q=bitcoin-qt+documentation Use the -datadir option. Right-click on your bitcoin-qt shortcut, press properties, and add -datadir=D:\Bitcoin Go make that directory, then run bitcoin. If a bunch of files show up in there, you've done it correctly. Yep. -datadir File > Backup Wallet ...


17

A wallet is the collection of data needed in order to receive and spend bitcoins. Usually this includes key-pairs (private key, public key and the address that may be inferred from the public key) and funds associated with each key-pair in the form of spendable outputs. The client on the other hand is the interface to the network. It handles all the ...


15

The payment protocol (see BIP 70-72) will support attaching messages to transactions. Note that these messages do not end up in the blockchain, which is the right way to do it, as they are private information between sender and receiver - no need to make the entire world replicate it.


13

Bitcoin Core will create a new wallet if it cannot find the wallet.dat in the Bitcoin Core folder. Close Bitcoin Core. If the wallet still has a balance, or addresses from the wallet were given out, back the old wallet.dat up: Move it to a different directory or rename it. If you are sure that it was never used, you may delete it instead. Restart Bitcoin ...


13

(disclaimer: I work on Bitcoin Core) As Luca already mentioned, you have to distinguish wallet implementations and the fully verifying nodes on the network. Because of how Satoshi wrote his code (a node and a wallet in the same program), the two are often confused, but this is considered a bad idea now. They can perfectly function independently. The ...


13

BIP 39 is not in Bitcoin Core largely for implementation reasons and because BIP 39 is not as secure as it could be. The structure of Bitcoin Core's wallet doesn't really allow for BIP 39 to be implemented. The current structure doesn't allow for 512 bit seeds as BIP 39 specifies, and adding it would require some significant changes to the wallet code. ...


12

You've answered your own question - "all you would need to be able to do is prove that that address belonged to you." To prove the address belongs to you you need the associated private key, which is secret and typically kept on your computer. If you lose your key you are no different than any other pretender to the address. This is why you must back up ...


12

Bitcoin is a so-called gossip network. They announce any new object to all of their peers (just the hash of the data). If the peer doesn't know the object yet, it asks for the full object. So it's certainly not a DHT or any smart organisation of data: every (full) node (eventually) learns about every block and transaction. They have to, there is no other way ...


11

This is not currently possible, as Bitcoin Core uses hardened BIP32 derivation to compute keys and addresses. This derivation scheme does not have a usable xpub that lets you derive the same keys publicly. For more background, an xpub (or extended public key) is a string defined by BIP32. Every xpub has a corresponding xprv (extended private key). From the ...


10

A bitcoin address is not like a credit card number. You can safely give your bitcoin address out publicly. What the email is asking for is something you should never give out publicly: the mnemonic that you use (e.g. if you use Electrum, they have a 12-word mnemonic code), from which you can calculate your private keys. With this, they can easily steal all ...


10

A while ago I created an extension for BitcoinLib in order to put bitcoind to the test. The setup was trivial: call getnewaddress() in the main network for ever My performance index was the number of addresses generated per second. It took off on an average of 35 addresses/sec. I left it running on a VM for a whole month. The rounded results were: Total ...


10

It looks like https://bitcoincore.org/ is the one run by the people who run the Github bitcoin/bitcoin project (the actual core developers) since it is the one listed on their Github page: https://github.com/bitcoin/bitcoin If you want the absolute best source for the client directly from Bitcoin Core devs then I would use that site or their Github page for ...


9

You probably don't want to download the blockchain The blockchain currently weighs in at about 144 GB (check current size) Assuming you have solid 2 megabytes per second download speed, it would take around 20 hours just to download them. In practice, this takes much longer, as your computer will verify every block individually, which takes some time. ...


9

The bitcoin network does not know who owns which address. The concept of an address doesn't even exist at the protocol level - it's just an authentication layer on top of the scripting logic in transactions. And of course your own client does - because it has the private key for change addresses it generated itself. That's all that matters. When spending a ...


9

I'll try to give a list of the cases I know of. Whether these are considered bugs or implementation oddnesses is debatable, I guess. The genesis block's coinbase output cannot be spent. The OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY operations pop one element too much from the stack (requiring an extra dummy push in the redeem script). The checksig ...


9

listunspent only displays information about addresses which are currently part of your wallet. Bitcoin Core does not maintain indexes of unspent outputs for addresses you do not own, and will simply return a blank set if you attempt to query for them.


9

Mining in a pool setting actually doesn't require all that much bandwidth. This is because you get block templates sent to you and that single template can be used by all 100 miners. A block template isn't very big, it's less than 1k and looks something like this: { "error": null, "result": { "coinbasetxn": { "data": "...


8

Creating a SatoshiDice-like game is rather easy. Below are the high level steps involved in making such a game. For each incoming transaction... Get the customer amount and payment address Call bitcoind getrawtransaction [The incoming transaction ID] 1. The 1 at the end will return the data in "verbose mode", which essentially the raw data in JSON ...


8

Bitcoin has only 8 active connections Correction: it has 8 outbound connections. By default, it can also accept up to 117 inbound connections which port Port 8333, TCP how should I tell Bitcoin-qt to use the forwarded port? Don't need to.


8

Yes you can, but you have to switch to "Expert" usermode from the main window. After you do, the "Send Bitcoins" window will have an option for customizing the change address. You can click on the addressbook and select any address in any wallet. Or really put in any address you want. Just remember that you are compromising your privacy by reusing ...


8

The majority needs to be trusted, but not weighted by their number of software instances, but by either computational power or economic power, depending on the context. The main technical assumption is that the majority of hashrate is not trying to attack the network. So an attacker would need to purchase and operate more hashrate than the rest of the ...


8

Depends. Generally you'd use multiple workers when you have multiple machines (ie graphics cards, mining rigs, or a farm of USB sticks). In some cases you could have them all combined and contributing to a single worker but usually this is not desirable because you'd want to keep track of how each device is performing. If for no other reason, that ...


8

You can use an SPV client such as MultiBit. This does not need the whole blockchain, and does not give up control of your wallet.


8

There are two Bitcoin softwares that should be differentiated: (i) the client software that everyone uses and (ii) the full Bitcoin node used by the miners. With regards to implementations, there are a variety of different clients. Just look at MultiBit, Electrum, Armory, Hive etc. Many are implemented using different programming languages and libraries. ...


7

Somebody posted a portable client, but I don't trust them, so I'll show you how to make your own. Windows guide Download the windows .zip from bitcoin.org Unpack it. Go into that directory. Make a file called launch.txt Put this in it: start bitcoin-qt.exe -datadir=data Rename it to launch.bat Make a folder called data It should look like this. Double-...


Only top voted, non community-wiki answers of a minimum length are eligible