bitcoin socks proxy

A while back I wrote an article about running a full bitcoin node.Since that time I’ve actually set up the node and run some experiments with it, so I wanted to report back on my experience.Getting Bitcoin installed on Ubuntu is really easy; it’s just a matter of enabling the Bitcoin PPA.This is likely a matter of running the following command on your machine:As I noted in my previous article, compiling bitcoin from the source is another possibility if you’re not on Ubuntu but is a bit more work.The main thing you’ll run into is building Berkeley DB 4.8 from scratch (if you want the portable wallet feature) and possibly memory issues if you have a system with less than 1 GB of memory.I successfully built Bitcoin Core from source on both Debian and Fedora so it’s definitely possible, I just ended up going with Ubuntu and the PPA approach because of the ease of keeping Bitcoin Core up to date that way.Syncing the blockchain still takes a long time.

About a year ago a “headers-first” synchronization option was added to Bitcoin 0.10.0 which is supposed to dramatically reduce the time it takes to initially sync the blockchain; there are some release notes describing the feature here.The way it works is your bitcoind process fetches all of the “headers” for the blockchain blocks, and the headers contain cryptographic hashes of the blocks.
bitcoin miner ghAfterwards your client can download the blocks in parallel from other nodes in the network, sort of similar to BitTorrent.
psu for bitcoin miningIn practice, I found that while my bitcoind process did indeed fetch all of the blocks from the network very quickly, the CPU time it takes to actually verify all of the blocks ends up being the limiting factor in syncing the blockchain.
bitcoin exchange ach

The node I’m running has a particularly anemic CPU so I’d imagine that if you had a desktop computer this would be less of an issue.Still, it took several days for me to sync the blockchain.Sending and receiving money securely is easy.To receive money:This will generate a new (unique) wallet address for you to receive money.
bitcoin cafe hamburgIf you use this command every time you want to receive money it will help anonymize your transactions.There are a bunch of other RPCs that are useful, but these should be enough to get started.
bitcoin ether chartI was pleasantly surprised to see that on my system there is bash completion for bitcoin-cli, which makes exploring the RPCs a bit easier.Setting up Bitcoin Core to use Tor is also really easy.
dark wallet bitcoin talk

You just need to add a proxy line to ~/.bitcoin/bitcoin.conf which points to your Tor SOCKS proxy (which by default will be 127.0.0.1:9050).There are more detailed instructions here.The last thing I tried was setting up JoinMarket which is an open source CoinJoin implementation written in Python.Setting it up is easy, the instructions in the README should be enough to get you started.Once you have JoinMarket installed you can transfer bitcoin into the “zero mixing depth”.
bitcoin easy apsSubsequent operations will send bitcoin to deeper mixing depths.
bitcoin nevisUnfortunately, I wasn’t able to actually get this working.
chat bitcoin italiaWhen I ran the tumbler.py script it was able to send some bitcoin into the deeper mixing depths, but it never got close to the bottom depth.

The tumbler would give me an estimate like “10 hours” and I waited up to 2+ days and never got things close to the bottom mixing depth.I also tried sending coins with the sendpayment.py script and got errors.While I was testing JoinMarket I only put about 0.2 BTC into my JoinMarket wallets (currently worth about $60 USD) while I tested it.I suspect that my transactions are failing for two reasons: there aren’t enough users on JoinMarket, and my transaction amounts are too small to get picked up by other users.That said, I’m not really interested in transferring more BTC into my JoinMarket wallets until I am able to definitely diagnose this as the problem.I also want to take a minute to figure out how to get coins out if things go awry.Superficially it appears easy since you can easily list the wallet addresses for all of the coins, but I need to spend a bit more time experimenting with this.I’ve seen Chris Belcher (the author of JoinMarket) in the #bitcoin room in Freenode and I also saw that JoinMarket has its own Freenode channel.

One of these days when I feel sufficiently motivated I’ll see if I can track someone down on Freenode who can help me with my problems.In the meantime, I am using conventional tumblers, which I really hate doing.I’d love to be able to report good things about JoinMarket in the future.Create a gist now Instantly share code, notes, and snippets.$ bitcoin-qt --help Bitcoin-Qt version v0.7.2-beta Usage: bitcoin-qt [command-line options] Options: -?This help message -conf=
Specify configuration file (default: bitcoin.conf) -pid= Specify pid file (default: bitcoind.pid) -gen Generate coins -gen=0 Don't generate coins -datadir= Specify data directory -dbcache= Set database cache size in megabytes (default: 25) -dblogsize= Set database disk log size in megabytes (default: 100) -timeout= Specify connection timeout in milliseconds (default: 5000) -proxy= Connect through socks proxy -socks= Select the version of socks proxy to use (4-5, default: 5) -tor= Use proxy to reach tor hidden services (default: same as -proxy) -dns Allow DNS lookups for -addnode, -seednode and -connect -port= Listen for connections on (default: 8333 or testnet: 18333) -maxconnections= Maintain at most connections to peers (default: 125) -addnode= Add a node to connect to and attempt to keep the connection open -connect= Connect only to the specified node(s) -seednode= Connect to a node to retrieve peer addresses, and disconnect -externalip= Specify your own public address -onlynet= Only connect to nodes in network (IPv4, IPv6 or Tor) -discover Discover own IP address (default: 1 when listening and no -externalip) -irc Find peers using internet relay chat (default: 0) -listen Accept connections from outside (default: 1 if no -proxy or -connect) -bind= Bind to given address.

Use [host]:port notation for IPv6 -dnsseed Find peers using DNS lookup (default: 1 unless -connect) -banscore=
Threshold for disconnecting misbehaving peers (default: 100) -bantime= Number of seconds to keep misbehaving peers from reconnecting (default: 86400) -maxreceivebuffer= Maximum per-connection receive buffer, *1000 bytes (default: 5000) -maxsendbuffer= Maximum per-connection send buffer, *1000 bytes (default: 1000) -upnp Use UPnP to map the listening port (default: 1 when listening) -detachdb Detach block and address databases.Increases shutdown time (default: 0) -paytxfee= Fee per KB to add to transactions you send -server Accept command line and JSON-RPC commands -testnet Use the test network -debug Output extra debugging information.Implies all other -debug* options -debugnet Output extra network debugging information -logtimestamps Prepend debug output with timestamp -shrinkdebugfile Shrink debug.log file on client startup (default: 1 when no -debug) -printtoconsole Send trace/debug info to console instead of debug.log file -rpcuser= Username for JSON-RPC connections -rpcpassword= Password for JSON-RPC connections -rpcport= Listen for JSON-RPC connections on (default: 8332 or testnet: 18332) -rpcallowip= Allow JSON-RPC connections from specified IP address -rpcconnect= Send commands to node running on (default: 127.0.0.1) -blocknotify= Execute command when the best block changes (%s in cmd is replaced by block hash) -upgradewallet Upgrade wallet to latest format -keypool= Set key pool size to (default: 100) -rescan Rescan the block chain for missing wallet transactions -salvagewallet Attempt to recover private keys from a corrupt wallet.dat -checkblocks= How many blocks to check at startup (default: 2500, 0 = all) -checklevel= How thorough the block verification is (0-6, default: 1) -loadblock= Imports blocks from external blk000?.dat file Block creation options: -blockminsize= Set minimum block size in bytes (default: 0) -blockmaxsize= Set maximum block size in bytes (default: 250000) -blockprioritysize= Set maximum size of high-priority/low-fee transactions in bytes (default: 27000) SSL options: (see the Bitcoin Wiki for SSL setup instructions) -rpcssl Use OpenSSL (https) for JSON-RPC connections -rpcsslcertificatechainfile= Server certificate file (default: server.cert) -rpcsslprivatekeyfile= Server private key (default: server.pem) -rpcsslciphers= Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) UI options: -lang= Set language, for example "de_DE" (default: system locale) -min Start minimized -splash Show splash screen on startup (default: 1) Sign up for free to join this conversation on GitHub.