--- Day changed Tue Sep 17 2019 00:03 -!- belcher [~belcher@unaffiliated/belcher] has joined #joinmarket 00:13 < waxwing> joinmarketuser, the generate schedule in multi join tab is indeed the same as tumbler 00:13 < waxwing> and yes you can --restart but read the tumblerguide.md doc it mentions a couple of details about that specifically 00:14 < waxwing> basically run the same command when you restart (same flags) and also add --restart 00:14 < waxwing> you can also restart in gui by selecting the schedule file that was created (by default TUMBLE.schedule in logs/ 00:16 < waxwing> huh looks like there was a crash because a transaction had an output that was not a valid address. hmm. 02:14 < waxwing> so at the moment i can't actually work it out. here's what i see. first, the maker's coinjoin and change address are validated here: https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmclient/jmclient/taker.py#L359-L367 02:14 < waxwing> notice that anyone who provides an invalid one according to the function `validate_address` is ignored. 02:14 < waxwing> however that validation will allow all 3 of bech32, p2pkh and p2sh. 02:15 < waxwing> now according to the stack trace the crash happens when we call `mktx` in `mk_shuffled_tx` and in constructing the outputs we call `address_to_script`. 02:15 < waxwing> in that function obviously there is conversion from b58check to binary, and the checksum assertion fails. 02:16 < waxwing> now here's the interesting part: in `address_to_script` the stack trace says we called `mk_pubkey_script` which should only be called for `1` addresses, not p2sh addresses. 02:17 < waxwing> but while that is anomalous, it doesn't explain the failure, because in the call to `validate_address`, if the address had a wrong checksum it would have been found in the call to `get_version_byte` 02:18 < waxwing> (compare `get_version_byte` and `b58_check_to_bin` to see that they both do the same thing, only differing in return) 02:51 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has quit [Ping timeout: 260 seconds] 03:05 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has joined #joinmarket 03:23 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has quit [Remote host closed the connection] 03:24 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has joined #joinmarket 03:49 -!- reallll [~belcher@unaffiliated/belcher] has joined #joinmarket 03:53 -!- belcher [~belcher@unaffiliated/belcher] has quit [Ping timeout: 268 seconds] 04:52 -!- takamatsu [~takamatsu@unaffiliated/takamatsu] has joined #joinmarket 05:38 -!- Moslogre [b94186fb@185.65.134.251] has joined #joinmarket 05:45 -!- reallll is now known as belcher 06:10 -!- Moslogre [b94186fb@185.65.134.251] has quit [Remote host closed the connection] 06:10 < waxwing> joinmarketuser, pretty sure i figured it out. it is a rather strange omission, but: the destination addresses are checked everywhere except one place. they're checked in all Qt uses (single or multi join), they're checked in sendpayment, in direct send, and in interactive input for tumbler script. 06:11 < waxwing> for some reason though, they are not checked in initial run of tumbler script. i'll double check everything but i've done a search and i'm pretty sure. i don't think there's any other logical possibility. 06:11 < waxwing> so basically, if you enter an invalid address in the list of destination addresses when you *start* tumbler.py on the command line, it won't notice until it builds that transaction with that destination, then it will crash. 06:12 < waxwing> i'll sanity check this now on my test setup. 06:27 < waxwing> yes, reproed it as expected. will PR a fix shortly. 06:45 < waxwing> done, see https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/397 .. i plan to merge this pretty quickly since i already tested it and it's simple, but please review. 06:54 < belcher> waxwing iv reviewed it, it looks fine 07:08 < waxwing> cheers 07:39 < waxwing> belcher, i can merge 396 if you like, let me know 07:40 < belcher> on the one hand nobody apart from kristapsk has tried it out, on the other hand its not a massively crucial part of the code... so ok yes id say merge 08:13 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 08:21 -!- MaxSan [~four@185.156.175.35] has quit [Quit: Leaving.] 09:09 < joinmarketuser> thanks waxwing, you are right there was a malformed address 09:09 < joinmarketuser> waxwing when using --restart you said I pass the parameters, does that include the original output addresses? Even the ones that have already been sent to? 09:12 < belcher> yes joinmarketuser 09:12 < belcher> have exactly the same tumbler command line (press up on the terminal) and then add --restart 09:13 < joinmarketuser> thanks 09:14 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has quit [Ping timeout: 260 seconds] 09:18 -!- technonerd [~techno@gateway/tor-sasl/technonerd] has joined #joinmarket 09:20 < joinmarketuser> do you think if someone wanted to write a chain analysis specifically for joinmarket they could identify which outputs are makers and which takers based on the output behavior? maker output would typically continue coinjoining for months and would likely be rejoined back into the original pool so it could continue earning money, while taker outputs would be typically stored or spent 09:21 < joinmarketuser> how often do you think maker outputs are just recombined after a few rounds so the maker can start their pool with a consolidated amount 09:26 < belcher> well if the target uses tumbler then most of the taker's coinjoins will also be used as inputs for later coinjoins 09:28 < joinmarketuser> are the offers in the order book verified in any way or can anyone announce any offer without uxtos to back them up? I saw multiple offer 500+ BTC are those real 09:29 < belcher> they are not verified 09:30 < belcher> there have been a couple of big coinjoins iv seen so i tend to believe the 500btc figures myself 09:35 < joinmarketuser> thanks for making this its a really great tool 09:37 < joinmarketuser> i was looking at wasabi and it seems more popular than joinmarket because of the easy install and user interface. is there any interest in creating an easier install and interface for joinmarket? maybe something i could donate to or put a bounty for to increase the popularity? more popularity increases privacy I assume. it would also need a way to have a private thin client since most people wont want to download core and the blockchain 09:37 < joinmarketuser> and connect them all 09:39 < joinmarketuser> or maybe forking electrum or the wasabi client and adding jm functionality would be a way to do it 09:41 < belcher> theres an open PR about improving the install process 09:42 < belcher> a light client would be good, the two main ideas for how to do it are to use client side block filtering or to connect to various different electrum servers over tor with a different one for each mixdepth 09:42 < takinbo> belcher: i'm the author 09:43 < belcher> nice 09:43 < belcher> another idea is to use pyinstaller to package up the entire project into an executable, i think waxwing tried it a few years ago but it had significant downsides 09:44 < takinbo> i was also interested in doing this for windows. what were the downsides? 09:45 < belcher> i dont know 09:46 < belcher> i do that for electrum personal server and it works well, although that project is tiny compared to joinmarket (it has no external dependencies) 09:46 < belcher> id expect the .exe would end up quite big in size, but that could be worth it regardless 09:48 < takinbo> there're a couple of packaging tools that i will try and see how they compare but yes, executable size could be impacted 09:49 < takinbo> if that makes it possible to run on windows it might make it worthwhile 10:08 < Anduck> big exe is not a problem these days. 10:08 < Anduck> it's much more important that everything just works. 10:44 < waxwing> you had dependencies on libsodium and libsecp256k1 which caused difficulties, and also pyinstaller was really hard to get to work with twisted and Qt 10:44 < waxwing> i found it just barely possible for Windows, at some point, and couldn't find a simple enough way to do it. 11:41 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 11:42 < kristapsk> I would like to look at some point in future how to make JM GUI part work as simple as Wasabi on Windows (but I don't use Windows everyday myself, so it would take an extra effort) 11:43 < kristapsk> actually, met one guy at Pandora Core meetup in Riga (part of events around Baltic Honeybadger), he told me he loves JM, but just could not figure out how to get it working 12:04 < waxwing> a lot of the vague 'i can't get it to work' are based around mainly, not wanting or not having a full node, and sometimes also only using Windows, where it remains a pain to set up. 12:04 < waxwing> also documentation was poor but to be fair i think it is greatly improved with the video walkthrough on the readme and the new usage guide, at least for those prepared to devote a little time. 12:05 < waxwing> another thing to be clear about is that the philosophy has been more or less all along, to do what we can to make it easier for Takers, but Makers need to be quite dedicated and so we don't feel so bad about requiring them to be technical. 13:10 -!- MaxSan [~four@185.156.175.35] has quit [Ping timeout: 265 seconds] 15:02 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 15:46 -!- Zenton [~user@unaffiliated/vicenteh] has quit [Ping timeout: 276 seconds] 16:01 < kristapsk> waxwing, basically I agree, but there are still people not used to command line and we could improve there even with full nodes (as it could be bitcoin-qt), but, yeah, Neutrino or Electrum+Tor in Wasabi style could help a lot too 17:33 -!- MaxSan [~four@185.156.175.35] has quit [Ping timeout: 246 seconds] 17:48 -!- AgoraRelay [~jmrelayfn@p5DE4A837.dip0.t-ipconnect.de] has quit [Ping timeout: 265 seconds] 17:49 -!- CgRelayBot [~CgRelayBo@p5DE4A837.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 17:53 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 17:58 -!- CgRelayBot [~CgRelayBo@p5DE4AA92.dip0.t-ipconnect.de] has joined #joinmarket 18:02 -!- AgoraRelay [~jmrelayfn@p5DE4AA92.dip0.t-ipconnect.de] has joined #joinmarket 18:44 -!- MaxSan [~four@185.156.175.35] has quit [Ping timeout: 258 seconds] 18:59 -!- MaxSan [~four@185.156.175.35] has joined #joinmarket 21:43 < joinmarketuser> what do you think of forking electrum and using it for the interface and putting the jm functionality in a library the forked electrum would call 21:43 < joinmarketuser> many people are already comfortable with electrum interface 21:46 < joinmarketuser> an electrum fork with better privacy and joinmarket built in could be a killer client, people would probably recommend it first before the official for the increased privacy and join market abilities. which could help to normalize joinmarketing and payjoins 22:16 -!- joinmarketuser [~joinmarke@193.37.252.131] has quit [Ping timeout: 265 seconds] 22:56 < waxwing> there's a whole history with that but basically yeah 23:48 -!- joinmarketuser [~joinmarke@193.37.252.139] has joined #joinmarket