--- Day changed Wed Aug 14 2019 00:29 -!- fishguts [~fishguts@121-200-12-43.79c80c.syd.nbn.aussiebb.net] has joined #joinmarket 00:53 < fishguts> Hi. I was in here a couple of months ago after losing some bitcoins due to high fees. I was given some good advice by adlai that "if you want determinism, be a good physicist and observe your apparatus at work rather than delegating observation to a machine". 00:53 < fishguts> I'm hoping someone can check my understanding of how to perform a coinjoin with low fees. 00:54 < fishguts> I'll target 50 blocks by setting tx_fees to 50. A tumble by default makes five transactions (for five mixdepths) @ 1.5-2 kilobytes per transaction. 00:54 < fishguts> At the moment confirming a transaction within 50 blocks costs 4961 bitcoins per kilobyte according to my node. So I take the satoshis per kilobyte (4961) and multiply it by the expected kilobyte value of a tumbling step (1.5-2) then multiply by 5 for the default five mixdepths. 00:54 < fishguts> I'll be paying 37215 to 49620 in fees for a single coinjoin that will complete in about 8 hours (50*10 minutes), or around $5-10. Is this right? 01:02 < CgRelayBot> [cgan/AlexCato1] hi there, so currently it seems that fees are even cheaper... at least my node reports: 01:02 < CgRelayBot> [cgan/AlexCato1] ~$ bitcoin-cli estimatesmartfee 50 01:02 < CgRelayBot> [cgan/AlexCato1] { "feerate": 0.00001000, 01:02 < CgRelayBot> [cgan/AlexCato1] "blocks": 50 } 01:02 < CgRelayBot> [cgan/AlexCato1] so thats good news 01:02 < CgRelayBot> [cgan/AlexCato1] on the total fees 01:03 < CgRelayBot> [cgan/AlexCato1] i dont think a default tumble makes just 5 transactions, let me check 01:04 < CgRelayBot> [cgan/AlexCato1] my schedule with default settings has 10 transactions 01:04 < fishguts> Ah my node is out of date. I'll wait for it to catch up. Thanks. 01:04 < CgRelayBot> [cgan/AlexCato1] with a destiation to 2 target addresses 01:04 < CgRelayBot> [cgan/AlexCato1] so at 2 KB per transaction * 10 transaction = 20 kb of bitcoin space to be paid 01:05 < CgRelayBot> [cgan/AlexCato1] the total fee for that is 0.00001 * 20kb = 0.0002 btc = around $3 right now 01:05 < CgRelayBot> [cgan/AlexCato1] plus the coinjoin fees, but those will most likely be negligable 01:05 < CgRelayBot> [cgan/AlexCato1] so in total, i dont think it will cost more than $3-5 01:06 < CgRelayBot> [cgan/AlexCato1] on the other side: i dont think it will complete in 8 hours 01:06 < CgRelayBot> [cgan/AlexCato1] with these low fees, there might be transaction confirmation delays of up to a few hours between some of those 10 transactions 01:07 < CgRelayBot> [cgan/AlexCato1] so i'd estimate that will take at least a day, probably more. But cant be predicted with certainty 01:08 < CgRelayBot> [cgan/AlexCato1] and theres one more hunch i have about the block target of 50, let me check the code for a sec. I remember that 25 is the max in joinmarket, iirc 01:08 < fishguts> Okay. I must misunderstand that bit. I thought the "estimatesmartfee" tells you what fee you need to pay for a transaction to be confirmed within X blocks. 01:09 < fishguts> And I asked it what the fee will be for confirmation within 50 blocks and each block takes 10 minutes to mine. ? 01:10 < CgRelayBot> [cgan/AlexCato1] i remembered wrong. 50 works. 01:11 < CgRelayBot> [cgan/AlexCato1] yes, 50 is an *estimation*. If there's heavy bitcoin usage during your tumbling time, it might take 150 blocks for confirm, or it might take 5. Theres no certainty that it will *actually* get in 50 blocks from now 01:11 < CgRelayBot> [cgan/AlexCato1] also, that 50 is the estimated time it takes for *1* transaction. You're doing probably 10, so it will be around 500 blocks until the whole tumbling run is finished 01:12 < CgRelayBot> [cgan/AlexCato1] 500 / 6 blocks per hour = 83 hours completion time estimated 01:12 < fishguts> Ah of course. That's the part I was missing. 01:12 < fishguts> Thanks muchly. 01:13 < CgRelayBot> [cgan/AlexCato1] since required network fees are usually near 0 during the nights, i'd estimate that you'd still be done within a day or two though 01:13 < CgRelayBot> [cgan/AlexCato1] i'd be surprised if it really takes 3.5 01:14 < CgRelayBot> [cgan/AlexCato1] you're welcome 01:14 < fishguts> Okay. I am in no hurry. I have one last questions. I notice that one of the internal addresses in my wallet is the same as the last time I sent to it for tumbling. 01:14 < fishguts> Do I need to generate new addresses before every tumble? 01:16 < CgRelayBot> [cgan/AlexCato1] you should never send manually to internal addresses, just the external ones. And they should never be the same. Are there still coins in the used internal address you're seeing? Then it might be a leftover. If not... used internal addresses should not even be shown to you 01:16 < CgRelayBot> [cgan/AlexCato1] belcher_ , waxwing , an idea about this last line? 01:17 < CgRelayBot> [cgan/AlexCato1] if your wallet is empty, another way is to just create a new joinmarket wallet. That will avoid any problem with reuse 01:18 < fishguts> Hmm. It 01:19 < fishguts> It's not empty. And I was confusing external with internal. But yes one external is the same, and it does seem some coins are stuck at the first mixdepth (0). 01:20 < CgRelayBot> [cgan/AlexCato1] maybe they were not confirmed when the last tumbling run started or so 01:20 < fishguts> I tumbled from one wallet to another. 01:21 < fishguts> So the coins will move from mixdepth 0 to mixdepth 4 in wallet A, before finally being sent to the three nominated address belonging to wallet B. 01:21 < CgRelayBot> [cgan/AlexCato1] thats the idea, yes 01:22 < CgRelayBot> [cgan/AlexCato1] sorry, i gotta leave for a few hours now. If theres more questions, i hope someone else will be around shortly 01:22 < fishguts> Right. So I would expect all the coins to be in mixdepth 0 in wallet B. If I want to perform the same process again (wallet A to wallet B), how do I generate new addresses in mixdepth 0 of wallet B to receive? 01:23 < fishguts> That's fine I'll check in later. Thanks again. 01:23 < CgRelayBot> [cgan/AlexCato1] each wallet will show you 5 unused external addresses. Use (empty) addresses will be removed from view 01:24 < CgRelayBot> [cgan/AlexCato1] so it automatically creates new ones for you, just check with wallet-tool.pu 01:24 < CgRelayBot> [cgan/AlexCato1] *wallet-tool.py 01:27 < fishguts> Ah well one single external address has not been removed. 01:27 < fishguts> And appears to still contain coins. 01:27 < fishguts> Here is an anonymised output: https://pastebin.com/raw/vTDbnHLk 01:27 < fishguts> I removed the address and changed the coin values. 01:28 < fishguts> As you can see the first external address (the used one) has coins in it still. What happened and how might I fix it? All other mix depths are empty. 01:40 < waxwing> fishguts, perhaps at the time the tumble started, those coins were not present? e.g. tx not yet confirmed. 01:40 < waxwing> also as i was reading the backscroll i think i saw you say you were choosing multiple destinations for a tumble from a single mixdepth in wallet B; if you're doing that, don't, because then all your destinations will eventually get clustered. 01:41 < waxwing> if you want to tumble from one JM wallet to another, make sure the multiple destinations are in different mixdepths. 01:42 < waxwing> (well "all will eventually get clustered", depending on some details, but it's likely) 01:43 < fishguts> Ah. Is there a privacy advantage to sending to multiple address in wallet B? If yes, do I need to move coins to a single mixdepth before sendtotransaction, or will the client take them from any mixdepth as needed? 01:50 < fishguts> Okay so send to 3 or more addresses in wallet B, all different mixdepths/accounts. Re the coins not being present: I sent bitcoins to wallet A from an exchange in one transaction (IIRC) so I'm not sure how only most of them were confirmed. 01:53 < fishguts> Regardless, how might I get them out? I searched and found AlexCato suggest this: "sendpayment.py -m -N 0 0 ". 02:22 < fishguts> If I have coins stuck in an internal address at depth 0 in a wallet, then using the above command like this "sendpayment.py -m 0 -N 0 wallet_nemo 0 address_in_depth0_of_wallet_nemo", will that "sweep" all coins including the ones stuck in the internal address? 02:33 < belcher> depends what you're trying to do 02:33 < belcher> so say if you wanted to deposit coins to an exchange, then the destination addresses should be the exchange deposit addresses 02:34 < belcher> and yes, sweeps will also use internal addresses as inputs, because a mixdepth is made up of both internal and external addresses 02:34 < belcher> btw make sure you havent accidently frozen those addresses, that happened to me once 02:40 < fishguts> I haven't run any freeze commands. 02:40 < fishguts> My current usage is exactly like this: https://old.reddit.com/r/joinmarket/comments/48l5f3/using_joinmarket_as_a_primary_wallet/d0l8fau/ 02:41 < fishguts> So I have two questions, when sending from tumble-wallet to yield-wallet, do I specify three addresses across three different mixdepths? 02:43 < fishguts> And, when sending bitcoins from yield-wallet to for example an exchange, say I have 1 coin each in mixdepths 0, 1 and 2, and I want to send 2 coins to a third-party. Do I need to sweep coins into mixdepth 0 until it holds 2 coins? Or will sendtoaddress take coins from multiple mixdepths until it has gathered the nominated amount? 02:44 < fishguts> ^sendtoaddress^sendpayment.py 02:50 < fishguts> Oh and also, when sweeping from an internal address at depth 0 (where my coins are stuck) to an external address in depth 0, can I move the coins off-chain, i.e. pay no fees. I am guessing no. 04:04 -!- lnostdal [~lnostdal@62.90-149-73.nextgentel.com] has joined #joinmarket 04:13 -!- MaxSan [~four@185.156.175.171] has joined #joinmarket 04:32 -!- MaxSan [~four@185.156.175.171] has quit [Quit: Leaving.] 05:16 -!- undeath [~undeath@hashcat/team/undeath] has joined #joinmarket 06:27 -!- bsm1175321 [~mcelrath@c-24-61-184-150.hsd1.ma.comcast.net] has joined #joinmarket 06:28 -!- bsm1175321 [~mcelrath@c-24-61-184-150.hsd1.ma.comcast.net] has quit [Client Quit] 09:23 -!- MaxSan [~four@185.156.175.171] has joined #joinmarket 09:30 -!- puddinpop [~puddinpop@unaffiliated/puddinpop] has joined #joinmarket 09:37 -!- Breeze555 [5c28f930@92.40.249.48.threembb.co.uk] has joined #joinmarket 09:38 < Breeze555> Hi. Any one about 09:38 < Breeze555> Need help installing joinmarket on linux 09:42 -!- Breeze555 [5c28f930@92.40.249.48.threembb.co.uk] has quit [Remote host closed the connection] 09:47 -!- MaxSan [~four@185.156.175.171] has quit [Quit: Leaving.] 12:20 -!- reallll [~belcher@unaffiliated/belcher] has joined #joinmarket 12:22 -!- arubi [~ese168@gateway/tor-sasl/ese168] has quit [Remote host closed the connection] 12:22 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has quit [Write error: Connection reset by peer] 12:22 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has quit [Write error: Connection reset by peer] 12:23 -!- belcher [~belcher@unaffiliated/belcher] has quit [Ping timeout: 248 seconds] 12:25 -!- arubi [~ese168@gateway/tor-sasl/ese168] has joined #joinmarket 12:28 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has joined #joinmarket 13:17 < CgRelayBot> [cgan/AlexCato1] Breeze555 still around? What's your question? 13:44 < technonerd> Breeze555 has quit (Remote host closed the connection) 13:44 < technonerd> A whopping 4 mins 15:02 -!- kristapsk [~KK@gateway/tor-sasl/kristapsk] has joined #joinmarket 15:02 -!- undeath [~undeath@hashcat/team/undeath] has quit [Quit: WeeChat 2.4] 15:11 -!- lnostdal [~lnostdal@62.90-149-73.nextgentel.com] has quit [Quit: "Fascism, Nazism, Communism and Socialism are only superficial variations of the same monstrous theme—collectivism." -- Ayn Rand] 17:24 < fishguts> Using the default limits for a coinjoin "Using maximum coinjoin fee limits per maker of 0.1000%, 9999 sat" 17:24 < fishguts> I am getting no bites after 8 hours. Is this normal? 17:25 < fishguts> I can't see anything in the log, 17:27 -!- CgRelayBot [~CgRelayBo@p5DE4AC5C.dip0.t-ipconnect.de] has quit [Ping timeout: 248 seconds] 17:28 -!- AgoraRelay [~jmrelayfn@p5DE4AC5C.dip0.t-ipconnect.de] has quit [Ping timeout: 248 seconds] 17:39 < fishguts> My tx_fees is 4000. But that shouldn't affect my ability to find makers right? As my coinjoin limits are the default? 17:40 < fishguts> My IRC config is standard, like this: https://pastebin.com/raw/hg99GmB4 17:40 -!- CgRelayBot [~CgRelayBo@p5DE4ADED.dip0.t-ipconnect.de] has joined #joinmarket 17:43 -!- AgoraRelay [~jmrelayfn@p5DE4ADED.dip0.t-ipconnect.de] has joined #joinmarket 17:55 < fishguts> I started in again so I can see the debug logging. It gets stuck on "building irc". 17:56 < fishguts> Does that mean there is some problem in the initialisation, or it isn't finding any makers? 17:56 < fishguts> I tried logging onto the pit with an IRC client to see if I pop up but can't connect to the servers. 17:59 < qubenix> fishguts: your ports are wrong and the address for you server1 is wrong. see here about the correct address: https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/377 18:00 < qubenix> both servers should be port 6697 18:01 < qubenix> even with correct configurations you may still sit whole days without a coinjoin, and then other time you do double digits in a day. 18:05 < fishguts> Okay good to know. And re the IRC settings, I tried making a new joinmarket.cfg to see if the settings had changed, but it make a cfg with the old servers. 18:05 < fishguts> Which is odd because I can see the correct configuration in jmclient/configure.py 18:05 < fishguts> Anyway, thanks. 18:20 < fishguts> I'm getting "INFO:Failed to source a commitment". It looks like I have two Utxos with less than five confirmations. 18:20 < fishguts> Then the taker stops with "Taker not continuing after receipt of orderbook" 18:20 < fishguts> Shouldn't it wait and check the utxos again rather than stop the tumbling entirely? 18:21 -!- eulersphi_ [~eulersphi@46.62.161.26] has joined #joinmarket 18:21 -!- eulersphi_ is now known as Guest77734 18:23 -!- Guest28874 [~eulersphi@91.98.165.36] has quit [Ping timeout: 244 seconds] 18:30 < fishguts> Apologies I should have read the documentation. It explains this expected behaviour. 20:04 < waxwing> if you have utxos with less than 5 confirmations it should not stop, it should wait and then attempt again, probably after like 20 minutes depending on exact config. 20:05 < waxwing> fishguts ^ 20:06 < waxwing> also if you edit the config it of course should change the behaviour, but make sure you are changing the config in the same location you're running the script (so, it should be located in scripts/joinmarket.cfg, and you should run the script from within that directory) 20:12 < fishguts> Yep editing the config worked, I just mean that I generated a new one with wallet-tool.py and the cfg it generated had the old IRC data in it despite my installation being up-to-date. 20:13 < fishguts> Re utxos issue, yes my "stop" was just a pause as you describe. 20:23 < waxwing> hmm that's weird, so "i generated a new one" means - you generated a new wallet with `python wallet-tool.py generate`, or? 20:24 < waxwing> config should only be generated if it's not found in the directory you're running in. 20:24 < waxwing> and if it is newly generated then yeah it'll have the defaults (which unfortunately as of today includes an incorrect CgAn IRC server). 20:27 -!- Breeze555 [bc1da47b@188.29.164.123.threembb.co.uk] has joined #joinmarket 20:32 -!- Breeze555 [bc1da47b@188.29.164.123.threembb.co.uk] has quit [Remote host closed the connection] 20:33 -!- Breeze555 [bc1da47b@188.29.164.123.threembb.co.uk] has joined #joinmarket 20:43 -!- Breeze555 [bc1da47b@188.29.164.123.threembb.co.uk] has quit [Ping timeout: 260 seconds] 21:29 < fishguts> Yes, I moved the config out of the folder and then ran wallet-tool.py to generate a new joinmarket.cfg 21:30 < fishguts> I assumed it would have the new defaults looking at joinmarket-clientserver/jmclient/jmclient/configure.py 21:30 < fishguts> But obviously not. Anyway it sounds like nothing unexpected is happening here. Thanks. 21:48 -!- davex_ [~user@45.74.60.148] has quit [Remote host closed the connection] 21:48 -!- davex_ [~user@45.74.60.148] has joined #joinmarket 23:59 -!- Giszmo [~leo@122-58-55-184-vdsl.sparkbb.co.nz] has joined #joinmarket