https://en.bitcoin.it/w/api.php?action=feedcontributions&user=NihilistDandy&feedformat=atomBitcoin Wiki - User contributions [en]2024-03-28T09:06:29ZUser contributionsMediaWiki 1.30.0https://en.bitcoin.it/w/index.php?title=Java_Bitcoin_Client&diff=2484Java Bitcoin Client2011-01-20T05:35:39Z<p>NihilistDandy: Page is a stub. I'll see if I can get some more info, unless someone beats me to it.</p>
<hr />
<div>{{stub}}<br />
'''Java Bitcoin Client''' is a [[Bitcoin]] client written in java.<br />
==External links==<br />
*[http://sourceforge.net/projects/bitcoin-client/ Java Bitcoin Client sourceforge project page]<br />
[[Category:Clients]]</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=Securing_your_wallet&diff=2483Securing your wallet2011-01-20T05:32:05Z<p>NihilistDandy: /* Making a new wallet */ Compromisable is not a word. Just rewording.</p>
<hr />
<div>==Introduction==<br />
<br />
Wallet security can be broken down into two independent goals:<br />
# Protecting your wallet against loss.<br />
# Protecting your wallet against theft.<br />
<br />
In the case that your current wallet hasn't been protected adequately (e.g. put online with a weaker password):<br />
# Making a new secure wallet, using appropriate long-term protection.<br />
<br />
==Technical Background==<br />
<br />
Bitcoin transactions send Bitcoins to a specific public key. A Bitcoin address is an encoded hash of a public key. In order to use received Bitcoins, you need to have the private key matching the public key you received with. This is sort of like a super long password associated with an account (public key). Your Bitcoin wallet contains all of the private keys necessary for spending your received transactions. If you delete your wallet without a backup, then you no longer have the authorization information necessary to claim your coins, and the coins associated with those keys are lost forever.<br />
<br />
The wallet contains a pool of queued keys. By default there are 100 keys in the keypool. The size of the pool is configurable using the undocumented "--keypool" command line argument. When you need an address for whatever reason (send, “new address”, generation, etc.), the key is not actually generated freshly, but taken from this pool. A brand new address is generated to fill the pool back to 100. So when a backup is first created, it has all of your old keys plus 100 unused keys. After sending a transaction, it has 99 unused keys. After a total of 100 new-key actions, you will start using keys that are not in your backup. Since the backup does not have the private keys necessary for authorizing spends of these coins, restoring from the old backup will cause you to lose Bitcoins.<br />
<br />
Creating a new address generates a new pair of public and private keys, which are added to your wallet. Each keypair is mostly random numbers, so they cannot be known prior to generation. If you backup your wallet and then create more than 100 new addresses, the keypair associated with the newest addresses will not be in the old wallet because the new keypairs are only known after creating them. Any coins received at these addresses will be lost if you restore from the backup.<br />
<br />
The situation is made somewhat more confusing because the receiving addresses shown in the UI are not the only keys in your wallet. Each Bitcoin generation is given a new public key, and, more importantly, each sent transaction also sends some number of Bitcoins back to yourself at a new key. When sending Bitcoins to anyone, you generate a new keypair for yourself and simultaneously send Bitcoins to your new public key and the actual recipient's public key. This is an anonymity feature – it makes tracking Bitcoin transactions much more difficult.<br />
<br />
So if you create a backup, do more than 100 things that cause a new key to be used, and then restore from the backup, some Bitcoins will be lost. Bitcoin has not deleted any keys (keys are never deleted) – it has created a new key that is not in your old backup and then sent Bitcoins to it.<br />
<br />
== Making a new wallet ==<br />
<br />
In the case that a wallet has been distributed, or stored, in a (real or potential) compromised state, it is wise to create a new wallet and transfer the full balance of Bitcoins to an address contained only in the newly created wallet.<br />
<br />
For example, this will be necessary if one created a wallet with a password of 12 characters, as suggested. However a few years have passed and the wallet is now more easily compromised. Just re-encrypting isn't secure. One needs to make a new wallet and make the old wallet worthless (spending the funds to the new wallet).<br />
<br />
== Locating BitCoin's data directory ==<br />
<br />
=== Windows ===<br />
<br />
Go to Start -> Run (or press WinKey+R) and run this:<br />
<br />
explorer %APPDATA%\BitCoin<br />
<br />
BitCoin's data folder will open. For most users, this is the following locations:<br />
<br />
C:\Documents and Settings\YourUserName\Application data\BitCoin (XP)<br />
<br />
C:\Users\YourUserName\Appdata\Roaming\BitCoin (Vista and 7)<br />
<br />
"AppData" and "Application data" are hidden by default.<br />
<br />
=== Linux ===<br />
<br />
By default BitCoin will put its data here:<br />
<br />
~/.bitcoin/<br />
<br />
You need to do a "ls -a" to see directories that start with a dot.<br />
<br />
If that's not it, you can do a search like this:<br />
<br />
find / -name wallet.dat -print 2>/dev/null<br />
<br />
=== Mac ===<br />
<br />
By default BitCoin will put its data here:<br />
<br />
~/Library/Application Support/Bitcoin/<br />
<br />
==Backup==<br />
<br />
The only file you need to back up is "wallet.dat". Ensure that BitCoin is closed, copy this file somewhere else, encrypt it, and put it somewhere safe. Ideally, you would put this file in two places: one nearby, and one 100+ miles away.<br />
<br />
You can use the [[api|backupwallet]] JSON-RPC command to back up without shutting down Bitcoin.<br />
<br />
=== General Solutions ===<br />
<br />
Your wallet.dat file is not encrypted by BitCoin. Anyone who can access it can easily steal all of your coins. Use one of these encryption programs if there is any chance someone might stumble upon your wallet.<br />
* [http://www.7-zip.org/ 7-zip] - Supports strongly-encrypted archives.<br />
* [http://www.axantum.com/axcrypt/ AxCrypt]<br />
* [http://www.truecrypt.org/ TrueCrypt] - Volume-based on-the-fly encryption (for advanced users)<br />
* [http://www.rarlab.com/ WinRar] - Commonly used archive software that supports verification records and encryption.<br />
<br />
==== Password Strength ====<br />
Brute-force password cracking has come a long distance, a previously thought secure password of random [a-Z] [0-9] [!-~] of 8 characters long can be trivially solved now (using appropriate hardware)... The recommended length is '''at least''' 12 characters long.<br />
<br />
If you use keyfiles in addition to a password, it is unlikely that your encrypted file can ever be cracked using brute force methods, even 10 years from now when even a 12 character password might be too short.<br />
<br />
Assume that any encrypted files you store online (eg. gmail, Dropbox) will be stored somewhere forever and can never be erased.<br />
<br />
==== Storage of Archive ====<br />
One of the most simple places to store a appropriately encrypted archive of your wallet.dat file is to email yourself the archive. Services like gmail.com use very comprehensive distributed networks that make the loss of data very unlikely. One can even encrypt the name of the files withing the archive, and name the archive something less inviting, such as: 'personal notes' or 'car insurance'.<br />
<br />
Another solution is to use a file storage service like [http://www.dropbox.com Dropbox] and [http://en.wikipedia.org/wiki/Comparison_of_online_backup_services others], including the more secure [http://www.spideroak.com SpiderOak].<br />
<br />
=== Linux solution ===<br />
<br />
Linux users can setup cron by running 'crontab -e' and adding this line:<br />
<br />
01 */1 * * * /usr/local/bin/backupwallet.sh<br />
<br />
This cron line runs backupwallet.sh at the 01 minute of every hour. Remember to add a newline after the last line of the crontab file, or else the last line won't run.<br />
<br />
backupwallet.sh:<br />
<br />
#!/bin/bash<br />
<br />
TS=$(date "+%Y%m%d-%H-%M")<br />
<br />
WALLET=/tmp/wallet${TS}<br />
WALLET_E=/tmp/wallet${TS}.crypt<br />
<br />
bitcoind backupwallet $WALLET<br />
gpg -r myusername --output $WALLET_E --encrypt $WALLET<br />
scp $WALLET_E user@myserver.org:~/wallets/<br />
rm $WALLET $WALLET_E<br />
<br />
The shell script:<br />
<br />
* Calls bitcoind backupwallet to create a time/date-stamped wallet.<br />
* GPG encrypts the wallet with your public key.<br />
* Copies the result to a backup location.<br />
<br />
[[Category:Technical]]<br />
<br />
==Restore==<br />
<br />
Assuming your backup is recent enough that you haven't used up all of your keypool... restoring a wallet no a new (or old) location and rescanning the block chain should leave you with all your coins. Just follow these steps:<br />
* Quit bitcoin(d).<br />
* Copy your backed up wallet.dat into your bitcoin profile directory.<br />
* If copying into existing profile, delete file ''blkindex.dat'', to make the client rescan the block chain.<br />
And you'll be good as new.<br />
<br />
==Erasing Plain Text Wallets==<br />
<br />
A good practice is to keep at least two wallets, one as a "current account" for everyday transactions and one as a "savings account" where you store the majority of your Bitcoins. <br />
<br />
The "savings account" wallet should be backed up in encrypted form only and all plaintext copies of this wallet should be erased. In case someone gains unauthorised access to your computer (either by physically stealing it or by exploiting a system vulnerability via the internet), they will only be able to spend the coins in your "current account" wallet.<br />
<br />
In most operating systems, including Windows, Linux, and Mac OS X, simply deleting a wallet.dat file will ''not'' generally destroy it. It is likely that advanced tools can still be used to recover the wallet.dat file, even after it has been deleted.<br />
<br />
The Linux '''shred''' command can be used to overwrite the wallet file with random data prior to deleting; this particular copy of the file will then be practically impossible to recover. Using shred (and similar tools on Windows) however does not guarantee that still other copies don't exist somewhere hidden on your HD. That will depend on your system configuration and what packages you have installed. Some system restore and backup tools, for instance, create periodic snapshots of your filesystem, duplicating your wallet.dat.<br />
<br />
For Windows, the built-in command ''cipher /w'' will shred all previously-deleted files. [http://www.cylog.org/utilities/cybershredder.jsp CyberShredder] can securely deleted individual files.<br />
<br />
==eWallet==<br />
<br />
Storing bitcoins with an [[eWallet]] provider incurs risks as well.</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=Help:Installing_Bitcoin_Core&diff=2482Help:Installing Bitcoin Core2011-01-20T05:19:32Z<p>NihilistDandy: </p>
<hr />
<div>An account can effortlessly be created using an [[eWallet]] service. eWallet services provide an online wallet to hold your bitcoins.<br />
<br />
This guide covers installing Bitcoin without needing a third party wallet service.<br />
<br />
== For Windows computers ==<br />
<br />
=== Installation ===<br />
[http://bitcoin.org Download] and install Bitcoin.<br />
<br />
[[File:Download it fin.png|frame|none|Download the "Windows (exe)" version]]<br />
<br />
[[File:Install fin.png|frame|none|Complete installation wizard]]<br />
<br />
=== Initialisation ===<br />
<br />
The first time you run Bitcoin, it needs to download all the blocks to setup. You already have your bitcoin address at this point, but you won't see any transactions before the initialisation is complete (it can take from half to a few hours).<br />
<br />
[[File:First time run fin.png|frame|none|Bitcoin is initialising by establishing a connection to other clients and downloading the blocks.]]<br />
<br />
[[File:Bitcoin all blocks fin.png|frame|none|Completed download of block-chain.]]<br />
<br />
Your address (you can have as many as you want) is at the top. Below is your balance which will be zero. The list below shows your transactions.<br />
<br />
== For Mac computers ==<br />
<br />
[http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/bitcoin-0.3.19-macosx.zip/download Download the OS X version of Bitcoin] and expand the archive.<br />
<br />
[[File:BcOSX.png|thumb|none|Contents of the Bitcoin archive after expansion]]<br />
<br />
Drag the Bitcoin icon to the desired install location and double-click or Cmd-O (⌘O) to run the application. The Bitcoin window will open and, providing that your router is configured to forward traffic on port 8333 to your computer, connections will start up in minutes and Bitcoin will begin downloading the blocks. Bitcoin address and balance are at the top of the window. Click "Copy to Clipboard" to copy your Bitcoin address. Transactions are displayed in the main window.<br />
<br />
[[File:BcOSXrunning.png|thumb|none|The Bitcoin window]]<br />
<br />
===Useful basic settings===<br />
<br />
As Bitcoin currently does not support hiding with Cmd-H (⌘H), it is recommended that users tick the "Minimize on close" option in the Preferences menu to prevent accidental program exits.<br />
<br />
[[File:BcOSXPreferences.png|thumb|none|The Bitcoin preferences window on OS X]]<br />
<br />
And don't forget to start generating your own coins by clicking "Generate Coins" under the Settings menubar item.<br />
<br />
== Getting my first coins ==<br />
<br />
The [[Bitcoin Faucet]] [https://freebitcoins.appspot.com/ website] currently hands out 0.05 BTC to new bitcoin users. Fill in the form with your bitcoin address. When you wish to add more, view [[Buying bitcoins]].<br />
<br />
[[File:Get some btc.png|frame|none|Getting free coins from the Faucet]]<br />
<br />
A new entry should appear in Bitcoin. The network hasn't yet confirmed it, but you know it's being processed. After about one hour it should get 6 confirmations. You are able to spend the coins when there is only one confirmation.<br />
<br />
The confirmation counter (like the block counter) will increase by one roughly every 10 minutes. Six confirmations are considered as 100% sure a transfer has been processed.<br />
<br />
[[File:First btc recv.png|frame|none]]<br />
<br />
[[File:Six confirms bitcoin client.png|frame|none]]<br />
<br />
== Points to remember ==<br />
<br />
* You don't need to be online to receive BTC.<br />
* You can create as many new addresses as you like. Using a different address each time helps keep you [[Anonymity|anonymous]].<br />
* You can be anonymous with adequate precautions.<br />
* You cannot send BTC to an invalid address. Typos are not a worry as the payment will refuse to send.<br />
* The wallet file holds the keys that allow spending and thus the computer should be [[Securing_your_wallet|protected]] from the risk of loss and theft.<br />
<br />
== Technical ==<br />
=== Block chain ===<br />
The [[block chain]] is a neverending story of every transaction throughout the network from day 1 (genesis). The first time you run Bitcoin, it is downloaded and verified on your computer. Every new transaction is added to the end of this chain and verified by the network to be valid.<br />
<br />
=== Addresses ===<br />
Whenever you send a coin, you are actually sending a cryptographically signed message, associating your coin with the recipient's address. This effectively transfers ownership to to the recipient. Once they own the coin, they are free to transfer it to another person.<br />
<br />
A wallet is a collection of addresses. You can create as many new addresses as you wish; having more addresses makes you more anonymous, because then people cannot see how much BTC you received. Your wallet contains the secret keys used for spending that money, and must be [[Securing your wallet|backed-up regularly]]. If you lose the wallet then you no longer possess the money.<br />
<br />
=== Generating ===<br />
New coins are minted through generating hashes. These generators are rewarded with a small fee for the computationally intensive task of incorporating your transactions into the block-chain. This fee halves each time 210000 blocks are added to the block chain, or approximately every 4 years. The fee will keep halving until it effectively reaches zero, at which point 21 million coins will be in circulation.<br />
<br />
[[Category:Introduction]]</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=File:BcOSXPreferences.png&diff=2481File:BcOSXPreferences.png2011-01-20T05:15:18Z<p>NihilistDandy: Preferences Window for BC on OS X</p>
<hr />
<div>== Summary ==<br />
Preferences Window for BC on OS X<br />
== Licensing ==<br />
{{self|Cc-zero}}</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=File:BcOSXrunning.png&diff=2480File:BcOSXrunning.png2011-01-20T05:05:29Z<p>NihilistDandy: Screenshot of BC running on OS X</p>
<hr />
<div>== Summary ==<br />
Screenshot of BC running on OS X<br />
== Licensing ==<br />
{{self|Cc-zero}}</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=File:BcOSX.png&diff=2478File:BcOSX.png2011-01-20T04:51:23Z<p>NihilistDandy: The contents of the Bitcoin zip on OS X</p>
<hr />
<div>== Summary ==<br />
The contents of the Bitcoin zip on OS X<br />
== Licensing ==<br />
{{self|Cc-zero}}</div>NihilistDandyhttps://en.bitcoin.it/w/index.php?title=User:NihilistDandy&diff=2477User:NihilistDandy2011-01-20T04:41:19Z<p>NihilistDandy: Created page with "Contributors Award participant: 148Hw28E8R5U46iiRkG3FoZEVk3oh2Ns1c"</p>
<hr />
<div>Contributors Award participant: 148Hw28E8R5U46iiRkG3FoZEVk3oh2Ns1c</div>NihilistDandy