Lokinet is an anonymous, decentralized and IP based overlay network for the internet.
Go to file
Jason Rhinelander 36792d4337
Fix multi-field < ordering
Lots and lots of places in the code had broken < operators because they
are returning something like:

    foo < other.foo or bar < other.bar;

but this breaks both the strict weak ordering requirements that are
required for the "Compare" requirement for things like
std::map/set/priority_queue.

For example:

    a = {.foo=1, .bar=3}
    b = {.foo=3, .bar=1}

does not have an ordering over a and b (both `a < b` and `b < a` are
satisfied at the same time).

This needs to be instead something like:

    foo < other.foo or (foo == other.foo and bar < other.bar)

but that's a bit clunkier, and it is easier to use std::tie for tuple's
built-in < comparison which does the right thing:

    std::tie(foo, bar) < std::tie(other.foo, other.bar)

(Initially I noticed this in SockAddr/sockaddr_in6, but upon further
investigation this extends to the major of multi-field `operator<`'s.)

This fixes it by using std::tie (or something similar) everywhere we are
doing multi-field inequalities.
2022-10-13 16:29:13 -03:00
.github Update issue templates 2019-04-17 13:33:37 +10:00
cmake Remake non-mac icon; regenerate during build for windows 2022-10-06 21:32:58 -03:00
contrib Remake non-mac icon; regenerate during build for windows 2022-10-06 21:32:58 -03:00
crypto Replace logging with oxen-logger 2022-07-15 22:17:59 -03:00
daemon Merge pull request #1991 from jagerman/lokinet-vpn-cleanups 2022-10-06 16:09:56 -03:00
docs Merge pull request #1969 from majestrate/wintun-windivert-2022-08-02 2022-09-21 13:37:41 -03:00
external oxen-mq update to tagged stable release 2022-10-06 14:01:09 -03:00
gui@7b0f1aacdf Remake non-mac icon; regenerate during build for windows 2022-10-06 21:32:58 -03:00
include fix up log statements 2022-08-22 16:50:46 -04:00
jni changeset for windows port 2022-09-08 14:24:59 -04:00
llarp Fix multi-field < ordering 2022-10-13 16:29:13 -03:00
pybind changeset for windows port 2022-09-08 14:24:59 -04:00
test Fix obsolete oxenmq/hex.h usage 2022-10-06 14:29:50 -03:00
win32-setup changeset for windows port 2022-09-08 14:24:59 -04:00
.clang-format Config file improvements (#1397) 2020-10-07 18:22:58 -04:00
.clang-tidy Tweak clang-tidy rules 2021-03-04 16:51:18 -04:00
.dir-locals.el add emacs dir-locals 2018-05-21 10:52:30 -04:00
.dockerignore Add fail-able docker build for gcc trunk 2019-08-02 10:28:09 +01:00
.drone.jsonnet Remake non-mac icon; regenerate during build for windows 2022-10-06 21:32:58 -03:00
.gitattributes Add mainnet/testnet bootstrap files into repo 2021-09-10 19:38:32 -03:00
.gitignore Add mainnet/testnet bootstrap files into repo 2021-09-10 19:38:32 -03:00
.gitmodules Build apple/macos GUI from lokinet project 2022-08-12 21:13:39 -03:00
.swift-version add swift version bullshit file and additional bullshittery 2021-09-02 14:17:08 -04:00
CMakeLists.txt bake in bootstrap fallbacks at build time 2022-10-06 13:59:49 -03:00
CMakeSettings.json Fixup MSVC build 2019-05-15 23:03:24 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2019-07-19 22:08:47 -05:00
CONTRIBUTING_es.md Create CONTRIBUTING_es.md 2019-07-19 22:04:50 -05:00
LICENSE make it so github sees the repo is gpl3 2022-01-28 11:20:22 -05:00
readme.md restructure readme and docs 2022-09-04 10:04:15 -04:00
readme_es.md Add missing dep 'cppzmq' (#1764) 2021-10-07 11:54:59 -04:00
readme_fr.md add french readme 2022-06-07 16:45:35 -04:00
readme_ru.md Add missing dep 'cppzmq' (#1764) 2021-10-07 11:54:59 -04:00

readme.md

Lokinet

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

Installation instructions can be found here.

You can learn more about the high level, how to use it and the internals of the protocol here

Build Status

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Copyright © 2018-2022 The Oxen Project
Copyright © 2018-2022 Jeff Becker
Copyright © 2018-2020 Rick V. (Historical Windows NT port and portions)