--- Day changed Mon Sep 18 2017 00:05 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 00:09 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 00:14 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 00:18 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 00:19 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 00:23 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 255 seconds] 00:32 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 00:34 -!- headcase_ [~headcase@unaffiliated/headcase] has joined #joinmarket 00:37 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 00:38 -!- headcase_ [~headcase@unaffiliated/headcase] has quit [Ping timeout: 252 seconds] 00:38 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 00:40 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 01:01 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:05 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 01:21 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:25 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 01:31 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:35 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 01:36 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:40 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 01:41 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:45 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 252 seconds] 01:51 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 01:55 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 02:01 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 02:10 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 260 seconds] 02:28 -!- CtrlC [~CtrlC@unaffiliated/ctrlc] has quit [Ping timeout: 248 seconds] 02:31 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 02:35 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 02:36 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 02:41 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 255 seconds] 02:44 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 02:49 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 255 seconds] 02:54 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 02:58 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 02:59 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 03:03 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 03:10 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 03:14 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 03:34 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 03:39 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 03:52 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 04:05 -!- headcase_ [~headcase@unaffiliated/headcase] has joined #joinmarket 04:06 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 04:06 < GitHub112> [joinmarket-clientserver] AdamISZ opened pull request #81: Electrum blockchain interface with (hopefully: fast, reliable) wallet sync (master...twistelec) https://git.io/v5bq3 04:09 -!- headcase_ [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 04:09 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 04:15 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 04:19 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 04:25 < belcher> "f you want to encapsulate this in a virtualenv, you can follow the trick I found to work, but no guarantee it will for you: copy the dir PyQt4, the files sip*.so and sipconfig.py, sipconfig_nd.py from the system level dist-packages to the virtualenv site-packages." 04:25 < belcher> ^that trick just worked for me also 04:28 < waxwing> belcher, cool. it is kinda ridiculous though isn't it :) 04:28 < belcher> yeah 04:28 < waxwing> no idea why pyqt can't play nice with venv, i think everything else does 04:28 < belcher> how did you even come up with it? 04:28 < waxwing> googled the problem, a few people had it before 04:28 < waxwing> probably stackexchange as per usual :) 04:28 < belcher> ah 04:28 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 04:31 < waxwing> gonna merge that electrum thing to master now, if people could give it a spin that'd be helpful. you can just check if wallet-tool works. just set 'electrum-server' for bci, that's it, don't need to change anything else. 04:31 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 04:31 -!- MaxSan [~one@185.156.175.59] has joined #joinmarket 04:34 < GitHub196> [joinmarket-clientserver] AdamISZ pushed 1 new commit to master: https://git.io/v5bYr 04:34 < GitHub196> joinmarket-clientserver/master ff70b3d AdamISZ: Merge #81: Electrum blockchain interface with (hopefully: fast, reliable) wallet sync... 04:34 < GitHub108> [joinmarket-clientserver] AdamISZ closed pull request #81: Electrum blockchain interface with (hopefully: fast, reliable) wallet sync (master...twistelec) https://git.io/v5bq3 04:40 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 04:41 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 04:45 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 04:59 < belcher> im moving into nearly rolling my own crypto here 05:00 < belcher> working on the mnemonic passphrase which would need to be encrypted and added to wallet.json, intending to use the same aes encryptData() 05:00 < waxwing> arubi, any idea what caused this build to be marked failed? https://travis-ci.org/JoinMarket-Org/joinmarket-clientserver/builds/276811162#L2118 05:00 < belcher> it partly reveals the length of the cleartext, should i pad it out? 05:00 < waxwing> i guess it's nothing to do with that line? 05:01 < waxwing> sorry crossed wires there :0 05:01 -!- MaxSan [~one@185.156.175.59] has quit [Ping timeout: 248 seconds] 05:01 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 05:01 < waxwing> belcher, ok so what's the deal here, i need to get up to speed. should i start at bip39? 05:03 < belcher> wait i think i found a solution, i realized it doesnt reveal the entire length, it pads it out 05:03 < belcher> waxwing for reviewing it might be easier to read the eventual code 05:03 < waxwing> our encryption has a pkcs7 padding to size of aes block 05:03 < belcher> yes thats right 05:04 < waxwing> because you're using a block cipher you have to have a padding algo 05:05 < belcher> well to briefly explain, in the Mnemonic class there is a KDF function that takes a random seed and passphrase and returns another random seed 05:05 < belcher> the first random seed comes from the mnemonic phrase 05:05 < belcher> so that way you can use the mnemonic phrase and a passphrase to create a passphrase-protected mnemonic phrase 05:06 < waxwing> right, but isn't it like hmac, so the mnemonic is the seed and the passphrase is the key for the hmac. or the other way round. 05:06 < belcher> in wallet.json you need to store both the passphrase and the mnemonic seed, so that when users use "showseed" they can obtain both 05:07 < waxwing> ok, so is the purpose of the passphrase to allow decryption (whereas mnemonic is for full recovery?). if so, does it not replace what we already have, if not, what is its purpose? 05:08 < belcher> the purpose is you can have a two-factor mnemonic recovery phrase 05:08 < belcher> the words + the passphrase is something you have + something you know 05:08 < belcher> i wrote about it in more detail here https://en.bitcoin.it/wiki/Mnemonic_phrase#Passphrase-Protected_Mnemonic_Phrases but thats the summary of it 05:08 < waxwing> ok. so it's effectively a split of the mnemonic and it's specifically for recovery. 05:09 < belcher> yes 05:09 < waxwing> thanks, reading 05:09 < belcher> btw today's electrum also has this feature, except it calls it the "seed extension" instead of passphrase 05:10 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 05:10 < waxwing> i see, so i guess there is no particular problem with just applying the same encryption mechanism to store it. it does seem rather ugly though to have two different encrypted field in the wallet.json 05:10 < waxwing> why not just put it all in 1? 05:10 < belcher> because with 1 you cant then obtain the words + the passphrase when the user does "showseed" 05:10 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 05:11 < waxwing> ah i see, it interacts with how the PBKDF2 thing works. ok. 05:13 < belcher> another complication is now we have two things which was both called "passphrase", there is the wallet file encryption passphrase and the mnemonic passphrase 05:13 < belcher> maybe electrum was right to call the latter "seed extension" 05:14 < waxwing> right. if it were me, i would not be inclined to do this, since it adds more work. 05:14 < waxwing> there is already a ton of work to do making joinmarket work :) the wallet is pretty bare bones. some things are really needed, like direct sending, so we did that of course :) 05:14 < belcher> id like to do it because id really like this feature, right now i use gpg symmetric encryption to encrypt mnemonic phrases and print them out, which is subpar 05:15 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 05:15 < belcher> you dont have to do any work, ill do it :) 05:15 < belcher> it shouldnt be much more lines of code actually 05:25 < waxwing> i pinged reddit to ask for testers of the new electrum interface https://www.reddit.com/r/joinmarket/comments/70unbi/electrum_blockchain_interface_now_available_in/ 05:26 < belcher> think its worth crossposting to r/bitcoin ? 05:27 < waxwing> i'd say no really; since it's a notice to people already running joinmarket. altho' it's true those not running it, could do it too. 05:27 < belcher> ok 05:27 < waxwing> i think we can broadcast more widely when make a new release. 05:27 < belcher> maybe ill tweet from the twitter? 05:27 < waxwing> just don't want to broadcast that too aggressively in case it's rubbish for some reason :) 05:27 < waxwing> could do, sure, thanks. 05:29 < waxwing> i'm still quite mystified why it breaks the build. the PR built fine. i wonder if i made a mistake with that no-warnings flag, hmm. 05:29 < belcher> so like "joinmarket gui can now use electrum servers to sync, please test!" 05:30 < waxwing> belcher, oh! you reminded me. no, they can't! 05:30 < belcher> so its only via the cli ? 05:30 < waxwing> i forgot to add that, i need to do a day or so of work to rejig the joinmarket-qt. 05:30 < waxwing> will add it now, thanks. 05:31 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 05:35 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 05:41 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 05:46 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 255 seconds] 05:49 < waxwing> probably a dumb Q, but is there some setting in ubuntu so you can reset the background colour of different terminals? i've got like 20 of them i'm using sometimes. 05:51 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 05:51 -!- headcase_ [~headcase@unaffiliated/headcase] has joined #joinmarket 05:55 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 06:01 -!- headcase_ [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 06:05 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 06:10 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 252 seconds] 06:12 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 06:16 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 06:18 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 06:19 < waxwing> wow i just absent mindedly looked at the desk next to me and noticed issues 2,3,4,5 of Bitcoin magazine :) 06:19 < belcher> physical copies? 06:19 < waxwing> lol issue 2 has an image of the titanic with "Bitcoinica" written on the side 06:19 < waxwing> yeah 06:19 < belcher> i didnt know they did physical copies 06:20 < waxwing> print quality's decent actually. proper glossy magazine. Issue 2 is Aug 2012. 06:20 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 06:21 < waxwing> the ad on the first 2 pages is for Casascius coins. 06:21 < belcher> do they belong to you? 06:21 < belcher> or are you sitting in some public library? 06:21 < waxwing> no, i'm in paralelni polis in prague. 06:21 < belcher> oh yes 06:21 < waxwing> sorry should have made that context clearer :) 06:21 < belcher> thats happening now isnt it 06:21 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 06:21 < waxwing> it's next month. 2-3 weeks i guess. 06:30 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 06:42 < belcher> ok 06:47 < waxwing> cool, just did mainnet join via qt + electrum, only a few lines edit. now if only the nasty spammers hadn't turned up buying their imaginary coffees, i could test tumbler on mainnet. 06:49 < belcher> hehe 06:50 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 06:51 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 07:02 < GitHub16> [joinmarket-clientserver] AdamISZ pushed 1 new commit to master: https://git.io/v5bER 07:02 < GitHub16> joinmarket-clientserver/master 32b2150 AdamISZ: update joinmarket-qt for electrum interface 07:15 -!- fredrin [~fredrin@gore.copyleft.no] has joined #joinmarket 07:23 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 07:25 < GitHub162> [joinmarket-clientserver] AdamISZ force-pushed master from 32b2150 to 3939759: https://git.io/v5bgz 07:25 < GitHub162> joinmarket-clientserver/master 3939759 AdamISZ: update joinmarket-qt for electrum interface 07:29 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 07:36 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 07:40 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 07:44 < waxwing> well that's clear as mud: https://travis-ci.org/JoinMarket-Org/joinmarket-clientserver#L424 07:45 -!- fredrin [~fredrin@gore.copyleft.no] has quit [Ping timeout: 246 seconds] 07:46 -!- imposter [uid57046@gateway/web/irccloud.com/x-ghvyrfwfwsnarjvn] has joined #joinmarket 07:52 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 07:57 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 07:59 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 08:00 < waxwing> huh, must have been a travis screw up, it seems to have automagically redone the build. 08:01 < belcher> automagically xD 08:05 -!- andytoshi [~apoelstra@unaffiliated/andytoshi] has left #joinmarket [] 08:06 < waxwing> i think that came from Perl .. always liked it 08:08 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 08:10 -!- Giszmo [~leo@pc-204-28-214-201.cm.vtr.net] has quit [Quit: Leaving.] 08:12 -!- Giszmo [~leo@pc-204-28-214-201.cm.vtr.net] has joined #joinmarket 08:33 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 08:38 -!- Caleb_ [~Caleb@164.106.195.76] has joined #joinmarket 08:38 < Caleb_> hey 08:40 -!- Caleb_ [~Caleb@164.106.195.76] has quit [Quit: Going offline, see ya! (www.adiirc.com)] 09:26 < belcher> "FAKESEED" + filename is a good idea :) 09:27 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 09:28 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 09:29 -!- quitobro [47a71a6c@gateway/web/freenode/ip.71.167.26.108] has joined #joinmarket 09:34 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 09:36 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 09:40 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 09:49 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Remote host closed the connection] 09:54 < quitobro> hey guys, is there any consensus around what is a reasonable "minimum counterparties" when performing a sendpayment (taking JM liquidity)? 09:54 < quitobro> N = 2? 09:54 < quitobro> N = 4? 09:54 < quitobro> impossible to say? 10:02 -!- fredrin [~fredrin@cm-84.209.144.12.getinternet.no] has joined #joinmarket 10:11 -!- zxccxz [6dc7e505@gateway/web/freenode/ip.109.199.229.5] has joined #joinmarket 10:12 < waxwing> quitobro, i would go for 4 as a reasonable minimum, bearing in mind it may fall back to 2 or 3. 2 or 3 are fine for just testing. 10:12 < waxwing> also you reminded me, it might be better if we bump up the default maker_timeout_sec to maybe 60 seconds in case of slower responders. 10:12 < waxwing> the timeout was carefully optimised before, but i made the throttling a bit more aggressive on the new version which could eat up a bit more time. 10:13 < waxwing> quitobro, i was thinking earlier today about your thoughts on what changes would be useful. 10:13 < waxwing> on the daemon logging thing, i think the principal thing that's lost is the DEBUG level messages of the responses from counterparties. so in DEBUG you see your own privmsgs going out, but the returned privmsgs don't appear in the log. that should change. 10:14 < waxwing> another thing you could do, and this is useful for general learning, is write your own implementation of yieldgenerator. you can see a good example of the subclassing in yg-privacyenhanced.py. 10:15 < waxwing> but to emphasise, this would be a learning exercise - it'd be helpful for you rather than something we want to add; we can add alternative implementations to joinmarket-org/custom-scripts. 10:15 < waxwing> for the main repo(s) it's better to keep it to just 1 really. 10:16 < waxwing> belcher, the FAKESEED thing was just a hack on the testnet stuff, btw you probably noticed already that testnet string seeds have to be hex now, i couldn't be bothered to fix that. 10:17 < waxwing> for testnet i'm tending to just use files now. 10:17 < belcher> cool 10:18 < quitobro> waxwing, gotcha. i'll look into that. i do want to fix the 'unknown type' issue in the wallet history report... 10:19 < quitobro> going to comment on one of the open issues 10:19 < waxwing> quitobro, yes, please do, good idea. i can't remember if that was there before, i'm sure belcher could help tho' 10:19 < belcher> yes 10:19 < belcher> that code figures out the type by counting the number of inputs and outputs 10:20 < belcher> so print out inputs/outputs and see what values it gives, and why its not being recognized 10:20 < quitobro> i'm getting pretty regular unknown type transactions logged in history which are really just sendpayments 10:20 < quitobro> ah yes now i recall 10:20 < quitobro> should i open a new issue for this in clientserver? 10:20 < quitobro> assuming there isn't one already 10:20 < waxwing> you can just fix and open a PR i think 10:23 < quitobro> idk what the fix is yet :) 10:25 < belcher> quitobro do you know how to code? add the print statements that print out input count and output count 10:25 < waxwing> sure. but i'd think "Issues" are for when we don't know or are not sure what to do. if there's nothing to discuss, no need. but hey, feel free if you want to. 10:25 < quitobro> do i know how to code? ... 10:26 < belcher> sorry i havent been following the github 10:26 < quitobro> anyway - printing out statements showing input and output counts is nice. if that demonstrates to you what the "fix" is that's awesome, it would not do so for me 10:26 < quitobro> no worries 10:26 < quitobro> anyway let me focus on doing some actual work on this 10:34 < waxwing> just a heads up encountered bewildering bug that hangs yieldgenerators on startup in latest commit in master. it'll be something stupid so will push fix as soon as i find it. 10:34 < waxwing> (specific to Core, i.e. the electrum change somehow screwed up something for Core) 10:36 < waxwing> uhh ... https://arstechnica.com/information-technology/2017/09/devs-unknowingly-use-malicious-modules-put-into-official-python-repository/ 10:37 < belcher> RIP my coins :p 10:38 < waxwing> kinda distracted so if someone can parse the clickbaity headline into the facts that'd be great :) 10:42 < arubi> malicious is in quotes? heh 10:42 < arubi> looks important: "e unidentified people who made available the code packages gave them names that closely resembled those used for packages found in the standard Python library. The packages contained the exact same code as the upstream libraries except for an installation script, which was changed to include a "malicious (but relatively benign) code."" 10:44 < arubi> $ pip search crytography 10:44 < arubi> crytography (1.0.0) - I think you meant "cryptography" 10:44 < arubi> I remember that one specifically because I fat fingered it not too long ago :) 10:50 -!- coins123 [~coins123@ip-244-225.sn1.clouditalia.com] has joined #joinmarket 10:50 -!- coins123 [~coins123@ip-244-225.sn1.clouditalia.com] has quit [Changing host] 10:50 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 10:55 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 240 seconds] 11:08 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 11:12 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 246 seconds] 11:13 < quitobro> waxwing, what is the easiest way to 'tear down' my jm-clientserver installation and try to set it up again using --develop mode 11:13 < quitobro> rm -rf jmvenv/joinmarket* ? 11:13 < quitobro> sorry jmvenv/lib/python2.7/joinmarket* 11:14 -!- imposter [uid57046@gateway/web/irccloud.com/x-ghvyrfwfwsnarjvn] has quit [Quit: Connection closed for inactivity] 11:14 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 11:15 < waxwing> quitobro, yes you can completely remove the jmvenv directory 11:15 < waxwing> i remember wondering that myself once, what's the correct way to remove a virtualenv, googling told me there's nothing cleverer than that. i could be wrong. 11:16 < waxwing> i mean i guess you can just make a new one with a different name jmvenv2 or whatever, but wasteful of course. 11:16 < quitobro> yea is there such a concept as "deactivating" a virtualenv? 11:16 < quitobro> i am not too familiar with that lib 11:16 < quitobro> that's another thing i've wondered 11:16 < waxwing> well yes deactivating (`deactivate`) means come out of it, but it's still there, you're just no longer using it. 11:16 < waxwing> you can just type deactivate 11:16 < quitobro> oh wow 11:16 < quitobro> cool 11:17 < waxwing> there's tons of tutorials out there for "how to set up and use" virtualenv, they don't usually go into any gory details though. 11:17 < quitobro> in my case i just rm -rf'ed jmvenv, then deactivated, so i think this is "fresh" now 11:17 < quitobro> i.e. sudo python setupall.py --develop 11:17 < quitobro> not sure i need the sudo on that 11:18 < waxwing> no don't use sudo there. 11:18 < quitobro> ok 11:18 < waxwing> the idea is to run the install script, then `source jmvenv/bin/activate`, then do the python setupall.py --develop (in the dir) 11:18 < waxwing> the install script creates the virtualenv for you 11:19 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 260 seconds] 11:19 < waxwing> but, it hasn't been jiggered to allow for a develop option. oh hang on, this is where there's some mess. hmm. 11:19 < waxwing> see the install script just does the user version of the install (not --develop). so better not do that. 11:19 < waxwing> instead, i think do this: 11:19 < waxwing> rm the jmvenv 11:20 < waxwing> then you already have the apt-get dependencies, so you can forget that. 11:20 < waxwing> but create a new virtualenv then do python setupall.py --develop inside it. 11:20 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 11:21 < waxwing> all that --develop does it, `pip install -e .` inside each directory: jmbase, jmbitcoin, jmclient, jmdaemon 11:21 < waxwing> which should create files called `egg-link` inside jmvenv/lib/python27/site-packages 11:21 < quitobro> yea actually waxwing it does a pip install --upgrade -e 11:21 < waxwing> and in each of those egg-link files will be one line, which is the path to your source code 11:21 < quitobro> yea actually waxwing it does a pip install --upgrade -e . 11:21 < waxwing> so that your edits are honoured. 11:21 < waxwing> yes 11:22 < waxwing> the --upgrade thing confused me more than once. not sure if it either helps, or is necessary. 11:22 < quitobro> waxwing what do you mean by "install script" as the first step? 11:22 < waxwing> i mean the concept is clear, just not sure what it actually does. 11:22 < waxwing> quitobro, i corrected myself on that above; you shouldn't actually do it, in this case. 11:22 < quitobro> oh ok 11:24 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 11:24 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 11:24 < GitHub186> [joinmarket-clientserver] AdamISZ pushed 1 new commit to master: https://git.io/v5bj6 11:24 < GitHub186> joinmarket-clientserver/master b8a5ee1 AdamISZ: Fix bug in yieldgen start up for Core... 11:24 < quitobro> waxwing getting errors of this pattern in each of the 4 jm module dirs: error: [Errno 13] Permission denied: 'joinmarketbase.egg-info/requires.txt' 11:24 < quitobro> i think i do need to sudo 11:25 < quitobro> or i can chmod? 11:25 < waxwing> ok aforementioned bug is fixed ^ . also made maker_timeout_sec more generous, since throttling kicks in a bit more here. 11:25 < waxwing> quitobro, sounds like maybe you did something previously with sudo? 11:25 < waxwing> you shouldn't need sudo for anything here, working in a virtualenv 11:25 < quitobro> oh like when i installed the modules huh 11:26 < quitobro> just going to use sudo for now :) 11:27 < waxwing> well only to remove hopefully :) 11:28 < quitobro> hm still no egg-link files in the site-packages subdir 11:28 < waxwing> hmm, is there any joinmarketclient* file in that site-packages directory at all? 11:29 < waxwing> we need to fix this up because quite a lot of people like to edit and contribute code. 11:30 < waxwing> it being in packages and in a virtualenv is way better though, since you can run stuff from anywhere. better if the unpleasantness is moved to developer land rather than user land :) 11:33 < quitobro> no 11:33 < quitobro> no joinmarket* in site-packages dir 11:33 < quitobro> agreed 11:34 < waxwing> so what steps did you follow, (1) rm -rf jmvenv, (2)cd joinmarket-clientserver/jmbase (3) pip install -e . ? 11:34 < waxwing> and same for others ofc 11:34 < waxwing> oh no i missed a step, you need to do virtualenv jmvenv after (1) 11:34 < waxwing> and after that source jmvenv/bin/activate 11:35 < quitobro> yea i did (1) rm -rf jmvenv, (2) deactivate, (3) reactivate jmvenv, (4) python setupall.py --develop 11:35 -!- delinquentme [~delinquen@2602:306:ceb7:990:8410:16ab:d9e0:669c] has quit [Quit: Leaving] 11:35 < quitobro> since that script just does the pip install --upgrade -e . in each module dir 11:35 < waxwing> well i'd do it more like deactivate, rm directory, virtualenv jmvenv, source/bin/activate, then go to the pip install stuff 11:36 < quitobro> pip install == setupall.py --develop right 11:36 < quitobro> at least it should be 11:36 < waxwing> do the pip installs manually one by one for now, just to remove that unknown from the equation 11:36 < quitobro> k 11:40 < quitobro> btw which upstream remote/branch should i make PRs against for docs changes? 11:42 < GitHub128> [joinmarket-clientserver] mecampbellsoup opened pull request #82: Clarify INSTALL.md (master...clarify-install-docs) https://git.io/v5Nfs 11:45 < quitobro> waxwing i just did pip install -e . for jmbase and there is no egg-link in site-packages of jmvenv 11:46 < quitobro> testing (turned on vpn, not sure what freenode client behavior is) 11:46 < waxwing> quitobro, ok, that sounds weird. did it add anything at all to site-packages (this is in yes the virtualenv dir is jmvenv 11:47 < waxwing> so no error messages from pip, and nothing is added to that directory? 11:47 < waxwing> and the virtualenv is definitely activated? 11:47 < quitobro> nothing added, no 11:47 < quitobro> definitely activated, yes 11:48 < quitobro> i had to sudo again... 11:48 < quitobro> for the pip install. so that could be introducing some noise here 11:48 < waxwing> you mean, you had to sudo to do pip? ah, well it definitely won't work like that. 11:48 < quitobro> well i can't run pip install w/o sudo for some reason 11:48 < waxwing> normally pip doesn't work without sudo *unless* you're in a virtualenv 11:49 < quitobro> hm 11:49 < waxwing> you see (jmvenv) on your command line prompt, right? 11:49 < quitobro> yes 11:49 < waxwing> well i'm a bit lost then, but it might have something to do with the previous error you mentioned, where you couldn't overwrite files because you'd previously created them with sudo (and so owned by root) 11:50 < quitobro> yea i think i need to reinstall e'rything :( 11:50 < quitobro> kinda at a loss... 11:50 < quitobro> fucking software amirite 11:50 < quitobro> :P 11:51 < waxwing> again, the sequence should be: (1) deactivate any active virtualenv (2) rm -rf the jmvenv (3)virtualenv jmvenv (to create a new one) (4) activate it: source jmvenv/bin/activate (5) do the pip stuff while it's active 11:51 < waxwing> shouldn't need sudo at any point there, except to do rm -rf if it was previously created by root 11:51 < waxwing> yeah it's confusing, but it shouldn't be quite this confusing :) 11:52 < quitobro> waxwing i am doing exactly those steps 11:52 < waxwing> so what error does pip install give? 11:52 < quitobro> error: [Errno 13] Permission denied: 'joinmarketbase.egg-info/requires.txt' 11:52 < waxwing> ok. i'm guessing that that file is in the jmbase/ directory 11:52 < waxwing> yes that makes sense, based on the idea that you previously did it, with sudo. 11:53 < quitobro> ~/joinmarket-clientserver$ ls jmbase/joinmarketbase.egg-info/ dependency_links.txt not-zip-safe PKG-INFO requires.txt SOURCES.txt top_level.txt 11:53 < waxwing> right. but do ls -lart not just ls 11:53 < waxwing> (i can't remember which flag is owner, i always use those :) ) 11:53 < quitobro> ~/joinmarket-clientserver$ ls -lart jmbase/joinmarketbase.egg-info/ total 32 -rw-r--r-- 1 root root 1 Sep 11 01:15 not-zip-safe drwxr-xr-x 2 root root 4096 Sep 11 01:15 . drwxrwxr-x 5 satoshi satoshi 4096 Sep 11 15:27 .. -rw-r--r-- 1 root root 33 Sep 18 14:44 requires.txt -rw-r--r-- 1 root root 7 Sep 18 14:44 top_level.txt -rw-r--r-- 1 root root 322 Sep 18 14:44 PKG-INFO -rw-r--r-- 1 root 11:53 < quitobro> yikes 11:53 < quitobro> sorry 11:53 < quitobro> hard to read 11:53 < waxwing> yeah so you need to sudo rm -rf 11:53 < waxwing> nice username :) 11:54 < quitobro> uh oh 11:54 < quitobro> dox'ing myself 11:54 < waxwing> lol we found him 11:54 < quitobro> hahahaha 11:54 < quitobro> i need to sudo rm -rf these .egg-info dirs? 11:54 < waxwing> yes 11:54 < quitobro> ok 11:55 < quitobro> and now repeat the steps 11:55 < quitobro> w/o sudo anywhere 11:56 < waxwing> yes 11:57 < quitobro> aw snap working now 11:58 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 11:58 < quitobro> waxwing sweet have the egg-link files now 11:58 < waxwing> great 12:01 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 12:02 < quitobro> waxwing so i guess what probably happened is i installed using sudo...? when i ran `python setupall.py`... this could've been b/c i hadn't activated the virtualenv beforehand 12:02 < quitobro> so i just blindly tried sudo and it seemed to work 12:03 < waxwing> quitobro, yes, it's quite a common issue i think. 12:04 < waxwing> when you try to use pip without virtualenvs you end up using sudo because it craps out otherwise. 12:04 < quitobro> ok cool will add some emphasis in that docs pr i opened 12:04 < quitobro> man that is good to know 12:04 < waxwing> and just generally doing stuff with sudo has a kind of "infection" quality like we've just seen, peppering root owned files everywhere. nasty. 12:09 -!- zxccxz [6dc7e505@gateway/web/freenode/ip.109.199.229.5] has quit [Quit: Page closed] 12:16 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has quit [Ping timeout: 260 seconds] 12:16 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has joined #joinmarket 12:20 < waxwing> quitobro, i think those install file changes are OK, but probably a bit overkill. i want to keep the instructions short. also note only "expert" users will be using that document, ordinary users will just run the install script. 12:20 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has quit [Remote host closed the connection] 12:20 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has joined #joinmarket 12:20 < quitobro> ok sure - feel free to close it or point to the lines u think are overkill 12:20 < waxwing> there's probably value in a warning of some sort, or some clarification, just thinking. 12:22 < quitobro> k 12:22 < waxwing> I think leave the "Note" section but just have it as a reminder, like don't use 'sudo' instead ... the stuff about it being a sandbox, i'd remove that. 12:25 < quitobro> pushed 12:26 -!- delinquentme [~delinquen@108-235-112-153.lightspeed.sntcca.sbcglobal.net] has joined #joinmarket 12:27 < delinquentme> waxwing, " yes it's querying the bitcoin daemon over rpc to check the wallet status" so if theres no daemon running for joinmarket ... then btccore needs to know about the wallets thats joinmarket has created. 12:27 < waxwing> quitobro, ok that's fine, thanks 12:27 < waxwing> delinquentme, joinmarket creates watch-only wallets with 'importaddress' to a joinmarket-specific account 12:27 < delinquentme> what event gives core knowledge of the jm wallet addresses? 12:27 < waxwing> so when you restart it still knows about those addresses 12:28 < delinquentme> so joinmarket imports its wallets into core? 12:28 < waxwing> imported as watch-only addresses, yes. so Core doesn't know the keys, just the addresses. 12:29 < delinquentme> is that on generation of the wallets with $ python wallet-tool.py generate 12:29 < delinquentme> ? 12:29 < delinquentme> Im asking bc I copied a wallet over to a different system. 12:29 < waxwing> on copying to a new Core instance, you will require a rescan, after the first attempt to sync the wallet. 12:30 < waxwing> because that Core instance doesn't know anything about balances of those addresses, it has to scan the blockchain to find the unspent outputs. 12:30 < delinquentme> ok so Im trying to zero-in on *the thing that gives core knowledge of my wallet addressed* 12:30 < waxwing> when you make a new wallet on a Core instance, there is no such rescan requirement, because the addresses are new, so they have no unspent outputs. 12:31 < waxwing> delinquentme, again, joinmarket uses 'importaddress' to import the joinmarket addresses as watch-only addresses in Core. 12:31 < delinquentme> its not with a generate ... it sounds like its running bitcoind with -rescan while the wallet files are in joinmarket-clientserver/scripts/wallets/ ? 12:31 < delinquentme> waxwing, right but when does that happen? 12:31 < waxwing> when you do 'generate', it just creates a wallet file with the seed, encrypted. 12:32 < waxwing> when you run 'wallet-tool' it will actually do the first imports of addresses into Core. 12:32 < waxwing> sorry when you run 'wallet-tool' not with generate, but just with default 'display' method. 12:32 < delinquentme> got it! ok so upon running wallet-tool.py ... that is the event which then uses importaddress to give core knowledge of the wallet... 12:32 < waxwing> so the sequence is, `python wallet-tool.py generate`, create wallet, then `python wallet-tool.py ` and it will import addresses and then retrieve balances (which will be zero on first run) 12:33 < delinquentme> perfect. 12:33 < quitobro> waxwing so when people migrate a wallet from non-segwit to segwit (via joinmarket-clientserver setup instructions), should they expect to see a list of transactions if they're using the same bitcoin core node? 12:33 < quitobro> this q relates to the first tx type i describe in this issue: 12:33 < quitobro> https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/83 12:34 < waxwing> quitobro, the 'migration' is i'm afraid just to make a new segwit wallet, and then send the coins to it in transactions. nothing cleverer than that. 12:34 < quitobro> right i did that. 12:34 < quitobro> but my segwit wallet still tries to display historical transactions... 12:34 < quitobro> which took place before it existed 12:34 < waxwing> oh; what do you mean by that i wonder? 12:35 < waxwing> oh the unknown transaction type in wallet-history. we were talking about that earlier. oh hang on, that was you wasn't it. 12:35 < waxwing> lol 12:35 < quitobro> if u look at that issue you can see my wallet history outputs a bunch of unknown type transactions which *predate the segwit wallet's existence* 12:35 < quitobro> ha np 12:35 < waxwing> i'd refer you to belcher for Qs about how wallet-history works. i've never really worked with it. 12:36 < belcher> ask away 12:36 < waxwing> ive been banned from #bitcoin for posting poopbut i think. lol. 12:36 < quitobro> belcher hi :) i just created an issue for the unknown type transactions we've been discussing on and off... https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/83 12:36 < waxwing> it's on the blockchain, it wasn't me :) 12:37 < quitobro> was just wondering why it seems to be aware of historical transactions from a different wallet 12:38 < belcher> look at how it figures out which transactions from wallet.dat belong to its wallet.json 12:38 < belcher> i think it uses the accounts/label thing 12:38 < belcher> i know it loops over and adds them to a sqlite3 database 12:38 < quitobro> ok cool. and the other unknown type i'm seeing is the 2 inputs/3 outputs thing again 12:40 < belcher> 3 outputs? interesting 12:40 < belcher> joinmarket only creates transactions with 0, 1 or 2 of its own outputs 12:40 < belcher> do you have more than one joinmarket wallet maybe 12:40 < waxwing> belcher, well if anyone ever used sendmany.py it could be 3 :) 12:41 < quitobro> i think i'm joining with my market maker... 12:41 < belcher> yes thats true 12:41 < quitobro> i.e. sending thru myself? 12:41 < quitobro> would that create add'l output 12:41 < belcher> yes 12:42 < waxwing> quitobro, hopefully different wallets? 12:42 < waxwing> if not i can't vouch for the behaviour ... it *should* be OK but better not to do that. 12:42 < quitobro> um, no... 12:42 < quitobro> i will start splitting them though, good call 12:43 < waxwing> there was some edge case a long time ago from that that was dealt with by the external/internal split. but don't run two bots on the same wallet in parallel, that is something to avoid. 12:44 < waxwing> if you want to do a taker-side tx, shut down the maker-side bot first. or, yes, just make 2 wallets. 12:44 < belcher> that 'unknown type' should have also existed before the migration to segwit 12:45 -!- fredrin [~fredrin@cm-84.209.144.12.getinternet.no] has quit [Ping timeout: 240 seconds] 12:46 < quitobro> belcher i did see this previously, you are correct 12:46 < belcher> so the only thing left is the transactions from before your segwit wallet was created? 12:46 < quitobro> so, that explains that... should we document somewhere this wisdom of not running two bots in parallel? 12:46 < quitobro> yea, i need to investiagte that 12:46 < quitobro> and see what the sqlite3 is reaching into 12:46 < quitobro> to get source tx data 12:46 -!- fredrin [~fredrin@gore.copyleft.no] has joined #joinmarket 12:48 < belcher> just noticed that joinmarket-qt doesnt have a way to display the mnemonic seed from a wallet file 12:49 < belcher> i may add that, doesnt seem hard and im working on that part of the code anyway 12:50 < waxwing> belcher, oh thanks 12:58 < quitobro> [INFO ] total cj fee = 12:59 < quitobro> waxwing is that denominated in satoshis? 12:59 < quitobro> ^^ 12:59 < quitobro> belcher maybe you know? 12:59 < belcher> it is 12:59 < quitobro> assuming it is ... 13:00 < quitobro> ok thanks! 13:00 < quitobro> is it possible to rename a wallet? 13:00 < quitobro> just curious 13:01 < belcher> rename a wallet file? go to wallets/ and rename the file 13:01 < quitobro> ha ok 13:01 < quitobro> yea 13:01 < quitobro> dumb question 13:01 < belcher> waxwing so theres no develop branch, we just PR to master/ 13:03 < waxwing> belcher, yeah, i didn't bother yet, not sure really 13:03 < waxwing> could change it to the other model if people want to go with that. 13:04 < belcher> doesnt matter for now, im about to open a pr 13:05 < waxwing> probably going to make a release next few days. does electrum sync work ok for you belcher ? 13:05 < belcher> yep 13:06 < belcher> well, i havent sent any bitcoins to those addresses 13:06 < waxwing> one thing i noticed is the testnet servers are a bit rubbish. there's only like 3 that work and 1 or 2 others that don't, for whatever reason. 13:06 < belcher> but it has successfuly sync'd to the server like 20 times 13:06 < waxwing> oh, heh. could try testnet. 13:06 < belcher> yeah good idea 13:06 < waxwing> mainnet is a lot more responsive/reliable. 13:06 < waxwing> there's one testnet server which is just an ip address and seems to just hang, shrug. 13:09 -!- fredrin [~fredrin@gore.copyleft.no] has quit [Ping timeout: 255 seconds] 13:11 -!- fredrin [~fredrin@cm-84.209.144.12.getinternet.no] has joined #joinmarket 13:16 < GitHub184> [joinmarket-clientserver] chris-belcher opened pull request #84: Optional feature to use mnemonic passphrases to create two factor recovery phrases (master...master) https://git.io/v5NYx 13:16 < belcher> there we go 13:17 < waxwing> thanks 13:24 -!- fredrin [~fredrin@cm-84.209.144.12.getinternet.no] has quit [Ping timeout: 248 seconds] 13:25 -!- delinquentme [~delinquen@108-235-112-153.lightspeed.sntcca.sbcglobal.net] has quit [Ping timeout: 264 seconds] 13:39 -!- cbits [~cbits@c83-250-193-158.bredband.comhem.se] has joined #joinmarket 13:48 -!- delinquentme [~delinquen@96-68-162-179-static.hfc.comcastbusiness.net] has joined #joinmarket 14:05 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 14:16 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 14:16 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 14:17 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 14:18 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 14:22 -!- asdcfvghlguijkuy [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has joined #joinmarket 14:22 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has quit [Ping timeout: 264 seconds] 14:23 -!- asdcfvghlguijkuy is now known as StopAndDecrypt 14:42 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has quit [Ping timeout: 260 seconds] 14:45 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 14:47 -!- StopAndDecrypt [~StopAndDe@c-73-248-248-9.hsd1.nj.comcast.net] has joined #joinmarket 14:50 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 260 seconds] 14:53 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 14:54 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 14:57 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 248 seconds] 14:58 -!- zxccxz [6dc7e505@gateway/web/freenode/ip.109.199.229.5] has joined #joinmarket 15:02 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 240 seconds] 15:17 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 15:22 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 255 seconds] 15:36 < delinquentme> belcher waxwing do you guys want me to update the joinmarket legacy wiki with installation directions for configuring "joinmarket" ? 15:36 < belcher> for configuring which joinmarket? clientserver or the old one 15:36 < delinquentme> Im gonna see about helping running tests on pullrequests 15:36 < delinquentme> https://github.com/JoinMarket-Org/joinmarket/wiki/Testing 15:36 < delinquentme> joinmarket not joinmarket-clientserver 15:37 < belcher> id say yes 15:37 < delinquentme> i was gonna itemize out this bit: You'll need to do cp test/regtest_joinmarket.cfg joinmarket.cfg from the root joinmarket directory. And if necessary, edit the rpc_password field in that file, to correspond with what you give for --btcpwd in the below (or just use the default given). Then you must also make sure that the same rpcpassword is set in your chosen bitcoin.conf file. You'll almost certainly want an ind 15:37 < delinquentme> ependent bitcoin.conf kept in a separate location for the tests, in which you only really need to set the rpcuser and rpcpassword options, and don't forget to change the listening port to 62612 (not 62602, which is for regular joinmarket): 15:37 < delinquentme> for clarity 15:37 < belcher> wikis usually have a rule of "be bold" 15:40 < delinquentme> Typically I like the copy+paste method :P IE "give them the things to paste into bash" 15:41 < belcher> yup 15:41 < belcher> id say go for it, even in the worst case its easy to revert 15:41 < belcher> although im not the one who made that page 15:42 < belcher> but people who make wiki pages must realize other people will edit their work 15:42 < delinquentme> kk 15:47 < quitobro> waxwing how come in python it seems like this sort of tool is not very popular? https://github.com/Mic92/pry.py 15:47 < quitobro> in ruby, pry is very, very popular IME 15:47 < quitobro> https://github.com/pry/pry 15:48 < quitobro> belcher have u seen this debugger usage pattern before 15:48 < belcher> i havent 15:48 < quitobro> do u guys use anaconda/ 15:48 < belcher> i used a debugger when coding c and java though, for some reason never felt the need to use it in python 15:49 < quitobro> do you just print stuff 15:49 < quitobro> as programs execute 15:49 < belcher> yeah thats one way 15:49 < belcher> also i think joinmarket is much simpler than other stuff iv written in the past 15:49 < quitobro> you write tests?? 15:49 < quitobro> oh ok 15:49 < belcher> there are automated tests too 15:50 < quitobro> i'm a rubyist but python is cool! ruby really is only for web development it seems which is not really scratching the surface of the iceberg that is software generally 15:51 < belcher> python was a mistake IMO, joinmarket should've been in some other language 15:51 < belcher> maybe java 15:54 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 15:54 < belcher> how are you finding python quitobro ? 15:56 < quitobro> i don't have too much to form an opinion on just yet but, it's a big f*cking ecosystem that's for sure 15:57 < quitobro> i really only have ruby and JS experience. python is very approachable for me being similar to ruby. but i wrote a little haskell and other compiled languages back in the day, so at this point i just want to work with competent devs that write clear code and not worry about the tools too much 15:59 -!- cbits [~cbits@c83-250-193-158.bredband.comhem.se] has quit [Ping timeout: 248 seconds] 15:59 < delinquentme> to run tests: do I need a whole blockchain? 15:59 < belcher> tests are run in regtest arent they? so no 15:59 < belcher> yes, im pretty sure they're all regtest 16:00 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 240 seconds] 16:32 < belcher> waxwing i wrote up my notes on multi-transaction coinswaps https://github.com/AdamISZ/CoinSwapCS/issues/47 16:32 < belcher> no guarantees it works or is readable, im just copying from these pieces of paper from months ago 16:33 < belcher> probably from june or something 16:33 < quitobro> hey belcher what's the accounts/label thing u mentioned? 16:33 < quitobro> i have identified the wallet that is being checked for historical tx's 16:34 < belcher> i _think_ that joinmarket's wallet uses bitcoin core's label feature 16:34 < belcher> where you can import a watch-only address with some label, then when joinmarket is sync'ing it just gets addresses with that label 16:34 < quitobro> the name of the wallet is like joinmarket-wallet-XXXXX 16:34 < belcher> yes thats it 16:34 < belcher> and XXXXXX is a hash of the master key 16:35 < quitobro> hm ok. so... a new segwit wallet i just created is also still pulling 0/0 input/output "unknown type" transactions when i query its history. perhaps they're all coming from same master wallet seed?? 16:36 < quitobro> it has a different label but same log of 0/0 historical transactions w/ no information about them 16:38 < belcher> hmm, yes that would make sense 16:38 < belcher> segwit and nonsegwit addresses might be added to the same label? 16:39 < belcher> if so, one way to fix this is to delete you wallet.dat and have joinmarket sync from the start but this time only importing the segwit addresses 16:39 < quitobro> is that equiv to doing `bitcoind --rescan` 16:39 < belcher> but check that actually is what happened, because syncing from the start is really slow 16:39 < belcher> no it isnt 16:39 < quitobro> i mean i know it's not same but in effect? 16:39 < belcher> --rescan would take the addresses that are inside wallet.dat and build up their history 16:40 < quitobro> ah 16:40 < belcher> you need to get rid of some addresses from wallet.dat 16:40 < delinquentme> Damn am I glad that Im downloading the entire blockchain on another machine. 16:40 < quitobro> ok let me poke around wallet.dat then 16:40 < delinquentme> Configuring testing can be weh 16:40 < belcher> delete (or rename) wallet.dat and then have joinmarket import as watch-only the segwit addresses, then wallet.dat will contain only segwit addresses 16:41 < quitobro> is this documented how to somewhere? > then have joinmarket import as watch-only the segwit addresses 16:41 < quitobro> is an import just the same as using wallet-tool.py ? 16:44 < belcher> yes its just the same as wallet-tool.py 16:44 < belcher> the first time you run wallet-tool it detects if wallet.dat doesnt contain its addresses and then it imports them 16:44 < quitobro> belcher okay great thanks. so i'm going to move it to wallet.dat.bak 16:44 < quitobro> ah 16:44 < quitobro> nice 16:44 < belcher> then it shuts down and tells you to restart with -rescan 16:45 < quitobro> or to retry 16:45 < quitobro> in this case i don't want to rescan, i want to see if watch only'ing the segwit wallets clears the weird history right 16:47 < quitobro> hm i moved the wallet.dat file, and ran wallet-tool.py, but the script had no problem showing me the wallet details... 16:47 < quitobro> is wallet.dat in memory or something? or perhaps i need to stop my node? 16:47 < belcher> yes you need to restart 16:48 < quitobro> my node 16:48 < quitobro> full node 16:50 < quitobro> belcher to confirm, i do need to `bitcoind -rescan` when i restart it 16:50 < belcher> yep 16:50 < quitobro> tx 16:50 < belcher> do you have pruning enabled? 16:50 < quitobro> ah not possible in pruned mode. gotta reindex :( 16:50 < quitobro> yea 16:50 < delinquentme> Ok sooo the directions have lots of weird suggestions for the rpcport for *testing* 16:51 < delinquentme> is it 62612 ? 16:51 < quitobro> belcher ever thought about creating a slack for joinmarket, btw? 16:51 < belcher> yeah... rescanning with pruning enabled requires you to download the blockchain again 16:51 < delinquentme> or is it 18332 16:51 < belcher> i thought about it but IMO its a bad idea 16:51 < belcher> im already on the bitcoin slack via the irc bridge though 16:51 < belcher> and tumblebit slack 16:52 < quitobro> why a bad idea, cuz privacy? 16:52 < belcher> centralized, closed source, requires permission, will disappear if the company behind it goes out of business, etc 16:52 < quitobro> they just raised $500mm! loll 16:53 < quitobro> i hear u tho. IRC is tried and true and not going anywhere 16:53 < quitobro> just need a better slack-like client ideally 16:53 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 16:53 < belcher> i personally really like irc, meh i suppose other people can start a joinmarket slack if they really wanted 16:54 < quitobro> what client do you use 16:54 < belcher> hexchat for gui, weechat for cli 16:57 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 16:57 -!- headcase [~headcase@unaffiliated/headcase] has quit [Ping timeout: 248 seconds] 16:58 -!- quitobro_ [~quitobro@pool-71-167-26-108.nycmny.fios.verizon.net] has joined #joinmarket 16:59 < quitobro> belcher wtf is that my fucking ISP ?! ^^ 16:59 < quitobro> lol 17:00 < belcher> yes freenode is rather un-private with hosts 17:00 < belcher> other irc networks scramble your host but not freenode for some reason 17:00 < gmaxwell> belcher: on virtually all of them it's easy to unmask. 17:00 < belcher> hmm 17:00 < gmaxwell> on freenode it's hidden if you have a cloak but hardly. 17:01 < belcher> they only need to be unique so you can ban people based on it 17:01 < quitobro> a cloak like a VPN? 17:01 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 240 seconds] 17:01 < belcher> see what i have, unaffiliated/belcher 17:01 < belcher> you go to #freenode i think and i ask one of the staff members 17:02 < quitobro> šŸ‘šŸ¼ 17:08 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 17:51 < delinquentme> Ok I seem to be getting a failed test (which also kills my bitcoind) 17:51 < delinquentme> CalledProcessError: Command '['/Users/carlcrott/Documents/python_projects/bitcoin/src/bitcoin-cli', '-regtest', '-rpcuser=bitcoinrpc', '-rpcpassword=asdf', 'generate', '101']' returned non-zero exit status 1 17:52 < delinquentme> seems to be running: $ bitcoin-cli -regtest -rpcuser=bitcoinrpc -prcpassword=asdf generate 101 17:52 < delinquentme> which gives me a -1 error code and: 17:52 < delinquentme> CreateNewBlock: TestBlockValidity failed: bad-fork-prior-to-checkpoint (code 67) 17:54 < delinquentme> is AdamISZ in here? 17:56 < belcher> thats waxwing 18:04 -!- headcase_ [~headcase@unaffiliated/headcase] has joined #joinmarket 18:07 -!- headcase [~headcase@unaffiliated/headcase] has quit [Read error: Connection reset by peer] 18:12 -!- delinquentme [~delinquen@96-68-162-179-static.hfc.comcastbusiness.net] has quit [Ping timeout: 255 seconds] 18:27 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 18:31 -!- headcase_ [~headcase@unaffiliated/headcase] has quit [Ping timeout: 264 seconds] 18:32 -!- delinquentme [~delinquen@108-235-112-153.lightspeed.sntcca.sbcglobal.net] has joined #joinmarket 18:34 < delinquentme> waxwing, could you tell me about this line: " and don't forget to change the listening port to 62612 (not 62602, which is for regular joinmarket):" 18:34 < delinquentme> from: https://github.com/JoinMarket-Org/joinmarket/wiki/Testing 18:34 < delinquentme> where it is makes it sound like thats a config in bitcoin.conf ... but im not sure which argument that port goes with if it is... 18:50 < GithubBot5678> [joinmarket] carlcrott opened pull request #760: Update requirements-dev.txt (master...patch-1) https://git.io/v5NMW 18:50 < delinquentme> ^ really minimal ... but allows tests to finish running + not kill bitcoind =] 19:22 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 19:45 -!- headcase [~headcase@unaffiliated/headcase] has joined #joinmarket 20:25 < delinquentme> so the function test_b58_invalid_addresses in test/test_addresses.py ... seems to crash my bitcoind =/ 20:34 -!- headcase [~headcase@unaffiliated/headcase] has quit [Remote host closed the connection] 20:37 < delinquentme> so say you swap in a new wallet ... and complete the -rescan ... what file is updated once the rescan is completed? ... is it bitcoin cores wallet.dat? 20:50 < quitobro_> belcher do you do dev work on your laptop/computer or on a hosted box or something else 20:50 * quitobro_ iā€™m assuming you have a linux machine for your primary use? 20:55 -!- quitobro_ [~quitobro@pool-71-167-26-108.nycmny.fios.verizon.net] has quit [Quit: quitobro_] 20:56 -!- quitobro_ [~quitobro@pool-71-167-26-108.nycmny.fios.verizon.net] has joined #joinmarket 20:57 -!- quitobro [47a71a6c@gateway/web/freenode/ip.71.167.26.108] has quit [Quit: Page closed] 20:57 -!- quitobro_ is now known as quitobro 21:35 < delinquentme> $ bitcoin-cli -regtest -rpcuser=bitcoinrpc -prcpassword=5aae1a8873b7eb8fef15742e45f60720 generate 101 21:36 < delinquentme> could someone run that for me and let me know what their output looks like? i get an empty set 21:36 < delinquentme> [ 21:36 < delinquentme> ] 21:36 < delinquentme> lmk if thats what im supposed to see :P bc the test seems to be failing 22:08 < waxwing> delinquentme, it's supposed to show 101 block hashes iirc 22:08 < waxwing> (btw i lost last night's backlog, if there was any, something screwed up) 22:08 < delinquentme> and that evaluates as 0 (zero) ? 22:09 < waxwing> like if you do generate 2 it will show 2 64 character hexadecimal hashes, one per line 22:09 < delinquentme> CalledProcessError will throw error unless it gives a zero status.... ( at least this is my current understanding) 22:10 < waxwing> sorry you were asking what it shows, i was answering that. now you're asking what the process returns, i think. 22:10 < delinquentme> waxwing, yeah weird. I get no hex hashes ... just an empty array 22:10 < delinquentme> [] 22:10 < waxwing> something is wrong there. 22:11 < delinquentme> waxwing, on the two diff questions: Yeah I just was confused why a hex set would evaluate as zero ... which is what it SEEMS the test suite is looking for 22:13 < waxwing> not really the test suite doesn't care about the output of the generate call, it just assumes it runs OK 22:14 < waxwing> what version of bitcoind are you running? 22:14 < delinquentme> Bitcoin Core RPC client version v0.15.99.0-cee4fe1 22:14 < waxwing> hmm well i presume there is no change to the generate call in that version? i have no idea why you are not getting blocks. 22:15 < waxwing> what's in the config file you're using? it's a good idea to use a different config for the tests, use -conf= 22:15 < waxwing> and also what's in the regtest/debug.log file when you do the generate call? 22:20 < delinquentme> -conf= for ... bitcoin? 22:21 < delinquentme> waxwing, I believe the current master branch for joinmarket fails to modify the bitcoin-cli calls to incorporate the -conf= file 22:22 < delinquentme> otherwise id have used a bitcoin_test.conf file =] 22:22 < waxwing> it's only bitcoind that needs -conf= i think. 22:23 < waxwing> sorry it's early in the morning here, head a bit hazy. that makes sense though right. 22:23 < delinquentme> https://pastebin.com/xFVT8wcA is my bitcoin.conf 22:23 < waxwing> check the debug.log after you do the generate call. 22:24 < waxwing> yeah that looks fine 22:25 < delinquentme> https://pastebin.com/87zacLzp 22:25 < waxwing> so how did you start bitcoind? it's a little unclear exactly where you're at right now, since you're talking about the test suite, but also about independently running `generate`. 22:25 < delinquentme> thats what I get when I run the generate command ... thats the debug.log 22:25 < waxwing> did you start bitcoind on the command line yourself, i'm guessing? not start it "under the hood" from py.test? 22:26 < delinquentme> yeap I just start it from the command line with $bitcoind 22:27 < delinquentme> Im running the generate separate bc when I run the test suite it kills the bitcoind process ... and so im running the generate command on its own to see what it should be outputting 22:28 < waxwing> yes, well now i have two things i want to know: what *exactly* do you see when you say 'it kills the bitcoind process', and second, i don't undertand why 'generate' does not output block hashes, since it looks like, from the log, that the blocks are being created. 22:29 < delinquentme> yeah im looking at the debug.log rn to see what it outputs when it kills the process 22:32 < delinquentme> heres the error output from running the test suite: https://pastebin.com/gbB9uavz 22:33 < delinquentme> lots of "Exception: wrong network configured" 22:33 < delinquentme> Failed: DID NOT RAISE 22:33 < delinquentme> EOF: End Of File (EOF). Empty string style platform. 22:34 < delinquentme> and the debug.log just before it fails: 22:34 < delinquentme> https://pastebin.com/X0DZJTam 22:35 < waxwing> delinquentme, ah, when you run the test suite, do you copy regtest_joinmarket.cfg from test/ into the root directory? 22:35 < waxwing> oh hang on you're using joinmarket-org/joinmarket not joinmarket-org/joinmarket-clientserver, right? actually there isn't a huge difference here, just checking 22:35 < delinquentme> yeap! 22:36 < delinquentme> yeah. Im using vanilla joinmarket ... as that was the one w more "Issues" listed 22:36 < waxwing> yes but what does the joinmarket.cfg look like, is it set up for regtest? 22:36 < delinquentme> Im aware of the history on the two ... but yeah... vanilla "joinmarket" ... not clientserver 22:36 < delinquentme> https://pastebin.com/36dkKebR < joinmarket.cfg 22:37 < delinquentme> actually that brings me to the question of earlier! https://github.com/JoinMarket-Org/joinmarket/wiki/Testing/7c941a5b08ce16d36333f06bf8de814fb593e89e 22:37 < waxwing> ok thanks. so why do we have "wrong network configured" then. can you pastebin your command line to start the tests, and what comes out in response? 22:38 < delinquentme> You'll almost certainly want an independent bitcoin.conf kept in a separate location for the tests, in which you only really need to set the rpcuser and rpcpassword options, and don't forget to change the listening port to 62612 (not 62602, which is for regular joinmarket): 22:38 < delinquentme> I never figured out what exactly is supposed to be 62612 22:38 < delinquentme> it wasnt clear whether that was a bitcoin.conf or joinmarket.conf port configuration... 22:39 < waxwing> it's the notify_port in joinmarket.cfg and the port you set in bitcoin.conf in the walletnotify command 22:40 < waxwing> but this isn't relevant to your error condition 22:40 < delinquentme> https://pastebin.com/UntCjbd9 is the command i use to run the tests 22:40 < waxwing> you have miniircd directory in the root directory of joinmarket, right? 22:40 < waxwing> delinquentme, ah, i don't think you can use ~ in that command line 22:40 < waxwing> expand it 22:41 < delinquentme> yeap. miniircd in the joinmarket 22:41 < waxwing> which could explain some things possibly, since it wouldn't find the conf. well i'm not 100% sure, but i think you can't use '~' there. 22:42 < delinquentme> trying it now .... 22:42 < waxwing> i didn't include any expanduser there and i don't think pytest will either. 22:43 < delinquentme> i think the error looks similar 22:43 < delinquentme> test_b58_invalid_addresses 22:43 < delinquentme> is involved... 22:43 < waxwing> please show me the actual errors? :) 22:44 < delinquentme> sure! 22:44 < waxwing> actually it's sometimes not so easy with pytest. if you can isolate which test is failing, you can run that one with -s to get stdout coming onto the screen, sometimes it helps. 22:45 < waxwing> although pytest does try to do a detailed illustration of where the failure occurs, if it can. 22:46 < waxwing> another thing is, if something is wrong with your config, you can get a condition where bitcoind is still running after the test is finished, which can screw things up. Normally, bitcoind and miniircd processes are all stopped and cleaned up between runs. 22:48 < delinquentme> ERROR at setup of test_enc_wrapper also worth looking at... https://pastebin.com/Rkncp83r 22:48 < delinquentme> ImportError: Start directory is not importable: '/Users/carlcrott/Documents/python_projects/joinmarket' 22:50 < delinquentme> OHHH interesting. So I thought it was one thing... but it wasnt it. Lemme get back to you waxwing and ill let you know which specific tests are failing here. 22:51 < waxwing> delinquentme, i'm curious, what's those other tests? is it some standard test suite? 22:52 < waxwing> also, yes i can see that the 'generate' call is returning 1, so i remain confused, perhaps #bitcoin-dev or similar can answer why generate 101 does not work 22:52 < waxwing> and ok i'll let you go on with whatever that is 22:52 < delinquentme> what other tests? 22:52 < waxwing> oh i see what you mean "CreateNewBlock: TestBlockValidity failed: bad-fork-prior-to-checkpoint (code 67)" 22:52 < delinquentme> Im just running whatever is in tests/* 22:53 < delinquentme> yeah I seemed to get that to temporarily go away by $ bitciond -reindex 22:53 < waxwing> delinquentme, interesting, because i see venv_joinmarket/lib/python2.7/site-packages/testtools/tests/twistedsupport/test_runtest.py 22:53 < waxwing> ah, i see what's happening. 22:53 < waxwing> you've set up a virtualenv under the directory of joinmarket, and pytest auto-finds all the tests in the packages in the virtualenv. 22:53 < waxwing> that could take a long time! 22:54 < delinquentme> OHHHH 22:54 < delinquentme> that would do it. But I thought I followed the install dirs quite nicely... 22:54 < waxwing> come to think of it, that is my fault. when i wrote the instructions for joinmarket-clientserver i suggested creating the virtualenv directory *under* the main JM directory, but that's a bad idea for testers :) 22:55 < delinquentme> =P 22:55 < waxwing> it's a bit of 'do as I say not as I do', i actually put my virtualenvs in a separate 'virtualenv' directory. 22:55 < waxwing> well, 'virtualenv*s*' directory 22:55 < delinquentme> virtualenvwrapper is typically what I use and I put it in ~/.virtualenvs 22:55 < waxwing> won't matter for ordinary users though. 22:56 < waxwing> oh ok, never used that. 22:56 < delinquentme> its similar 22:56 < delinquentme> so lemme relocate thing thing and see what happens 22:56 < delinquentme> do you want me to correct the install directions for joinmarket-clientserver? 22:57 < waxwing> i don't know, for users arguably it's fine as is. 22:58 < delinquentme> Ok coo 22:58 < delinquentme> ill make a not in the joinmarket testing wiki then? 22:59 < waxwing> well yes except the virtualenv is not in there, it's in the joinmarket-clientserver instructions 22:59 < waxwing> there is a testing.md in the docs/ repo there, i think it should be noted there. 23:01 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket 23:02 < delinquentme> balls. Ok so when trying to run the tests ... not the py.test has been relocated 23:02 < delinquentme> not = now* 23:05 < delinquentme> lulz ok no idea how to modify this test command to accomidate for the relocated py.test 23:06 -!- coins123 [~coins123@unaffiliated/coins123] has quit [Ping timeout: 240 seconds] 23:06 -!- Netsplit over, joins: mr_burdell 23:08 < GitHub100> [joinmarket-clientserver] AdamISZ pushed 2 new commits to master: https://git.io/v5NbF 23:08 < GitHub100> joinmarket-clientserver/master 2ede216 mecampbellsoup: Fix code indentation... 23:08 < GitHub100> joinmarket-clientserver/master 6ab4aa3 AdamISZ: Merge #82: Clarify INSTALL.md... 23:08 < GitHub167> [joinmarket-clientserver] AdamISZ closed pull request #82: Clarify INSTALL.md (master...clarify-install-docs) https://git.io/v5Nfs 23:10 -!- emzy [~quassel@unaffiliated/emzy] has joined #joinmarket 23:17 < delinquentme> waxwing, ive never seen a command used like the test suite before .... PYTHONPATH=.:$PYTHONPATH py.test --cov-report etc ... 23:18 < delinquentme> any idea how i modify that now that my py.test package is in Users/carlcrott/.virtualenvs/venv_joinmarket/ ? 23:19 -!- fredrin [~fredrin@gore.copyleft.no] has joined #joinmarket 23:19 < waxwing> delinquentme, probably don't need the PYTHONPATH setting 23:20 < waxwing> other than that it should maybe work, but not sure. see TESTING.md in jm-cs; i know that works in a virtualenv 23:20 < waxwing> (and with pytest installed into the virtualenv) 23:58 -!- quitobro [~quitobro@pool-71-167-26-108.nycmny.fios.verizon.net] has quit [Quit: quitobro] 23:59 -!- coins123 [~coins123@unaffiliated/coins123] has joined #joinmarket