9 Best FTP and SFTP Client Software For Windows and Linux

Coins possibly stuck in tumbler

I believe some of my coins may be stuck because the tumbler crashed before completing. I use the UI to access my wallet and run the tumber, however it says that I have very little coins while bitcoin core is showing much more in watch only.
I looked on reddit for any possible fixes and I was told to run this:
 python wallet-tool.py -m 15 my-wallet-file.json 
The commenter said that the coins are most likely stuck in a higher mixdepth so running this will increase the maximum mixdepth. Unfortunately this doesn't appear to do anything for me, or I'm just not smart enough to see what was done. I've included what happens when I run this command below
(jmvenv) [email protected]:~/joinmarket-clientservescripts$ python wallet-tool.py -m 15 wallet.json User data location: /home/caleb/.joinmarket/ Enter wallet decryption passphrase: Traceback (most recent call last): File "wallet-tool.py", line 9, in  jmprint(wallet_tool_main("wallets"), "success") File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet_utils.py", line 1242, in wallet_tool_main wallet_password_stdin=options.wallet_password_stdin, gap_limit=options.gaplimit) File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet_utils.py", line 1133, in open_test_wallet_maybe return open_wallet(path, mixdepth=max_mixdepth, **kwargs) File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet_utils.py", line 1179, in open_wallet wallet = wallet_cls(storage, **kwargs) File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet.py", line 1031, in __init__ super(ImportWalletMixin, self).__init__(storage, **kwargs) File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet.py", line 1282, in __init__ super(BIP32Wallet, self).__init__(storage, **kwargs) File "/home/caleb/joinmarket-clientservejmclient/jmclient/wallet.py", line 335, in __init__ .format(self.max_mixdepth)) Exception: Effective max mixdepth must be at most 4! 
Any suggestions would be appreciated.
submitted by DecentMidLaner to joinmarket [link] [comments]

Release for segwit (joinmarket-cs codebase)

See https://github.com/AdamISZ/joinmarket-clientservereleases
Main points:
Sample transaction: https://www.smartbit.com.au/tx/018203eb56e516f9e68635c5b42bdf206553bcdbed09c8fa578084989c3c9a96
Testing, questions welcome - good idea to ping me. Thanks to eustan for giving it a try :)
There's a linux gui binary there, I'll add the Windows one once I've made sure it's working properly. Mac, I'll ask for help on that again (and with install script for command line above, which may be easier).
submitted by waxwing to joinmarket [link] [comments]

Notes on a first quick test of NTumblebit, on Linux and regtest.

I just thought I'd jot down a few notes on the experience of trying out the current NTumbleBit code.
This is testing on regtest, done for the simple reason that you don't have to wait for testnet blocks (nor sync testnet which is mildly annoying). At this stage I just wanted to learn how this works.
Your starting point is this wiki page.


You need to download Bitcoin Core. Use at least 0.13.1 - this turned out to be only major blocking point in the whole test, funnily enough, for me - it took me a few hours(!) in debugging to realize that the reason my wallet's coins were not being recognized was simply because 0.12.1 didn't support the necessary RPC syntax. (Note to devs: is there a way to expose errors/exception to the user in the client to help with under-the-hood errors like that? RPC configuration errors are exposed, so that's good of course).
Since this is regtest, that's it: you don't need to sync any blockchains :)
However, you do of course have to configure and start it. Put a bitcoin.conf somewhere (if you're currently running a node it's easiest to make a separate one from your main ~/.bitcoin/bitcoin.conf one, of course. I put one in ~/bitcoin.conf with these settings:
rpcuser=bitcoinrpc rpcpassword=123456abcdef 
(you'll need those values again in a minute) and then run with
~/bitcoininstallationdibitcoind -regtest -daemon -conf=homedibitcoin.conf 
(I didn't need to add server=1 to config).
Note that coins are not available until maturity, so you need to use the generate command to mine blocks, like this:
~/bitcoininstallationdibitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=123456abcdef generate 101 
Now your regtest bitcoind is running, you can move on to Tumblebit. Follow the instructions in the wiki page mentioned at the start; install .Net Core - the Microsoft instructions are easy to follow, just a couple of apt-gets and install the *.deb. Next, clone the github repo and run the Unit Tests. They passed first time for me.


Next, start up the server, following the instructions in the wiki, except note you're using regtest, so:
cd NTumbleBit.TumblerServer dotnet run -regtest 
The first start up will compile but also set up RSA keys, all that is fine without changes, but you'll need to edit the config so that the RPC is pointing at your regtest instance properly. In this case it (the new config should be located in ~/.ntumblebit/RegTest/server.config) should be edited to look like:
rpc.url=http://localhost:18332/ rpc.user=bitcoinrpc rpc.password=123456abcdef #rpc.cookiefile=yourbitcoinfolde.cookie 
Then restart and check you get no RPC errors. Leave that console open, it's running a server loop.
Next, configure and start the client. Note, we are still following the wiki page, except for the regtest element, so:
cd NTumbleBit.CLI dotnet run -regtest 
You'll most likely get an RPC error again, before it shuts down. Now we need to edit the ~/.ntumblebit/RegTest/client.config file. The server can be left as the default localhost:5000, but you need the right RPC settings:
rpc.url=http://localhost:18332/ rpc.user=bitcoinrpc rpc.password=123456abcdef #rpc.cookiefile=yourbitcoinfolde.cookie tumbler.server=http://localhost:5000 outputwallet.extpubkey= outputwallet.keypath=0 
the last two fields are the important bit, which the wiki page explains in some detail for the testnet case.

Details on setting up a receiving wallet (for this test!)

What you need is a BIP32 based wallet (HD) that supports testnet, and can be run against regtest here (which in most cases will be the same thing to a wallet, as long as it can connect via RPC to sync itself). The good news is the wallet doesn't need to contain any coins. The details of the following probably won't be suitable for most (if you've never used joinmarket it's a bit convoluted), so you'll probably want to find another easy to use wallet; the wiki page should be a good starting point.
For my test I used joinmarket; all we need to do is (a) hook it up to the regtest instance, and (b) extract the BIP32 xpub key that we'll be sending coins to. So in my case the flow of coins is:
Regtest Bitcoin Core wallet (containing 'mined' coins) one branch of my BIP32 joinmarket wallet, configured to sync against the same regtest instance.
I used my new joinmarket code but it's the same for the main joinmarket code. I overwrote joinmarket.cfg to have regtest settings (use this file; only the highlighted settings matter, those are the right ones for this test), then just run python wallet-tool.py randomseed. "randomseed" there can be literally anything, it's read as a brainwallet style seed for the bip32 wallet (because testnet, we don't care about its insecurity). The tpub.. keys seen for each branch are the "xpub" public keys at that branch of the BIP32 wallet. Tumblebit is going to send to a branch below whatever xpub we need, so the simplest is to add a print statement to print the xpub key above that; e.g. add this code:
for i in range(max_mix_depth): print('master for index: ' + str( i) + ' : ' + btc.bip32_privtopub(mixing_depth_keys[i])) 
immediately above this line. Then run again python wallet-tool.py randomseed.
Extract an xpub for any one of the "mixdepths", e.g. I chose:
master for index: 3 : tpubDBFGvUbWtEPKXeWPeG7rUh98iV9GuXSDbnk6ZrZHjcmp134BPByT293HPPQ93DktrVFKpZeAU1ULSdyfmwWuUGvUVLP19JkdUq2mzNKFJPR 
and put that tpub.. key into the field pubkey in the above mentioned 'client.config':
outputwallet.extpubkey=tpubDBFGvUbWtEPKXeWPeG7rUh98iV9GuXSDbnk6ZrZHjcmp134BPByT293HPPQ93DktrVFKpZeAU1ULSdyfmwWuUGvUVLP19JkdUq2mzNKFJPR outputwallet.keypath=0 
Now save and quit.

Running the tumble

Restart the client. If RPC is right, it'll start running, waiting for blocks. Your regtest Core instance will have coins (after the previous generate 101), and those coins will be automatically tumbled, one coin at a time, into the output wallet (in my case, the branch m/0/3/0 which is labelled there 'mixdepth 3, external').
Now you can test and watch the process! Open up a third console and repeatedly generate blocks:
/path/to/bitcoin/bin/bitcoin-cli -regtest -rpcpassword=123456abcdef generate 1 
As each block is generated you'll see the state in the client terminal window updating, showing the phases. A new 'epoch' (right term?) is started every N blocks (I haven't investigated the timing yet), and several epochs run concurrently. In each one, the client can pay in 1 Bitcoin (from Core) and eventually get out 1 coin - fees to the destination (Joinmarket in my case, any other BIP32 in yours). You can replace generate 1 with generate N but I'm not sure if the code will always correctly handle you mining lots of blocks at once! After a large enough number of blocks you'll start to see 'ClientCashout phase' occurring, and txids being printed out. You can go back to your (JM or other) wallet and see the coins arriving; here's what I see after a few epochs have gone through (using my python wallet-tool.py randomseed command):
for mixdepth=2 balance=0.00000000btc mixing depth 3 m/0/3/ external addresses m/0/3/0 tpubDDMAxSHJmxzeXwDnATuvtDizqNSsQKpXGufBDnER44BzEbHy7kg485zZwHqvzprgf6yEQYg9qYYfsLYS1HMmdSuXDzQb2dJSiga9geyM62R m/0/3/0/007 mw9s7tYucxB9yr2L6HkqeDVsh3wdgMdcyK used 0.99995750 btc m/0/3/0/008 mq5TgTNgwYHv88Q4T7wL6kTb1MBSPE3mqK used 0.99995750 btc m/0/3/0/009 mhzQFY8FNvux6SKWKLKmhBB3Sw4MLaSnyu used 0.99995750 btc m/0/3/0/010 mrYECmCf5UKa1BBRMuzprVugsCi9z7oiHo new 0.00000000 btc m/0/3/0/011 mopUNXmHT8ngfBymM3c3EYMg7RLZAf6Zc6 new 0.00000000 btc m/0/3/0/012 mmaVXVfQP4UAYJPhMpQ3FhgXfHzujaxyw4 new 0.00000000 btc m/0/3/0/013 mzYD1AcUFz8SVwJM8EjVCfEM6pcYnHooBR new 0.00000000 btc m/0/3/0/014 my5unLCEMWQBkXBdeJ75VVGk1wrMrT8iDE new 0.00000000 btc m/0/3/0/015 muA76YSTtKKmD6HnVKYhkd9K9TZnPLh8pp new 0.00000000 btc internal addresses m/0/3/1 for mixdepth=3 balance=2.99987250btc 
As you can see, 3 coins have arrived.
submitted by waxwing to TumbleBit [link] [comments]

Alternative implementation of tumbler and sendpayment available

The code at https://github.com/AdamISZ/joinmarket-clientserver now has fully working implementations of the main taker-side scripts, including sendpayment.py and tumbler.py.
I have tested this fairly thoroughly now and so although it's not an "official release", these scripts are ready.
The reasons for creating this new code repo are found in the README, they're fairly technical but it's mostly about modularity that can allow easier "connecting-to" to Joinmarket, and some other increases in flexibility.
As a user here's what (may be) of interest:
On the use of the tumbler script, and the attempts to make it more robust, please see this guide: guide. It's linked from an overall readme for the scripts here, which also explains a few extra points about sendpayment.
The stuff about a "joinmarket daemon" (joinmarketd.py) can be safely ignored - it can provide some interesting models in future, but a user can for now pay no attention, as that function will by default run within the script. Of course if you do want to experiment with it, go ahead, it works and is explained there.
... is explained here. These instructions are linux-only for now. Do use virtualenv as instructed, it's far cleaner that way. Be sure to follow "Installing packages for everything-in-one".
GUIs, plugins, alternate implementations
These were a big part of the intent of this redesign - to isolate the "backend" elements of Joinmarket - the messaging protocol, encryption etc. to make this easier. Well, the story's more complicated than that, but let's say.
There is a joinmarket-qt.py which is an updated implementation of the former joinmarket-qt gui. It isn't in a working state right now; I've been making sure the command line scripts are all functional first, but a little while back I had most of what I wanted set up there - both sendpayment and tumbler functions (the latter a bit rudimentary, but working). But there is still work to do, so again, don't try to use those now.
A similar comment applies to the electrum plugin code I was working on; it also relies on this codebase, but I put it aside while doing the most recent updates, so while it was working, it is currently not, at all, so don't attempt to use it. I have to defer it until I have time or someone else wants to help; the updates may be fairly minor though, but note it is only single-join enabled for now.
As to alternative implementations of taker-side Joinmarket using this: it should be at least somewhat easier now to "plug-in" at one of two points: either instantiate a Taker object and feed it a schedule, while providing an implementation of the bitcoin calls required, or operate with an entirely different codebase, and run the joinmarket daemon in a separate process to deal with the messaging protocol. The interface to that is defined here (a TODO is document that more thoroughly).
We may move this code repo into Joinmarket-Org, that's up for discussion, shouldn't really matter too much. But it goes without saying I'd be grateful for development work or testing feedback.
Hope it helps!
submitted by waxwing to joinmarket [link] [comments]

Explaining #bitcoin 's Source: [#1] 21million //Bitcoin amount Bitcoin JSON-RPC Tutorials - YouTube Time Scale Creator (Part 2) Bitcoin JSON-RPC Tutorial 1 9. bitcoind

Make money from your blockchain and another bitcoin wallet instantly. Blockchain Miner Pro comes with amazing features and private mining pool that help each user to mine a huge fund of bitcoin within days. During the day, mining is constantly changing, sometimes up to 6 hours to 1 hour. Formula = efficient time to be productive. Contributing. We welcome contributions if you have a little extra time and Python experience. We ask that you make your pull requests on the develop branch, as we only use master for releases. Please follow PEP8, and make sure you document anything new.If you have any questions, you can find the entire team on Slack.Note: If you plan on running the unit tests for the repo, you will also need ... bitcoin-wallet: A new kind of Bitcoin client Python (elis) picocoin: A small bitcoin client C (jgarzik) sx: sx - command line Bitcoin to empower the sysadmin Python (spesmilo) Safebit: Chrome app wallet (elis) Bitcoin-akka: a client to btcwallet, written in Scala and built on akka (goldmar) Clients I have one computer running Ubuntu 10.04, and is running Vino, the default VNC server. I have a second Windows box which is running a VNC client, but does not have any X11 capabilities. I am ssh'd... Full Bitcoin OS For Raspberry Pi, zero, 2, 3, 4, BananaPi PRO, PINE64+, Odroid + more IoT Devices. Integrated OK and Bitcoin Full nodes, BFG and CGMiners, Dev tools + Clients/Nodes Support. The First Bitcoin Full node OS! (Since 2014) [covered by TechCrunch, CES and acknowledged by FOSS among others] ROKOS core: https://rokos.space ROKOS flavors: https://rokos-flavors.space ROKOS flavors ...

[index] [23331] [24745] [20978] [23552] [21651] [10050] [5145] [30739] [27385] [7388]

Explaining #bitcoin 's Source: [#1] 21million //Bitcoin amount

Learning Bitcoin 4 - Bitcoin Command Line Helper - Part 1 - Duration: 14:44. Experience&Embrace 1,024 views. 14:44. An introduction to the Bitcoin JSON-RPC tutorial series. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U. This video is unavailable. Watch Queue Queue We cover chapter 3 of Andreas Antonopoulos' book Mastering Bitcoin. Featured are examples of bitcoin-cli commands, and simple Python scripts to interact with the bitcoin blockchain. New RPC commands: - getblockchaininfo - getblockcount - getpeerinfo - getconnectioncount - stop Linux terminal new stuff: watch * All other commands have been covered in previous videos www ...