--- layout: post title: Logs for the Kovri Dev Meeting Held on 2016-07-03 summary: Brief review of what has been completed since last meeting, SSU refactoring, closed and open issues tags: [dev diaries, i2p, crypto] author: dEBRUYNE / fluffypony --- ### Logs **\** ok I guess we move on to Kovri - anonimal, the floor is yours **\* fluffypony:** ding dings **\ [anonimal]** Meeting Agenda: Sunday, July 3rd, 17:00 UTC **\ [anonimal]** 1. Greetings **\ [anonimal]** 2. Brief review of what's been completed since the previous meeting **\ [anonimal]** 3. Discuss SSU: status of #140 and https://github.com/EinMByte/kovri/pull/1 (if applicable), ideas, problems, and solutions (note: ask if @EinMByte will allow issues tracking within his repo) **\ [anonimal]** 4. Discuss commit message labeling, e.g., how to organize first line of commits. Touch-up on C4. **\ [anonimal]** 5. Review open tickets (assigned and/or unassigned): status, code ideas (if applicable), etc. **\ [anonimal]** 6. Discuss any pertinent TODO's **\ [anonimal]** 7. Any additional meeting items **\ [anonimal]** 8. Confirm next meeting date/time **\ [anonimal]** -- 1. Greetings **\ [anonimal]** Hi **\** hi **\** hi **\ [anonimal]** I know Ein is irc2p side waiting for me to move on :) **\ [anonimal]** 2. Brief review of what's been completed since the previous meeting **\ [fluffypony]** I'm on this side too **\ * anonimal** wishes this was automated. /pulse only does so much **\ [anonimal]** 28 commits (not including merges), 2 new issues open, 0 issues closed **\ [anonimal]** All new commits in https://github.com/einmbyte/kovri/tree/ssu **\ [anonimal]** I ended up diving into SSU with EinMByte this week. Much fun. **\ [anonimal]** Teamwork-teamwork: within the past hour, we had figured out that the HMAC digest impl was segfaulting because GetHeader->GetMAC() was not initialized, so the segfault is fixed for now. **\ [anonimal]** But that's just a small portion of what's been completed since previous meeting, and more issues abound. More to discuss in 3. **\ [anonimal]** Anyone else re: completed work since previous meeting? **\ [fluffypony]** I've been focused on the OTF funding stuff, so I haven't had a chance to finish the website work **\ [fluffypony]** pushing that out till the next meeting, unless we have to prepare more stuff for the OTF **\ [anonimal]** Ok. Any new issues re: OTF? **\ [anonimal]** Seems like they've had a few lately. **\ [anonimal]** i.e., did we get confirmation that they received our request? **\ [fluffypony]** no I think the next step is we'll receive a pass / fail on the concept note **\ [fluffypony]** yes we did **\ [_trump2016]** OTF will make kovri great again! **\ [anonimal]** Confirmation, good. **\ [anonimal]** Anyone freenode-side? Is xmrpromotions there? **\ [fluffypony]** so if we receive a pass we have to prepare an actual proposal **\ [fluffypony]** but let's see when we get there **\ [fluffypony]** (if) **\ [fluffypony]** they were on Reddit the other day, they seem to be busy at the moment **\ [fluffypony]** they've asked for assistance on the gnu-social thing **\ [anonimal]** Link? What kind of assistance? I'd be happy to help. **\ [fluffypony]** I'll have to find it and send it to you post-meeting **\ [anonimal]** Ok. Anything else on 2.? **\ [fluffypony]** oh found it, nevermind: https://www.reddit.com/r/Monero/comments/4qywbx/what_are_moneros_pain_points_marketing_design/d4x34p3 **\ [fluffypony]** nein **\ [anonimal]** fluffypony: Thanks, I'll look into it later. **\ [anonimal]** Moving on, **\ [anonimal]** 3. Discuss SSU: status of #140 and https://github.com/EinMByte/kovri/pull/1 (if applicable), ideas, problems, and solutions (note: ask if @EinMByte will allow issues tracking within his repo) **\ [anonimal]** So, https://github.com/EinMByte/kovri/pull/1 has been merged **\ [anonimal]** EinMByte: will you allow issues tracking within your repo? It would help with this bug we're hunting. **\ [anonimal]** Oops, old paste, we fixed the bug, **\ [anonimal]** but are still dealing with related issues. **\ * anonimal** knows Ein is somewhere, we were chatting elsewhere during the bitmonero meeting **\ [EinMByte]** Hi **\ [anonimal]** Maybe he still thinks its the previous meeting... **\ [anonimal]** Hi **\ [EinMByte]** Yes, I will allow all contributions to my repo **\ [EinMByte]** Latest issue is: we are sending out broken packets **\ [fluffypony]** issue tracking has to be explicitly enabled for the repo, EinMByte **\ [EinMByte]** (but at least the segfault is fixed) **\ [fluffypony]** it's a setting in github somewhere **\ [anonimal]** ^ what fluffypony said **\ [anonimal]** EinMByte: are we in a committable stage for the segfault fix? So I can see where we stand? **\ [EinMByte]** anonimal: Already committed **\ [EinMByte]** fluffypony: somewhere where **\ [anonimal]** I imagine we're sending bogus packets in SessionRequest **\ [fluffypony]** I'll check **\ * anonimal** fetching **\ [EinMByte]** fluffypony: Never mind, I think I got it **\ [fluffypony]** if there's time, anonimal, can you please explain what SSU is for those who are observing the meeting ? **\ [anonimal]** Ok, latest commit makes sense. **\ [anonimal]** Yes, **\ [anonimal]** tl;dr, in plain english, **\ [anonimal]** it is one of two transport mechanisms closest to the IP layer: **\ [anonimal]** NTCP is for TCP, SSU is for UDP. **\ [anonimal]** SSU essentially takes care of encryption and negotiation with peers at the UDP level. **\ [anonimal]** Does that make sense, or should I explain more? **\ * anonimal** fetches link **\ [anonimal]** Specification here: https://geti2p.net/spec/ssu **\ [anonimal]** Overview here: https://geti2p.net/en/docs/transport/ssu **\ [EinMByte]** In case anyone is really listening: we are rewriting the SSU implementation because **\ [EinMByte]** 1) It doesn't allow for unit tests **\<__uguu__>** i2p needs a better udp transport **\ [EinMByte]** 2) The design is bad, because separate concepts are not separated in code (packet parsing was done in the same functions as dealing with networking etc) **\ [anonimal]** X) it was an unmaintainable nightmare, like much of the codebase that we have yet to refactor. **\ [EinMByte]** __uguu__: It probably does, so let's hope SSU2 will be better **\ [EinMByte]** (I'm not sure what the satus on SSU2 is, AFAIK there's not even a spec yet) **\ [anonimal]** I had some ideas/problems/solutions when working on everything this week, **\ [anonimal]** but I need more time to flesh out tangible thought. **\ [anonimal]** I think we're on the right track, as we discussed earlier. **\ [EinMByte]** Ok, no problem. Maybe write everything down on github? **\ [anonimal]** Sure, I'll comment more in #140 or open an issue in your repo. **\ [anonimal]** Essentially, I want to take a closer look at design this week as I said I would stay away when we last spoke. **\ [anonimal]** e.g., what we discussed earlier about MAC buffer, etc. **\ [EinMByte]** Yes, in terms of design many things are currently undecided **\ [EinMByte]** I've mentioned before that this is more of a refactoring than a rewrite **\ [anonimal]** Hmm... maybe I have a different vision of end-result then. **\ [EinMByte]** At least for now, I do want design changes in the end **\ [EinMByte]** But I wanted to make it less crappy first, and then make it good **\ [anonimal]** I think I need to get my hands dirty and get more intimate with your new changes. **\ [anonimal]** I understand, as I said in #1 I completely understand and agree. **\ * anonimal** no complaints here **\ [anonimal]** So, long story short, I'd like to get more involved. Any objections EinMByte? **\ [EinMByte]** Of course not, I can use all help **\ * anonimal** could work in another branch, but I think our conflicts result in better code **\ [anonimal]** Ok, I'll comment more in #140, etc. as things progress. **\ [anonimal]** Anything else on 3.? **\ [EinMByte]** Not from me **\ * anonimal** prepares for more pasting **\ [anonimal]** Anyone here have more SSU questions? **\ * anonimal** will work on refining better responses to such questions **\ [fluffypony]** no that's perfect, thanks **\ [anonimal]** Ok, moving on **\ [anonimal]** 4. Discuss commit message labeling, e.g., how to organize first line of commits. Touch-up on C4. **\ [anonimal]** To preface, before discussing commit titles, none of this can really be enforced at the moment because there is no payout hanging over anyone's head. **\ [anonimal]** But our guide does ask to reference applicable ticket numbers in commit bodies - and its incredibly helpful. **\ [anonimal]** I'm trying to be better about doing this and I hope EinMByte would also consider doing this too. **\ [anonimal]** It should be noted that there is no mention in the guide or C4 about commit title. **\ [anonimal]** I've been using a rough system of prepending titles with class or aspect of project worked on. **\ [anonimal]** It does help for quick git-log searches. Again, not enforceable, but it does help IMHO. **\ [anonimal]** Thoughts? Objections to adding to guide? **\ [fluffypony]** can you give me an example of the prepending? **\ [anonimal]** Yes, one moment. **\ [EinMByte]** anonimal: I've noticed that you tend to include a longer summary **\ [anonimal]** fluffypony: Basically what's before the colon https://github.com/EinMByte/kovri/pull/1 **\ [EinMByte]** I currently don't do that, but if you think it's worth it, I can start doing that **\ [EinMByte]** Other than that, the main thing should be that it should be reasonably clear what the commit is about **\ [fluffypony]** oh yeah that's cool **\ [EinMByte]** But we all do that already **\ [EinMByte]** I'm fine with stricter rules, just don't shout at me too much when I forget about them :p **\ [fluffypony]** I tend to do short summaries too, but I like the prepending thing **\ [anonimal]** EinMByte: I agree. If I were to ask of anything, it would be to references issues that commit addresses. **\ [anonimal]** Other than that, I personally couldn't ask you to write longer summaries. Honestly, most of what you commit I understand anyway because its well-written IMHO - but that's just me. **\ [anonimal]** So, as usual, I think about everyone else who isn't knee-deep in our mess. **\ [anonimal]** And maybe longer summaries would help? **\ [anonimal]** But 4. for me was more about commit title. **\ [EinMByte]** Ok, I'll try to reference issues more often **\ [fluffypony]** I don't think longer summaries are massively necessary as long as the commits show the route taken to get there, referencing issues is definitely helpful **\ [EinMByte]** (not in the title, though) **\ [anonimal]** Ok. So shall we take a vote on adding 'prepend class or project aspect into title of commit' into contributing guide? **\ [anonimal]** (again, at this time not enforceable - just helpful) **\ [fluffypony]** I'm fine with it **\ [anonimal]** + me = 2 yes. Anyone else? **\ [anonimal]** As fluffypony pointed out long ago, its not like anyone reads contributing guides anyway ;) **\ [fluffypony]** hah hah yeah **\ [EinMByte]** Sure **\ [fluffypony]** but at least it's there and we can encourage it **\ [EinMByte]** ^ **\ [anonimal]** Ok, good point on the encouragement. **\ [fluffypony]** hey - we managed to get most Monero contributors to GPG sign commits, so it is doable :) **\ [anonimal]** Great, done. **\ [anonimal]** While we're on 4., this is off-the-cuff, **\ [anonimal]** but bitmonero is working with only 1 branch now. **\ [anonimal]** And, C4 kind of dictates that (IIRC). **\ [anonimal]** So, do we scrap branch development and work solely in master? **\ [fluffypony]** note that we have a use-case for moving back to the dev branch setup, because people just pull and compile **\ [anonimal]** I've also used arguments for two branches. I'm curious to hear EinMByte's opinion. **\ * anonimal** sigh, I2P lag **\ * anonimal** doesn't want to move on yet, running out of time though **\ [EinMByte]** anonimal: Not sure, I think it's good to have a stable branch **\ [EinMByte]** also, it doesn't hurt anyone? (I think) **\ [anonimal]** The argument is to instead warn users that anything that is built outside of a tagged version is... well, unpredictable. **\ [anonimal]** But, since we don't have any releases yet... **\ [EinMByte]** There's "unpredictable" and there's "possibly broken" **\ [EinMByte]** In my opinion those are not really the same **\ [anonimal]** Good point. I imagine though that broken branches would stay in forks and then, when fleshed out, could be sent to 1 branch master. **\ [anonimal]** But then that would require more work maintainer-side. **\ [anonimal]** Ay, too many options. **\ [anonimal]** I vote to keep two branches for now. **\ [anonimal]** Yea or Nay? **\ [EinMByte]** ok, let's keep the branches and move on :) **\ [anonimal]** Ok, moving on. **\ [anonimal]** 5. Review open tickets (assigned and/or unassigned): status, code ideas (if applicable), etc. **\ [anonimal]** My hands have been tied to SSU as we've discussed. I did hack a fix for the massive leak in #191. **\ [anonimal]** It appears to be related to LogPrint and possibly GetFormattedSessionInfo(). I need more time with it and to produce a smoother fix. **\ [anonimal]** But it doesn't address a few smaller leaks related to #191. **\ [anonimal]** So, between now and next meeting, I'm somewhat sure I'll focus on SSU, #191, and getting a windows build in working order. **\ [anonimal]** And in that order. **\ [EinMByte]** Ok **\ [anonimal]** *but* I also may start drafting a FFS proposal for a chunk of that time (I said I would last meeting). We'll see. **\ [fluffypony]** +1, FFS proposals are welcome **\ [anonimal]** EinMByte: do you think you'll be around sometime this coming week or the following week? Or are weekends better? **\ [anonimal]** fluffypony: would you please refresh my memory on the zoho/fastmail decision (my brain is scattered at the moment)? **\ [EinMByte]** I'll be around a few hours a day, but more actively in weekends **\ [fluffypony]** started the process a few days ago, we're doing Zoho **\ [anonimal]** EinMByte: sounds great. **\ [anonimal]** fluffypony: sounds great. **\ [anonimal]** Many great sounds! **\ [fluffypony]** everyone can independently forward their mails to tutanota or i2pmail, or just use the Zoho mailbox **\ [anonimal]** I'm looking forward to zoho's /projects, especially time-management. **\ [anonimal]** Kimai is a horrid *#()*@#)$@#$#@ **\ [anonimal]** If anyone has experience using it... **\ [fluffypony]** never heard of it, will take a look **\ [fluffypony]** or not if it's horrible **\ * anonimal** surprised at the lack of free, personal, opensource, time-management/billable hours solutions out there **\ [fluffypony]** MS Project **\ [anonimal]** IMHO you should, it may be humorous. **\ [fluffypony]** :-P **\ [anonimal]** I can't knock their work though, I applaud what they're doing, I just wish I had more time to contribute to their project. **\ [fluffypony]** is it meeting.end time? **\ [anonimal]** Eek, one more thing. **\ * anonimal** one more paste coming **\ [anonimal]** 6. Discuss any pertinent TODO's **\ [anonimal]** In SSU: we're closer to resolving #119 with our new design. I've noted a few spots of missing implementation that I think will be resolved during the refactor. **\ [anonimal]** I had mentioned in the most recent PR my interest in more sanity tests, and EinMByte did note a few overflow checks. **\ [anonimal]** I think we're still discussing design though, so that would come a little later. **\ [anonimal]** Thoughts? **\ [EinMByte]** Yes, we have many places where we need more checks **\ [EinMByte]** at least we won't leak if we throw errors etc due smart pointer usage **\ [EinMByte]** Eventually I want to rely on exception for error handling, and I want to use the error information for peer profiling **\ [anonimal]** Ooooooooooooooo, I like that...... **\ [anonimal]** I like that ALOT. **\ [anonimal]** Yes, smart pointers: something the previous project had very little interest in; **\ [anonimal]** despite the standard having been out for years. **\ [anonimal]** Anyway, I won't start bashing as we're out of time (I love a good bashing). **\ [anonimal]** Anything else on 6.? **\ [anonimal]** If not, then 7.? **\ [fluffypony]** nothing else from my side **\ [fluffypony]** next meeting same time, same place, two weeks? **\ [anonimal]** Works for me. **\ [EinMByte]** Should be fine **\ [fluffypony]** sehr gut **\ [zzz]** will we see any kovri ppl at HOPE in 3 weeks? **\ [fluffypony]** zzz: unfortunately not me, need to do no travelling for a little bit **\ [fluffypony]** got too much work to do, lol **\ [EinMByte]** not me either **\ [anonimal]** I had planned late last year but things took a completely different turn so, nope, not this time around. **\ [zzz]** ok, I believe echelon still has a ticket to sell, if anybody needs it **\ [anonimal]** Thanks zzz. That echelon, quite the organizer :) **\ [anonimal]** Anything else? Meeting? **\ [anonimal]** I want to also thank fluffypony and dEBRUYNE and anyone else for their work on getting these logs up on the site. **\ [fluffypony]** it's mostly dEBRUYNE, I just add spaces in at the end **\ [anonimal]** lol, nice. **\ [anonimal]** Ok, thanks everyone for the great meeting. **\ [fluffypony]** thanks everyone **\ [fluffypony]** meeting-bot going offline