Installing Lokinet on Ubuntu


This blog post will guide you through the process of installing lokinet using our apt repo and is aimed at people whom are just getting into linux and may not know how to do such.


If you want to learn don't copy paste, if you want it to just do stuff and don't care yeah just copy paste.

Open up a terminal, in stock ubuntu it's control alt T.

Now we want to grab the apt repo's public keys, this is used to verify packages.

curl -s | sudo apt-key add -

(This requires you to enter your admin password because it is using sudo)

Next we want to add the apt repo to the system's apt repo list:

echo "deb $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/

(This will auto detect what …

Read more ...

Quick Lokinet Update, June 2019 (1 year in).

One year has passed since working on lokinet full time and we've managed to make something that works and does stuff. The upcoming release is being held off until "stability fixes" are applied. When lokinet works it works very well, the problem we face right now is (I suspect) some lingering path handover logic errors which can be tuned out with time. I'd really like to do a release but have been to hold off until the "stability fixes" are applied. I don't know how long that will take and would rather do a release now so we can start iterating on scaling the network and handling any possible issues in that. Over all I suspect are ready for launch.

Lokinet on mobile

The next step in development is the mobile port, which I am dreading. The lokinet code was not made with mobile in mind, it was made to …

Read more ...

i2pd 2.24 released

i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client.

I2P (Invisible Internet Protocol) is a universal anonymous network layer. All communications over I2P are anonymous and end-to-end encrypted, participants don't reveal their real IP addresses.

I2P client is a software used for building and using anonymous I2P networks. Such networks are commonly used for anonymous peer-to-peer applications (filesharing, cryptocurrencies) and anonymous client-server applications (websites, instant messengers, chat-servers).

I2P allows people from all around the world to communicate and share information without restrictions.

i2pd is licensed under the 3-clause BSD license, binary packages are available for Debian, Ubuntu, OS X, FreeBSD, Android and Windows.

View release on GitHub

Changelog for i2pd version 2.24:


  • Support of transient keys for LeaseSet2
  • Support of encrypted LeaseSet2
  • Recognize signature type 11 (RedDSA)
  • Support websocket connections over HTTP proxy
  • Ability to disable full addressbook persist


  • Don't load peer profiles if non-persistant …

Read more ...

Why I wrote LLARP

Recently I happened across a bitcoin talk thread while peeking at my blog's http access log at a time when I should've been doing work instead.

I'll probably take this chance to make it very clear what llarp/lokinet is and is not and why it even exists in the first place.

I can say that, in my opinion, llarp/lokinet is attempting to be a protocol to replace i2p.

I2P has a mountain of technical debt in their protocols that have been taking several (5+) years now to rectify. It is in fact easier to rewrite the whole thing than to rebase the protocol atop sanity. I am not the first person to suggest this by any means, nor the first to attempting it. The first attempt I have seen was the shadow protocol from 2013. For whatever reason it died off, I personally suspect it was because of …

Read more ...

Lokinet Update March 2019

We are most likely on schedule for an end of Q1 2019 "public release" of lokinet if all goes well in the internal testing phase. ( don't know why we are considering it a public release since the code is public already but eh... ‾\(._.)/‾ ) We have an internal code freeze in mid march and I hope to have a stable build ready.

Unit tests are HARD D:

It's been about 10 months since I started working on lokinet full time. The master branch on github has been relatively stable for 2 months and work on the staging branch is very heavy. We have currently 855 test cases across 95 test suites and we're not even close to full test coverage. You can generate a progress report on unit test converage as of now (March 2019) here. My personal goal is to get at least 85% coverage on the code base by …

Read more ...

i2pd 2.23.0 static arm build

my unofficial static arm build for i2pd 2.23.0 is up here.

make sure to check the signature and verify the hash


e4cf21c06ae441030253dcb636eb05f0b5dc6405879b86b3b8f734a3195856ab20163c780c1c144e47f50dd9f8dc748bd243739262e2bd98fe05dac473c5c4b8  i2pd

the build was compiled with -Os and stripped for smaller size, so you may have better speed on systems without speculative execution like the raspberry pi 1.


  • openssl 1.1.1a
  • boost 1.62.0

nntpchan 3.1.0 released

Rejoice, nntpchan 3.1.0 has been tagged.

This release is a security update so All NODES are advised to upgrade

  • prevent mod message pubkey spoofing
  • support for ed25519-blake2b signatures

Download on github here and join us on IRC to peer into the main network.

we are on the following networks:

rizon: #nntpchan

freenode: #nntpchan

Kovri and the curious case of code rot (part 3)

Before the final post I'll give on this topic, a bit of backstory as I understand it.

During winter of 2015 (or was it 2016? I forget.) orignal the original author of i2pd took a 2 week winter vacation while the codebase was in shambles. During this break some of the contributors of i2pd decided to hard fork the codebase starting with turning all the tabs to spaces. It is unclear if Anonimal was a part of the group or not.

When original came back he flipped his living shit and put his new changes that used openssl onto Bitbucket and then later merged it on Github in another branch. This is the historical reason why i2pd uses the openssl branch and not master as the primary branch.

Kovri is based off the code base before the openssl branch which is truly godawful, however almost none of it remains in …

Read more ...

Kovri and the curious case of code rot (part 2)

Kovri has decided to fork the i2p protocol stack [1]. I too have had frustrations with the direction and pase of java i2p and I can understand why they made this descision.

In my personal opinion, I don't think kovri will succeed in their fork of the i2p protocol stack with its current talent pool. After their 2 years of shuffling whitespaces around and not noticing code leaking regions of memory (until stiffing a security researcher that found it while exploit hunting) I don't think they'll produce a minimum viable product for a very very very long time, if ever. This is not meant to poke fun at the people at monero and kovri as I really wanted to see the fork succeed, very much so and I am dissapointed in the net result of the effort.

Parallell to all this kovri tom foolery, since Late April 2018 I have …

Read more ...

Quick Lokinet Update December 2018

A very large amount of work happened with lokinet development since the last blog update in august. As of writing, exit traffic works, hidden services work and service node traffic is wired up but untested. I also took the liberty of refactoring the dns code used in lokinet.

If lokinet is to thrive you want to make the transition to it as painless as possible, hence why I chose DNS as the primary mechanism of controlling when to look up things on the network. Most if not all network aware programs use DNS first when trying to figure out how to connect to something, excpet if it looks like an IP address. It's far more complex under the hood but from the end user's point of view it's effectively so.

By having lokinet expose IP and DNS only, everything written should trivially work with little or no application porting needed …

Read more ...