Before the final post I'll give on this topic, a bit of backstory as I understand it.

During winter of 2015 (or was it 2016? I forget.) orignal the original author of i2pd took a 2 week winter vacation while the codebase was in shambles. During this break some of the contributors of i2pd decided to hard fork the codebase starting with turning all the tabs to spaces. It is unclear if Anonimal was a part of the group or not.

When original came back he flipped his living shit and put his new changes that used openssl onto Bitbucket and then later merged it on Github in another branch. This is the historical reason why i2pd uses the openssl branch and not master as the primary branch.

Kovri is based off the code base before the openssl branch which is truly godawful, however almost none of it remains in i2pd today.

This morning Anonimal put a message on a pastebin directed to #monero-dev and I think he does make some good points but fundamentally misses the underlying problem.

He has said a few things specifically his reasoning why the codebase "is a steaming pile of dog-shit"

I was the only dissenting voice before the fork that said DO NOT FORK THIS CODEBASE. I should've ignored fluffypony.

This part is unclear if it is true as I have no information on this.

I've only been able to dedicate ~30% of my time so far to code development because, up until now, no one else was running the project (see my FFS)

The monero fork was made because the code was really bad, it was the fork maintainer's responsibility to remedy this. Rather, that is what was promised.

There was no design planning, no concept of architecture, nothing but stream-of-conscience writing in the code that was forked. A very large, convoluted technology with no planning or even conventional coding standards = recipe for disaster.

Such is the state of i2p and many other free software projects, monero included. That is what happens, it's just a reality. When someone goes off to make a thing it usually devolves into a stream of concience with little planning. Almost nothing is planned out and executed the same, I learned this myself with llarp but maybe that's another blog post.

Every code change makes every other change a complete waste of time to deal with because there's no real design in place to support either. Experienced developers see the overarching problems and walk away. To simply "swap-out" old code with new code has proven to be a waste of time because all the old interfaces need to go.

I won't use the no true scottsman fallacy here. The primary I2PD fork managed to sort out the code a bit better after a bit of elbow grease was applied over a few years. Alas, this is the state of software engineering, newbies take on a huge challange and churn out a shit. Experience comes from iteration on piles of shit because eventually everything is in the end a shined turd anyways. Nothing is pure as such is a myth. No one starts out with a great plan and doesn't get dirty along the way, that's just not realistic. From what I understand, experienced developers would buckle down and do their job and get it done, but I wouldn't know as I am not THAT experienced, yet.

fluffypony flaked, on multiple levels, hardcore, having left me to do everything after promising before the fork that Monero contributors would be involved (why the fuck would I create Kovri if Monero wasn't going to contribute? Answer: incentive, and because I believed in Monero technology and still do, but I could've simply contributed to Monero code instead of doing this project).

I have also experienced this but I don't think it's reasonable to blame other people for the lack of results that was promised.

If I had my way, I'd spend the next ~4 months designing a new router implementation from the ground-up and write it from scratch. At this point though, I'm tired, and I've created a better solution with Sekreta.

I have already done this myself with llarp and I'll warn that such plans never pan out into the ideal you've imagined. There are always unexpected gotchas and unforseen roadblocks. Over time, my experiences has shown me that these are just a part of the job description and I feel like I am not alone in this regard.

... the post gets progressively more angry into a trainwreck, so I'll start wrapping up.

Now, if you want me to hook this pile of crap into Monero, ask yourself why haven't YOU (metaphorical you) done it? Why do you expect ME to be the fall guy, yet again? Why ignore 99% of the critical-problems in favor of solving 1% of non-critical problems?

Why? It's in the job description, you were supposed to fix up Kovri and maintain it such that it would be acceptable by Monero standards, at least that was the vibe everyone seemed to get. You took on the job, you couldn't do it and now you're blaming other people. Just own up on your mistakes and be honest with everyone and more importantly be honest with yourself, specifically with regards to your ability to maintain a code base. Don't bite off more than you can chew.

Anonimal, it would be nice to have a chat about how Monero can better help anonymize transactions using another layer, but don't you think you've dug yourself a big enough hole? Promising a new and improved layer ontop of existing ones when you couldn't even manage? All by yourself? The realm of higher latency networking which is most definately the future but they lack an end user demographic, adding monero would help that indeed but come back down to earth. One thing I have learned is that you can't do everything yourself. It's not bad to ask for help from others, just get off your high horse and stop blaming others for your own mistakes and miscalculations. I don't hold anything against you as I have been in similar sitatuons, the way out is to be honset about the sitatuon and humble about your capabilities and hope people understand.

Copy of the orignal message from https://paste.debian.net/plain/1058561