I2P

Invisible Internet Project


Roadmaps/1.0

I2P VERSION ...?

The next major release of I2P is scheduled perhaps for mid-to-late 2013. Despite the name of this page, the milestone is currently not numbered, it could be 1.0, or 0.10, or 0.91, or something else.

The real roadmap is here -  http://www.i2p2.i2p/roadmap.html - but it is very vague about 1.0 (and this milestone may not cover that anyway).

If you have any ideas for the next milestone, add them here. If you are interested in getting paid to work on I2P (for example via Google Summer of Code 2013 or nlnet.nl funding.... not that we've ever gotten any funding, but it could happen) be sure to add your ideas here. Also look at the GSoC page here on the wiki.


NETWORK DATABASE

  • Encrypted netdb responses
  • Open tickets:

    #423
    reseeding doesnt support SSL proxy
    #510
    NetDB refresh after keyspace rotation
    #712
    Reseed from other network
    #934
    Speed up reseeding by using zip file URL
    #935
    Estimate and set initial bandwidth limits based on reseed download rate

  • Completed tickets:

    #445
    https://www.i2pbote.net/netDb/ very slow?
    #521
    I2P should be able to retry seeding
    #658
    Object churn in XORComparator
    #687
    Error evaluating profiles NullPointerException 0.9.1-6, on android
    #703
    AL-OOBE in netdb FloodfillPeerSelector
    #802
    Reseed host with expired cert

TRANSPORT

  • Reachability Mapping / handle peers partially reachable / enhanced restricted routes
  • LOTS DONE, ONGOING - Better profile and netdb expiration / memory usage
  • Circumvention for various types of state firewalls
  • Multicast?
  • Restricted routes - start work on this - see  http://zzz.i2p/topics/114
  • Lower default connection limits
  • IN DEVELOPMENT - IPV6 support
  • Transport timeouts / fallback analysis and improvements
  • Bridges like Tor has them?
  • New transports
    • TLS Transport?
    • I2P-over-HTTP (to pass through HTTP proxies)
    • I2P-over-DNS (for firewalls that allow DNS lookups)
    • I2P-over-ICMP (for firewalls that allow pinging remote servers)
  • Open tickets:

    #23
    Implement possibility to define multiple/or range of ports in i2np.udp.port and i2np.ntcp.port
    #346
    Near 100% packet loss with big datagrams
    #392
    ] p.router.transport.ntcp.Writer: Error in the ntcp writer
    #459
    NTCP thrashing at startup
    #481
    UPnP: [Fatal Error] :15:1: Content is not allowed in trailing section.
    #530
    ERROR [P reader 2/4] .transport.ntcp.NTCPConnection: I2NP message too big
    #546
    Error in the ntcp reader
    #551
    High CPU usage by NTCP Pumper thread
    #565
    NTCP exception (buf is null)
    #572
    SCTP protocol support
    #636
    [NTCP Pumper ] ter.transport.ntcp.EventPumper: Error in the event pumper
    #648
    outbound (proxy) node support
    #654
    Improve Symmetric NAT handling
    #657
    SSU review
    #661
    I2P doesn't reopen UPnP ports after UPnP router restart
    #674
    NTCP Event pumper should not have unbounded byte cache
    #689
    NTCP limit inbound queues
    #698
    Message delay calculation
    #699
    Various small tweaks to reduce object churn
    #708
    transport selection, uPNP interaction
    #719
    Add priority to FIFOBandwidthLimiter outbound queue
    #720
    Implement per-destination priority
    #725
    UPnP: java.lang.ArrayIndexOutOfBoundsException
    #728
    UPnP lib NPE
    #739
    Rate Scheduling
    #745
    utp support?
    #762
    NTCP outbound queue stuck
    #772
    Massive number of duplicate acks
    #774
    ACKSender study & optimizations
    #786
    Move stats updating out of codel()
    #814
    sport.udp.EstablishmentManager: Error in the establisher
    #873
    Port changing .. obscurely
    #889
    Avoid using the same countries where possible
    #926
    High tunnel count

  • Completed tickets:

    #427
    UPnP fails to open ports on hardware router
    #553
    Problem handling detected, correct external IP address resulting in Status "firewalled"
    #660
    The same PacketHandler thread should handle packets from the same host
    #663
    UDPPacket.verifyNotReleased() logic inverted
    #664
    UDPReceiver.MAX_QUEUE_PERIOD check can fail sporadically
    #665
    Debugging with (new Exception()) should not be used in hot paths
    #669
    Postpone establishment timeout if anything received
    #675
    Various UDPPacket "leaks"
    #676
    NPE in net.i2p.router.transport.udp.EstablishmentManager
    #682
    SSU PMTU
    #697
    Heavy monitor contention in ntcp.{Reader,Writer}$Runner.run
    #707
    easy tweaks to reduce NTCP reader thread cpu usage
    #709
    Spurious NPE at Shutdown
    #727
    Prevent i2p router from getting configured with a private IP address
    #748
    "Crazy" Packet Error
    #770
    p.router.transport.ntcp.Writer: Error in the ntcp writer java.lang.NullPointerException
    #798
    sport.udp.EstablishmentManager: Error in the establisher
    #813
    sport.udp.EstablishmentManager: Error in the establisher
    #824
    Transport NPE (was: error)
    #909
    I2P router listen only IPv6 on IPv4-Ipv6 dual-stack computers
    #914
    i2p router doesn't open its port on ipv4 address
    #922
    UDP per tunnel
    #925
    High message lag in 0.9.5 and 0.9.5-13
    #928
    CancelledKeyExceptions in ntcp.EventPumper
    #930
    upnp addportmapping
    #931
    UPnP.java documentation error(?)

CORE ROUTER / STREAMING

  • Proof of security and reliability
  • Peer profiling formulas - analysis and improvements
  • Use Java 1.6 features
  • Bigger I2NP Messages?
  • 3 hop default for exploratory tunnels?
  • ONGOING - working on getting I2P slim and fast
  • (#739) Sleep mode (so it donates more bandwidth while at I'm at work)
  • Streaming
    • Streaming improvements
    • Open tickets:

      #381
      findbugs streaming
      #532
      Don't enforce streaming connection limits on conns from internal clients
      #629
      Blocking close()
      #643
      Streaming RST handling
      #644
      Frequent IRC disconnects
      #780
      Warning: Eepsite Unreachable (Eepsite owner)

    • Completed tickets:

      #573
      big downloads fail
      #751
      Streaming Library Basic Dev : NoRouteToHostException

CONSOLE

  • Improve help pages
  • ONGOING - More translations
  • DONE - AJAX updating for summary bar
  • JQuery in console?
  • ONGOING - Configurable modular summary bar
  • CURRENTLY LINKS TO WEBSITE - Full proxy setup help pages in console for various proxy-switcher and browser combinations
  • CURRENTLY LINKS TO  http://plugins.i2p - Links on the router console to all known plugin repositories
  • IN DEVELOPMENT - Task-centric router interface as an option with all the current technical stuff either hidden & available on the current one or pushed into an "advanced" section
  • IN DEVELOPMENT - Make it easier and clearer for newbies to see what one can DO with I2P - i.e., Applications. Need to integrate I2PBote, Tahoe-LAFS, I2PMessenger, Syndie, etc. or make it easy to find out about these applications and how to install them if they cannot be integrated into the I2P distribution. Add I2P website links to suggested Firefox Add-ons also.
  • Open tickets:

    #354
    Console HTML validation fixes
    #383
    findbugs console
    #497
    Misspelling in logs "ademlia"
    #547
    Profile path in the interface
    #628
    Allow IE to use regular themes
    #731
    Multi user support
    #738
    Router console redesign
    #752
    backup keyfiles
    #753
    Implement subscription feeds
    #773
    Overlapping text in midnight theme
    #775
    Terminal User Interface
    #894
    Router console inaccessible
    #900
    Router console in IE10
    #902
    Describe "Rejecting Tunnels" better
    #923
    Firewall & reseed status panel does not always show in summary bar
    #927
    Disabling stats in /configstats returns them to default state

  • Completed tickets:

    #484
    "Download xxx update" button should disappear after downloading update
    #489
    headers break arabic ligatures
    #652
    Console authentication improvements
    #679
    Something somewhere is using DirectByteBuffers the wrong way
    #701
    2 small typos in the routerconsole found using Transifex
    #724
    Tunnel Error
    #740
    ip2 router down
    #763
    0.9.3-2: org.mortbay.jetty.Server : /i2psnark/.ajax/xhr1.html java.lang.NullPointerException
    #767
    Proposal to implement a gui bandwidth scheduler
    #835
    sanitize IP input
    #852
    error closing tunnels
    #857
    Router console - Invalid form submission
    #890
    Graphs page, bw.combined
    #915
    error when opening graphs page in 0.9.5-4

INSTALLER / PACKAGING / PLATFORMS

  • Debian
    • Open tickets: No results
    • Completed tickets:

      #714
      Ubuntu/Debian 0.9.2+repack-1precise1 error= mkdir: cannot create directory `/usr/bin/%USER_HOME': Permission denied
      #759
      debian package version numbers are wrong
      #906
      Daemon cannot read config file if umask is set during .deb installation

  • Ubuntu
    • Open tickets: No results
    • Completed tickets: No results
  • Android
    • Get router updated and working
    • Lots of UI work
    • Open tickets:

      #692
      Moving hosts.txt to sqlite

    • Completed tickets: No results
  • More platforms and distributions
    • Gentoo ebuild?
    • RPM?
    • Other mobile platforms?
    • Official USB key package
  • (Minor) Show a hint/warning when installing I2P if java version is out of date, like Freenet does
  • Include some seed data in the distribution so a central reseed location isn't required?
  • Revisit split directory issues - go non-split for windows?
  • Splitting the distribution into router- and core-part and application package
  • Much easier setup - bundled browser? Or a  http://dooble.sf.net plugin?
  • Make a Browser like www.xerobank.com for tor as well for I2P, so that i2p is always running if the browser is used, I suggest to use  http://dooble.sf.net for that idea, as here an I2P proxy is already in fir .i2p sites, while normal sites in another tab can be loaded as well.
  • Installer
    • Open tickets: No results
    • Completed tickets:

      #656
      Uninstaller hangs in Windows 7
      #736
      Auto bandwidth configuration
      #737
      Auto bandwidth configuration
      #908
      windows install logs has wrong path
      #912
      Installer doesn't work

  • Wrapper
    • Open tickets:

      #633
      segfaults cause i2p to not be able to restart
      #743
      I2P 0.9.2 crashes w/ gij
      #796
      I2p Router crashing often
      #864
      i2p won't install as a service
      #905
      What a mess with log files in Windows :-(

    • Completed tickets:

      #634
      segfaults cause i2p to not be able to restart
      #635
      segfaults cause i2p to not be able to restart
      #681
      Please add instructions to use 3rd party or Portable-java in wrapper.config
      #800
      Service is not started, error 1067
      #826
      wrapper problem with OSX

APPLICATIONS / PLUGINS / I2PTUNNEL

  • 3 hop default for everything?
  • Streaming audio improvements and plugin
  • I2PSnark
    • Improve usability with things like: group torrents by status (stopped, completed, seeding, downloading...), adding torrents with just a click in browser instead of cut 'n' paste to the UI, show number of distributed copies?
    • Open tickets:

      #44
      I2PSNARK --> Priority for torrents
      #371
      I2PSnarkServlet / SnarkManager DirMonitor
      #372
      Button for manual recheck
      #385
      findbugs i2psnark
      #571
      snark char mapping on torrent creation
      #622
      All Icons should be flexible to style.
      #637
      snark sort algo ignoring ¨The.¨
      #641
      IOException: File does not exist (self-caused)
      #691
      I2PSnark sends interested message when not interested
      #730
      Default snark download location should not be "hidden"
      #766
      Auto-start by default in i2psnark
      #771
      I2PSnark: Willful rewriting of special characters
      #784
      Total uploader limit not being utilized
      #808
      Start all/Stop all button inconsistencies
      #818
      Adding superseed to i2psnark

    • Completed tickets:

      #447
      i2psnark handling of skipped files
      #563
      i2psnark TrackerClient thread hangs occasionally
      #570
      reported "torrent created" after it was deleted
      #575
      retry function for torrent fetchin broken
      #640
      please delete
      #645
      i2psnark upload configuration
      #673
      logging in snark creates garbage even when disabled
      #695
      Add 'checking' status to i2psnark
      #705
      Little error in spanish translation
      #706
      Little error in spanish translation
      #768
      Storage location for Snark needs a UI option to configure
      #777
      i2psnark: java.lang.IndexOutOfBoundsException
      #778
      Add functionality to allow i2psnark to create torrents with support for multiple trackers
      #884
      I2PSnark tunnels
      #907
      i2psnark does not recognize any torrents when invoked with autoStart=true
      #910
      Snark reports inflated numbers of peers
      #911
      i2pSNARK fatal storage error

  • I2PTunnel
    • Support HTTP/1.1 in the eeproxy for reduced page load times  http://www.w3.org/Talks/9704WWW6-WebPerf/slide11.htm
    • Better handling of multiple outproxies (stay with one while it is working)
    • Open tickets:

      #48
      NNTP server tunnel
      #335
      Leading null bytes received in HTTP Server
      #378
      findbugs i2ptunnel
      #642
      Undead tunnels when not select "Shared Client".
      #651
      tunnel port kept open on stopping tunnel with invalid dest
      #666
      i2ptunnel uses un-buffered socket streams
      #688
      false "add to local addressbook" link in server settings
      #721
      webserver tunnel - website name field
      #722
      Destination not killed on restart
      #779
      increase server max threads or i2ptunnel.blockingHandlerCount
      #785
      HTTP client tunnel: Don't send "X-Accept-Encoding:" or "Accept-Encoding:" headers when connecting via outproxy
      #815
      i2ptunnel locking
      #816
      I2P error - proxy authentication required
      #822
      tunnel problem with to much concurrent connections
      #881
      Default SOCKS client tunnel
      #921
      UDP per tunnel
      #929
      i2ptunnel and routerconsole lag when we load too many things at a time
      #936
      Default new tunnel to 3 hops

    • Completed tickets:

      #581
      Hide long string in "Destination"
      #638
      i2jump.i2p 500
      #723
      i2ptunnel darkloris
      #755
      i2ptunnel OOM (was: strange effects with latest versions)
      #757
      http local tunnel auth unable to be none
      #851
      IP to I2P address mappings in SOCKS client tunnels
      #882
      Make 'Save' the default action when creating a new tunnel
      #891
      Special symbols in URL parsing
      #904
      IRC tunnel filters SASL

  • Susimail
    • ONGOING - improvements
    • Open tickets:

      #248
      error log, maybe susimail related, as the mail never is sent
      #375
      findbugs SusiMail
      #414
      Susimail NPE
      #508
      Susimail encoding issues
      #702
      susimail null pointer exception
      #747
      Login problems with Susimail
      #809
      NPE in POP3MailBox

    • Completed tickets:

      #647
      susimail: The colors are biting.

  • Syndie
    • Restart work on it?
    • Open tickets:

      #839
      Syndie NPE during shutdown
      #840
      Review Syndie site
      #844
      java.sql.SQLException: Violation of unique constraint $$:
      #892
      Syndie archive not pushable
      #903
      Open Syndie URIs through command-line

    • Completed tickets:

      #837
      failed to execute runnablr
      #861
      Syndie OOM

  • Other plugins
    • Open tickets:

      #566
      Asked for router restart. Result: console hung (seedless sleeping)
      #567
      Move seedless logging out of wrapper log
      #606
      i2pcontrol Concurrent Modification Exception
      #624
      Move disk-intensive files to a user selectable dir -- Seedless databases.
      #865
      Pebble vulns
      #885
      seedless not propperly removed
      #897
      Check for outdated plugins appears to be broken

    • Completed tickets:

      #564
      bote/seedless shutdown issues (was: Addressbook should not try to write to a read-only $I2P)
      #670
      PluginStarter references to Jobs
      #696
      Excessive logging by I2P-Bote
      #791
      The button "New" (Write new mail) is absent in router bote-mail page if the Russian language of GUI is selected
      #836
      java.lang.IllegalStateException at [...].AbstractSessionManager trying to stop a plugin
      #838
      I2PBote Errors
      #842
      It happened when stopping i2pbote v1.101b-7-b8 on this page: http://127.0.0.1:7657/configclients
      #848
      SimpleTimer2: Connection exited unexpectedly
      #880
      i2pbote - org/bouncycastle/crypto/Digest

  • ONGOING - Lots more plugins
    • Anonymous Digital Cash to pay for I2p resources anonymously, using a digital cash library such as this one:  http://wiki.github.com/FellowTraveler/Open-Transactions/wiki
    • Chat plugin
    • Tahoe-LAFS plugin
    • SEVERAL EXTERNAL PROGRAMS IN DEVELOPMENT - VOIP / voice chat plugin
    • Distributed cache. Should be able to publish a file to the cache like on Freenet and retrieve it with no other knowledge than its SHA256 (or similar) checksum. If a web server provides the checksum in its GET/HEAD header, eeproxy should first try to get it from the cache and use the webserver as a fallback (and then place it in the cache after retrieval and verification).

WEBSITE

  • AWAITING DEPLOYMENT - (#807) New website backend with easier content management and translation capabilities
  • Improve help pages
  • Include revision numbers to help translators finding outdated sites -->  http://zzz.i2p/topics/734
  • Open tickets:

    #324
    docs.i2p2.de/javadoc/ is not auto-updating
    #325
    docs.i2p2.i2p is old and not synced with docs.i2p2.de
    #424
    https://a.netdb.i2p2.de/ reseed broken
    #446
    Change guest user/pw or add captcha
    #520
    Last-Modified header for http://www.i2p2.de/hosts.txt
    #595
    WWW Trac Plaintext Passwords
    #716
    I2p doc inaccuracies
    #726
    users can be deanonymized with browser fingerprinting
    #794
    Set up SSL certs from a "legitimate" CA
    #807
    Revamp of website
    #833
    Fix documentation of AES padding
    #917
    Restore login/register links at bottom of each trac page

  • Completed tickets:

    #678
    Broken link: comparison of I2P to Tor in Tor FAQ
    #750
    Error in doc Transport layer overview
    #793
    Mirror links
    #795
    Bounties being broken
    #823
    Misprint/Error in SAMv3 sources/documentation
    #855
    syndie.i2p2.i2p
    #879
    remote console in FAQ is wrong
    #932
    Debian Wheezy install: i2p depends on service-wrapper, service-wrapper depends on libc6