Lokinet is an anonymous, decentralized and IP based overlay network for the internet.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Jeff Becker 9ea13a9ee3
ingore paths that drop exit traffic
5 years ago
.github
android
client
cmake fix windows 5 years ago
contrib Merge remote-tracking branch 'origin/master' 5 years ago
crypto
daemon Initial No-Op Crypto implementation 5 years ago
debian update debian stuff 5 years ago
docker
docs Merge remote-tracking branch 'origin/master' 5 years ago
include make format 5 years ago
jni
libabyss make format 5 years ago
libhttp
libutp revert modification to libutp 5 years ago
llarp ingore paths that drop exit traffic 5 years ago
osx-setup osx pkg updates 5 years ago
test Update LinkLayer tests to use no-op crypto 5 years ago
ui-win32 Merge pull request #617 from majestrate/master 5 years ago
vendor
win32-setup bump version 5 years ago
.clang-format
.dir-locals.el
.dockerignore
.gitignore
.gitlab-ci.yml
.travis.yml well if IRC isn't going to work, add discord webhooks 5 years ago
CMakeLists.txt Fix ASAN build 5 years ago
CMakeSettings.json Fixup MSVC build 5 years ago
CONTRIBUTING.md
Doxyfile
LICENSE
Makefile add custom single threaded allocator for utp buffers 5 years ago
doc
lokinet-bootstrap
lokinet-bootstrap-testnet.exe
lokinet-bootstrap.exe
lokinet-docker.ini
module.modulemap
motto.txt jeff forgot to bump 5 years ago
readme.md Add travis badge 5 years ago
run-lokinet.bat
testnet_readme.md

readme.md

LokiNet

LokiNet is the reference implementation of LLARP (low latency anonymous routing protocol), a layer 3 onion routing protocol.

You can learn more about the high level design of LLARP here

And you can read the LLARP protocol specification here

You can view documentation on how to get started here .

build status travis-ci

Usage

see the documentation on how to get started.

Also read the Public Testing Guide for installation and other helpful information.

Running on Linux

DO NOT RUN AS ROOT, run as normal user. This requires the binary to have the proper setcaps set by make install on the binary.

to run as client:

$ lokinet -g
$ lokinet-bootstrap
$ lokinet

to run as relay:

$ lokinet -r
$ lokinet-bootstrap
$ lokinet

Running on MacOS/UNIX/BSD

YOU HAVE TO RUN AS ROOT, run using sudo. Elevated privileges are needed to create the virtual tunnel interface.

The MacOS installer places the normal binaries (lokinet and lokinet-bootstrap) in /usr/local/bin which should be in your path, so you can easily use the binaries from your terminal. The installer also nukes your previous config and keys and sets up a fresh config and downloads the latest bootstrap seed.

to run as client:

$ lokinet -g
$ lokinet-bootstrap
$ sudo lokinet

to run as relay:

$ lokinet -r
$ lokinet-bootstrap
$ sudo lokinet

Running on Windows

DO NOT RUN AS ELEVATED USER, run as normal user.

to run as client, run the run-lokinet.bat batch file as your normal user.

Building

Build requirements:

  • GNU Make
  • CMake
  • C++ 17 capable C++ compiler
  • gcovr (if generating test coverage with gcc)

Linux

build:

$ sudo apt install build-essential cmake git libcap-dev wget
$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ make -j8

install:

$ sudo make install

alternatively make a debian package with:

$ debuild -uc -us -b

this puts the built files in ../

MacOS

build: make sure you have cmake and xcode command line tools installed

$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ make -j8

install:

$ sudo make install

Windows

build (where $ARCH is your platform - i686 or x86_64):

$ pacman -Sy base-devel mingw-w64-$ARCH-toolchain git libtool autoconf mingw-w64-$ARCH-cmake
$ git clone https://github.com/loki-project/loki-network.git
$ cd loki-network
$ mkdir -p build; cd build
$ cmake .. -DCMAKE_BUILD_TYPE=[Debug|Release] -DSTATIC_LINK_RUNTIME=ON -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -G 'Unix Makefiles'

install (elevated) to $PROGRAMFILES/lokinet or $ProgramFiles(x86)/lokinet:

$ make install

if cross-compiling, install mingw-w64 from your distro's package manager, or build from source, then:

$ mkdir -p build; cd build
$ export COMPILER=clang # if using clang for windows
$ cmake .. -DCMAKE_BUILD_TYPE=[Debug|Release] -DSTATIC_LINK_RUNTIME=ON -DCMAKE_CROSSCOMPILING=ON -DCMAKE_TOOLCHAIN_FILE=../contrib/cross/mingw[32].cmake

this will create a static binary that can be installed anywhere, with no other dependency other than libc (minimum v6.1)

Solaris 2.10+

NOTE: Oracle Solaris users need to download/compile the TAP driver from http://www.whiteboard.ne.jp/~admin2/tuntap/

The generated binaries may work on Solaris 2.10 or earlier, you're on your own. (Recommended: -static-libstdc++ -static-libgcc, and the TAP driver if not already installed on the target system.)

Building on a v2.10 or earlier system is unsupported, and may not even work; recent GCC releases have progressively dropped support for older system releases.

build:

$ sudo pkg install build-essential gcc8 wget tuntap cmake (optional: ninja ccache - from omnios extra) (OmniOS CE)
$ sudo pkg install base-developer-utilities developer-gnu developer-studio-utilities gcc-7 wget cmake (Oracle Solaris, see note)
$ sudo pkg install build-essential wget gcc-8 documentation/tuntap header-tun tun (optional: ninja ccache) (all other SunOS)
$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ gmake -j8

install:

$ sudo make install

NetBSD (and other platforms where pkgsrc is the native package mgr)

TODO: add pkgsrc instructions

OpenBSD (uses legacy netbsd pkg manager)

build:

# pkg_add wget cmake git (optional: ninja ccache)
$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ gmake -j8

install (root):

# gmake install

FreeBSD

build:

$ pkg install wget cmake git
$ git clone https://github.com/loki-project/loki-network
$ cd loki-network
$ gmake -j8

install (root):

# gmake install