From 21e01baa300e34e703723621f478cd79cabbb1ce Mon Sep 17 00:00:00 2001
From: idk <hankhill19580@gmail.com>
Date: Sat, 28 Aug 2021 17:41:27 -0400
Subject: [PATCH] Upgrade Android version on Web Site. Add Sadie's History of
 I2P blog post, slightly edited.

---
 docker-run-dev.sh                           |   8 +-
 i2p2www/blog/2021/08/26/20-Years-of-I2P.rst |   3 +-
 i2p2www/blog/2021/08/28/History-of-I2P.rst  | 510 ++++++++++++++++++++
 i2p2www/downloads.py                        |  32 +-
 i2p2www/pages/downloads/macros              |   4 +-
 i2p2www/static/styles/duck/default.css      |   9 +
 site-updater-docker.sh                      |   2 +-
 7 files changed, 544 insertions(+), 24 deletions(-)
 create mode 100644 i2p2www/blog/2021/08/28/History-of-I2P.rst

diff --git a/docker-run-dev.sh b/docker-run-dev.sh
index 3560872a9..8d8ba708a 100755
--- a/docker-run-dev.sh
+++ b/docker-run-dev.sh
@@ -1,5 +1,5 @@
 #! /usr/bin/env sh
-#virtualenv --distribute env
-#. env/bin/activate
-./setup_venv.sh
-./runserver.py
+virtualenv --distribute env
+. env/bin/activate
+#./setup_venv.sh
+DEV=on ./runserver.py
diff --git a/i2p2www/blog/2021/08/26/20-Years-of-I2P.rst b/i2p2www/blog/2021/08/26/20-Years-of-I2P.rst
index 64dec254e..e0f5bb798 100644
--- a/i2p2www/blog/2021/08/26/20-Years-of-I2P.rst
+++ b/i2p2www/blog/2021/08/26/20-Years-of-I2P.rst
@@ -93,9 +93,10 @@ and enhance I2P, and showcase the best of our community. Check back here for
 more in the coming days!
 {%- endtrans %}
 
+* {% trans -%}`The History of I2P
+  </en/blog/post/2021/08/28/History-of-I2P>`_{%- endtrans %}
 * {% trans -%}Dependency-Free I2P of the Future - Jpackage Bundles and I2P-Zero (from Monero){%- endtrans %}
 * {% trans -%}Level-Up your I2P use with Encrypted LeaseSets{%- endtrans %}
-* {% trans -%}The History of I2P{%- endtrans %}
 * {% trans -%}Dividing the Triangle: How I2P Eases Naming and Increases Flexibility for End-Users{%- endtrans %}
 * {% trans -%}I2P's Usability Journey{%- endtrans %}
 * {% trans -%}Building Bridges - Making Connections with Other Privacy Projects{%- endtrans %}
diff --git a/i2p2www/blog/2021/08/28/History-of-I2P.rst b/i2p2www/blog/2021/08/28/History-of-I2P.rst
new file mode 100644
index 000000000..de260908b
--- /dev/null
+++ b/i2p2www/blog/2021/08/28/History-of-I2P.rst
@@ -0,0 +1,510 @@
+===========================================================
+{% trans -%}20 Years of Privacy: A brief History of I2P{%- endtrans %}
+===========================================================
+
+.. meta::
+    :author: sadie
+    :date: 2021-08-28
+    :category: general
+    :excerpt: {% trans %}A history of I2P As We Know It{% endtrans %}
+
+{% trans -%}
+Invisibility is the best defense: building an internet within an internet
+{%- endtrans %}
+-------------------------------------------------------------------------
+
+    {% trans -%}I believe most people want this technology so they can express
+    themselves freely. It’s a comfortable feeling when you know you can
+    do that. At the same time we can conquer some of the problems seen
+    within the Internet by changing the way security and privacy is
+    viewed, as well as the extent to what it is valued.{%- endtrans %}
+
+
+{% trans -%}In October 2001, 0x90 ( Lance James) had a dream. It started as a
+“desire for instant communication with other Freenet users to talk about
+Freenet issues, and exchange Freenet keys while still maintaining
+anonymity, privacy and security.” It was called IIP — the Invisible IRC
+Project.{%- endtrans %}
+
+.. compound::
+  .. image:: /_static/images/history/invisibleirc_banner.png
+    :width: 100%
+  .. image:: /_static/images/history/invisibleirc.png
+    :width: 100%
+
+{% trans -%}The Invisible IRC Project was based on an ideal and framework behind The
+InvisibleNet:{%- endtrans %}
+
+{% trans -%}In an interview from 2002, 0x90 described the project:{%- endtrans %}
+
+    {% trans -%}“InvisibleNet is a research & development driven organization whose main
+    focus is the innovation of intelligent network technology. Our goal is
+    to provide the highest standards in security and privacy on the widely
+    used, yet notoriously insecure Internet."{%- endtrans %}
+
+    {% trans -%}"The InvisibleNet team is comprised of a talented group of developers and
+    architects entirely dedicated to providing its users with both
+    convenience and the very best in secure communication."{%- endtrans %}
+
+    {% trans -%}"Our technological ideals are reflected in the implementation of a
+    framework that is solid in design, and transparent in its application."{%- endtrans %}
+
+    {% trans -%}"Here at InvisibleNet we strive towards the greatest level of quality
+    possible by keeping all areas of our research & development open and
+    available to the public for peer review, feedback, suggestions and new
+    ideas.”{%- endtrans %}
+
+    {% trans -%}"The Invisible Internet Project: Defined as the “New Internet”.
+    Peer 2 Peer Internet. Using your peers to protect you. It is a
+    similar concept to the Invisible IRC Project, with its design as our
+    test model. We plan to re-design the Internet by taking it a step
+    further and having security and privacy be first priority."{%- endtrans %}
+
+    {% trans -%}"The Invisible Internet Project or Protocol will be utilizing the
+    tests and research/development concepts of the Invisible IRC Project
+    to give us the scalability that we need and leverage this to take it
+    to the next level."{%- endtrans %}
+
+    {% trans -%}"This, in essence will be an impenetrable neural-network, that is
+    self-driven, self-defensed, and completely seamless to already
+    applied protocols, specifically client to server (or agents as I call
+    them). It will be THE next transport layer, a layer on top of the
+    notoriously insecure Internet, to deliver full anonymity, privacy,
+    and security at the highest level possible. Decentralized and peer to
+    peer Internet, by the way, means no more worrying about your ISP
+    controlling your traffic. This will allow you to do seamless
+    activities and change the way we look at security and even the
+    Internet, utilizing public key cryptography, IP steganography, and
+    message authentication. The Internet that should have been, will be
+    soon."{%- endtrans %}
+
+.. compound::
+  .. image:: /_static/images/history/invisiblenet.png
+     :width: 100%
+
+| {% trans -%}All citations and quotes are from the interviews found here:{%- endtrans %}
+| http://invisibleip.sourceforge.net/iip/mediaDCInterview1.php
+| http://invisibleip.sourceforge.net/iip/mediaDCInterview2.php
+| http://invisibleip.sourceforge.net/index.php
+
+{% trans -%}By 2003, several other similar projects had started, the largest being
+Freenet, GNUNet, and Tor. All of these projects had broad goals to
+encrypt and anonymize a variety of traffic. For IIP, it became clear
+that IRC alone was not a big-enough target. What was needed was an
+anonymizing layer for all protocols. IIP by now was also being called
+“InvisibleNet”.{%- endtrans %}
+
+{% trans -%}In early 2003, a new anonymous developer, “jrandom” joined the project.
+His explicit goal was to broaden the charter of IIP.{%- endtrans %}
+
+{% trans -%}jrandom wished to rewrite the IIP code base in Java, a language he was
+familiar with, and the same language Freenet was using. He also wished
+to redesign the IIP protocols based on recent papers and the early
+design decisions that Tor and Freenet were making. Some of these
+concepts and naming conventions, such as “onion routing”, were modified
+to become “garlic routing”. For several of the design decisions, jrandom
+made different choices than Tor did, including selecting different
+cryptographic primitives in a number of places. Many (but not all) of
+these choices turned out quite well. For some others, such as using
+unidirectional tunnels rather than Tor’s bidirectional tunnels, the
+benefits and trade-offs are still not well-studied.{%- endtrans %}
+
+{% trans -%}jrandom also set out a clear vision for the architecture of the code. It
+would be a client/server model, with the server (i.e. the router)
+isolated from any “client” protocols. Clients such as web browsers, web
+servers, IRC clients and servers, and others, would communicate through
+the router using I2CP, the I2P Client Protocol.{%- endtrans %}
+
+{% trans -%}jrandom also had strong opinions on the direction of the project and its
+philosophy. He was strongly committed to open source and free software.
+He explicitly set a goal of protection from organizations with
+“unlimited financial and political resources.”{%- endtrans %}
+
+{% trans -%}By late summer 2003, jrandom had taken control of the project, and
+renamed it the Invisible Internet Project or “I2P”. He published a
+document outlining the philosophy of the project, and placed its
+technical goals and design in the context of mixnets and anonymizing
+layers. He also published the specification of two protocols (I2CP and
+I2NP) and their underlying data structures, that formed the basis of the
+network I2P uses today. Lance (“nop”) was last seen in a project meeting
+on November 11, 2003.{%- endtrans %}
+
+.. image:: /_static/images/history/bw1.png
+
+https://www.bloomberg.com/news/articles/2003-09-14/the-underground-internet
+
+.. image:: /_static/images/history/bw2.png
+
+{% trans -%}By fall 2003, I2P, Freenet, and Tor were rapidly developing. Business
+Week published an article on “The Underground Internet” which referenced
+InvisibleNet and discussed “darknets” extensively. jrandom released I2P
+version 0.2 on November 1, 2003, and continued rapid releases for the
+next 3 years. He maintained regular weekly meetings and status notes
+during this time. Several popular services and “respites” emerged during
+this time. Auto updates via clearnet HTTP became available in 2004.{%- endtrans %}
+
+{% trans -%}Through 2004 and 2005, router development continued, and several
+“clients” or applications were added to the I2P package. “Mihi” wrote
+the first streaming protocol implementation and the i2ptunnel interface
+for configuring and starting client tunnels. “Susi” wrote the web mail
+and address book applications SusiMail and SusiDNS. Many people worked
+on the router console web interface. A bridge to make it easier for
+non-I2P clients to communicate over I2P, called “SAM” (Simple Anonymous
+Messaging) was added.{%- endtrans %}
+
+| {% trans -%}In February 2005, zzz installed I2P for the first time.{%- endtrans %}
+| {% trans -%}Anonymity projects were in the news. After surveying the field, he
+  installed Freenet, and found it ambiguous, and difficult to explore.
+  Not only that, it was very resource heavy and it was difficult to get
+  anything to load. Tor and I2P were the other options, and he tried
+  I2P.{% endtrans %}
+
+{% trans -%}zzz had no preconceived plans to contribute to the project, and had
+never written a line of Java. He had maybe used IRC once. At this time,
+I2P was at version 0.5, with maybe a thousand users and three hard-coded
+floodfills. Forum.i2p and postman’s tracker were up and running at the
+time, and weekly meetings and status notes, and releases every couple of
+week were happening.{%- endtrans %}
+
+{% trans -%}By summer 2005, zzz had set up two websites. The first was zzz.i2p,
+which over the years became a central resource for I2P development, and
+still is. The second was stats.i2p, the first site to gather statistics
+on I2P network performance and present graphs on both the network and
+individual routers. While the individual router statistics eventually
+had to be shut down due to the tremendous growth of the network, the
+overall performance graphs remain. We are not sure that he ever planned
+to become the release manger for almost 2 decades, but we are happy he
+did. The project has not only stayed active, it has thrived and scaled
+to the demands of its growth.{%- endtrans %}
+
+.. compound::
+  .. image:: /_static/images/history/statsi2p.png
+     :width: 100%
+
+{% trans -%}On July 27, 2005, jrandom released I2P version 0.6, including an
+innovative new UDP transport protocol he designed called “SSU”, for
+Secure Semi-reliable UDP. It contained features for IP discovery and
+firewall traversal.{%- endtrans %}
+
+{% trans -%}In September 2005, jrandom bundled “Syndie”, his new high-latency
+anonymous messaging system. In October 2005, jrandom ported Snark, a
+Java BitTorrent client, to become an I2P application and bundled it with
+the I2P package. This completed the collection of client applications
+that are still bundled with I2P today.{%- endtrans %}
+
+{% trans -%}In late 2005 and early 2006, jrandom redesigned the way that I2P built
+tunnels. This was a major effort that was done to increase the security
+of the tunnel building, which is crucial to maintain anonymity and
+resist attacks. He worked closely with the Freenet developers, including
+“Toad”, on this design. The new build protocol required new I2NP
+messages and a hard cut-over or “flag day”. These changes were released
+in version 0.6.1.10 on February 16, 2006. This is significant as it is
+the last flag day I2P has had. While, in practice, an 0.6.1.10 router
+would not work well, if at all, in today’s network, we are, technically
+speaking, backwards-compatible with this ten-year-old version today.{%- endtrans %}
+
+{% trans -%}By early 2006, the I2P software was at least feature-complete, but it
+was still not widely-known. jrandom’s view was that it shouldn’t be
+marketed publicly until it was near-perfect, and labeled as version 1.0.
+The network had perhaps a thousand users at the time. Project members
+were discouraged from talking about it online, and the website
+(`i2p.net <http://i2p.net>`__) was unpolished and incomplete.{%- endtrans %}
+
+{% trans -%}On July 27, 2006, jrandom released I2P version 0.6.1.23, including an
+innovative new TCP transport protocol he designed called “NTCP”, for
+new-IO-based TCP. It used Java’s new IO library for efficient handling
+of large numbers of TCP connections.{%- endtrans %}
+
+{% trans -%}In late 2006, jrandom turned his focus to Syndie. He came to see it as
+his top priority, and the “killer application” for I2P. Highly secure
+and almost unusable, it delayed messages for up to two days before
+delivery to resist traffic analysis. Later in 2006, he stopped work on
+the bundled Syndie application and started a new, incompatible,
+standalone messaging application. This application was, confusingly,
+also called “Syndie”. The new Syndie was a large and complex
+development, and it was essentially a one-man project.{%- endtrans %}
+
+{% trans -%}From late 2006 into 2007, core I2P development and releases slowed
+dramatically. From almost 30 releases in 2005 and 13 in the first half
+of 2006, there were only 5 in the second half of 2006 and only 4 in all
+of 2007. During this time, zzz and a developer named Complication had
+source code commit privileges and were making changes, but their
+understanding of the code base was limited. zzz worked, for example, on
+improving i2psnark, fixing bugs, and redesigning the strategy for
+anticipatory tunnel building. But there was a lot more that needed to be
+done. Complication and zzz did what they could, and they wrote the code
+for almost all the changes in the four 2007 releases
+(0.6.1.27–0.6.1.30). By this time, jrandom was providing very little
+guidance, code review, or direction for the project.{%- endtrans %}
+
+{% trans -%}It wasn’t apparent at the time, but the project was in trouble.{%- endtrans %}
+
+{% trans -%}jrandom had almost stopped working on the core I2P router and
+applications. Even the new Syndie, which he had declared as far more
+important than I2P itself, languished. After regular releases through
+March 2007, his next Syndie release, 1.100a, was August 25, 2007. All
+I2P releases were required to be signed by jrandom’s key, and he built
+and signed his last release, 0.6.1.30, on October 7, 2007.{%- endtrans %}
+
+{% trans -%}In November 2007, disaster struck. Complication and zzz received a
+cryptic message from jrandom, that he would have to take time off from
+both Syndie and I2P development for a year or more. He expected that he
+would still be available to sign releases, but was willing to pass the
+release signing key to somebody else. Complication and zzz immediately
+replied with a request for the release key and other credentials, such
+as access to the website, mailing list, CVS administration, and others.
+Unfortunately, they never heard from jrandom again.{%- endtrans %}
+
+{% trans -%}Late 2007 and early 2008, they awaited jrandom’s response, and wondered
+what to do next. However, all of the project infrastructure remained
+active, so it didn’t seem to be an immediate crisis. They knew, however,
+that without the release key or website access, they would have to sign
+with new keys, host the files on a new website, and require everybody to
+manually update since their keys wouldn’t be recognized.{%- endtrans %}
+
+{% trans -%}The second stage of the disaster happened on January 13, 2008. The
+hosting company for almost all `i2p.net <http://i2p.net>`__ servers
+suffered a power outage, and they did not fully return to service. Only
+jrandom had the credentials required to restore service. In addition,
+the centralized CVS source control appeared to be down, so five years of
+source control history appeared to be lost. Luckily, the CVS server was
+up, only the name server for it was down. The full contents of the CVS
+archive was quickly downloaded.{%- endtrans %}
+
+| {% trans -%}Complication, welterde, and zzz quickly made a number of decisions to
+  get the project back up and running. Welterde started a new website at
+  `i2p2.de <http://i2p2.de>`__. I2P needed to move to a decentralized
+  source code control system. They tested bazaar and that did not work
+  well over i2P. Git was just getting started. jrandom had used monotone
+  for Syndie and liked its security properties, and it worked well over
+  I2P, so it was selected.{%- endtrans %}
+| {% trans -%}Several people set up new services. The next release, 0.6.1.31, was
+  signed by Complication and required a manual upgrade. It was released
+  on February 10, 2008.{%- endtrans %}
+
+{% trans -%}The project realized that even though it claimed to be totally
+decentralized, it actually depended on a number of centralized
+resources, above all, on jrandom. Work was done throughout 2008 to
+decentralize the project, and distribute roles to a number of people.
+Additionally, it was realized that development had essentially stalled
+in 2007, because jrandom had stopped working on it, but had not
+delegated to other developers. Nobody had an overall understanding of
+the code base.{%- endtrans %}
+
+{% trans -%}Complication continued to sign the releases through mid-2009, but his
+contributions declined as he focused on activism and other projects.
+Starting with release 0.7.6 on July 31, 2009, zzz would sign the next 49
+releases.{%- endtrans %}
+
+{% trans -%}In December 2008, zzz attended his first CCC, 25C3 in Berlin, and met
+other I2P project team members for the first time, including hottuna and
+welterde. The experience was overwhelming, and also humbling, as he
+struggled to explain I2P to others or answer even basic questions about
+its design and use of cryptography.{%- endtrans %}
+
+{% trans -%}By mid-2009, zzz had come to understand the code base much better. Far
+from being complete or perfect, it was filled with problems and
+scalability issues. In 2009 the project experienced more network growth
+due to its anonymizing properties as well as its circumvention
+abilities. Participants appeared who were beginning to adopt the network
+for reasons like censorship and clearnet issues like blocking of popular
+services. For development gains, in-net auto updates became available
+for the software.{%- endtrans %}
+
+.. image:: /_static/images/history/propaganda.jpeg
+
+{% trans -%}July 2010 zzz briefly presented I2P at the end of Adrian Hong’s
+presentation at HOPE XXXX. Adrian talked about how tech has helped
+expose human rights violations, and the need for defensive tools for
+activists. He urged that we all be ambassadors for all tech, stay on top
+of new tech, and keep the barrier low and educate people about how to
+use the tool we create.{%- endtrans %}
+
+{% trans -%}He also talked about how we need many options for people to use, and
+asked how do we make it easier to support human rights, freedom of
+expression?{%- endtrans %}
+
+{% trans -%}At the end of the talk, zzz was invited on stage to introduce I2P and
+give an overview of what the project was about. The same weekend, it was
+pointed out that the I2P documentation was not in great shape.{%- endtrans %}
+
+{% trans -%}In Fall 2010, zzz declared a moratorium on I2P development until the
+website documentation was complete and accurate. It took 3 months to get
+it done.{%- endtrans %}
+
+{% trans -%}Beginning in 2010, until COVID restrictions were put in place, zzz, ech,
+hottuna, and other I2P contributors have attended CCC ( Chaos
+Communications Congress) every year. Over the years, meeh, Zab, Sadie,
+LazyGravy, KYTV, IDK and others have made the trip to Germany to share
+tables with other projects and celebrate the end of a year of releases.
+The project looks forward to one day being able to meet up again and
+have an in-person yearly roadmap meeting.{%- endtrans %}
+
+{% trans -%}Anoncoin, a digital cryptocurrency that focuses on privacy and anonymity
+for its users was created in 2013. It was the first coin that provided
+built-in support for I2P, as well as Tor that makes it impossible to
+determine the IP address of the user. The developers, including meeh,
+also ran organizations like Privacy Solutions, and provided infrastructure
+support to the I2P network by running services like outproxies and
+reseed servers.{%- endtrans %}
+
+{% trans -%}I2PBote development started to take off again in 2014 when str4d began
+contributing to the project. Bote is a server-less email client — it
+stores email in a `distributed hash
+table <http://en.wikipedia.org/wiki/Distributed_hash_table>`__. Email is
+“automatically encrypted and digitally signed, which ensures no one but
+the intended recipient can read the email, and third parties cannot
+forge them.” ( https://i2pbote.xyz/). The project has existed since
+2009.{%- endtrans %}
+
+.. compound::
+  .. image:: /_static/images/history/bote.png
+     :width: 100%
+
+> I2PBote screenshot Credit: AceBarry
+
+{% trans -%}At Real World Crypto that year, zzz, psi and str4d began to talk about
+and review the plan to update I2P’s cryptography. The same year, the
+project was awarded a $5k donation from Duck Duck Go. Lavabit,
+SecureDrop, RiseUp and Mailpile also received donations for supporting
+better trust and privacy online.{%- endtrans %}
+
+{% trans -%}By late 2014 most new signing crypto was complete, including ECDSA and
+EdDSA. New destination crypto was available; but new router info crypto
+needed to wait a year for the network to upgrade sufficiently.{%- endtrans %}
+
+{% trans -%}During the early part of 2015, zzz posted to Twitter that it would be
+great to have a mini conference for I2P. In Spring, it was decided that
+I2PCon would take place that August over the course of a weekend.{%- endtrans %}
+
+{% trans -%}Hottuna and Sadie organized most of the details, getting graphic assets
+created, posters printed and a banner made for the podium. Nick at
+Hacklab, where the event would take place, helped with making sure the
+space was ready for the event. Sadie reached out to the local infosec
+community and helped secure guest speakers as well. The event happened
+on one of the hottest weekends of the Summer, with attendees arriving
+from America and Europe. The I2P community did an amazing job of
+supporting the event by postering, giving talks, and spreading the word
+in forums and on social media. The talks can be viewed on KYTV’s YouTube
+Channel https://www.youtube.com/channel/UCZfD2Dk6POE-VU8DOqW7VVw{%- endtrans %}
+
+.. compound::
+  .. image:: /_static/images/history/i2pcon1.png
+     :width: 100%
+
+{% trans -%}In January 2016 at Real World Crypto Stanford — str4d gave a talk on the
+crypto migration progress and future plans for the project. zzz and
+others would continue weekly meetings to plan the migration over the
+next few years.{%- endtrans %}
+
+{% trans -%}NTCP2 was implemented in 2018, in release 0.9.36. It was disabled by
+default so that it could be tested. It was enabled in 0.9.37. NTCP1 was
+disabled in 0.9.40.{%- endtrans %}
+
+    {% trans -%}The new I2P transport protocol provides effective resistance against
+    DPI censorship. It also results in reduced CPU load because of the
+    faster, modern cryptography used. It makes I2P more likely to run on
+    low-end devices, such as smartphones and home routers. Both major I2P
+    implementations have full support for NTCP2 and it make NTCP2
+    available for use starting with version 0.9.36 (Java) and 2.20 (i2pd,
+    C++).{%- endtrans %}
+
+{% trans -%}The complete implementation details can be read here
+https://geti2p.net/en/blog/post/2018/08/20/NTCP2{%- endtrans %}
+
+{% trans -%}0.9.39 included extensive changes for new network database types
+(proposal 123). The i2pcontrol plugin was bundled as a web-app to support
+development of RPC applications.{%- endtrans %}
+
+{% trans -%}In 2019, the team decided to attend more conferences. That year IDK and
+zzz attended DefCon, and IDK gave a workshop on I2P application
+development. At Monero Village, zzz gave a talk called I2P for
+Cryptocurrency Developers.{%- endtrans %}
+
+{% trans -%}Late that year, Sadie and IDK attended Our Networks in Toronto, where
+IDK gave a lightning talk about I2P.{%- endtrans %}
+
+{% trans -%}Sadie attended RightsCon in Tunis and the Internet Freedom Festival in
+Valencia to meet with NGO’s and Human Right Defenders. Thanks to the the
+connections we made, the project received grants for usability and
+accessibility support from Open Tech Fund, and most recently Internews.
+This will ensure more user friendly onboarding, UX, and information
+architecture improvements to support the growing interest in the
+network. It will also support specific tooling to help in-need users
+with specific risk surfaces through user research.{%- endtrans %}
+
+.. image:: /_static/images/history/phong.png
+
+{% trans -%}That Summer, Hoàng Nguyên Phong had his research into I2P censorship
+accepted too FOCI at USENIX in Santa Clara. Sadie had supported the
+research and they attended together. I2P Metrics was created during this
+time https://i2p-metrics.np-tokumei.net/, and well as research into more
+resistant reseed servers for the I2P network
+https://homepage.np-tokumei.net/post/notes-i2p-reseed-over-cloudflare/.
+You can read the research report here
+https://homepage.np-tokumei.net/post/notes-otf-wrapup-blogpost/.{%- endtrans %}
+
+{% trans -%}At CCC that year, the decision was made to migrate from Monotone too
+GitLab. The project was one of the last to use Monotone, and it was time
+to prepare to move on. IDK would spend 2020 ensuring the process was as
+smooth as it could be. The pandemic would result in the team not being
+able to see each other that year to celebrate the ( mostly) smooth move
+to Gitlab. On December 10. 2020, the project switched off the old mtn
+i2p.i2p branch, and moved the development of the core Java I2P libraries
+from Monotone to Git officially.{%- endtrans %}
+
+    {% trans -%}Congratulations and thanks to everyone who helped in the git
+    migration, especially zzz, eche|on, nextloop, and our site mirror
+    operators! While some of us will miss Monotone, it has become a
+    barrier for new and existing participants in I2P development and
+    we’re excited to join the world of developers using Git to manage
+    their distributed projects.{%- endtrans %}
+
+https://geti2p.net/en/blog/post/2020/12/10/Hello-git-goodbye-mtn
+
+{% trans -%}0.9.47 enabled the new end-to-end encryption protocol (proposal 144) by
+default for some services. A Sybil analysis and blocking tool was also
+now enabled by default. 0.9.48 enabled the new end-to-end encryption
+protocol (proposal 144) for most services. Preliminary support was added
+for new tunnel build message encryption (proposal 152). There were
+significant performance improvements throughout the router.{%- endtrans %}
+
+{% trans -%}0.9.49 was the release that brought faster crypto. The I2P network
+became faster and more secure. Improvements and fixes for the SSU (UDP)
+transport resulted in faster speeds. The release also started the
+migration to new, faster ECIES-X25519 encryption for routers. The
+project had been working on the specifications and protocols for new
+encryption for several years, and was getting close to the end of it.
+The migration would take several releases to complete.{%- endtrans %}
+
+{% trans -%}To minimize disruption, only new installs and a very small percentage of
+existing installs (randomly selected at restart) would be using the new
+encryption.{%- endtrans %}
+
+{% trans -%}The project had “rekeyed” the network twice before, when changing the
+default signature type, but this was the first time it had changed the
+default encryption type. 0.9.50 enabled DNS over HTTPS for reseeding to
+protect users from passive DNS snooping. There were numerous fixes and
+improvements for IPv6 addresses, including new UPnP support.{%- endtrans %}
+
+.. _31b4:
+
+{% trans -%}1.5.0 — The early anniversary release because it is so good!{%- endtrans %}
+------------------------------------------------------------
+
+    {% trans -%}Yes, that’s right, after 9 years of 0.9.x releases, we are going
+    straight from 0.9.50 to 1.5.0. This does not signify a major API
+    change, or a claim that development is now complete. It is simply a
+    recognition of almost 20 years of work to provide anonymity and
+    security for our users.{%- endtrans %}
+
+    {% trans -%}This release finishes implementation of smaller tunnel build messages
+    to reduce bandwidth. We continue the transition of the network’s
+    routers to X25519 encryption. Of course there are also numerous bug
+    fixes and performance improvements.{%- endtrans %}
+
+    {% trans -%}As usual, we recommend that you update to this release. The best way
+    to maintain security and help the network is to run the latest
+    release.{%- endtrans %}
+
+{% trans -%}Congratulations team. Let’s do another 20.{%- endtrans %}
diff --git a/i2p2www/downloads.py b/i2p2www/downloads.py
index 419d5ac9c..5d46df930 100644
--- a/i2p2www/downloads.py
+++ b/i2p2www/downloads.py
@@ -7,25 +7,25 @@ from random import randint
 
 from i2p2www import CURRENT_I2P_VERSION, MIRRORS_FILE
 
-DEFAULT_MIRROR = {
-    "net": "clearnet", 
-    "protocol": "https", 
-    "domain": "files.i2p-projekt.de", 
-    "path": "/%(version)s/%(file)s", 
-    "org": "i2p-projekt", 
-    "country": "de",
-}
-
-#{
-#    "net": "clearnet",
-#    "protocol": "https",
-#    "domain": "download.i2p2.de",
-#    "path": "/releases/%(version)s/%(file)s",
-#    "org": "i2p2.de",
-#    "org_url": "https://download.i2p2.de", 
+#DEFAULT_MIRROR = {
+#    "net": "clearnet", 
+#    "protocol": "https", 
+#    "domain": "files.i2p-projekt.de", 
+#    "path": "/%(version)s/%(file)s", 
+#    "org": "i2p-projekt", 
 #    "country": "de",
 #}
 
+DEFAULT_MIRROR = {
+    "net": "clearnet",
+    "protocol": "https",
+    "domain": "download.i2p2.de",
+    "path": "/releases/%(version)s/%(file)s",
+    "org": "sigterm.no",
+    "org_url": "https://download.i2p2.de", 
+    "country": "no",
+}
+
 #{
  #   'net': 'clearnet',
  #   'protocol': 'https',
diff --git a/i2p2www/pages/downloads/macros b/i2p2www/pages/downloads/macros
index 5c7ddb344..61a4b9e2a 100644
--- a/i2p2www/pages/downloads/macros
+++ b/i2p2www/pages/downloads/macros
@@ -2,13 +2,13 @@
 {% set i2pinstall_jar_hash     = '8c843c90870223b4808065761d059a02b168b74daddd1773c36f0a0245e201f9' %}
 {% set i2psource_hash          = '26e5f4d95b1a0766870f97b30e57c9a8e98690279c3bf09198e30effabecc450' %}
 {% set i2pupdate_hash          = 'ea1b4b8095f4d6f5568ce879242e1d5b077de1beb4366f4a75a75cffd559ee7f' %}
-{% set i2p_android_hash        = '2795d966a498aa3c4a8e43176e3c0fb3f3ae1012689361f991e48edfa542dd4f' %}
+{% set i2p_android_hash        = '6ed5622ea592f4e5d24723a8525147d4bd30b94ada7b2e6613c683df583e826a' %}
 {% set i2p_macnative_hash      = '70447e8a352654afd940cfc6c05f094732de7ab05db7c42c173e49f37259d601' %}
 
 {% set i2p_windows_subver = '' %}
 {% set i2p_macosx_launcher_version = '0.1.8' %}
 
-{% set i2p_android_version = '0.9.50' %}
+{% set i2p_android_version = '1.5.0' %}
 {% set i2p_android_version_kytv = '0.9.22' %}
 {% set i2p_android_version_fdroid = '0.9.47-1' %}
 
diff --git a/i2p2www/static/styles/duck/default.css b/i2p2www/static/styles/duck/default.css
index b015a8d80..82a1322cd 100644
--- a/i2p2www/static/styles/duck/default.css
+++ b/i2p2www/static/styles/duck/default.css
@@ -586,6 +586,15 @@ div#content .inner ul.DREAD {
     padding-right: 1.3rem;
 }
 
+.compound img {
+    max-width: 80% !important;
+    box-shadow: none !important;
+}
+
+blockquote {
+    margin-left: 5%;
+}
+
 #post li img {
 	display: inline-block;
 	margin-right: 50%;
diff --git a/site-updater-docker.sh b/site-updater-docker.sh
index 20bb0b489..649c3dc38 100755
--- a/site-updater-docker.sh
+++ b/site-updater-docker.sh
@@ -49,4 +49,4 @@ cd "$DIR"
 git pull origin master
 docker build $i2p_www_docker_build_args -t i2p-mirror/i2p.www$suffix .
 docker rm -f mirror.i2p.www$suffix
-docker run $i2p_www_docker_run_args --name mirror.i2p.www$suffix -p 0.0.0.0:$port:80 i2p-mirror/i2p.www$suffix
+docker run $i2p_www_docker_run_args --name mirror.i2p.www$suffix -p 0.0.0.0:$port:80 i2p-mirror/i2p.www$suffix $@
-- 
GitLab