From 4992b9b02c26fff0aa3f0e6ea4eb3496c8961807 Mon Sep 17 00:00:00 2001 From: dan Date: Thu, 26 Jan 2023 12:31:25 -0800 Subject: [PATCH] Added path-build to documentation - re-structure docs - add diagrams --- docs/architecture.md | 46 ++++++++++++++++++++++++++++ docs/high-level-overview.md | 19 ------------ docs/ideal-ux.md | 4 +-- docs/install.md | 2 +- docs/lokinet_pathbuild_no_steps.png | Bin 0 -> 106676 bytes docs/net-comparisons.md | 1 - docs/project-structure.md | 12 ++++---- docs/readme.md | 38 +++++++++-------------- 8 files changed, 70 insertions(+), 52 deletions(-) create mode 100644 docs/architecture.md delete mode 100644 docs/high-level-overview.md create mode 100644 docs/lokinet_pathbuild_no_steps.png diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 000000000..8fd7d51ec --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,46 @@ +# High-Level Architecture + +## Path Building + +

+ +

+ +Starting from the top, here's a high-level overview of how the lokinet client builds a path to a terminating node + +1. Client semi-randomly selects SN's for hops 2 and 3 using Introset Hash Ring (IHR) + - First hop is sticky: upon initialization of lokinet, 4-5 first hops are selected + +2. Message sent to hop 1 + - Message consists of eight records in a linked list. Four hops are typically used, leaving the last 4 links as dummy records + - Each record contains a TX (upstream) path ID and RX (downstream) path ID + - Each record has a pointer to the next record, except for the final hops' record; the pointer here is recursive, signalling the end of the path-build + +3. Hop 2 pops top record, appends metadata, and pushes record to the back of linked list + - Hop adds metadata to the record, such as optional lifetime, pubkey to derive shared secret, etc + +4. Steps 2-3 are repeated for the remaining hops until destination is reached + - Final hop reads the recursive pointer signalling the end of the path-build process + +5. Upon completion, plain-text reply is propagated backwards, where the client can then decrypt all records + +6. Client measures latency + - A) Routing message is sequentially encrypted using hop 4's key through hop 1's key + - At each iteration, the nonce is permuted by XOR'ing the previous nonce with the hash of the secret key of each hop + - B) Routing message is sent s.t. each hop can decrypt, with final hop receiving plain-text + - Each hop appends latency and expiration time data, with the final hop interpreting the plain-text as a routing message and sending it back to the client + +7. Introset is published to IHR upon successful completion; introset contains: + - Path ID's of routers + - Latency and expiration time for each hop + - DNS SRV records + - etc + +### Failure Cases + +1. Next hop is an invalid SN +2. Cannot connect to SN + +In either case, the path-build status is sent backwards with an error flag. Once received by the client, metadata related to the prospective path is wiped and the path forgotten + + diff --git a/docs/high-level-overview.md b/docs/high-level-overview.md deleted file mode 100644 index 1d2baea84..000000000 --- a/docs/high-level-overview.md +++ /dev/null @@ -1,19 +0,0 @@ -## onion routing overview - - - - - - - -## endpoint zmq api - - - -## DNS - - - - - - diff --git a/docs/ideal-ux.md b/docs/ideal-ux.md index 7cda8e29a..9b78c763a 100644 --- a/docs/ideal-ux.md +++ b/docs/ideal-ux.md @@ -8,7 +8,7 @@ The `.snode` gtld refers to a router on the network by its public ed25519 key. The `.loki` gtld refers to clients that publish the existence anonymously to the network by their ed25519 public key. (`.loki` also has the ability to use short names resolved via external consensus method, like a blockchain). -# How Do I use Lokinet? +# How do I use Lokinet? set system dns resolver to use the dns resolver provided by lokinet, make sure the upstream dns provider that lokinet uses for non lokinet gtlds is set as desired (see lokinet.ini `[dns]` section) @@ -16,7 +16,7 @@ configure exit traffic provider if you want to tunnel ip traffic via lokinet, by note: per flow (ip+proto/port) isolation is trivial on a technical level but currently not implemented at this time. -# Can I run lokinet on a soho router +# Can I run lokinet on a soho router? Yes and that is the best way to run it in practice. diff --git a/docs/install.md b/docs/install.md index 17cf9da08..21d69dd5b 100644 --- a/docs/install.md +++ b/docs/install.md @@ -30,7 +30,7 @@ You can get the latest stable release for lokinet on windows or macos from https You do not have to build from source if you do not wish to, we provide [apt](#deb-install) and [rpm](#rpm-install) repos. -#### APT repository +#### APT Repository You can install debian packages from `deb.oxen.io` by adding the apt repo to your system. diff --git a/docs/lokinet_pathbuild_no_steps.png b/docs/lokinet_pathbuild_no_steps.png new file mode 100644 index 0000000000000000000000000000000000000000..7967150e34cbe06231782b7210ca784e2f328bbd GIT binary patch literal 106676 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/net-comparisons.md b/docs/net-comparisons.md index 65264cd37..4dc1ffc0e 100644 --- a/docs/net-comparisons.md +++ b/docs/net-comparisons.md @@ -1,6 +1,5 @@ # How is lokinet different than ... - ## Tor Browser Tor browser is a hardened Firefox Web Browser meant exclusively to surf http(s) sites via Tor. It is meant to be a complete self contained browser you open and run to surf the Web (not the internet) anonymously. diff --git a/docs/project-structure.md b/docs/project-structure.md index 7c06c70f8..61c63c291 100644 --- a/docs/project-structure.md +++ b/docs/project-structure.md @@ -1,8 +1,8 @@ -# Lokinet project structure +# Lokinet Project Structure this codebase is a bit large. this is a high level map of the current code structure. -## lokinet executable main functions `(/daemon)` +## Lokinet executable main functions `(/daemon)` * `lokinet.cpp`: lokinet daemon executable * `lokinet.swift`: macos sysex/appex executable @@ -10,14 +10,14 @@ this codebase is a bit large. this is a high level map of the current code struc * `lokinet-bootstrap.cpp`: legacy util for windows, downloads a bootstrap file via https -## lokinet public headers `(/include)` +## Lokinet public headers `(/include)` `lokinet.h and lokinet/*.h`: C headers for embedded lokinet `llarp.hpp`: semi-internal C++ header for lokinet executables -## lokinet core library `(/llarp)` +## Lokinet core library `(/llarp)` * `/llarp`: contains a few straggling compilation units * `/llarp/android`: android platform compat shims @@ -49,7 +49,7 @@ this codebase is a bit large. this is a high level map of the current code struc * `/llarp/win32`: windows specific code -## component relations +## Component relations ### `/llarp/service` / `/llarp/handlers` / `/llarp/exit` @@ -82,7 +82,7 @@ node to node traffic logic and wire protocol dialects * `//TODO: separte implementation details from interfaces` -## platform contrib code `(/contrib)` +## Platform contrib code `(/contrib)` grab bag directory for non core related platform specific non source code diff --git a/docs/readme.md b/docs/readme.md index 534a19497..25e4b21ad 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -2,33 +2,25 @@ This is where Lokinet documentation lives. -[How Do I install Lokinet?](install.md) +## Contents: -[How Do I use Lokinet?](ideal-ux.md) +### Local Environment Set-Up + - [Installing Lokinet](install.md) + - [Using Lokinet](ideal-ux.md) -## High level -[How is Lokinet different to \[insert network technology name here\] ?](net-comparisons.md) +### High Level Overview + - [Lokinet versus \[insert network technology name here\]](net-comparisons.md) + - [Lokinet architecture](architecture.md) + - [Lokinet and DNS](dns-overview.md) + - [Limitations of Lokinet](we-cannot-make-sandwiches.md) - - -[Lokinet and DNS](dns-overview.md) - -[What Lokinet can't do](we-cannot-make-sandwiches.md) - -## Lokinet Internals - -[High level layout of the git repo](project-structure.md) - - -[Build Doxygen Docs for internals](doxygen.md) - -## Lokinet (SN)Application Developer Portal - - -[What are "SNApps" and how to develop them.](snapps-dev-guide.md) - -[How do I embed lokinet into my application?](liblokinet-dev-guide.md) +### Lokinet Internals + - [Git repo layout and project structure](project-structure.md) + - [Building Doxygen Docs for internals](doxygen.md) +### Lokinet (SN)Application Developer Portal + - [SNapps development overview](snapps-dev-guide.md) + - [Embedded Lokinet](liblokinet-dev-guide.md)