+20 Kick some ass Anonimal!
anonimal's Kovri Full Time Development funding thread
Monero and Kovri
From crypto-currency to simple message exchange, we rely on hardened privacy systems to guarantee that our transactions are anonymous and secure.
As Monero is a leader in both privacy-aware currency and community, the logical response to Monero's anonymity question is to implement a decentralized, anonymous internet.
The solution? Kovri.
The Kovri I2P Router Project aims to integrate I2P technology into Monero to ensure that every transaction and communication meets the highest standards of anonymity possible.
The Importance of Kovri
I cannot reiterate enough the importance of Kovri as both an implementation of a viable anonymous network and as an alternative to Tor.
Tor has an annual multi-million USD budget with a multi-million number user-base. Tor is well-researched and continues to garner massive media attention. While I love Tor tremendously and will defend her with tooth and nail, at this time of writing there are two issues that concern me the most with regard to the Tor project:
- With new management, the current state of the project is in questionable flux: core volunteers who have been with the project since its very early years are uprooting and leaving, there are publicly known conflicts within the organization, there are many rumors (both founded and unfounded) about U.S. government infiltration
- Tor's Achilles's heel: authorities, consensus, and flow-based onion-routing (as current implemented in Tor): they are not truly decentralized
While the issues in point 1 may be temporary or purely tin-hat, it's unfair to both the project and the entire planet to have a majority of the world's anonymity-needs resting on the shoulders of a single project; not to mention, the mere idea is very dangerous.
The issues inherent in point 2 are not easily addressed nor may they ever be addressed. Attempting to decentralize Tor by removing Directory Authorities and other technical aspects of current Tor design would be like genetically modifying an apple to become an orange after the apple has been fully formed. As interesting as that may be, why do such a thing when one can simply eat a natural-born orange?
How Kovri will improve the I2P experience
The Java implementation of I2P is the known worldwide. It is the original implementation and standard of which all other Garlic Routing implementations have followed and continue to follow. Over the years, there have been several notable complaints about the java I2P project with the biggest being: it's in java, and it's not easily usable.
Kovri aims to address these issues by implementing I2P entirely in C++ and, in addition to providing extensive & easy-to-understand documentation, implementing user-friendly interfaces.
While it's too soon to discuss details of GUI integration, Kovri will have an easy-to-use interface integrated with Monero's GUI in addition to being a stand-alone I2P router (so you don't need Monero to use it). This will be all-around useful to both I2P and Monero as it will increase XMR transaction obfuscation while strengthening the I2P network.
How Kovri will increase Monero's market value
It's simple: more users, more trust, more value.
Kovri + RingCT technology will guarantee confidence with every transaction; ensuring that they stay private and anonymous. By integrating Kovri by default, every user will benefit from an the extra layer of I2P anonymity.
In the future, after a beta release, we plan on having Kovri 'on' by default. Until then, Kovri will be optional (though you can use the stand-alone router now).
Why I should be funded for this project
I've been with the project since before the beginning and, with the help of key contributors, led the project to its birth. I'm proud and fortunate enough to say that one year ago (soon before Kovri was born), I had told fluffypony that I would here "for the long haul" - and here I am today. I have spent all my free time over the past year on Kovri and have lost much sleep as a result - all without asking for any donations or payments in return (though I do appreciate the donations that I have received).
I've gained relationships within the Monero community and a wealth of knowledge that comes with developing an I2P implementation in C++; so there has been that reward, but I'm currently at the point where I won't be able to meaningfully contribute to Kovri unless I start to receive full-time (or at least part-time) funding.
Funding will allow me to continue to lead the project and to do what I've been doing - but much more of it.
The current state of Kovri is not in the same state as Monero. Kovri needs a lot of work in order to be brought into beta and an eventual stable release. I2P specifications do not cover every aspect I2P or implementation and the documentation itself could be rewritten in key areas to better aid developers. Since Kovri was originally forked from i2pd, much of the present code-base was poorly designed and poorly written; so this makes development more difficult than it should be (we've been able to fix many of the issues but many still remain (see the issues tracker)).
In addition to resolving bugs and missing implementation, funding will allow me to:
- Code, code, code!
- We have many issues that need to be fixed
- We have many features that need to be implemented
- I repeat: Kovri is not in the same place as Monero was when Monero was first born
- Guarantee Kovri/Monero integration
- Integration with monerod
- Integration with GUI
- Building/releasing on same platforms as Monero
- Project management
- Ensuring that we set and meet release deadlines
- Preparing and leading bi-weekly meetings
- Implementing Quality Assurance
- Address the massive amount of technical details that come with implementing I2P
- Research improving I2P and overlay-network security
- Crypto research/implementation
- Creating/improving documentation
- Contributing to existing proposals
- Opening new proposals
...and much, much more.
To gain a sense of how development has functioned, you can:
- Watch the Kovri repo
- Ask questions or idle #kovri-dev
- Read meeting logs
- Read meeting agendas
- Or read old logs.
- 5 XMR/hour
- 1449 hours / 30 hours per week
- 16 milestones every 90 hours
- Total cost: 7245 XMR
The amounts posted here are motivated by current market volatility but will guarantee another year's work on the project. To work on Kovri full-time is a gamble but, like everyone else here, I believe in Monero and believe that Kovri will have a positive impact on Monero's value.
Securing Monero's future
If Kovri doesn't get more attention and development, Kovri will be Monero's weakest link. We cannot let that happen. 30 hours is not enough to make this happen, so I will have to volunteer more than that in order to meet our goals (12 hour Kovri days are not unheard of). I must reiterate that even if full-time, we need more developers in order to fullfill Kovri's vision.
Funding will also allow me to reach out to other developers, continue to aid in upstream library development/bug fixes when needed, and become more engaged with EinMByte (an experienced, invaluable core contributor), zzz (lead dev for java I2P), and the I2P community at large in order to make Kovri happen.
Everyone is welcome to visit #kovri and #kovri-dev and ask as many questions as you'd like. I'll do my best to respond quickly and informatively.
5th milestone completed
This milestone covers the usual above-and-beyond full-time work from May 4th (after posting the previous milestone) through June 22nd (with the exception of a few intermittent weeks due to unavoidable personal matters).
5th milestone goals
Project collaboration, website development, core code development.
Summary of work completed
Most of the WIP as stated in the previous milestone was put on the back-burner because of this milestone - which was spent almost entirely on collaboration. My next milestone will focus on resolving the issues presented in the 4th milestone as well as other code issues (so we can release a.s.a.p).
What's not been noted in my milestone reports (but noted in my original FFS) are the preparation, leading, and follow-up work of every meeting. Most recent meetings can be seen here.
For github-recorded details, please see commits, pull requests, and issue discussion on my activity page at https://github.com/anonimal.
Because of the amount of collaboration which was covered over this milestone, I have found it futile to link every related page, pull request, code commit, IRC log, forum post, reddit post, and GitHub issue across the various monero-project + related repos. If anyone requires specific details, please feel free to ask. Note: backend work is not publicly documented but can be verified by fluffypony and/or pigeons.
- rehrar: mentoring + web development
- MoroccanMalinois: mentoring + code development, PR review
- sdrobertw at 96boards.org: OpenHours collaboration / preparation
- pigeons: various backend-related (more OpenBSD, website-related)
- Dealing with, and resolving, guzzi drama (MM has picked up guzzi's abandoned FFS)
- Various IRC collaborations / discussions with other contributors, both public and private
- philkode: discussion/mentoring as new developer
- gingeropolous, knaccc, ArticMine: condensed Monero/Kovri CV
- PR review for all kovri repos + monero repo from various contributors
Code / Project
- RouterInfo, NetDb, I2NP work
- cryptopp work (kovri#639)
- Vulnerability Response Processes made for all monero subprojects. HackerOne/monero updated
- Setting up related environments for backend dev, bringing check.kovri.i2p back online
I repeat, for github-recorded details (there are many), please see commits, pull requests, and issue discussion on my activity page at https://github.com/anonimal. Thank you!
Hi everyone. Because I was unable to gain entry into the forum until very recently (the forum wasn't enjoying Tor), I had posted a response here and hoped that the message would've reached you all by now. If not, then I want to extend my deepest thanks to all of you. Meeting our goal this quickly was truly quite an achievement for the community and for Kovri. Thank you all for making this happen!
As a general note, I intend to start official billing for this prop starting November 1st. I'm still very active with Kovri at the moment in other areas - but I'm also enjoying the calm before the storm; so, no intense work for the time being.
Please feel free to attend the meetings and to become more involved if you currently aren't that much involved. You don't have to be a developer to help out; just visit #kovri on IRC or Slack and we'll be happy to help you get started. Your input throughout development is valuable and we need as many voices involved as possible!
I will update this thread regularly with status updates for each milestone. Thanks, everyone :)
Finally: an official statement
Because of a comment from one of my donors, and other recent events, I've re-opened negotiations for the remainder of my contract. This issue is between me and my donors and no one else (although moneromooo, hyc, and MRL may be contacted for technical affirmations).
For the important backstory to this post, and some information regarding recent events, read my comments here, and here (trigger warning: bring your popcorn), and the original taken-out-of-context paste that has set everything on fire (as seen in my "Milestone 15" post below). If you want a clear, level-headed, technical understand of what the hell is going on; you can also contact Monero Project lead developer moneromooo as he understands the technical aspects involved.
TL;DR: I love you all, but, with that said;
TL;DR: I've provided 99% of everything I've been asked to do for Kovri but the remaining 1% has been deprecated and should not happen. I've listed the reasons above and below. I asked to be funded for that remaining 1% on a new, actual solution (as posted below); but there are too many questions at this point. What is not a question though is that Kovri is 100% done in terms of my funding (if we are not "baking-in" the router or if we are not interested in more Kovri fixes and development). Regardless, Monero Project needs to focus on moving towards an actual solution: Sekreta. Sekreta will also deprecate Monero's SOCKS proxy; the SOCKS proxy of which takes the incentive out of "baking-in" Kovri to begin with (for the longest time, the proxy was never supposed to happen because of fluffypony's "baked-in I2P" pipe-dream but now both have now been deprecated by Sekreta). There is such an incredible lack of understanding within Monero about Sekreta technology because nearly everyone in the community is not an internet-anonymity engineer nor specialist so, the responses have been mixed, somewhat uninformed, and hostile (with the exception of moneromooo, MRL, and the founding community). I don't blame anyone in community though: cryptocurrencies are surrounded by scams and shit at all times. As such, I've empirically proven that Sekreta is not a scam nor is it shit but, rather, an actual solution - a solution that we all wish we had years ago before I started Kovri. Now, it's time to move forward. Erwache, mein monerochen.
Note: aside from the other technical reasons I gave in the links above, the reasons why Kovri should not be "baked-into" Monero at this time (or ever, because that's been deprecated by Sekreta:
- Conflicting minimum requirements, needed for all supported systems:
- Boost 1.67
- CMake 3.5
- C++14 capable compiler
- Monero will need to have rolling releases in order to stay up to date with Kovri development. fluffypony is barely around to release normal releases let alone rolling releases.
Alone, these issues aren't insurmountable but do take into consideration my reasons in the links above. Also, Sekreta already has less dependencies and will have more stable interfaces than Kovri for any "baked-in" integration.
Regarding my release of Sekreta
Because of the response from some of the most subversive elements of this Monero "community", but also the positive response by seasoned Monero researchers/developers and founding community, and the neutral/limited/no responses from my donors; I've decided to take Sekreta off the table for Monero Project for now. This doesn't mean that there won't be collaboration; this just means that Monero won't get any points for innovation at this point in time - of which Monero sorely needs right now.
Regarding the remainder of this FFS contract
One of my donors has brought up a very good point:
2019-01-04 10:25:42 thrmo thanks for the thorough reply anonimal, and to be clear I wasn't implying you were malicious. Having said that I wish sekreta the best, despite having donated to Kovri 1.0 it always seemed like a fools errand for me, so I'm also glad to see it go.
And indeed: "baking-in" Kovri is a fool's errand at this point because of Sekreta (you can instead "bake-in" Sekreta and have access to every existing anonymity system, not just Kovri). Monero will be doing an incredible disservice to itself by becoming "tribal" to a single anonymity network or by allowing any single-network usage (via SOCKS) or by "baking-in" any specific implementations.
Now, since this issue is regarding my two remaining milestones, let's consider the options.
One possible option is to back-pay me for services rendered to Monero Project from 2015-2019. Why? Well, Monero Project failed to meet their end of this contract in terms of providing labor for Kovri code development and support as promised by fluffypony before we forked (note: luigi has always been 100% responsive in payout and I'm thankful for that). Because I was told that this project relationship would be both a mutually exclusive and beneficial by fluffypony, I dedicated my life to Monero Project since 2015 in order to ensure the success of both the projects and for my future investments (that and because of labors of love) - but I never received the support I was told I would receive. As a result, I'm forced to bring numbers into this equation in order to negotiate a fair trade for my time and labor.
But first, a little background; since most of this "community" has not been around as long as myself and a good chunk of others:
When I arrived in 2015 to work on Monero Project, Monero was a shit-coin with huge potential. Raw and beautiful, it was exciting. Part of the excitement was that it was always pushing forward with momentous innovations. With my help along with moneromooo (who has also dedicated his life to this project), hyc, fluffypony, a small team of incredible researchers and developers, passionate miners and node operators, and a talented founding community; Monero became the #1 leading privacy technology in the world.
From everything trivial to my meeting template (which is still used to this day), to implementing CI and demanding greater CI (which eventually happened), to the creation and extensive usage of the Meta repo, to the maintenance and auditing of dependencies (as proven throughout the various Monero repositories), to maintaining the Monero AUR package for 10's of thousands of Arch Linux users around the world, to Monero code security auditing (when I had the time) and suggesting fixes, to code collaboration and contribution across nearly every single Monero Project repository (go look at the git-log and the github issues/PRs), to implementing Monero's first-and-only VRP, to setting up and maintaining HackerOne and regularly collaboration on producing sensitive security fixes (some of which I can be credited for), to inviting Michael to do the Hardware Wallet (go ask him about the story, he's a great guy), to Riccardo Spagni regularly going on television and various interviews over the years calling me 1 of "2 full-time developers" as a result of all of my work - all so that the "community" had something to brag about; I've done all of this since 2015 without being paid a single XMR or any currency, above or under the table, in any capacity; zero financial reward. Zero. ZERO. Z. E. R. O. Zero financial compensation outside of Kovri (with the exception of Defcon 26 in which I was thankfully paid for travel expenses to speak about Kovri and to speak about the VRP).
But why, you ask?
First, shouldn't my Kovri payments have gone to all of that? Well, no, and they didn't. But even if they did, since no one mentioned that XMR received is subject to income tax; that issue combined with the 2018 bear market + market volatility at worst possible times during the 2018 bear market = 6 figures back taxes + 6 figures capital losses but, even if I did include those numbers, I would still be massively underpaid in any other situation or project regardless if cryptocurrency was involved (yes, I know that the markets are not anyone's responsibility here but I'm just clarifying because people seem to think I own a yacht now, or what have you).
As for why, and if you're also concerned about the Kovri timeline or payment amount, let's do a brief review:
I was told by fluffypony that, for my contract, I was to bill for all mentoring, project management, project development, promotion, education, and anything Kovri related across the now 4 kovri project repositories and beyond - and that's exactly what I've done.
Also, as part of my contract, one of the proposes of Kovri was to build a real project and an educational space, not just software. Education being a huge factor - and that's exactly what I've done.
On top of that, as part of my contract, I was told to engineer Kovri by any means necessary; using multiple languages, across multiple systems, across multiple release platforms, to audit and develop the dependencies and all code as a means to ensure stringent security methods, to implement and supervise quality assurance across the spectrum, to train every developer involved, to lead the entire project, and sooo soooo soooooooooo much more on top of everything else I mentioned above with Monero Project - which is exactly what I've done.
To add to insult to injury, I've massively under-billed all of my Kovri work because I chose to "be the better person" during the 2017 bull-run by not being a money grubbing cancer like so many in the cryptocurrency space now. So; indeed, I have won the spiritual battle but I am under-financed as a result. I take full responsibility for that.
But, the only thing I asked for in return was for Monero project to provide me help in filling all the roles that I was filling so that I can focus on code development - which was going incredibly slow because of all the hats I had to wear. This help was never received at the level promised despite repeated requests, and that was part of the deal. Some may say "but this is an open-source community". Yes, but there is more to this than most people know, and if someone can't provide something then they shouldn't say it will be provided.
So, at current market value, for the two remaining milestones in my contract, divided by 40 months of labor from 2015 to 2019, at full time, comes out to about
~$6.5 USD per hour of labor (~46*900/6400). Mind you, I had been paid to work on Kovri from the end of 2016-2018 so, let's be more realistic and cut the hours in half:
~$13 (~46*900/3200) per hour. Oh, but wait, what about the end of 2015 through end of 2016? I worked then in parallel on Kovri for free so, let's be even more realistic and cut the outcome back down to:
~$9.7 (46*900/6400*1.5) per hour. Womp womp. I should've worked at McDonald's as a manager if I wanted more money. More benefits too.
So, where does that leave us? First, a few extra tidbits of info for those who wish to read more about character when perusing prose:
People at Defcon 26 approached me, random people that I'd never met in my life nor had spoken with online (that I know of), and they all told me the same thing: they told me I was a "workaholic" and that I "looked miserable".
Sure. Yes. Absolutely. I've proven to have worked a bit too much, and Kovri has been absolutely miserable to work with from the start (I never wanted to fork, voted against it, as I detailed in my links at the top of this post). On the other hand, now, Sekreta has been a completely different experience. More joy, more output, more productivity, less mentoring, less project, less anything that takes me away from positive and productive R&D. More-so, it's an actual solution to Monero's network stack and not some hack, so it's an exciting prospect to work on.
Ideally, I'm paid out in both milestones a.s.a.p and we brush our hands clean of this all so we can move onto a much brighter future. This will be the best outcome because relations will be mended and everyone will be happy (or should be happy, because everyone got way-more than they paid for).
Another possible option
Now, if paying me for my past labor is something that donors don't want to do (I can understand for "technical" reasons), let's consider another option: we can move my remaining funds into a new FFS guaranteeing my continued contributions to Monero Project (VRP manager, VRP marketing and promotion, Monero code development, lots of ways to skin this cat). These contributions will be unrelated to Kovri or Sekreta (or, if related to Sekreta, as a "donor" to Sekreta development). Mind you, moneromooo has already taken upon himself to collaborate on Sekreta on his own volition - even though he is not paid to. How long he does this, I don't know; but I've seen more collaboration from Monero Project in
#sekreta/#sekreta-dev than I have seen in Kovri for as long as I can remember; so that's certainly a good sign. As such, I highly encourage donors to move my remaining milestones to Sekreta development.
Note: I must say this though: this payment option, if not related to Sekreta, will be my least desirable option as I will have never been paid for my services rendered, regardless of any written contract or not.
Now, the last and most final option will be for me to complete my Kovri proposal as originally stipulated - but this is stupid. Why? Because this solution has been deprecated. You can use Kovri now with Monero's new SOCKS proxy as well as Tor. It's extremely limited in any capacity, as proven by Sekreta, but it's what fluffypony wanted and handed down to his MyMonero minions to implement (see github for proof) in an executive action without any input from anyone competent in internet-anonymity nor from any communication with me or anyone in Kovri. Note: to solve the "but we've been waiting" problem, you need to pay more than one person to do the job, not pay another person to do another job.
So, if you want to waste your time (and my time), we can proceed with this option as originally planned. It won't be a waste of XMR though because I certainly need it.
Regardless of any outcome, the contract will be completed and I will receive my payments (I also have medical bills coming up, so I hope this project doesn't screw me).
Thanks to all for everything good that's happened so far. Certainly there will be more good to come.
as one of the biggest ffs donors I'm absolutely against any further payouts to anonimal.
Not only are you not a donor to my FFS (which means your opinion is irrelevant), you are not one of the biggest FFS donors as you claim to be. Also, as I've worked longer and harder on essential Monero development more-so than almost anyone else you've donated to, you're an absolute cheap scab of an idiot for not prioritizing core Monero development over anything else.
I really don't feel like having a dick measurement contest with you, but if you check the hall of fame you'd realize that I've been part of the monero community way before you even knew about the project. and since you're so tech savy you'll also know that you can use xmr quite privately even without your failed kovri project :D so please tell me again how I'm not a top donor? anyway I guess you're already punished enough with being yourself so I'm out for now. Rest assured I don't have a personal grudge against you, so I'll hope you get well soon and start to discover what it's really like to be participating in a community of grown ups. aloha!