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