--- Day changed Sun Jan 13 2019 00:57 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has joined #joinmarket 01:13 < AgoraRelay> [agora-irc/AlexCato] CgAN is down for several hours already and agora-irc not working --> seems the bot can connect, but not post anything in the channel. 01:24 < AgoraRelay> [agora-irc/AlexCato] also checked: darkscience IRC seems to work fine (tor hidden service) 03:41 < AgoraRelay> [agora-irc/AlexCato] @belcher, the bct-link in the message topic links to JM release 0.2.2 . Maybe just link to the github-releasepage instead? 03:41 < belcher> yes good idea 03:42 < belcher> cyberguerilla chanserv is currently down so cant change the topic there 03:42 < belcher> i have on darkscience 03:44 < AgoraRelay> [agora-irc/AlexCato] thanks 03:47 < AgoraRelay> [agora-irc/AlexCato] I tried to get into the IRC and message channel code the last 30 min to see if i can fix the startup-issue if one of the irc servers is down. But from what I can see so far, this is complicated and I'll not have enough time today to understand and fix this. in about 2 weeks i'll have more time on my hands, will try again then 03:47 < AgoraRelay> [agora-irc/AlexCato] still dont see why agora doesnt work... bots are in there and joining/leaving all the time, but there's zero communication going on. And my normal irc client (also connected via tor) works just fine, can also chat in the channel 03:49 < AgoraRelay> [agora-irc/AlexCato] quickfix: change default irc to cgan/darkscience? 03:50 < AgoraRelay> [agora-irc/AlexCato] i'll create a PR for that, can discuss there if it makes sense to do that 03:54 < AgoraRelay> [agora-irc/belcher] i just said "test?" in -pit, did you see it? 04:05 < AgoraRelay> [agora-irc/AlexCato] yeah 04:05 < AgoraRelay> [agora-irc/AlexCato] replied "works" in the channel 04:06 < AgoraRelay> [agora-irc/AlexCato] if you can see that as well... this nick is unregistered. So i should have the same access rights that the bots have 04:08 < AgoraRelay> [agora-irc/AlexCato] configured a YG a few hours ago to exclusively use agora. It joins the channel, but for some reason never announces or finishes the JM setup. It just sits there, doing nothing. I guess the other bots in there are the same 04:09 < AgoraRelay> [agora-irc/AlexCato] just did an !orderbook. Got 2 replies from the 59 makers in there. 04:14 < AgoraRelay> [agora-irc/AlexCato] which leads to the assumption: not an tor/onion problem, but a general thing with agora? I assume the are more than 2 out of 59 makers connected via clearnet 04:15 < AgoraRelay> [agora-irc/AlexCato] but if the standard irc client works, like yours and mine... maybe there's some initialization issue that the JM irc code has with agora specifically (because cgag/darkscience work) 04:15 < AgoraRelay> [agora-irc/AlexCato] maybe the re-configured something in a non-standard way that jm cant handle 04:36 < waxwing> cgan seems to be up now, but yeah i guess it must have gone down for a while 04:36 < waxwing> i see 32 in the pit, last night it was around 110-120 04:37 < waxwing> if my log is right, it looks like cgan was down for ~ 8 hours 04:38 < waxwing> also re your comments on agora, that's the same as what i saw yesterday/day before. join server, but doesn't start. clearly on_welcome is not triggered. 04:40 < waxwing> which means the channel joined message is not received 04:41 < waxwing> https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmdaemon/jmdaemon/irc.py#L265 04:43 < waxwing> w.r.t changing the startup code, basically it'll be editing this: https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmdaemon/jmdaemon/message_channel.py#L400-L420 04:44 < waxwing> as i said in the comment to #51 it's probably more fiddly/annoying than difficult .. i guess? ... you need to decide what exact set of events triggers "i'm now ready to start operations" 04:44 < AgoraRelay> [agora-irc/waxwing] AlexCato, ping 05:06 < AgoraRelay> [agora-irc/AlexCato] hi waxwing, i'll have a look as soon as i can, probably within next 2 hrs. Thanks for the pointer 05:16 < waxwing> alexcato: no rush, just wanted to make sure you got the msg 05:47 -!- Sentineo [~Undefined@unaffiliated/sentineo] has quit [Quit: leak no x->x] 05:52 < AgoraRelay> [agora-irc/AlexCato] well, its kind of a blocking bug... the default config should always work, and currently doesnt :( 05:57 < AgoraRelay> [agora-irc/AlexCato] The fix for "start and announce when any of the server connections were successful" seems rather trivial, or did i miss something? It's just changing the "not any x==0" logic to "any x==1" here https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmdaemon/jmdaemon/message_channel.py#L417 . Sideeffect: it only announces its 05:57 < AgoraRelay> offer on the first channel it joins, but replies to !orderbook on any channel it is in regardle 05:57 < AgoraRelay> [agora-irc/AlexCato] ss. So this might already be better than the status quo 06:06 -!- rdymac [uid31665@gateway/web/irccloud.com/x-pjvthadxejdupojr] has joined #joinmarket 06:32 < waxwing> alexcato: i think so; that's what crossed my mind this morning when looking at it. 06:33 < waxwing> it was so long ago, i'm not sure what particular line of thinking led me to preferring not to do that to start with. 06:33 < waxwing> for now i'm def agreeing with you. if belcher or undeath or anyone wants to chime in, please do. 06:36 < waxwing> alexcato oh but: Taker side 06:36 < waxwing> you want to make your request to all the msgchans, not just the first that you get connected to 06:37 < AgoraRelay> [agora-irc/AlexCato] yes, i see the problem... let me find a way to fix that 06:39 < AgoraRelay> [agora-irc/AlexCato] some logic that might work: after the first channel has been successfully joined, start a timer of X (e.g. 60 seconds) and "(after timer expired) or (when all other channels were succesfully joined)" --> announce then 06:40 < waxwing> alexcato, yes that's essentially the best i could come up with in the #51 comment 06:40 < waxwing> it's ugly but it's far better than status quo 06:40 < waxwing> i do hate magic numbers, but screw that, compared to nobody being able to connect, it's nothing :) 06:41 < waxwing> and same logic for !orderbook rather than announce 06:41 < waxwing> as you point out the maker side (announcement) isn't really much of an issue at all 07:21 -!- Sentineo [~Undefined@unaffiliated/sentineo] has joined #joinmarket 07:45 -!- emilr [~emilr@unaffiliated/goregrind] has joined #joinmarket 07:48 -!- emilr [~emilr@unaffiliated/goregrind] has quit [Client Quit] 07:48 -!- emilr [~emilr@unaffiliated/goregrind] has joined #joinmarket 08:07 < belcher> all engineering will need magic numbers, if it makes you feel any better 08:08 < belcher> you can design a bridge and figure out the strength by finding the max stress when fully loaded by cars, and then add a safety factor of 2x.... but why 2x and not 3x or 5x? its a magic number 08:09 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has joined #joinmarket 08:09 < AgoraRelay> [agora-irc/AlexCato] i have the code ready to fix this, testing it now. Then creating PR 08:09 < belcher> the irc code should definitely use multiple servers for redundancy and to avoid a single point of failure, i didnt realize i didnt work this way 08:10 < AgoraRelay> [agora-irc/AlexCato] yeah, neither did I. But we'll have that fixed today :) 08:10 < belcher> :) 08:14 < waxwing> arrgh 08:14 < waxwing> it does! it's just a *startup* problem 08:15 < waxwing> also this Issue was opened in early 2017, it's not my fault if nobody can be bothered to work on this stuff ... 08:16 < AgoraRelay> [agora-irc/AlexCato] sorry, this wasnt meant as blaming or anything. It's rather embarassing that I didnt even know about the problem 08:17 < waxwing> yeah but also when you saw it yesterday, you were saying 'oh the redundancy is much worse than nothing' but it really isn't: the redundancy works *during* long running operation 08:18 < waxwing> it's just a startup problem, important for sure, but it's not like we've been running all this time with no redundancy, that's absolutely not the case 08:18 < waxwing> the servers are flaky and drop all the time, but ygs still run correctly through that 08:18 < belcher> oh i understand now, yes it makes sense 08:18 < belcher> so if the yg managed to connect at the beginning it will tolerate a server dropping 08:18 < belcher> i guess its natural that people only fix problems that are immediate/urgent 08:19 < waxwing> yes that's why i edited the title of that Issue, because originally it was mischaracterised like that 08:19 < belcher> (but doesnt have to be, some people with good time/task management do stuff which is important not just which is urgent) 08:19 < waxwing> startup is just an annoying issue, especially for Takers, they really don't want to blithely run while only seeing some slice of the liquidity 08:20 < waxwing> arubi, btw you were absolutely right about tmux, with ctrl-b % i can get exactly what i needed: split screen on a single terminal, works fine with asciinema too. cool. 08:38 < AgoraRelay> [agora-irc/AlexCato] i remember that there were some instructions how to install JM in dev mode, so that I dont have to use install.sh when I make changes to the core code. Can't find the documentation about that any more - any pointers? 08:39 < waxwing> alexcato ./install.sh -? 08:40 < waxwing> iirc; should show; think it's --develop 08:40 < AgoraRelay> [agora-irc/AlexCato] ah, thanks 08:54 -!- rdymac [uid31665@gateway/web/irccloud.com/x-pjvthadxejdupojr] has quit [Quit: Connection closed for inactivity] 09:10 < Guest29136> JM maker here with little CS skills. It appears I cannot connect. Is there a central issue or should I be worried it is on my end? https://joinmarket.me/ob/ shows 31 counterparties so I am worried it is on my end 09:13 < waxwing> Guest29136, edit out agora from your joinmarket.cfg 09:13 < waxwing> do you see a section [MESSAGING:server1] in your joinmarket.cfg? 09:13 < waxwing> or does it just say [MESSAGING] ? 09:14 < waxwing> put this up; it's just a demo, not a full writeup of payjoin (will do that later) https://joinmarket.me/blog/blog/payjoin-basic-demo/ 09:17 < arubi> waxwing, nice :) 09:18 < waxwing> arubi, funny thing is i learnt literally no tmux commands except ctrl-b % and arrow key :) so that was nice. 09:19 < arubi> hehe yea it's really user friendly imo. personally I can't live without it now 09:23 < Guest29136> waxwing, I have [Messageing:server1]. I put in #host = agora.anarplex.net and now see an error ConfigParser.NoOptionError: No option 'host' in section: 'MESSAGING:server2' 09:23 < waxwing> Guest29136, yes, remove (comment out) the *whole* of MESSAGING:server2 09:23 < waxwing> if you only comment out /delete part of it, it'll error , yeah 09:24 < waxwing> you should be fine (for now!) with cyberguerrilla only; although it did go down for a while last night, but once your bot is connected, it'll always reconnect (it basically backs off and keeps trying) once the server comes back up 09:24 < waxwing> also we're apparently looking into adding other servers 09:25 < waxwing> (any more on darkscience belcher alexcato? are we basically just at 'it looks like it'll probably work'?) 09:27 -!- Guest29136 [b8bbb14d@gateway/web/freenode/ip.184.187.177.77] has quit [Ping timeout: 256 seconds] 09:31 < waxwing> i posted this in case it helps anyone else https://old.reddit.com/r/joinmarket/comments/afliql/trouble_with_connecting_to_irc_some_info_to_help/ 09:33 < waxwing> mr 29136 is gone already, oh well, yw i guess 09:33 < user__> Another question inregards to IRC Server. Does using the tor connection "hurt" one's (maker) chance of being selected by a taker? Because of possilbe slower speed. 09:34 < waxwing> user__, i really don't think so. 09:34 < waxwing> there's kind of 2 phases of "selection" 09:34 < waxwing> first is, send !orderbook and wait. that wait is like 60 seconds by default iirc. second phase is random-choice-under-a-maximum-fee. 09:35 < waxwing> so it's only the first phase this would be relevant to. but still in an absolute sense, the faster you can send your response, the lower the chance that an impatient Taker won't see your offer. 09:35 < waxwing> so although i don't think so in practice, in theory there's at *least* a probabilistic difference between a slow and fast Maker. I guess? 09:35 < user__> Thanks waxwing 09:36 < waxwing> also if your connection is flaky and you actually drop out ; well .. not much can be done about that :) 09:38 < user__> Also how common is it for others to get the "Cannot reconnect to drop nick,"? I get one of these warning about once an hour. 09:39 < waxwing> user__, i'm sorry but that is not an error. yes, i get it all the time. 09:40 < waxwing> it really just means that a nick that you previously communicated has now left. 09:40 < waxwing> the "cannot" is because we always try to "find" a dropped nick on a different message channel if they drop on one; but almost always, when they drop on one, they drop on all (2) 09:45 < user__> I didn't think it was an error, just curious if it was a sign of crappy internet connection on my side. 09:47 < waxwing> right. pushed a change to master, this has been annoying for a while. it's debug now, not warning. i guess it could still confuse people :) 09:47 < waxwing> but with the colored logging i'm going to push shortly, i particularly don't want it to stand out and look scary. 09:48 < user__> Sounds good. 09:50 < user__> Hopefully last question for me. Am I correct that as a marker I will end up with a lot of different change addresses and does the yield generator use all the address in a wallet to get maximum order amount? Or does one have to sweep into new address occasionally? 09:52 < AgoraRelay> [agora-irc/AlexCato] it fills every order with only the coins from one of the mixlevels (you have 5 by default in a wallet). This is required for privacy & mixing: if it used all coins from any mixlevel, different coins could be linked and privacy weakened 09:53 < AgoraRelay> [agora-irc/AlexCato] you can sweep ocasionally, but the same limit applies... can only sweep from one mixlevel at a time 09:56 < user__> Thanks agora 10:14 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has quit [Ping timeout: 256 seconds] 10:22 -!- danh [b8bbb14d@gateway/web/freenode/ip.184.187.177.77] has joined #joinmarket 10:30 < AgoraRelay> [agora-irc/AlexCato] hm... i've added an async threading.Timer() to https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmdaemon/jmdaemon/message_channel.py#L400-420 , but cant figure out which function I actually should call when the timeout is over. Zero practical experience with threaded execution and when the timer is up, the function I 10:30 < AgoraRelay> intended to call (on_welcome(), like this line: https://github.com/JoinMarket-Org/joinmarket-clie 10:30 < AgoraRelay> [agora-irc/AlexCato] ntserver/blob/master/jmdaemon/jmdaemon/message_channel.py#L419 ) runs into an exception that a NoneType object is not callable 10:35 < AgoraRelay> [agora-irc/AlexCato] (any more on darkscience belcher alexcato? are we basically just at 'it looks like it'll probably work'?) <-- looks fine so far, though there's just 2 makers, which makes it hard to test. I'll try it later to do a real join 10:37 < waxwing> alexcato: we don't use threads any more (although some stale comments may incorrectly reference it) 10:37 < waxwing> you can use reactor.callLater to do something after a timeout. 10:41 < belcher> you can test with testnet 10:41 < belcher> i dont want to say "ill swap my bot over to darkscience now" because of privacy issues (assuming i even have a yg, maybe i dont run one anymore? :p ) 10:45 < waxwing> right 10:45 < waxwing> it's ok once it's published advice, but a bit dodgy at the testing stage 10:50 < belcher> great video/blog post waxwing 10:50 < belcher> tmux does look quite nice 10:50 < waxwing> yeah it's cool; when you record it locally it stores in some kind of ascii format i think and you can edit it. 10:51 < waxwing> not sure exactly how the player works, i guess it's still technically not a video? anyway only mention it because the playback files are tiny which is nice. 10:52 < belcher> yes only text probably 10:53 < waxwing> alexcato if you need help, feel free to push it as-is somewhere and i can help you figure out what's needed 11:06 < waxwing> belcher, could you put the darkscience connection info in an Issue, it's not in my backscroll. i can try it out on regtest now. 11:06 < belcher> sec 11:09 < belcher> done https://github.com/JoinMarket-Org/joinmarket/issues/778 11:10 < waxwing> belcher, so same port for hidden service too? 11:11 < belcher> yes 11:11 < belcher> edited the issue saying that 11:18 < waxwing> looks to be working fine on clearnet. i'll try the HS. 11:24 < waxwing> it's bouncing me out (disconnect cycling) 11:25 < waxwing> actually i don't know exactly what it's doing; belcher thoughts? https://0bin.net/paste/qA8rjfG-t3LURCj7#wOJYp6MsJmDUqpvWdjSkPKKjNPQfLOmGHHenUBEXz6A 11:26 < waxwing> (note that that's three bots at once, so hard to read; i'll try again with only one) 11:28 < belcher> no idea what it is based off that log, except maybe the bot isnt replying to PINGs (but theres no way its not replying to PINGs) 11:30 < belcher> try with one 11:30 < waxwing> appears to work with only 1 in the script 11:30 < waxwing> basically, with one yg from the ygrunner script, and one taker from the other script, it worked fine. 11:30 < belcher> maybe its some server anti-flood because they all came from the same IP address? 11:31 < belcher> so in theory it should not happen over the HS 11:31 < waxwing> yes .. except it's on tor. 11:31 < waxwing> no this was the HS test. 11:31 < waxwing> the clearnet was fine with all 3. 11:31 < waxwing> some kind of anti-flood i bet, too, yeah 11:31 < belcher> maybe they can detect which tor circuit is used, and all your bots used the same circuit 11:31 < waxwing> because they all connect simultaneoulsy 11:31 < belcher> or that 11:31 < waxwing> ok could be; but i think my Taker'd be on same circuit, right 11:32 < waxwing> so anyway my tests are positive, it works. of course we have no idea if it'd work at scale, but still. 11:36 < AgoraRelay> [agora-irc/AlexCato] shouldnt be the circuit... i've seen the same problem, but use different circuits (different username/password you use for your tor proxy are supposed to build different circuits) 11:37 < waxwing> yes. this won't be a problem for users, of course. anyway, can do coinjoins, that much seems clear. 11:37 < AgoraRelay> [agora-irc/AlexCato] but i still dont see it working on agora even over clearnet. There's ZERO bot announcements in the channel in the last 10+ hours 11:38 < waxwing> yes, the channel joined message doesn't get received. well i guess it may change but i'd bet the operator just decided they didn't want that traffic any more. 11:38 < AgoraRelay> [agora-irc/AlexCato] but you said that earlier already, probably has something to do that the bot does not notice it joined the pit 11:38 < AgoraRelay> [agora-irc/AlexCato] changed from threads to reactor.callLater, but running into the same problem. Will push what I have to a branch in my github 11:39 < waxwing> ok, cool, ping me when it's up. 11:40 < waxwing> arubi, tmux has the same problem as screen where you can't backscroll right? i don't suppose there's any way round that? 11:40 < arubi> ctrl-b pageup ? 11:41 < waxwing> ah ok, page up works? that'd be nice, great 11:47 < belcher> i just saw on twitter a VP of chainalysis is warning people against using coinjoin, hilarious 11:48 < nothingmuch> do they have a donation address? 11:48 < belcher> you can backscroll on screen, its ctrl+a + [ and then use arrow keys or pageup/down 11:49 < belcher> then press q or esc to get back to non-scrolling mode 11:49 < waxwing> nothingmuch, lol 11:50 < waxwing> belcher, link? 11:50 < belcher> https://twitter.com/johnfdempsey/status/1084529704017776640 11:50 < waxwing> belcher, oh didn't know that on screen, thanks; i have a feeling i tried it at some point but encountered a problem. i'll try again. 11:51 < waxwing> yeah works. bit fiddly but good to know. 11:52 < AgoraRelay> [agora-irc/AlexCato] here's the changes, in which the callLater does not work yet (probably something trivial, but I have no clear understanding of how the IRC code works): https://github.com/JoinMarket-Org/joinmarket-clientserver/compare/master...AlexCato:startup_redundancy 11:53 < waxwing> got it 11:53 < nothingmuch> so is he saying those specific 20 btc do not have clear evidence of criminal activity? 11:53 < belcher> yes therefore the entire world should know 11:55 < waxwing> alexcato first thing, don't call reactor.run() (that's only called once globally) 11:57 < waxwing> second thing is either trivial or not, i'm not sure, but generally you just use the function name, like reactor.callLater(60, self.on_welcome) 11:57 < AgoraRelay> [agora-irc/AlexCato] whops. Checking if it was really just that. 11:57 < waxwing> hmm i guess it should matter, if you do afunc(dostuff()) it executes dostuff and passes return value, you want to pass the function object 12:00 < AgoraRelay> [agora-irc/AlexCato] yep, that was it. 12:00 < waxwing> yes that part is clear, but i'm also not sure why you're setting a variable to the return value of reactor.callLater. I can't recall what that is, i think it might be a deferred or something? 12:00 < waxwing> or, ah, you just want to check if you have *something* in that var, i guess? 12:01 < AgoraRelay> [agora-irc/AlexCato] yeah, i see a better way to implement this. Basically, if all IRC servers are successfully connected to while the callLater is already triggered, I wanna stop the call and finish the setup right away 12:01 < waxwing> so yeah i don't think you can compare that with > 0 ... so anyway these are details but we'll fix them up. 12:02 < waxwing> you can cancel a waiting call like that, can't remember the syntax. 12:03 < AgoraRelay> [agora-irc/AlexCato] i'll just initialize it as "None" and then check if it's different from that later 12:03 < AgoraRelay> [agora-irc/AlexCato] the doc said it returns an id, but now that its not crashing any more, i see that it does return a little bit more than that 12:04 < waxwing> right, can check that a bit more in a minute. 12:04 < waxwing> first though, why this line? https://github.com/JoinMarket-Org/joinmarket-clientserver/compare/master...AlexCato:startup_redundancy?diff=unified#diff-126056c7efec2fe540c8ca44fe4e3b68R422 12:04 < AgoraRelay> [agora-irc/AlexCato] hm. It crashes a few seconds after "JM daemon setup complete" now, investigating... 12:04 < waxwing> by definition we've set one mc to '1' at the start of this function, right 12:05 < AgoraRelay> [agora-irc/AlexCato] i've wondered about that line as well, i have no recollection of changing this 12:07 < waxwing> oh i see, you use that id to refer to, to do the cancel() operation. i don't remember that, but that makes sense if the docs say to do it like that. 12:07 < waxwing> yeah the two lines (422 and 423 in that version) can be replaced with 'else' imo 12:08 < waxwing> because either none of the mcs are 0, we call on_welcome, or if that's not true, we go through the remaining logic 12:11 < waxwing> it might be simplest to just use some flag that ensures you do the callLater once only (but still record its return value so you can call cancel() on it if the last msgchan shows up before the timeout) 12:11 < AgoraRelay> [agora-irc/AlexCato] The callLater seems to take some shortcut, because a few seconds after JM daemon setup there's an assertion failure in daemon_protocol: 12:11 < AgoraRelay> [agora-irc/AlexCato] jmdaemon/jmdaemon/daemon_protocol.py", line 184, in on_JM_SETUP 12:11 < AgoraRelay> [agora-irc/AlexCato] assert self.jm_state == 0 12:11 < AgoraRelay> [agora-irc/AlexCato] builtins.AssertionError: 12:11 < waxwing> that suggests that the JM_SETUP call happened twice, which probably means on_welcome got called twice 12:11 < waxwing> or something along those lines 12:14 < AgoraRelay> [agora-irc/AlexCato] yes, of course. It successfully connects to 2 or the 3 IRC servers, so added 2 callLaters... i had logic to prevent that with the threads, but forget it here somehow. Fixing. 12:14 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has quit [Remote host closed the connection] 12:14 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has joined #joinmarket 12:14 < waxwing> pls don't use threading though; i know there are still threading locks there, i didn't remove them because ob-watcher uses threads. but joinmarket itself doesn't use threads, at all (and it kind of *must* not for obscure reasons) 12:15 < AgoraRelay> [agora-irc/AlexCato] yeah, i just saw the thread lock in this function and assumed threads are the way to go... i prefer not to use them as well, syncing them in all edge cases is error prone 12:16 < AgoraRelay> [agora-irc/AlexCato] not crashing any more. Checking taker side now. 12:22 < waxwing> ah, understood 12:26 < AgoraRelay> [agora-irc/AlexCato] 7 12:53 -!- midnightmagic [~midnightm@unaffiliated/midnightmagic] has quit [Ping timeout: 264 seconds] 13:05 < waxwing> alexcato : just reloaded, the new version looks good to me, one comment though: check that self.on_welcome is not None before adding it to the callLater, i don't think we have a bot that doesn't use that trigger, but if we did it's as well to avoid making these calls and having it crash 13:07 < AgoraRelay> [agora-irc/AlexCato] will fix that locally and test, then push again 13:08 < waxwing> hmm. yeah i think this should work. could you PR it please even if you're not totally happy with it , i could run a few tests myself. i'm guessing this'll be more or less fine. 13:09 < waxwing> it is of course hacky, like: you connect, jump on, not realising that your bot is only connected to 1/2 or 2/3 servers. and it stays connected to those, only. this is why i was icky about it originally. 13:09 < waxwing> architecturally we need it to be like: the message channels get on with their business of establishing and maintaining connections, and the client gets on with its business, firing requests to the daemon/mc that get served as and when. 13:10 < waxwing> best we can say about this approach is: it'll work as intended, *almost* always. (whereas what we have today is fragile and just totally blocks users who don't understand what they have to do to fix it (i.e. edit the config)) 13:13 < AgoraRelay> [agora-irc/AlexCato] wouldnt it keep trying to connect to the remaining servers in the background? 13:13 < waxwing> oh, hang on .. hmm let me have a think (yes is the answer, but the effect..?) 13:14 < AgoraRelay> [agora-irc/AlexCato] for sendpayment, it doesnt matter, they dont wish to wait hours anyways. But for tumblers/makers this should be OK 13:15 < waxwing> oh you must be right, yes. weird that i didn't get that ... once the other slow mc comes up, it'll be available. 13:15 < waxwing> it'll just be that your original starting action will be only on the fast one(s) 13:15 < waxwing> so if you're a maker your initial announcement; if you're a taker, your initial orderbook 13:16 < waxwing> so yeah the edge case is basically the Taker who has a very slow connection to one server doesn't see that liquidity. that's not nearly as bad as i was thinking 13:16 < waxwing> (which itself wasn't really *that* bad, but still!) 13:17 < waxwing> i guess the important point is that available_channels() returns all mcs with status 1 13:18 < waxwing> and MessageChannelCollection.on_welcome_triggered unconditionally sets status to 1, even if we're after timeout so the callback to the higher level is no longer triggered. 13:19 < waxwing> oh! there's another issue: self.welcomed is not set to True in the reactor.callLater call. so this could cause a self.on_welcome() repeat call, no? 13:20 < waxwing> yeah i think the logic is wrong alexcato 13:22 -!- luke-jr [~luke-jr@unaffiliated/luke-jr] has quit [Excess Flood] 13:22 -!- luke-jr [~luke-jr@unaffiliated/luke-jr] has joined #joinmarket 13:22 < waxwing> also, this line is missing a 'self' i believe: https://github.com/AlexCato/joinmarket-clientserver/commit/71b93aeda1f86940f1d83fdfba9e3b67682be843#diff-126056c7efec2fe540c8ca44fe4e3b68R431 13:24 < AgoraRelay> [agora-irc/AlexCato] phew, code review works. Yes, indeed that were oversights 13:25 < AgoraRelay> [agora-irc/AlexCato] how would I set welcomed to True if the callLater happened? 13:27 < waxwing> good Q, exercise for the reader :) 13:28 < waxwing> did anyone have trouble viewing the asciinema? belcher , arubi ? 13:28 < waxwing> a guy on mastodon says it doesn't show up right but it looks fine on two different computers here 13:28 < belcher> it looked fine to me 13:28 < waxwing> yeah he must have some weird set up i guess 13:28 < waxwing> prob his browser 13:30 < waxwing> alexcato yeah seriosly though, i don't *immediately* see how we get the desired effect. 13:30 < waxwing> ah, i know: wrap the on_welcome call in another function 13:30 < waxwing> reactor.callLater(60, otherfunction) def other_function(): self.welcomed = True, if (self.on_welcome): self.on_welcome() 13:30 < waxwing> right? 13:32 < waxwing> a missing self there or whatever 13:36 < AgoraRelay> [agora-irc/AlexCato] yeah, i've defined a callback for the callLater-call now, currently testing it 13:36 < AgoraRelay> [agora-irc/AlexCato] which is kind of the same thing, yours is more elegant though, as it adds everything in the same place 13:44 < AgoraRelay> [agora-irc/AlexCato] so yeah, adding a callback to the callLater was too complicated. Used the wrapper function now. Also fixed the missing self in on of the lines. Pushed. 13:44 < waxwing> thanks alexcato will give it a try 13:45 < waxwing> oh, no, will give it a try when you PR 13:46 < AgoraRelay> [agora-irc/AlexCato] i think I pr'ed. PR bot broken? 13:47 < waxwing> yes bot is broken 14:13 -!- takamatsu [~takamatsu@unaffiliated/takamatsu] has joined #joinmarket 14:14 < waxwing> alexcato it's 20 in the call but 60s in the comment? i think you meant to use 60? 14:14 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has joined #joinmarket 14:15 < AgoraRelay> [agora-irc/CgRelayBot] [cgan/AlexCato] damn :( Yeah, i used 20 to test it faster 14:15 < waxwing> np, testing it now, looks fine apart from that 14:16 < AgoraRelay> [agora-irc/CgRelayBot] [cgan/AlexCato] fixed & pushed 14:24 -!- midnightmagic [~midnightm@unaffiliated/midnightmagic] has joined #joinmarket 14:25 < waxwing> tested and acked, plus a little commentary; will wait for the test but plan to merge that pretty quickly. any other comments welcome. 14:32 < Xeha> if i check with bitcoin-cli listunspent i have multiple unspent outputs, when checking via balance tool, i have nothing. i did use -g 15000 and --fast with ~13k addresses 14:34 < waxwing> Xeha, maybe it's a different joinmarket wallet? 14:35 < waxwing> otherwise, hmm... tricky, not sure at first glance 14:35 < Xeha> i only have 1 14:41 < waxwing> there is a scenario where listunspent will show utxos not in the wallet 14:42 < waxwing> if you send with a sweep, joinmarket adds the destination to the wallet.dat (whichever one you're using) as a watch-only so it can monitor the transaction 14:43 < waxwing> oh but one thing, do check the label of each one, are they all the same? i'll have to check in the code about that. 14:44 < Xeha> yes, all with the same joinmarket-wallet- 14:45 < Xeha> i havent changed anything in months, beside upgrading bitcoind all the time 14:45 < waxwing> ok. you might have to tell us the version of joinmarket you're running. 14:47 < Xeha> yikes, ancient... 0.2.2. ima upgrade and recheck 14:56 < user__> I am trying to restore my mnemonic code to electrum (so I can confirm my seed is good and I have access to private keys). How ever I am not having any luck. Joinmarket uses p2sh-segwit bip49 wallets correct? Something else I might be missing? 14:58 < waxwing> user__, it should work for one account/mixdepth, unfortunately electrum does not support multi-account wallets 14:59 < user__> Besides bitcoin qt any other wallets you guys have had luck with? 15:00 < waxwing> you mean for using the joinmarket seed? i tested with samourai and trezor about a year ago when upgrading to bip39 .. and electrum (all worked with the caveat above for electrum) 15:02 < waxwing> user__, just checked; it still works in electrum 15:03 < waxwing> just per-account 15:03 < waxwing> so e.g. m/49'/0'/0' for first mixdepth 15:03 < waxwing> must choose bip39 seed ofc 15:03 < waxwing> and consider privacy when doing this; if not using e.g. EPS your addresses are sent to server(s) 15:04 < waxwing> (and using EPS hardly makes much sense here since you already have a Core instance in that case) 15:05 < waxwing> Xeha, you are going to find it tricky, first do ./install.sh -? for options, second you must read the 0.4.0 release instructions for upgrading your wallet file format (it doesn't change or need rescan or txs, it just changes the wallet file format) 15:07 < waxwing> hmm, actually i guess it could certainly make sense to do that with EPS here, since the electrum client gives you some options that you don't have in JM 15:13 < waxwing> user__, did you try it? 15:14 < user__> waxwing, Thank you for the 4th time today. I will need to add account/mixdepth to my homework list. join market only uses 5 depth? 15:14 < user__> I was looking at level 0 and had no balance at the level at the moment 15:16 < waxwing> mixdepth is just the name we use for BIP32 accounts 15:16 < waxwing> we use 5 by default (0..4) ; you can change that, but most people don't (no need and it's good for privacy to isolate) 15:16 -!- asymptotically [~asymptoti@gateway/tor-sasl/asymptotically] has quit [Remote host closed the connection] 15:17 < waxwing> a useful thing to help understand joinmarket is this: when you move *between* mixdepths you do so only with coinjoin (equal sized) outputs. to avoid linking the mixdepths together. 15:25 < waxwing> Xeha, btw, sheesh, 0.2.2 is before segwit .. joinmarket is all segwit now (the upgrade was right at activation, so late 2017..) ... you need a new wallet. feel free to ask any more Qs if you want to figure out what happened. 15:32 -!- nothingmuch [~user@62.102.148.185] has quit [Ping timeout: 250 seconds] 15:33 -!- nothingmuch [~user@213.152.162.5] has joined #joinmarket 15:43 < Xeha> waxwing: havent upgraded yet, but found out it was related to the deprecatedrpc=accounts 15:44 < Xeha> ie, old 0.2.2 failed because of that functionality missing 15:44 < user__> I see a lot of orders out there for 7.49206132 . I am assuming someone is doing this on purpose. Wouldn't one want to put it all into one large order to attract the most possilbe joins? 16:19 < Xeha> with 0.5.1 i get the following: https://pastebin.com/raw/9XW7QsiZ 16:19 < Xeha> this is with a new joinmarket.cfg, setup for bitcoin-rpc with correct credentials... 16:23 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has quit [Ping timeout: 256 seconds] 16:35 < waxwing> Lightsword, just in case you're around/up, any chance you could take a look at that one? ^ 16:36 < waxwing> i've been working for like 9 hours now and off to bed :) 16:37 < Lightsword> waxwing, that error on master? 16:37 < waxwing> he says 0.5.1? the pastebin above, right? 16:38 < Xeha> yes, 0.5.1 tag 16:39 < Lightsword> which distro still ships python 3.4 btw? 16:44 < Lightsword> Xeha, https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/295 try that, should work but I haven’t tested myself 16:52 < Xeha> Lightsword: ACK, that works with 3.4 16:52 < Lightsword> waxwing, should be good to merge 16:52 < Lightsword> Xeha, no other issues right? 16:52 < Xeha> not yet, wallet converted, now trying other things. 16:53 < Lightsword> Xeha, kk, let me know how that goes, that issue might be present in other areas of the codebase 16:54 < Xeha> can i tell install.sh to use python3.5 (which is also installed) 16:54 < Lightsword> Xeha, yes and that would likely fix the issue, but if you can run on 3.4 would be good to know if there are actually any other issues like that so I can fix them 16:56 -!- puddinpop [~puddinpop@unaffiliated/puddinpop] has quit [Remote host closed the connection] 16:57 < Lightsword> that issue was due to the byte string formatting style requiring at least python 3.5, I just changed it to a different style that’s compatible with older versions as well 16:58 -!- puddinpop [~puddinpop@unaffiliated/puddinpop] has joined #joinmarket 17:20 -!- AgoraRelay [~jmrelayfn@p548668F3.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds] 17:26 < qubenix> Xeha: yes you can with `./install.sh -p python3.5`, install script has a usage menu fyi. 17:28 < Xeha> yea ty, i saw via -h :) 17:32 -!- AgoraRelay [~jmrelayfn@p5DE4AB16.dip0.t-ipconnect.de] has joined #joinmarket 17:35 < qubenix> oh, didn't notice you were answered already anyway 17:35 < qubenix> awesome fix today, thx AlexCato 18:37 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has joined #joinmarket 19:02 -!- user__ [187de310@gateway/web/freenode/ip.24.125.227.16] has quit [Ping timeout: 256 seconds] 19:06 -!- grubles_ [~grubles_@unaffiliated/grubles] has joined #joinmarket 19:13 -!- grubles_ is now known as grubles 19:47 -!- v_unimportant_pe [~user@75-163-124-47.omah.qwest.net] has joined #joinmarket 19:51 -!- bob239048 [~user@45.74.60.133] has joined #joinmarket 19:52 -!- v_unimportant_pe [~user@75-163-124-47.omah.qwest.net] has quit [Ping timeout: 246 seconds] 19:52 -!- bob239048 is now known as v_unimportant_pe 20:28 -!- stoner19 [~stoner19@unaffiliated/stoner19] has quit [Ping timeout: 268 seconds] 21:18 -!- stoner19 [~stoner19@vmi221374.contaboserver.net] has joined #joinmarket 21:18 -!- stoner19 [~stoner19@vmi221374.contaboserver.net] has quit [Changing host] 21:18 -!- stoner19 [~stoner19@unaffiliated/stoner19] has joined #joinmarket 22:55 -!- nothingmuch [~user@213.152.162.5] has quit [Ping timeout: 258 seconds]