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
despair86 bdc54835c2 initial windows server port. Requires Windows 2000 Server or later.
- updated CMake build script
- builds with Microsoft C++ 19.1x. such builds require Windows 8.1 or later
  unless you have the .NET Server 2003-toolset (v141_xp)
- windows port requires a C++17 compiler since cpp17::filesystem is POSIX-only
- HAVE_CXX17_FILESYSTEM manual toggle in CMake. You must manually specify where
  std::[experimental::]filesystem is defined in LDFLAGS or CMAKE_x_LINKER_FLAGS.
- IPv6 support can be added at any time, and the windows sdk still has that
  inline getaddrinfo(3) if it can't find a suitable IPv6 stack.
- inline code for mingw-w64: there's a few bits and pieces still missing simply because
  mingw-w64 derives its windows sdk from wine and reactos, and then writing all the newer
  stuff into it by hand straight from the MSDN manpages.
- misc. C++11 stuff (nullptr and friends)
- Internal file handling code takes UTF-8 or plain 8-bit text, NTFS is UTF-16, so
  std::filesystem::path::c_str() is wchar_t. That's no good unless you first
  call std::filesystem::path::string().
- implemented getifaddrs(3) and if_nametoindex(3) on top of GetAdapters[Info|Addresses](2).
- updated readme with new info

BONUS: may implement Solaris/illumos IOCP someday...

-despair86
6 years ago
.vscode get rid of wizard and autogenerate configs if not present with sane defaults 6 years ago
client remove unused code 6 years ago
contrib initial windows server port. Requires Windows 2000 Server or later. 6 years ago
daemon initial windows server port. Requires Windows 2000 Server or later. 6 years ago
doc * logging updates 6 years ago
include initial windows server port. Requires Windows 2000 Server or later. 6 years ago
llarp initial windows server port. Requires Windows 2000 Server or later. 6 years ago
test * logging updates 6 years ago
vendor initial windows server port. Requires Windows 2000 Server or later. 6 years ago
.clang-format make format 6 years ago
.dir-locals.el add emacs dir-locals 6 years ago
.gitignore ignore daemon.ini 6 years ago
CMakeLists.txt initial windows server port. Requires Windows 2000 Server or later. 6 years ago
LICENSE zlib 6 years ago
Makefile * logging updates 6 years ago
i2p.rocks.signed.txt update test rc file for i2p.rocks 6 years ago
motto.txt bump version 6 years ago
readme.md initial windows server port. Requires Windows 2000 Server or later. 6 years ago

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 to TRUE
    • select Visual Studio 2017 15 %ARCH% as the generator
    • enter a custom toolset if desired (usually v141_xp)
  • 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 (in lokinet-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 in LDFLAGS or CMAKE_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 in vendor/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