Please login or register.

anonimal's Kovri Full Time Development funding thread

XMR7,246.58

funded of XMR7,245.00 target

81 individual contributions
100.02%
100.02185031263% Funded
13 payouts
XMR1,396.58 balance available
80.727702359563% Paid Out

Milestones 14/16

  • First tranche

    Completion Date: Thursday 01 December 2016

    Funds awarded: 6.25% (~XMR452.91)

  • Second tranche

    Completion Date: Saturday 28 January 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Third tranche

    Completion Date: Sunday 26 March 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Fourth tranche

    Completion Date: Friday 05 May 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Fifth tranche

    Completion Date: Saturday 24 June 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Sixth tranche

    Completion Date: Monday 31 July 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Seven tranche

    Completion Date: Friday 15 September 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Eighth tranche

    Completion Date: Tuesday 07 November 2017

    Funds awarded: 6.25% (~XMR452.91)

  • Ninth tranche

    Completion Date: Saturday 27 January 2018

    Funds awarded: 6.25% (~XMR452.91)

  • Tenth tranche

    Completion Date: Saturday 10 March 2018

    Funds awarded: 6.25% (~XMR452.91)

  • Eleventh tranche

    Completion Date: Monday 11 June 2018

    Funds awarded: 6.25% (~XMR452.91)

  • Twelfth tranche

    Completion Date: Wednesday 01 August 2018

    Funds awarded: 6.25% (~XMR452.91)

  • Thirteenth tranche

    Funds awarded: 6.25% (~XMR452.91)

  • Fourteenth tranche

    Funds awarded: 6.25% (~XMR452.91)

  • Fifteenth tranche

    Funds awarded: 6.25% (~XMR452.91)

  • Sixteenth tranche

    Funds awarded: 6.25% (~XMR452.91)

Payouts 13

  • 450 XMR (Tuesday 06 December 2016)
  • 450 XMR (Thursday 02 February 2017)
  • 450 XMR (Wednesday 29 March 2017)
  • 450 XMR (Monday 08 May 2017)
  • 450 XMR (Monday 26 June 2017)
  • 450 XMR (Friday 11 August 2017)
  • 450 XMR (Tuesday 26 September 2017)
  • 450 XMR (Thursday 16 November 2017)
  • 450 XMR (Monday 29 January 2018)
  • 450 XMR (Wednesday 14 March 2018)
  • 450 XMR (Monday 25 June 2018)
  • 450 XMR (Monday 06 August 2018)
  • 450 XMR (Wednesday 14 November 2018)

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:

  1. 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
  2. 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
    • Linux/OSX/Windows
    • i686/amd64/armv7/armv8
  • 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:

Payout proposal

  • 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.

Replies: 40
anonimal posted 1 month ago Weight: 439 | Link [ - ]

Milestone 14 includes ~120 billed hours, sporadically, through the dates 2018-10-01 and 2018-11-15. As usual, I've donated more hours than what I've billed but I've also been occupied with IRL events such as massive back taxes because no one in this community mentioned that XMR is taxed on the time-and-date they are received (not just when they are sold)!!!! I'm not a financial wizard nor a tax attorney so, maybe this info was already common knowledge in the community, I don't know. Regardless, the markets are screwing almost all of us, so I'm sure I'm not the only person getting fucked.

This milestone was a big set-back to immediate code development but a huge leap forward to necessary project development and future code development (FYI, this was brought on by the Monero community). For the majority of my next milestone, I intend to return to the kovri repo to work on code, PRs, and whiteboarding of the various APIs.

Some highlights of this milestone:

  • After a funding meeting with 5 people from the Kovri Project team, we decided to move on creating The Kovri Fund. This repository is a WIP fund that (until it can replaced by decentralized crowdfunding) will act as an escrow'd crowdfunding system where contributors can work on Kovri while having the option of being paid in 5 leading cryptocurrencies (XMR among them) or in fiat (method TBD). This should vastly expand contributor potential for Kovri Project since the software is cryptocurrency-agnostic / application-agnostic.
  • Along with requisite collaboration and negotiations, this milestone also saw the formation of the Kovri Core Team; consisting of myself, Luke, and Sean. We are in the process of securing technology and creating a standardized process to handle multisig wallets for all escrowed cryptocurrencies.

Other highlights:

  • API + code-related research / study
  • Add more subdomains (repo.kovri.io + list.kovri.io) / collab with Luke
  • Gitlab-CI / gitlab runner + Docker / shell executor, research/testing/deployment for Linux
    • Backend development to satisfy new Boost 1.67+ requirements / backend overhaul
  • Frontend updating / maintenance of kovri-site (thanks to Luke's streamlined ssh/shell process)
  • Kovri Core Team collaboration / project planning / funding & cryptocurrency planning
    • Collaboration for storage options / distributed options / multisig options
    • Establishing a protocol by creating templates and HOWTOs (see the kovri-fund repo)
  • Kovri-docs: create/add unit-test writing section to dev guide
  • Meeting scheduler research (so we can automate meetings)
  • Monero "outreach" research as it relates to kovri
  • Monero multisig wallet debugging with moneromooo + rbrunner (https://github.com/monero-project/monero/issues/4846), needed resolved so I can work toward kovri integration
  • Monero testnet study for kovri/monero integration testing
  • Project management discussion with Diego, one-on-one collab with Sonia
  • Public relations training for Sonia, between Diego and myself, via a number of conference calls (no one in Monero Outreach would lift a finger for Kovri, so we needed to go our own route).
  • Research/setup new keybase account for kovri keybase team
  • Tor tests/doc review + Tor/Katzenpost research
  • Write Milestone #13 report
  • Write Milestone #14 report
  • distcc setup testing for backend build
  • kovri onion creation collab + tweet onion/garlic sites
  • kovri-slack relay maintenance / backend machine maintenance
    • also research/test Slack meeting apps
  • kovri.i2p backend / collab with Luke
  • njalla maintenance / collab with Luke

Note: nearly all of our collaboration is now done via secure side-channels instead of the public IRC/Slack channels.

Much of my work is now pushed directly to the kovri-project repos instead of pull requested. See commits to kovri-site, kovri-docs, kovri-meta, kovri-fund, and kovri repositories.

In addition to those commits, consider the following:

Required by the community but UNBILLED

Notes

anonimal edited 2 months ago Weight: 356 | Link [ - ]

Milestone 13 includes ~336 billed hours from the dates 2018-07-27 to 2018-08-15, and 2018-08-29 to 2018-09-29. As usual, I've donated more hours than what I've billed.

To write the usual detailed report for this many hours is futile. Instead, I will summarize because my proof of work is well-known within the community:

  • Defcon 26 kovri workshop preparation + completion + related village activites/collaboration (videos to be released, also includes collaboration with Sean)
  • L.A. Monero Meetup Kovri talk preparation + completion (video here)
  • ShellCon kovri collaboration + networking and brief talk participation (off camera)
  • Kovri Project independence! WIP for new everything as stated (partially) here because of this, this, this, this, and moooooore...
  • Building and nurturing the new team, including two new personnel:
    • Luke is our new devops/web front/backend developer. We've done an incredible amount of collaboration together this milestone
      • New web backend/hosting and domains
      • WIP CI/CD development
    • MermaidNets (Sonia) is our new business development / marketing / sales specialist who is currently in training for privacy/anonymity
      • IRL and online collaboration
      • She's current in training with myself and Diego
  • Project development and code-related project development
    • IRL and new backend infrastructure (including build)
      • Includes new CI + building a new, more permanent, CI/CD
    • Building a new funding model
    • Building a new outreach model
    • Building new and existing relationships
  • Code development
  • See also our new Slack at kovri-project which I maintain (as well as the relay bot). For Project development, visit the #kovri-meta channel

This is all needed so Kovri Project can not only survive - but also thrive. The remaining portions of this FFS, like integration, are all continuing as planned.

Required by the community but UNBILLED

VRP related

  • I'm still leading Monero's VRP team and keep busy with related development including Coverity backend, report review handling, and all that comes with the job. CURRENTLY NOT BILLED.
  • Visit https://hackerone.com/monero and https://reddit.com/r/monero for my related activity regarding public disclosure (search "SECURITY ADVISORY" on r/monero)

Notes

anonimal edited 4 months ago Weight: 216 | Link [ - ]

Milestone 12 includes ~192 billed hours from the dates 06-12-2018 through 06-16-2018, and 06-22-2018 through 07-27-2018. As usual, I've donated many more hours than what I've billed because I'm picky about what I bill.

In addition to new features and fixes ranging from minor to critical, as well as much mentoring for contributors, this milestone includes Kovri's first release! You can find v0.1.0-alpha (currently release candidates) at https://github.com/monero-project/kovri/releases. Arch Linux users can find at release package at https://aur.archlinux.org/packages/kovri/. All other users can pull from our nightly builds as noted in the README, or clone and checkout the alpha release tag. There are no other official release builds because Monero Project (our sole provider of devops and build machines) has decided to not have any involvement in releasing anything but nightlies. I personally find this unacceptable and am appalled not because of their decision but because there was no warning of their decision. See https://github.com/monero-project/meta/issues/252. This issue will need to be resolved by the next release, with or without them.

Commits

  • Does not include merge commits of PRs I've reviewed, or PRs of my own (except for tags)
  • Does not include patches I've sent to PRs from others (see github for those)
  • Does include a handful of commits from my fork
  • Sorted newest to oldest

Kovri

d1e9afab Makefile: fix doxygen target (requires CMake)
a172c47a (tag: v0.1.0-alpha-rc3) Merge pull request #994
79948dba CMake: side-step Clang (CMake?) bug for Release build
ec33da05 CMake: set AppleClang detection and min version
a6faac58 (tag: v0.1.0-alpha-rc2) Merge pull request #992
74f2cf08 Docs: bump kovri-docs to 8768f1de
a77ae03f Kovri: update release version and codename
9dfb2cee Installer: update Windows ReadMe.htm
f05abb9b README: remove "Alpha release coming soon"
034e947d Build: use release/debug defs, add debug target
6f125556 Reseed: update ca-certificates.crt
c6ea7553 Reseed: temporarily remove reseed.atomike.ninja
57a59b7e Reseed: temporarily remove manas.ca domain
fcca6392 Reseed: remove i2p2.no domain
d2ad3bdc Kovri: fix log levels, log appropriate asio errors
a383f48e Tests: add RI test cases for transports
9b553ae5 Core: use IPv6 address object when expected
ee6d9d2a Crypto: remove ed25519 assertions
5fcee5f9 Docs: bump kovri-docs to 8e45f23
fa61f0ff Build: remove CMake SUPERCOP option (see #909)
4613d884 (tag: v0.1.0-alpha-rc1) Merge pull request #909
58311032 Tests: update ed25519 unit-test + benchmark
3b39ef3a Crypto: implement TweetNaCl via Crypto++, remove SUPERCOP (ref10)
e2cf677e Build: bump cryptopp to 8d6b1af (NaCl-related API patch)
e237f8e2 Kovri: use const-time comparison in security-critical areas
f4b2e7a6 Crypto: implement constant-time comparator
983b562e SSUPacketParser: ParseFragment: use gcount(), not size()
7180d31f SSUPacketParser: ParseFragment: don't read if purported size is 0
ab3aeaff SSUPacketParser: throw invalid packet size when parsing fragment
35d0561f SSUFragment: use appropriate size type
989ef86a Build: bump cryptopp to f143534
05651651 SSUData: SentMessage RAII refactor
98bb652a SSUFragment: use appropriate size type (uint16_t)
1c31d6d4 SSU: packet accessor/mutator refactor per the style/idiom guide
4ad9568c SSUSession: don't return on invalid session packet length
3c7ce7cb SSUSessionPacket: ensure valid length in ctor
1cfbf0de SSU: refactor SSUSessionPacket
cf1fa502 SSU: packet const/noexcept correctness when possible
8ce3f990 SSU: move packet accessors/mutators into header
36081c21 SSUServer: use exception dispatcher as needed
c59dd205 SSUServer: clang-format check-in for packet handlers
6e2a0414 SSUServer: use smart pointer when handling packets
61ee6128 SSUServer: const/ref correctness for params/returns
7997da5e Transports: zero-initialize peer integrals
db7643e8 SSUServer: zero-initialize peer test creation time
4173f88b SSU: zero-initialize length of raw packet buffer
4a9697a4 Tests: fix X509 symbol conflict with cotire/openssl
e3d8f64c Tests: move build requirements to single header
cbcd136a Build: bump cryptopp to 7eb0535, use branch kovri
a9726b07 Package: update ACL details/features in tunnels.conf
70fc1fad Tests: add parse ACL base32 hash w/domain test-case
a04fda16 Tests: add parse ACL mixed-radix hash test-case
dd1d9670 Tests: add parse ACL base64 hash test-case
49ceec21 Tests: add parse ACL base32 hash test-case
3b0cd4c8 Tests: create parse ACL fixture + refactor case
47105839 Tests: use boost test message when parsing ACL
40d7af20 Tests: fix client ACL parsing copyright date
1764a10f ParseACL: parse base32 domain and base64 encoded hashes
455287b7 Client: create separate b32/b64 dest text files
8f267c6b Filesystem: add default modes for i/o file streams
31b1a867 Filesystem: const openmode for FileStream
a6e0a589 Filesystem: const ref return when ensuring path
a7e08b9d Docs: bump kovri-docs to 6184157
297e67a5 Client: implement HTTP server tunnel X-I2P headers
05cd0357 Tests: add IdentityEx base64 conversion test-case
1af9d594 Tests: add IdentityEx base32 conversion test-case
70333ae1 IdentityEx: add base32-to-buffer conversion
e64d9060 Tests: initialize with raw ident in fixture ctor
4b9ba711 Tests: refactor IdentityEx fixture raw ident
dd362f89 IdentityEx: add buffer-to-base32 conversion
943f4ccc README: set `make release` as recommended default
dfd94716 Build: don't skip rpath for in-tree shared deps
aae581ac CMake: use build RPATH when using Boost.Python
8e506193 Testnet: add default grafana user + grafana to help
237e1f5b RouterInfo: don't throw on invalid RI size
5f7a0353 Tests: add case for setting invalid HTTPResponse code
6505496a Tests: add check for valid HTTPMessage response
4d7218d9 Tests: valid HTTPMessage response namespace cleanup
8783ae2a HTTPResponse: noexcept when returning response
49eb7653 HTTPResponse: assert and throw upon invalid status
4d07cac0 HTTPResponse: appropriate mutator/accessor names
a5f2a1cb HTTPResponse: refactor response setter
f4952ce4 Client: do not fully qualify HTTP error codes
baea32ae HTTPResponse: move definitions into impl file
18b35268 RouterInfo: don't throw when RI fails sig verify
ed041ea6 RouterInfo: remove unnecessary null buffer check
e89e992d RouterInfo: Verify: remove auto for data pointer
580a5b82 Tests: cleanup RI test comments
1cd37978 Tests: NetDb: update parameters when adding RI
f6e401a5 CMake: fix the MinGW-w64 static build
b1a2fcac Kovri: bump I2P router version to 0.9.35
d13064ee Transports: remove NTCP resolver per prop 141
ab04b92e RouterInfo: remove deprecation when parsing host
c05c544f RouterInfo: handle intro expiration, don't save RIs with unknown traits
c175fbff RouterInfo: buffer refactor
695c9117 Tests: create buffer utility class unit-test
5e2897c3 Core: create buffer utility class
c014ea6c MTU: support local MTU size on DragnonFly BSD
e5444322 MTU: update FreeBSD/Win32 preprocessor defines
8e985280 Tests: disable libs' singleton logger
eee030ad CMake: build without RPATH
fe113aae Kovri: don't dispatch error_with_option_name
18e10e32 Transports: remove stop call upon singleton dtor
6a027559 Kovri: implement runtime UPnP

Kovri Docs

36eb0c5 user_guide: update platform binary paths
e00f475 README: remove "Alpha release coming soon"
a5b8660 i18n: update pre-alpha to Alpha
1d3fd20 Acknowledgements: remove ref10 from SUPERCOP
a15c381 i18n: remove build guide from remaining languages
b4bae3b English: add UPnP option, remove build guide link
38f977f i18n: update anonimal twitter handle
273a8e3 Testnet: rewrite custom commands
5612732 Testnet: rewrite step 4 (destroying testnet)
3a7ab43 Testnet: rewrite step 3 (stopping testnet)
d4cd659 Testnet: rewrite step 2 (starting testnet)
9d56752 Testnet: rewrite step 1 (creating testnet)
3f76001 Testnet: cleanup/add prerequisites
60c98ce Testnet: fix unordered sub-list
57a868e Testnet: add preliminary preamble

Kovri Site

81d0226 Deps: bump kovri-docs to 8768f1de
5b79c0e Deps: bump kovri-docs to 385211e
56f4b06 Deps: bump kovri-docs to 8e45f23
b1645dd check.kovri.i2p: strip X-I2P from actual client headers
775b363 check.kovri.i2p: remove unused files
d209ecc check.kovri.i2p: add X-I2P header reporting
7a517db check.kovri.i2p: add browser header php and style
8e3ffbc check.kovri.i2p: add index.php

Kovri AUR

bbf162d v0.1.0-alpha-rc3
ac0da49 PKGBUILD: don't build with clang
de532aa v0.1.0-alpha-rc2

Meta (see also PRs for previous milestones for commits not noted back then)

dc2b463 VRP: apply preamble to kovri beta
378c236 VRP: reiterate that code impl includes master branch

unbound (UNBILLED)

eda9ed35 configure_checks.cmake: update to 1.7.3
e66cc1a8 config.h.cmake.in: update to 1.7.3

Repos

Kovri (includes patches/fixes I've given while mentoring/reviewing)

Kovri Docs

Kovri Site

Meta

Monero

Dependencies

Required by the community but UNBILLED

Research

In addition to the usual research and code review required for development (including library research, I2P spec/impl, and proposal review):

Collaboration

VRP related

Community

  • The usual support, collaboration, debunking, mentoring in:
    • #kovri-dev
    • #kovri
    • #monero-community
    • #monero-dev
    • #monero-research-lab
    • #monero-translations
    • #monero-vrp
  • IRC PMs with kovri collaborators regarding kovri and project development
  • Twitter @getkovri

Last but not least

  • Buildbot backend collaboration + maintaining non-buildbot build backend environment
  • Kovri-related emails + email lists for monero/kovri dependencies + security advisories
  • Maintaining Coverity build
  • Write Milestone #12 report

Notes

  • Please, feel free to look closely at every noted pull request and issue as much effort goes into Kovri development (also see git-log for details)
  • I have detailed, down to the second, time-tracking of all my work; complete with detailed descriptions of every activity. Because of privacy concerns, I'm reluctant to ever post this information publicly but will make them available to members of the core team upon request
  • For GitHub-recorded details (commits, pull requests, issues, discussions, etc.), see my activity page: https://github.com/anonimal
  • Other useful information may also be on twitter:
anonimal posted 6 months ago Weight: 126 | Link [ - ]

Milestone 11 includes a consolidated ~176 hours of billable time (as usual, I've donated many more hours than what I've billed because I'm picky about what I bill). This milestone covers the dates 03-14-2018 through 04-06-2018, 04-13-2018 through 05-01-2018, and 05-07-2018 through 06-12-2018

The majority of time spent during this milestone became devoted to mentoring/developer training (see pull requests + IRC), collaboration, and project development. Project development includes upcoming DefCon 26 BCOS Privacy Village preparations of which I'll be speaking/presenting. I will also be going as part of the Monero DefCon Team (as well as beginning preparations for IncognitoCon 2018 in September). This milestone did not provide me with the desired time for kovri code and research that I had hoped for, but the alpha release is still scheduled for DefCon 26.

Code

Newest to oldest, not including merge commits (of PRs I've reviewed or my own PRs):

6968d6c7 CMake: remove optional lib build
6ec3f9af Repo: update copyright dates + bump kovri-docs
4778a64a Repo: update guide name in GitHub templates
3e68f8a3 Contrib: change default Dockerfile repo name
3f479c2e README: update quickstart + make/install
b2f5f7d3 README: add links to user/developer guide
60d6c8af Docs: bump kovri-docs to e21aaa8
91233a00 README: reorg/cleanup nightly table
30d08272 README: add build table + condensed instructions
a053f772 Util: fix bad anycast in routerinfo
57bdc934 Kovri: bump latest version for Alpine Dockerfiles
1967f947 Testnet: add clang to Arch Dockerfile
a16f0ceb Kovri: boost.program_options bool option overhaul
8902e666 Util: fix cpuid impl unused parameter warning
fcf2119d I2PControl: add virtual dtor to abstract class
2cdf0660 Kovri: comply with CERT secure coding rule ERR53-CPP
824ffa63 UPnP: fix missing field initializer warning
075a0a27 Config: fix unused parameter warning
2a514fea TunnelPool: fix comparator functor for gcc8 build
16548fdb README: update macOS static build link
c2a2c02d Build: use kovri branch for cpp-netlib
28d5134e Transports: don't reuse DH keypairs
80b680b3 Filesystem: clarify FileStream read/write docs
cd082fa2 Util: fix args minimum count
8b815d9c Build: enable verbose CMake build
baf81e0a Build: add deps cmake + only support in-tree miniupnp
3dcf5d6b Build: update miniupnp cmake find
b7952155 Build: add miniupnp submodule
4e56ba82 Build: bump cryptopp to CRYPTOPP_7_0_0
af6b9b41 README: update OSX static build link
7310a1fd HTTPProxy: patch message request for unit-test
b32ad557 Tests: rewrite HTTP Proxy unit-test
986c33e7 Kovri: disallow simultaneous disabling of both transports
d3675a5f Util: allow disabling of transports

--- WIP in branch 'bandcaps' (my fork)
b629dcfe Util: use new bandwidth setter for routerinfo
c044f91b Core: implement custom RI bandwidth / bandcaps
16a6e6b4 Tests: add RouterInfo caps unit-test
55a1c542 RouterInfo: new caps implementation
---

Repos

Kovri (includes patches/fixes I've given while mentoring/reviewing)

Kovri Docs

Kovri Site

Meta

Dependencies

Monero

Required by the community but UNBILLED

Research

In addition to the usual research and code review required for development (including library research, I2P spec/impl, and proposal review):

Collaboration

VRP related

Community

Last but not least

  • Buildbot backend collaboration + maintaining non-buildbot build backend environment
  • Kovri-related emails + email lists for monero/kovri dependencies + security advisories
  • Maintaining Coverity build
  • Write Milestone #11 report

Notes

  • Please, feel free to look closely at every noted pull request and issue as much effort goes into Kovri development (also see git-log for details)
  • I have detailed, down to the second, time-tracking of all my work; complete with detailed descriptions of every activity. Because of privacy concerns, I'm reluctant to ever post this information publicly but will make them available to members of the core team upon request
  • For GitHub-recorded details (commits, pull requests, issues, discussions, etc.), see my activity page: https://github.com/anonimal
  • Other useful information may also be on twitter:
anonimal edited 1 year ago Weight: 0 | Link [ + ]

7th milestone completed

Preface

August 6th through September 18th: this milestone covers 146.5 billable hours. Actual time spent was ~310 hours (technically, all billable).

A majority of my time was spent with non-code items. We hope to alleviate that area of workload by having a project management assistant.

Summary of work completed

R&D

  • Completed usable local testnet
  • Cross-platform + build development
  • Core/app code + crypto development
  • Docs development
  • See open/merged pulls for details

Collaboration

  • Team Kovri and the FFS grows larger, as does the amount of collaboration between each other across various topics and issues
    • see also #kovri-dev/#kovri/#monero-dev
  • Crypto++ (debugging + fixes, cross-arch collab)
  • Kovri promotion video script
  • HackerOne.com/monero report resolution
  • Single-policy VRP rewrite + resolve Monero C4
  • Java I2P (proposals)

General

  • Umbrella-project development
    • kovri-docs, kovri-site, meta, monero, monero-site, research-lab
    • see open/merged pulls for respective repos
  • Prep for/completing the 96boards.org show (see also the subsequent news article)
  • /r/Kovri, twitter @getkovri, new kovri projects on taiga.getmonero.org
  • Provide support, lead meetings, project management, emails, repo management (coverity, etc.), AUR and more

...and more.

Notes

I have detailed, down to the second, time-tracking of all my work; complete with detailed descriptions of every activity. Because of privacy concerns, I'm reluctant to ever post this information publicly but will make them available to members of the core team upon request.

For GitHub-recorded details (commits, pull requests, issues, discussions, etc.) see my activity page: https://github.com/anonimal

anonimal edited 1 year ago Weight: 0 | Link [ + ]

4th milestone completed

Preface

This milestone covers full-time work from March 27th through May 3rd (May 4th if you count the writing of this report).

4th milestone goals

Code. As much as possible.

Flow summary

After an analysis of java I2P's NTCP implementation came 33 bulleted point notes and TODO's regarding regarding both java I2P's and kovri's NTCP implementation.

which then lead to

  • #627 RouterInfo rewrite: fixes/additions/refactoring

which may lead to a

  • NetDb rewrite/refactor

which will lead to an

  • NTCP rewrite/factor

    • which should provide better solutions (either explicit or implicit solutions), for NTCP and #187

which will lead to an

  • Alpha release.

My ideal scenario

Every router issue will be resolved so I can work on Monero integration.

Reality

It's quite possible that I would need to devote most milestones to fixing/rewriting all remaining core areas. Regardless if that's necessary, I do intend on fulfilling every goal in this FFS.

Summary of work completed

Code

  • PR's #617, #620-621, #625-#634
  • RouterInfo spec study, rewrite/refactor #627. A work in progress, currently 6 merged PR's = 44 commits
  • Java I2P NTCP implementation study / spec study /
    • As noted above, 33 bulleted point note analysis and TODO's regarding both java I2P's and kovri's NTCP implementation. These are private notes but can be made available upon request
  • Crypto++ master branch review for various submodule bumpings

Build / Packaging

Collaboration

  • PR review + fixes / collaboration with moroccanmalinois, selene, and rakhimov
    • #608 through #616, #622-#623
  • Work with rehrar on logo + website
  • Work with Jeff at crypto++ for cryptopp#398
  • nanoakron discussion about replacing eepsite keys with monero keys
    • related research

Repo / Project

  • H1 correspondence = hackerone.com/monero created, kovri moved to hackerone.com/monero
  • Various monero/meta github issues/PR, monero/kovri issues discussion

Monero

  • Create Monero VRP review discussion/workarounds
  • Various monero/meta github issues/PR

Research

  • Mnemonic seed for privkey recovery (#619)

Note: the Alpha release is 99% ready. The remaining 1% requires more work and more hands/eyes are needed (RouterInfo/NetDb/NTCP are core areas and cannot be ignored for this release).

fluffypony posted 2 years ago Weight: 0 | Link [ + ]

Donated 200 XMR to this from the general dev donation fund

Shrikez posted 2 years ago Weight: 0 | Link [ + ]

+50, thanks for all past and future work!

ravla posted 2 years ago Weight: 0 | Link [ + ]

144xmr

nioc edited 2 years ago Weight: 0 | Link [ + ]

contribution sent from one anonimal to another

RaskaRuby posted 2 years ago Weight: 0 | Link [ + ]

Really looking forward to this. +50 XMR

ibuyltc posted 2 years ago Weight: 0 | Link [ + ]

+39.9

kanaarrt posted 2 years ago Weight: 0 | Link [ + ]

+100 Let's do this!

pa edited 2 years ago Weight: 0 | Link [ + ]

+400

Edit: +600 more