mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-10-27 15:46:33 +00:00
Lokinet is an anonymous, decentralized and IP based overlay network for the internet.
decentralizeddecentralized-internetdhtipv4-networkipv4-supportlokinetonion-routingoverlay-networkvpn
.vscode | ||
client | ||
contrib | ||
daemon | ||
doc | ||
include | ||
llarp | ||
test | ||
vendor | ||
.clang-format | ||
.dir-locals.el | ||
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
Makefile | ||
motto.txt | ||
readme.md |
LokiNet
Lokinet is a private, decentralized and Sybil resistant overlay network for the internet, it uses a new routing protocol called LLARP (Low latency anonymous routing protocol)
You can learn more about the high level design of LLARP here
And you can read the LLARP protocol specification here
Building
# or your OS or distro's package manager
$ sudo apt install build-essential libtool autoconf cmake git
$ git clone --recursive https://github.com/loki-project/lokinet-builder
$ cd lokinet-builder
$ make
Building on Windows (mingw-w64 native, or wow64/linux/unix cross-compiler)
#i686 or x86_64
#if cross-compiling from anywhere other than wow64, export CC and CXX to
#$ARCH-w64-mingw32-g[cc++] respectively
$ pacman -Sy base-devel mingw-w64-$ARCH-toolchain git libtool autoconf cmake
$ git clone --recursive https://github.com/loki-project/lokinet-builder
$ cd lokinet-builder
$ make ensure sodium
$ cd build
$ cmake ../deps/llarp -DSODIUM_LIBRARIES=./prefix/lib/libsodium.a -DSODIUM_INCLUDE_DIR=./prefix/include -G "Unix Makefiles" -DHAVE_CXX17_FILESYSTEM=ON
$ make
$ cp llarpd ../lokinet.exe
Building on Windows using Microsoft C/C++ (Visual Studio 2017)
- clone https://github.com/loki-project/lokinet-builder from git-bash or whatever git browser you use
- open
%CLONE_PATH%/lokinet-builder/deps/sodium/builds/msvc/vs2017/libsodium.sln
and build one of the targets - create a
build
folder in%CLONE_PATH%/lokinet-builder
- run cmake-gui from
%CLONE_PATH%/lokinet-builder/deps/llarp
as the source directory- define
SODIUM_LIB
to%CLONE_PATH%/lokinet-builder/deps/sodium/bin/win32/%CONFIG%/%TOOLSET%/%TARGET%/libsodium.lib
- define
SODIUM_INCLUDE_DIR
to%CLONE_PATH%/lokinet-builder/deps/sodium/src/libsodium/include
- define
HAVE_CXX17_FILESYSTEM
toTRUE
- select
Visual Studio 2017 15 %ARCH%
as the generator - enter a custom toolset if desired (usually
v141_xp
)
- define
- generate the developer studio project files and open in the IDE
- select a configuration
- press F7 to build everything
Running
$ ./lokinet
or press Debug
/Local Windows Debugger
in the visual studio standard toolbar
Development
Please note development builds are likely to be unstable.
Build requirements:
- CMake
- ninja (for unit testing with Google Tests)
- libsodium >= 1.0.14 (included here)
- c++ 11 capable C++ compiler
- if you have C++17
<filesystem>
or<experimental/filesystem>
declared and defined in your platform's C++ toolchain, re-run CMake (inlokinet-builder/build
) with-DHAVE_CXX17_FILESYSTEM=ON
. - since each platform seems to have its own idea of where
std::[experimental::]filesystem
is defined, you will need to manually specify its library inLDFLAGS
orCMAKE_x_LINKER_FLAGS
as well.
Windows:
- Mingw-w64 is recommended for 32 or 64-bit builds.
- It is possible to compile with Microsoft C++ (v19 or later from VS2015+).
cpp17::filesystem
invendor/cppbackport-master
is not available for Windows.
Boxed warning
Inbound sessions are unsupported on Windows Server systems.
Ignore this warning at your own peril.
Building a debug build:
#in lokinet-builder/
$ cd build
$ make