--- Day changed Wed Jul 19 2017 00:43 -!- MaxSan [~one@109.232.227.149] has joined #joinmarket 00:45 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 00:49 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Read error: Connection reset by peer] 00:49 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 00:57 < trotski2000> what could be the reason of "failed to source commitments"? 02:07 -!- cabits` [~cabijtasd@c-217-115-42-58.cust.bredband2.com] has joined #joinmarket 02:12 -!- MaxSan [~one@109.232.227.149] has quit [Ping timeout: 260 seconds] 02:29 < trotski2000> hi again guys, I know have a very weird problem 02:31 < trotski2000> after running the tumbler one of the joinmarket transactions to a destination (external) address disappeared.... And now bitcoin Core shows the wrong balance in "watching only". It should be 0 but it shows a positive balance because like a said one of the transactions to an external address magically disappeared. I tried to restart Core with -rescan but it did not fix it. How can I solve this issue? Any ideas 02:31 < trotski2000> waxwing ? 02:43 < waxwing> trotski2000: what does wallet-tool show? are the funds still in the last mixdepth? 02:43 < trotski2000> waxwing: not at all. Wallet-tool shows the correct balance (0) 02:43 < trotski2000> its only Core that is showing the wrong balance 02:43 < waxwing> i don't know what 'disappeared' means here. did you see it on the blockchain as unconfirmed, but then no longer? 02:43 < waxwing> are the funds at the expected destination address? 02:44 < waxwing> was the destination address in your own Core wallet? 02:45 < trotski2000> disappeared means that at first Core showed the correct transaction to an external address. The transaction is confirmed and the funds are safe at the destination address. The destination address is NOT on the Core wallet. Then as for the rest of the balance I was getting the "failed to source commitments" error I just did a sendpayment sweep to a different external address. This las transaction appears 02:45 < trotski2000> correctly on core but the previous one disappeared from Core's list of transactions - and therefore it returns a positive balance when it should be 0 02:46 < waxwing> trotski2000: what i do know is that there are a number of weird issues reported from using the Core wallet. we use the 'accounts' feature (soon to be deprecated) to help us keep track of addresses/payments in joinmarket. 02:47 < waxwing> i mean 'weird issues from using the Core wallet and joinmarket together at the same time'. unfortunately i don't do it myself so can't explain in detail. 02:48 < waxwing> as i recall, pretty much from the very first time people started using joinmarket on real mainnet, with Core wallets, they started mentioning this - that somehow it screws up balances reported in Core (per account or overall? not sure) 02:48 < waxwing> again, i never did that, but maybe others have advice on best practice. 02:48 < waxwing> do you have any actual problem right now with joinmarket itself? 02:48 < trotski2000> so imagine I had a 10btc balance. Using tumbler.py 7btc arrived to an external address (not on Core). Core displayed this transaction correctly and it displayed the correct "watching only" balance (3btc). Then for the 3btc still on the joinmarket wallet i was getting "failed to source commitments" so I just swept the balance to a second external address (not on Core). This 3btc sweep is listed corrected by 02:48 < trotski2000> Core but the first 7btc transaction magically disappeared and therefore now Core shows a "watching only" balance of 7btc. 02:48 < trotski2000> Joinmarket wallet shows the correct balance (0) 02:48 < trotski2000> funds are safe at their destination 02:49 < trotski2000> is just so weird to have an incorrect balance on Core... Even more so when I did -rescan which should resolve these kind of issues 02:49 < waxwing> yes that's pretty much along the lines of what i was mentioning above ^ ; core doesn't report these joinmarket balances correctly, because we're using a soon-to-be-deprecated feature. 02:49 < waxwing> you should ignore that watching-only balance i believe. wallet-tool is the way to check your joinmarket balance. 02:50 < waxwing> failed to source commitments, see the wiki page 'sourcing commitments for joins', explains in some details. often the solution is either to wait, or to do a within-wallet payment direct-send, which can be a low fee. it's a quite significant annoyance but there are several ways to solve it. 02:51 < trotski2000> Yeah I know. Its just that I obviously don't like to have incorrect balances on my main wallet... Even more so because I have another watching only wallet so this really messes up my UX. What I tried to do now is to uset wallet-tool.py with -g 200 and start core with -rescan again. I guess this will do NOTHING but I had to try something else... 02:51 < waxwing> yes that will not change anything afaik 02:51 < trotski2000> :( 02:51 < waxwing> again, someone else who, like you, uses a Core wallet, and joinmarket, will better be able to report on the idiosyncracies here. 02:52 < waxwing> i can only repeat that you can't rely on the Core report of the watching only wallet that joinmarket uses. 02:52 < waxwing> looking at it philosophically, the fact that Core is clueless about the balance of those coins is somewhat less of an issue when you consider it can't spend them :) 02:55 < waxwing> trotski2000: 2 other thoughts 02:56 < waxwing> try using -x to limit how small a transaction could be. i recommend 8000000 or 0.08 or something like that 02:56 < waxwing> also, i tried to make the tumbler more robust in the *clientserver repo, if you're so inclined. there is a specific page on that repo that explains some points that'll help. 02:57 < waxwing> https://github.com/AdamISZ/joinmarket-clientserver/blob/master/docs/tumblerguide.md 02:58 < waxwing> (although the running is basically the same, same flags, but it also creates extra log files for tracking as mentioned in the doc, and it tweaks transactions that fail to try different settings) 02:59 < waxwing> and if you restart it it'll start again from where it left off 03:15 < trotski2000> waxwing: I wasn't aware of the -x. I guess I will make it bigger that 0.08 because last time I got a 0.065 transaction and then tumbler.py got stuck with the "insufficient funds" error message 03:15 < trotski2000> I think it was because of that balance was too small 03:43 < trotski2000> waxwing: I solved the issue. Core somehow imported the external address as an internal address 03:43 < trotski2000> as soon as a transaction was made from that address the balanced showed up correctly 03:43 < trotski2000> LOL 03:44 < waxwing> trotski2000: ah, i think i know what you mean, and i think i know what happened, maybe 03:44 < waxwing> there is a part of joinmarket logic where it will import a destination address into the joinmarket account, even if that address is not part of your joinmarket wallet 03:44 < waxwing> see that's the whole point - we only use that account for *monitoring* the blockchain; that's all we use Core for. 03:45 < waxwing> but Core interprets that "importaddress" command in the only way it can - that we are adding it to this account. whereas it's not actually part of our joinmarket wallet, in this case. 03:45 < waxwing> i'd have to double check, but that's likely what's happening. 03:46 < waxwing> yes i can see the complete logic now. (1) a sweep to an external destination means there are no joinmarket wallet outputs, (2) so we import that address to check when the transaction has occurred (c) Core thinks that therefore the funds are in that account - because, well, they are, because we imported that address to the account. 03:47 < waxwing> there's a code comment somewhere to that effect 'we should really import this into a separate account but it's simpler not to'. 03:51 < trotski2000> OK! Understood now. So if instead of doing a sweep the tumbler would have had finished correctly this wouldn't have happened? 03:51 < waxwing> trotski2000: the tumbler always finishes with a sweep 03:52 < waxwing> it has to, to completely empty the wallet 03:53 < waxwing> see bullet points here for tumbler-pseudocode https://github.com/AdamISZ/JMPrivacyAnalysis/blob/master/tumbler_privacy.md#tumbler-algorithm 03:55 < waxwing> actually better https://github.com/JoinMarket-Org/JoinMarket-Docs/blob/master/High-level-design.md#the-tumbler-script 04:46 < trotski2000> thank you waxwing. that was helpful 04:48 < trotski2000> waxwing: do you have a similar analysis / pseudocode for a simple coinjoin? 04:48 < trotski2000> I'm really interested in understanding well joinmarket - afterwards I might be able to help you to help others :P 04:49 < trotski2000> waxwing: I guess I can find everything here -> https://github.com/JoinMarket-Org/JoinMarket-Docs/blob/master/High-level-design.md 05:02 -!- deafboy [quasselcor@cicolina.org] has quit [Remote host closed the connection] 05:04 -!- deafboy [quasselcor@cicolina.org] has joined #joinmarket 05:09 < waxwing> trotski2000: it's somewhat out of date, but it gives the most important details, yes 05:10 < waxwing> the two documents i linked there can be of use in different ways. the most important user information is the main joinmarket wiki. 06:20 -!- Giszmo [~leo@ip-142-233.219.201.nextelmovil.cl] has joined #joinmarket 06:32 -!- Giszmo [~leo@ip-142-233.219.201.nextelmovil.cl] has quit [Ping timeout: 240 seconds] 06:46 -!- Giszmo [~leo@ip-54-233.219.201.nextelmovil.cl] has joined #joinmarket 06:55 -!- Giszmo [~leo@ip-54-233.219.201.nextelmovil.cl] has quit [Ping timeout: 258 seconds] 07:25 < trotski2000> waxwing: I cannot seem to succeed in using -x -> it always gives me "invalid floating-point value" error 07:26 < waxwing> trotski2000: sorry just off out but i believe -x is an integer (satoshis)? 07:26 < trotski2000> this is what help says: " -x MAXCJFEE, --maxcjfee=MAXCJFEE 07:26 < trotski2000> maximum coinjoin fee and bitcoin value the tumbler is 07:26 < trotski2000> willing to pay to a single market maker. Both values 07:26 < trotski2000> need to be exceeded, so if the fee is 30% but only 07:26 < trotski2000> 500satoshi is paid the tx will go ahead. default=0.01, 07:26 < trotski2000> 10000 (1%, 10000satoshi)" 07:27 < trotski2000> even if i do -x 0.01, 10000 i get the error 07:27 < waxwing> sorry my error 07:27 < waxwing> i meant -s 07:27 < waxwing> mincjamount 07:27 < trotski2000> ok 07:27 < waxwing> i tend to overestimate my ability to remember those things correctly :) 07:28 < waxwing> the tumbler by default will create some quite small amounts which can lead to problems in an environment of high fees. 07:30 < trotski2000> waxwing: ok, so if i for example do "python tumbler.py [wallet file] -s 10000000 (add1) (add2) (add3)" I should be able to avoid the "not enough funds" error because the minimum size for a transaction would be 0.1 - right? 07:32 < waxwing> the not enough funds *can* be caused by a kind of edge case where, because fees have to be estimated before they're known for sure (because until you get the counterparties inputs, you don't know the transaction size), you can find you don't have enough to cover the fees. 07:32 < waxwing> that edge case is more likely for smaller transaction sizes. so for this reason i recommend bumping -s to something in that area. 07:34 < waxwing> note, all references to 'fees' in the above is talking specifically about bitcoin transaction fees, not coinjoin fees. 08:06 -!- xcvvcx [53e42f33@gateway/web/freenode/ip.83.228.47.51] has quit [Ping timeout: 260 seconds] 08:12 -!- xcvvcx [53e42f33@gateway/web/freenode/ip.83.228.47.51] has joined #joinmarket 08:35 < trotski2000> waxwing: thanks :) 08:39 -!- cabits` [~cabijtasd@c-217-115-42-58.cust.bredband2.com] has quit [Ping timeout: 248 seconds] 09:28 -!- takamatsu_ is now known as takamatsu 10:14 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Remote host closed the connection] 10:14 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 10:15 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Remote host closed the connection] 11:54 -!- CoJaBo [~aztec@unaffiliated/cojabo] has joined #joinmarket 12:27 -!- cbits [~cbits@92-244-6-154.customers.ownit.se] has joined #joinmarket 12:34 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 12:39 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 240 seconds] 12:51 -!- arubi [~ese168@gateway/tor-sasl/ese168] has quit [Ping timeout: 248 seconds] 12:52 -!- tinyurl_comSLASH [~ycpm5ry3@199.189.106.247] has joined #joinmarket 12:53 -!- tinyurl_comSLASH [~ycpm5ry3@199.189.106.247] has left #joinmarket [] 12:57 -!- arubi [~ese168@gateway/tor-sasl/ese168] has joined #joinmarket 13:38 -!- takamatsu [~takamatsu@unaffiliated/takamatsu] has quit [Quit: (┛◉Д◉)┛┻━┻] 14:30 -!- belcher_ [~user@unaffiliated/belcher] has quit [Ping timeout: 260 seconds] 14:36 -!- belcher_ [~user@unaffiliated/belcher] has joined #joinmarket 14:36 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 14:42 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 260 seconds] 14:51 -!- cbits [~cbits@92-244-6-154.customers.ownit.se] has quit [Ping timeout: 240 seconds] 18:11 -!- puddinpop_n [~puddinpop@unaffiliated/puddinpop] has quit [Ping timeout: 246 seconds] 19:29 -!- puddinpop [~puddinpop@unaffiliated/puddinpop] has joined #joinmarket 23:37 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket