Development discussions
RIP Bote « Plugins « I2P Development
Thu, 05 Mar 2020, 01:44pm #1

Everybody should assume Bote is dead abandonware. You can stop asking about it.

The previous maintainer, str4d, is totally unresponsive to our queries.

There's numerous reports that it doesn't work any more. There's 50+ unresolved tickets, most open for several years. It doesn't support secure signature types introduced in I2P over 6 years ago.

It's a large, complex code base with dozens of dependencies. Nobody on the I2P team wants to work on it. The team did attempt to assign people to work on it, but due to disinterest, bad match of skills, low priority, and loose project management, almost nothing happened.

Some have asked for us to bundle (un-pluginize) it, that's impossible due to the bote license restrictions, and doesn't address the maintenance issue.

str4d moved it from monotone to github 3 years ago under the (widely held) theory that monotone prevents new developers from joining, and that with that barrier removed, contributors would flock to the project. That hasn't happened. There's zero new contributors, and a total of 4 (ignored) PRs in 3 years.

Back in 2006, jrandom stopped working on the core I2P router to work on Syndie, a secure and anonymous messaging platform. At the time he stated that messaging was the core use case for I2P. That without a solid messaging product we would not succeed. Syndie was always problematic, and when jrandom stopped working on it (and then vanished), it wasn't going to become big. Even though I spent quite some time working on it afterwards.

Bote was started by HungryHobo around the same time. The protocol is documented, but I don't know if it was ever reviewed by anybody for security, or choice of crypto algorithms. It is well documented and at a high level seems to be well-designed. A few years later, HH had health problems if I recall, and vanished. str4d eventually picked it up and did an enormous amount of work on it. But like every single thing he used to support, it's now abandoned, and he won't talk to any of us any more, on any topic, for any reason.

Both syndie and bote were started before the sharp rise of social media platforms, and they both seem antiquated today. I don't know what a modern, secure, distributed, anonymous messaging platform would look like if we started from scratch today. Without these applications, we're left with two primary, decades-old platforms - email and IRC.

We have had big success with mattermost (a slack-like platform) internally. It's quite usable over I2P even though most of the team does it over clearnet, can't be bothered with dogfooding. There are outstanding anonymity and efficiency/performance issues with mattermost that have not been resolved nor reported upstream.

We have also talked about bundling a javascript IRC client into the console but initial investigations show that it could be quite difficult. We added comments to i2psnark a couple years back, not widely used. Zab added IRC-like functions to MuWire.

The last time the team talked about it, we agreed that messaging is still a key to i2p's success. We don't know exactly what that would look like, but it's not bote. From our experience with modern social media platforms, and with mattermost, it's clear that attachments, especially images, is a requirement, as is low-latency. Bote and syndie were very high latency, by design. Image attachments is a fantastic feature but image sharing on open platforms is problematic in anonymous networks for the usual reasons.

There has also been a proposal within the team to completely rethink / redesign susimail, and combine it with bote. That's problematic for a number of reasons - not our core expertise, 10 times harder than just maintaining bote (which nobody wants to do), the bote license issues... and nobody has a clear vision of what it would even look like. If it were me I'd rewrite the low-level parts of bote from scratch (cleanroom from the docs) and stick it in susimail. But others have strong opinions that susimail is a complete dumpster fire of a UI and that's what should be thrown out. Either way it's a horrible shotgun wedding. And a total fantasy given our current resources. I don't understand the "I don't want to maintain X but I'd be happy to rewrite it from scratch" mentality but it is common. With even minimal control over how we allocate our resources, it shouldn't happen. But we'll see.

So I don't know what the answer is, but it's clear that it's not bote. You all can stop holding out for it.

Last edited: Thu, 05 Mar 2020, 02:50pm by zzz

Fri, 06 Mar 2020, 05:10pm #2

Thank you for clarifying the bote status. I have been fairly active asking for a fix, but now that I have read this posting I now know that it is dead. I also thank you for the in depth background because I have learned how all of this has come about. Also, it sheds light on the mind set of the development community. As a positive note, I have been motivated and inspired to become a coder. I have been studying hard and will contribute to the i2p project as soon as I get the skills needed for the task.

Thank you again, zzz.