From 479fba6bd002798e408e183e8685ea3b526c9761 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 10 Dec 2021 11:14:55 -0500 Subject: [PATCH] add big chunks of docs --- docs/doxygen.md | 27 +++++++++++++++++++++++++++ docs/net-comparisons.md | 35 +++++++++++++++++++++++++++++++++++ docs/readme.md | 33 ++++++++++----------------------- 3 files changed, 72 insertions(+), 23 deletions(-) create mode 100644 docs/doxygen.md create mode 100644 docs/net-comparisons.md diff --git a/docs/doxygen.md b/docs/doxygen.md new file mode 100644 index 000000000..3b2fcdffe --- /dev/null +++ b/docs/doxygen.md @@ -0,0 +1,27 @@ + +# Doxygen + +building doxygen docs requires the following: + +* cmake +* doxygen +* sphinx-build +* sphinx readthedocs theme +* breathe +* exhale + +install packages: + + $ sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe python3-pip + $ pip3 install --user exhale + +build docs: + + $ mkdir -p build-docs + $ cd build-docs + $ cmake .. && make doc + +serve built docs via http, will be served at http://127.0.0.1:8000/ + + $ python3 -m http.server -d docs/html + diff --git a/docs/net-comparisons.md b/docs/net-comparisons.md new file mode 100644 index 000000000..15ce8cf2d --- /dev/null +++ b/docs/net-comparisons.md @@ -0,0 +1,35 @@ +# 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. +Lokinet does not provide a web browser at this time because that is not a small task to do at all, and an even larger task to do in a way that is secure, robust and private. Community Contribuitions Welcomed. + +## Tor/Onion Services + +While Tor Browser is the main user facing product made by Tor Project the main powerhouse is Tor itself which provides a way to anonymize tcp connections made by an inititor and optionally additionally the recipiant in the case of when using a .onion address. Lokinet provides a similar feature set but can carry anything that can be encapsulated in an IP packet (currently only unicast traffic). + +Lokinet differs greatly from the UX side vs Tor as by default we do not provide exit connectivity by default. This is primarily because we cannot do this by default as in practice each user's threat model greatly varies in scope and breadth thus there exists no one size fits all way to do exits that works for everyone. Users obtain their exit node information out of band at the moment. In the future We want to add decentralized network wide service discovery not limited to just exit providers but this is currently un implemented. We think that by being hands of on exit node requirements a far more diverse set of exit nodes can exist. In addition to having totally open unrestrcited exits, permitting "specialized" exit providers that are allowed to do excessive filtering or geo blocking for security theatre checkbox compliance is something Tor does not seem to be able to provide at this time. + +Lokinet additionally encourges the manual selection and pinning of edge connections to fit each user's threat model. + +## I2P + +Integrating applications to opt into i2p's network layer is painful and greatly stunts mainstream adoption. +Lokinet takes the inverse approach of i2p: make app integration in lokinet should require zero custom shims or modifications to code to make it work. + +## DVPNs / Commercial VPN Proxies + +One Hop VPNs can see your real IP and all of the traffic you tunnel over them. They are able to turn your data over to authorities even if they claim to not log. + +Lokinet can see only 1 of these 2 things, but NEVER both: + +* Encrypted data coming from your real IP going to the first hop Lokinet Router forwarded to another Lokinet Router. +* A lokinet exit sees traffic coming from a `.loki` address but has no idea what the real IP is for it. + +One Hop Commericial VPN Tunnels are no log by **policy**. You just have to trust that they are telling the truth. + +Lokinet is no log by **design** it doesn't have a choice in this matter because the technology greatly hampers efforts to do so. + +Any Lokinet Client can be an exit if they want to and it requires no service node stakes. Exits are able to charge users for exiting to the internet, tooling for orechestrating this is in development. diff --git a/docs/readme.md b/docs/readme.md index 91899d771..8be1dbd7c 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,34 +1,21 @@ -# Lokinet Internals docs +# Lokinet Docs -this is the area of the repo for documentation of lokinet internals +this is the area of the repo for documentation of lokinet +## High level +[How is Lokinet different to \[insert network technology name here\] ?](net-comparisons.md) +[How Do I use Lokinet?](lokinet-ideal-ux.md) +## Lokinet (SN)Application Developer Portal -## Doxygen -building doxygen docs requires the following: +[What are "SNApps" and how to develop them.](snapps-dev-guide.md) +[How do I embed lokinet into my application?](liblokinet-dev-guide.md) -* cmake -* doxygen -* sphinx-build -* sphinx readthedocs theme -* breathe -* exhale -install packages: +## Lokinet Internals - $ sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe python3-pip - $ pip3 install --user exhale - -build docs: +[Build Doxygen Docs for internals](doxygen.md) - $ mkdir -p build-docs - $ cd build-docs - $ cmake .. && make doc - -serve built docs via http, will be served at http://127.0.0.1:8000/ - - $ python3 -m http.server -d docs/html -