--- layout: post title: Logs for the Kovri Dev Meeting Held on 2016-10-30 summary: Brief review of what has been completed since last meeting, Kovri Logo, Salti, and code & open tickets discussion tags: [dev diaries, i2p, crypto] author: dEBRUYNE / fluffypony --- ### Logs **\<fluffypony>** alright anonimal, the floor is yours **\<meeting-bot> [anonimal]** Proposed meeting items: **\<meeting-bot> [anonimal]** 1. Greetings **\<meeting-bot> [anonimal]** 2. Brief review of what's been completed since the previous meeting **\<meeting-bot> [anonimal]** 3. @fluffypony's request for finished logo **\<meeting-bot> [anonimal]** 4. ∫alti as Monero project **\<meeting-bot> [anonimal]** 5. [libqtoopie](https://github.com/EinMByte/qtoopie/issues/1) **\<meeting-bot> [anonimal]** 6. Preparing for pre-alpha release **\<meeting-bot> [anonimal]** 7. Code + ticket discussion / Q & A **\<meeting-bot> [anonimal]** 8. Any additional meeting items **\<meeting-bot> [anonimal]** 9. Confirm next meeting date/time **\<meeting-bot> [anonimal]** Hi **\<meeting-bot> [EinMByte]** Hi **\<meeting-bot> [i2p-relay] {-moneromooo}** Hi **\<meeting-bot> [i2p-relay] {-pero}** hi **\<meeting-bot> [olark]** Greetings. **\<boomlol23>** hi **\<fluffypony>** ola **\<meeting-bot> [i2p-relay] {-ArticMine}** hi **\<maoam>** hi **\<meeting-bot> [anonimal]** 2. Brief review of what's been completed since the previous meeting **\<meeting-bot> [anonimal]** Lots of refactoring, some fixes. **\<meeting-bot> [anonimal]** New contributor olark/olarks! **\<meeting-bot> [anonimal]** Welcome olark! **\<meeting-bot> [olark]** o/ **\<fluffypony>** welcome olark **\<meeting-bot> [anonimal]** Anything else on 2.? **\<meeting-bot> [anonimal]** (olark has been doing great work + tackling a huge learning curve. very cool) **\<fluffypony>** olark **\<meeting-bot> [olark]** lots of refactoring ;) **\<fluffypony>** maybe you can give us a brief background on you **\<meeting-bot> [i2p-relay] {-Slack} \<nanoakron>** How’s the documentation looking to make that learning curve more shallow for future developers? **\<meeting-bot> [anonimal]** (e.g., favourite book, long walks on the beach, etc.) **\<meeting-bot> [anonimal]** nanoakron: moneropedia. We can talk more about that at the end of the meeting too. **\<meeting-bot> [olark]** Have been programming for the last 3-4 years on and off. Just getting back into C++ have followed Monero and Kovri for the last year or so and figured I should stop procrastinating and help move things forward. **\<fluffypony>** olark: https://i.imgur.com/9AQYqBr.png **\<meeting-bot> [olark]** Also long time i2p user, so I know what's up. **\<meeting-bot> [anonimal]** lol, badge of honor. **\<meeting-bot> [anonimal]** Alright, well we're glad to have more hands on deck. **\<meeting-bot> [anonimal]** Anything else before moving onto 3.? **\<meeting-bot> [olark]** Haha thanks fluffypony **\<meeting-bot> [anonimal]** 3. fluffypony's request for finished logo **\<meeting-bot> [anonimal]** fluffypony: ^ **\<fluffypony>** yes **\<fluffypony>** ok this logo has taken WAY too much time **\<fluffypony>** I know that logos are kinda-permanent, but it's holding other stuff up **\<boomlol23>** why are all msgs going through meetingbot.. **\<fluffypony>** boomlol23: because we're spread out over multiple networks **\<meeting-bot> [anonimal]** fluffypony: what's the best solution for now? **\<boomlol23>** ok **\<fluffypony>** I'd like to have the logo by the end of the meeting **\<fluffypony>** if colours are an issue let's just stick with the original colours **\<fluffypony>** we can ALWAYS change it later **\<meeting-bot> [EinMByte]** Wait, we still haven't decided on the logo? **\<fluffypony>** EinMByte: we have **\<fluffypony>** but then there were font and kerning and colour changes **\<ontario>** new monero logo? **\<meeting-bot> [anonimal]** ontario: kovri logo **\<fluffypony>** ontario: no Kovri logo, we're in the Kovri meeting now **\<ontario>** k sry **\<meeting-bot> [anonimal]** Ok, can pero send you the finished work then? **\<fluffypony>** np :) **\<fluffypony>** yes please **\<sornros>** may I ask if I understood correctly that the i2p code will be rewritten in c++? **\<meeting-bot> \* anonimal** has to move onto next item.... **\<fluffypony>** either uploading somewhere or ric@getmonero.org **\<pero>** i thought i 'submitted' the final one last weekend - i'd like to make one tiny half pixel change if i can **\<meeting-bot> [anonimal]** sornros: we can answer more after the meeting **\<fluffypony>** sornros: it already is being - https://github.com/monero-project/kovri **\<pero>** i'll email it to both fluffypony and anonimal shortly **\<meeting-bot> [anonimal]** Anything else on 3.? **\<sornros>** thanks **\<pero>** with the monero colors **\<fluffypony>** no that's anonimal, tks **\<pero>** http://imgur.com/a/xCaZV fyi **\<fluffypony>** that's it **\<meeting-bot> [anonimal]** 4. ∫alti as Monero project **\<fluffypony>** pero: ok perfect - if you can send it to me after the pixel change **\<meeting-bot> [EinMByte]** sure **\<pero>** half-pixel :P **\<meeting-bot> [anonimal]** EinMByte: I had some thoughts unless you wanted to dive into anything first **\<sornros>** thats a nice logo, I like the font too **\<meeting-bot> [EinMByte]** anonimal: No go ahead **\<meeting-bot> [anonimal]** We've moved on sornros. **\<meeting-bot> [anonimal]** EinMByte: since I haven't spent any time researching webextensions, can we *for sure* do what we want to achieve with XUL/XPCOM? **\<meeting-bot> [anonimal]** I'm thinking we consider brushing aside the deprecation issue for now and someone can pick it up in the future? **\<PowerFlower>** hi sorry for being late -_- I hope its not too late. Simple question: Will be the GUI released before the next XMR core release in ?Januaray? **\<meeting-bot> [EinMByte]** It depends what exactly we want to achieve **\<meeting-bot> [anonimal]** If we *can* do that now, we could move it into monero-project and it will gain more attention. **\<fluffypony>** PowerFlower: this is the Kovri meeting, you'll have to hold that question for later **\<PowerFlower>** okay :) **\<meeting-bot> [anonimal]** EinMByte: well, the easy stuff for starters re: profile. We can do that, right? **\<meeting-bot> [EinMByte]** anonimal: If we accept that the user will have to use the plugin with a separate profile, then we can do everything we need with webextensions I guess **\<meeting-bot> [EinMByte]** Can we create the profile using webextensions? Probably not **\<meeting-bot> [EinMByte]** Then again, people are apparently smart enough to run TBB, so if necessary we can create a script to create the firefox profile **\<meeting-bot> [anonimal]** I think that was what we were going for **\<meeting-bot> [EinMByte]** Problem with XUL is that 1) it's deprecated so development will only get worse for us 2) harder to port to other browsers (contrary to webextensions) **\<meeting-bot> [EinMByte]** It seems like a bad idea to start creating a plugin with deprecated technology **\<meeting-bot> [anonimal]** Where's the definite deprecation date though? **\<meeting-bot> [EinMByte]** There is none (very vague, IIRC) **\<meeting-bot> [EinMByte]** It's also not clear if e.g. it will be deprecated for firebird **\<meeting-bot> [EinMByte]** (in fact, does anyone know if firebird itself is (going to be) deprecated?) **\<meeting-bot> \* anonimal** doesn't know **\<meeting-bot> [anonimal]** So, we are in a good position to influence webext development: they are still taking feature requests, etc. If we get *something* going now, there is a far better likely hood of a webdev coming along to contribute than if we have a mostly empty repo. **\<meeting-bot> [anonimal]** And I can't find a date for deprecation, should we really base a great idea on what-if's? **\<meeting-bot> [EinMByte]** Yes, I agree. My spare time does not though **\<meeting-bot> [anonimal]** I know, nor mine, but I've semi-frequently seen people popping in and out of #monero-dev wanting to contribute to non-c++ projects. **\<meeting-bot> [EinMByte]** Well, we know for sure it will be deprecated. Just not when. That sounds bad to me, so better try and do it with webext imho **\<meeting-bot> [anonimal]** Ok, so maybe what we should do now then is write a definite roadmap/readme that will give others a better understanding of wth we are talking about. **\<meeting-bot> [i2p-relay] {-ArticMine}** I have to leave **\<meeting-bot> [anonimal]** s/definite/definitive/ **\<meeting-bot> [anonimal]** EinMByte: I think we can easily do that for now. Then, once we are more certain about our webext strategy, bring up this topic at another meeting? **\<meeting-bot> [anonimal]** If roadmap is too much, at least improve our readme. **\<meeting-bot> [EinMByte]** anonimal: That's probably a good idea. **\<meeting-bot> [EinMByte]** Sure. **\<meeting-bot> [EinMByte]** I agree that we should first see if we can actually do what we want to do, so for example: can we change all of the necessary settings **\<meeting-bot> [anonimal]** Ok, sounds great. Anything else on 4.? **\<maoam>** a short readme would be nice **\<realsony>** EinMbyte may i ask for your GIT repository name i couldn't find it **\<meeting-bot> [EinMByte]** realsony: EinMByte/salti **\<meeting-bot> [anonimal]** 5. [libqtoopie](https://github.com/EinMByte/qtoopie/issues/1) **\<realsony>** ty **\<meeting-bot> [anonimal]** EinMByte: did you get a chance to review #1? **\<meeting-bot> [EinMByte]** I read it **\<meeting-bot> [EinMByte]** Not sure if I can agree with converting it to a library **\<meeting-bot> [EinMByte]** It should be the other way around, IMHO **\<meeting-bot> [EinMByte]** qtoopie is based on I2PControl, with the idea of making it router-agnostic **\<meeting-bot> [anonimal]** As it, you don't think it's possible or don't think it *should* be done or don't want it to be done? **\<meeting-bot> [anonimal]** So what part would you rather see as the lib? **\<meeting-bot> [anonimal]** If monero's gui needs it's own i2pcontrol then that's fine; I'm just trying to avoid repetition. **\<meeting-bot> [EinMByte]** It depends on what we want: if we want to build a router-agnostic GUI, I think I2PControl is the best option. In that case we could simply bundle qtoopie + kovri router and release this as an easy-to-use router package **\<meeting-bot> [EinMByte]** If we want to build a GUI specifically for kovri, then we can rely on the (currently not existing) kovri API (libcore/libclient) **\<meeting-bot> [EinMByte]** But in that case too, it would not really make sense for it to be a library. Instead, it would be comparable to what kovri-app currently is, except that it would be a GUI rather than CLI **\<meeting-bot> [anonimal]** re: API, that's what the monero gui will be using, but where could we eliminate redundancy if the API and i2pcontrol would also do some of the more basic things that i2pcontrol provides? **\<fluffypony>** I2PControl would be able to control Kovri + Java i2p etc. right? **\<meeting-bot> [EinMByte]** My original idea for qtoopie is that it would fork for all exiting I2P routers that support I2PControl. **\<fluffypony>** oh I missed the "based on" **\<fluffypony>** ok makes sense **\<meeting-bot> [EinMByte]** So the redundancy is not eliminated at the level of the kovri implementation, but instead at all implementations (no need for a specific GUI) **\<meeting-bot> [anonimal]** EinMByte: Ok, that I understand. But there's really no way to create libqtoopie so the monero gui can use it *now* (even in it's current state)? **\<meeting-bot> [anonimal]** Why create extra monero gui code and i2pcontrol impl when that's already done? **\<meeting-bot> [anonimal]** This doesn't change the functionality of qtoopie. I'm just basing this off what you said when I brought up the lib idea a while ago. **\<meeting-bot> [EinMByte]** Sure, monero can use qtoopie directly **\<meeting-bot> [anonimal]** If it's more work than not, and adversely effects qtoopie, then I understand. **\<meeting-bot> [EinMByte]** at least in the sense "you can display the windows defined in the qtoopie project" **\<meeting-bot> [EinMByte]** I guess that would classify as a library. **\<meeting-bot> [EinMByte]** The question is why you would want to bundle it like that **\<meeting-bot> [EinMByte]** (you could also just provide the executable with the monero executables, and then open this from the monero GUI, there would be little difference to the end use) **\<meeting-bot> [anonimal]** To save redundant code so people don't have to install qtoopie to use qtoopie; and so it's integrated with the monero gui. **\<fluffypony>** can't we have our own controls in the GUI **\<fluffypony>** with bindings to libqtoopie functions ? **\<meeting-bot> [anonimal]** fluffypony: own controls to API, sure. **\<meeting-bot> [anonimal]** fluffypony: libqtoopie, EinMByte would know; I imagined yes. **\<meeting-bot> [EinMByte]** By the way, for reference on i2pcontrol: http://zzz.i2p/topics/2030-proposal-bundle-i2pcontrol, http://zzz.i2p/topics/1942-i2pcontrol-for-generic-user-interfaces **\<meeting-bot> [EinMByte]** If you want to have your own controls, there's not much point in using all of qtoopie **\<meeting-bot> [EinMByte]** then you just need to use i2pcontrol **\<meeting-bot> [EinMByte]** (which is very simple to implement; or you could use the part of qtoopie that deals with this) **\<meeting-bot> [anonimal]** EinMByte I think you're missing the point but I'm probably not explaining my intentions well. **\<meeting-bot> [anonimal]** So, libqtoopie: not needed. qtoopie: agnostic but will not be in library form. **\<meeting-bot> [anonimal]** We will create our own controls that use the API **\<meeting-bot> [EinMByte]** qtoopie is an end-user program, hence why I'd say "not in library form" **\<meeting-bot> [anonimal]** I know EinMByte, I'm just trying to save time and code. **\<meeting-bot> [EinMByte]** We could take some of the code in qtoopie and put it in a library "libi2pcontrol-client" **\<meeting-bot> [EinMByte]** This library could then be used by e.g. monero **\<meeting-bot> [anonimal]** i2pcontrol is insanely overrated, seriously overrated in relation to as much time as we're talking about it. **\<meeting-bot> [EinMByte]** But this is assuming that monero would be using i2pcontrol at all **\<meeting-bot> [anonimal]** I don't see the point if there are API's in place. **\<meeting-bot> [anonimal]** And i2pcontrol is limited in its own right. **\<meeting-bot> [EinMByte]** Yes, i2pcontrol has severe limitations **\<meeting-bot> [anonimal]** So, unless that entire spec is worked on, I have nothing more to say on the subject for now. **\<meeting-bot> [EinMByte]** (even the proposed version 2) **\<meeting-bot> [anonimal]** Ok, so we'll learn from the mistakes of others and try not to make our own. **\<meeting-bot> [anonimal]** fluffypony: does that makes sense? anyone need a tl;dr? **\<fluffypony>** yes it does **\<fluffypony>** tl;dr for the log **\<meeting-bot> [anonimal]** tl;dr qtoopie is great. We won't be using qtoopie in lib or bundled form because of severe limitations in i2pcontrol. We will be using GUI controls via the kovri API(s). **\<meeting-bot> [EinMByte]** What is important to understand is that I2PControl is intended to create high-level control programs **\<meeting-bot> [EinMByte]** It isn't designed to deal with lower-level configuration that monero might need **\<meeting-bot> [anonimal]** Anything else on 5.? **\<meeting-bot> [EinMByte]** One of the main limitations, in case anyone is wondering, is that i2pcontrol has to serialize everything and send it over the network **\<meeting-bot> [EinMByte]** There's no possiblity of handlers or anything like that too **\<meeting-bot> [EinMByte]** (you have to continuously request updates) **\<meeting-bot> [anonimal]** yes. **\<meeting-bot> [anonimal]** Ok, 8 minutes **\<meeting-bot> [anonimal]** 6. Preparing for pre-alpha release **\<meeting-bot> [EinMByte]** For a simple GUI, that's probably good enough but it doesn't work when you want to integrate kovri with something like monero **\<meeting-bot> [anonimal]** Yay! Nov. 1st pre-alpha will not happen, nooo way. I've been busy this month with non-code work; only recently with more code. **\<meeting-bot> [anonimal]** EinMByte has been very busy too. **\<meeting-bot> [EinMByte]** :| **\<fluffypony>** no problemo - let's get it right instead of getting it rushed :) **\<meeting-bot> [anonimal]** EinMByte: realistically, I think we should push the date to Dec. 1st or later. **\<meeting-bot> [anonimal]** It's never going to perfect in my eyes, but... **\<meeting-bot> [EinMByte]** Sure **\<meeting-bot> [EinMByte]** dont' expect more activity from me though **\<meeting-bot> [anonimal]** You mean ever or temporary? **\<meeting-bot> \* anonimal** hopes temporary **\<meeting-bot> [EinMByte]** I mean before december the first **\<meeting-bot> [anonimal]** Ok. I'll set a tentative date for dec. 1st; no later than 33c3. **\<meeting-bot> [anonimal]** (which is not dec. 1st of course) **\<meeting-bot> [anonimal]** I'll have to adjust the milestone date on github and roadmap etc. **\<meeting-bot> [anonimal]** Any other thoughts on 6.? **\<meeting-bot> [anonimal]** This coming month should be far more productive code-wise than in october. **\<meeting-bot> [anonimal]** We'll see what we can knock-out before december. **\<meeting-bot> [anonimal]** 2 minutes to spare **\<meeting-bot> [anonimal]** Skipping 7. Code + ticket discussion / Q & A unless anyone wants to say something? **\<meeting-bot> [anonimal]** 8. Any additional meeting items **\<fluffypony>** nope that's it from my side **\<fluffypony>** glad to see the refactoring efforts **\<fluffypony>** will make stuff easier to work on later on **\<meeting-bot> [iDunk]** head works now, thanks anonimal **\<PowerFlower>** oberservers can now ask questions? **\<meeting-bot> [anonimal]** fluffypony: yes indeedy **\<meeting-bot> [anonimal]** iDunk: you're welcome, thanks for the notice and for actively testing :) **\<meeting-bot> [iDunk]** np :) **\<meeting-bot> [anonimal]** PowerFlower: kovri questions, yes **\<fluffypony>** ok let's close up the Kovri meeting and then PowerFlower can ask their Monero question :-P **\<meeting-bot> [anonimal]** Oh, those kinds of questions. **\<meeting-bot> [anonimal]** Ok, 9. Confirm next meeting date/time **\<meeting-bot> [anonimal]** Same time, two weeks? **\<meeting-bot> [olark]** Sounds good. **\<fluffypony>** yes **\<meeting-bot> [anonimal]** Alright, thank you EinMByte and everyone else here for making the meeting. **\<fluffypony>** meeting bot going down to switch back to the Monero stuf **\<meeting-bot> [anonimal]** Thanks fluffypony