--- Day changed Wed Jan 02 2019 00:56 -!- undeath [~undeath@hashcat/team/undeath] has joined #joinmarket 01:40 -!- belcher [~belcher@unaffiliated/belcher] has quit [Quit: Leaving] 02:20 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has joined #joinmarket 02:39 -!- belcher_ [~user@unaffiliated/belcher] has quit [Ping timeout: 250 seconds] 02:39 -!- belcher_ [~user@unaffiliated/belcher] has joined #joinmarket 04:06 < waxwing> belcher_, in case you don't get the github ping, updated comment on the gist, let me know what you think 04:06 < waxwing> ping arubi on that too 04:22 < arubi> cheers. weird how a gist page can do @mentions but for some reason it doesn't really email or ping you anywhere (that I can see) 04:27 < waxwing> yes it seems the whole infra is not set up for gists. fair enough i guess. 05:07 -!- technonerd [~techno@unaffiliated/technonerd] has quit [Ping timeout: 246 seconds] 05:24 -!- bitbee [~bitbee@unaffiliated/cryptocat] has quit [Ping timeout: 246 seconds] 05:28 -!- technonerd [~techno@unaffiliated/technonerd] has joined #joinmarket 05:29 -!- bitbee [~bitbee@unaffiliated/cryptocat] has joined #joinmarket 07:07 < waxwing> a lot of docs need updating 09:48 < arubi> I just had the pleasure of using importmulti on the hardware wallet core branch. this thing is so cool, basically set a descriptor with address type, xpub, bip32 path and a range of child keys to import and you're done. it'll make the job of importing from jm or eps so much easier 09:48 < arubi> https://github.com/achow101/HWI/blob/master/docs/bitcoin-core-usage.md 11:41 -!- belcher [~belcher@unaffiliated/belcher] has joined #joinmarket 12:30 < waxwing> oh just remembered, we have to set locktime to most recent block to get Core anonymity set right; and that's true for electrum, too? 12:39 < belcher> yes 12:39 < belcher> core also does a thing where randomly 1-out-of-100 times it sets the nlocktime to be 2000 blocks previously 12:39 < belcher> i might be remembering the numbers wrong, could be 50 instead of 100, or 500 instead of 2000, but thats the gist 12:40 < belcher> i think its more like 1-out-of-10 actually 12:40 < belcher> hold on ill read the code 12:41 < belcher> here https://github.com/bitcoin/bitcoin/blob/27f5a295d7409c1811f74339d509ea7a348a2220/src/wallet/wallet.cpp#L2599 12:42 < belcher> 1-out-of-10 times, nLockTime becomes less GetRandomInt(100) 12:43 < belcher> obviously you dont have to do *exactly* that to get the same anonymity set, since there is randomness involved 13:12 < waxwing> belcher, yeah. i did the locktime thing for the coinswap stuff so it should be easy to shove it in here. thanks for checking. 13:17 < waxwing> heh, it's funny, i started trying to write out the exact algo that bob needs to figure out how to provide coins to avoid UIH2, thinking it'd be some complex thing, but then i realised what i'd coded originally just as a throwaway - i.e. let him just select about the same as the payment amount - is basically exactly the right condition. 13:17 < waxwing> it's weird, almost like symmetry sometimes tells you the answer with a pretty high probability :) 13:18 < waxwing> if bob provides inputs bigger than the payment amount then i think it's guaranteed uih2 is not broken. 13:18 < waxwing> that's what laurent said (no surprise ... but i got confused with that equals sign thing) 13:19 < waxwing> i also got confused because i thought he might be assuming linked-ness, but he wasn't. 13:22 < waxwing> the reasoning is (sorry if it's obvious but to some it might not be - like me): when alice originally constructs it is by defn triggering UIH2 *if* any further input is added which is smaller. when bob adds new inputs, *his* inputs can't trigger it because their sum is added to the payment. so it suffices for him to add inputs that bump the payment by an amount bigger than the change (what was subtracted from it) 13:23 < waxwing> (this is all assuming 2 outputs, ofc) 13:23 < waxwing> oh hang on.. now i write it out, this is a sufficient but not *necessary* condition, i think 13:25 < waxwing> but that's OK. bob can look at alice's inputs and do the same calculation using her largest input, instead of her overall input. 13:34 < waxwing> heh, no i was still a bit wrong... for some bizarre reason, was assuming payment > change ... so it is a bit complicated. although not hugely so. 13:58 < waxwing> wrote it all out on the gist. i see 4 cases but the 2 pairs seem to be essentially exactly the same. let me know if i missed something. 14:29 < qubenix> hmm, it seems i can't do sendpayment with makers on my split setup now. some kind of problem sending the order book back to the wallet. i get this on joinmarketd: https://paste.debian.net/plainh/b65ff0c4, and this on the wallet: https://paste.debian.net/plainh/44ebddc2. yieldgen and `sendpayment -N 0` both work. 14:36 < waxwing> qubenix, oh, that's a shame; versions (incl py version)? 14:39 < qubenix> python 2.7.13, twisted 18.9.0, jm commit c08adf9. what other versions are interesting? 14:39 < waxwing> oh wait ... 'can't do sendpayment with makers' ... i think you mean takers? 14:39 < waxwing> oh "*with* makers" i guess :) 14:39 < qubenix> yeah, im the taker 14:40 < waxwing> yes, those versions should be enough to at least ... think about it 14:40 < waxwing> sorry i've been working like 6 hours now and pretty tired so unlikely to say much useful tonight 14:40 < qubenix> no worries 14:41 < waxwing> oh so latest commit? hmm. when did you last do that successfully? 14:42 < qubenix> prob jm v0.4.2 14:42 < qubenix> dont really remember 14:42 < waxwing> yes, i was actually going to suggest trying with 0.4.2 (i.e., before the py3 update) to isolate the issue 14:43 < waxwing> because it's at least somewhat likely it's to do with the py3 upgrade, because that changed the data type used to pass the orderbook in AMP. this was a slightly tricky point. and i guess 128 is pretty big, it might hit the limit. i did test this, but, it's at least a possible pain point. 14:44 < waxwing> Lightsword, ping if you have a moment you might look at ^ 14:44 < Lightsword> yeah, I’m here 14:45 < waxwing> he seems to have an error in 0.5.0 (after Py3 changes), running in py2.7, it seems like it's some kind of crash at the point of the orderbook passing across. 14:45 < waxwing> just in case you have an idea about it. 14:45 < Lightsword> waxwing, what’s the traceback? 14:46 < waxwing> the pastes are above, but it seems that the full traceback is not coming out :( 14:46 < waxwing> hmm, it seems i can't do sendpayment with makers on my split setup now. some kind of problem sending the order book back to the wallet. i get this on joinmarketd: https://paste.debian.net/plainh/b65ff0c4, and this on the wallet: https://paste.debian.net/plainh/44ebddc2. yieldgen and `sendpayment -N 0` both work. 14:46 < waxwing> the second one at least says 'no json object could be decoded', better than nothing 14:49 < Lightsword> waxwing, hmm, suspect a bug in bigstring? 14:49 < waxwing> Lightsword, yes you perhaps remember i pointed out that the first version you did, crashed on a string > 65535 14:49 < waxwing> i thought i'd fixed that, but this example is suspicious 14:49 < Lightsword> waxwing, you had tested my second version right? 14:50 < Lightsword> the tests should catch that? 14:53 < Lightsword> qubenix, are you able to test if you get that error with py3? 14:53 < Lightsword> waxwing, that big string is def a bit of a crazy hack lol 14:55 < qubenix> Lightsword: i can, but not for at least a few hours most likely. will python 3.5.3 be ok? 14:56 < Lightsword> qubenix, should work 14:56 < qubenix> i'll report back 15:01 < Lightsword> qubenix, also if you can test on python2 add print(repr(orderbook)) above this line https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmclient/jmclient/client_protocol.py#L404 15:02 < qubenix> ok, that i can do quicker 15:16 < qubenix> Lightsword: looks like it just printed `u''` on the wallet and then the same error as before. 15:16 < Lightsword> hmm, so it’s not invalid so much as non-existant 15:18 -!- undeath [~undeath@hashcat/team/undeath] has quit [Quit: WeeChat 2.3] 15:21 < Lightsword> qubenix, in your logs do you see a line with “About to send orderbook of size:”? 15:21 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has quit [Quit: Leaving] 15:23 < Lightsword> oh, guess so 15:33 < qubenix> yep, it's in my paste 15:35 < qubenix> the install script doesn't setup python3 venv? when i tried to set it up myself im running into some error on twisted with `python3 setup.py --all` from within a venv created with `virtualenv -p python3 jmvenv3` 15:36 < Lightsword> qubenix, you shouldn’t be in a venv when running the install script 15:36 < Lightsword> try adding print(repr(string_orderbook)) above this line https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/e70519a7281a4142da60facd0e464abb425cbab6/jmdaemon/jmdaemon/daemon_protocol.py#L226 15:49 < qubenix> Lightsword: waxwing: i figured it out, it was my error. the daemon wasn't running the current code. i forgot that i recently added a system user for running the daemon. the updated code was in /home/user instead of /home/joinmarketd. sorry to waste your time. 15:50 < Lightsword> qubenix, ah, that makes sense 15:56 < Lightsword> qubenix, I think the format of the bigstring protocol is different between old and new versions which is probably why it was getting a blank response 15:57 < Lightsword> I had to rework it quite a bit to get it to work on both python2 and python3 17:51 -!- AgoraRelay [~jmrelayfn@p5DE4A98A.dip0.t-ipconnect.de] has quit [Ping timeout: 268 seconds] 18:08 -!- AgoraRelay [~jmrelayfn@p5DE4AC4F.dip0.t-ipconnect.de] has joined #joinmarket