mirror of
https://github.com/monero-project/monero-site.git
synced 2024-12-24 12:39:46 +00:00
Moneropedia: initial commit for monero-project/kovri#256
- 12 new entries as they relate to Kovri - They're mostly needed to satisfy the address book entry References monero-project/monero-site#155
This commit is contained in:
parent
7c2e62b365
commit
87673cc3ad
12 changed files with 318 additions and 0 deletions
35
knowledge-base/moneropedia/address-book.md
Normal file
35
knowledge-base/moneropedia/address-book.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Address Book"
|
||||
tags: ["kovri"]
|
||||
terms: ["address-book"]
|
||||
summary: "List of pairings: locally unique hostnames to Base64 I2P destinations"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
In order to browse @I2P sites or services with @Kovri, you'll need an address book. An address book will allow you to translate @I2P websites/services that use the `.i2p` [top-level domain](https://en.wikipedia.org/wiki/Top_level_domain) into an address that @I2P network will understand.
|
||||
|
||||
Without an address book, you would be stuck using a @base32-address every time visited an @I2P website/service - and that's not fun!
|
||||
|
||||
### In-depth information
|
||||
|
||||
Since [DNS](https://en.wikipedia.org/wiki/DNS) does not exist on the @I2P network, @Kovri also does **not** use DNS or any sort of @canonically-unique-host resolution. Instead, Kovri pairs a @locally-unique-host to a @base64-address @destination in a @subscription. Once your address book is filled with a @subscription, you can resolve your favorite `.i2p` domain site into a usable @I2P destination.
|
||||
|
||||
### Creating an address Book
|
||||
|
||||
By default, your installation will come with a default public @subscription called `hosts.txt` in your @data-directory. When @Kovri starts, it loads this subscription and fetches any other subscriptions you've specified. Once loaded, your address book will be appropriately filled. For details on how to manage subscriptions, see @subscription.
|
||||
|
||||
### Updating the address book
|
||||
|
||||
Currently, there are several ways to update your address book:
|
||||
|
||||
1. Use a @jump-service to insert into address book
|
||||
2. Use a @jump-service to copy/paste an address into your private @subscription
|
||||
3. Manually add or subtract from a private @subscription
|
||||
|
||||
**Note: Kovri is in heavy development. In the future there *will* be easier ways to update the address book**
|
||||
|
||||
### Address Book / Naming specification
|
||||
|
||||
For specification details and more, visit the [Address Book and Naming Specification](https://geti2p.net/en/docs/naming)
|
29
knowledge-base/moneropedia/base32-address.md
Normal file
29
knowledge-base/moneropedia/base32-address.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Base32 address"
|
||||
tags: ["kovri"]
|
||||
terms: ["base32-address"]
|
||||
summary: "Base32 encoded hash of a Base64 address"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A Base32 address is a shortened, encoded version of an @I2P address. The Base32 address is the first part in a `.b32.i2p` hostname.
|
||||
|
||||
Example:
|
||||
|
||||
`i35yftyyb22xhcvghmev46t5knefur5v66qzekkajatwfwhyklvq.b32.i2p`
|
||||
|
||||
where
|
||||
|
||||
`i35yftyyb22xhcvghmev46t5knefur5v66qzekkajatwfwhyklvq` is the Base32 address.
|
||||
|
||||
### In-depth Information
|
||||
|
||||
Ultimately, a Base32 address is a 52 character [Base32 encoded representation](https://en.wikipedia.org/wiki/Base32) of the full SHA-256 hash of an @I2P @base64-address.
|
||||
|
||||
TODO(anonimal): finish (256 bits, etc.)
|
||||
|
||||
### Notes
|
||||
|
||||
**Note: `.b32` is not a sub-domain of `.i2p`**
|
22
knowledge-base/moneropedia/base64-address.md
Normal file
22
knowledge-base/moneropedia/base64-address.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Base64 address"
|
||||
tags: ["kovri"]
|
||||
terms: ["base64-address"]
|
||||
summary: "Base64 encoded I2P destination"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A Base64 address is a 516-character [Base64 encoded](https://en.wikipedia.org/wiki/Base64) @I2P @destination.
|
||||
|
||||
Example:
|
||||
|
||||
{:.cli-code}
|
||||
AQZGLAMpI9Q0l0kmMj1vpJJYK3CjLp~fE3MfvE-e7KMKjI5cPOH6EN8m794uHJ6b09qM8mb9VEv1lVLEov~usVliTSXCSHuRBOCIwIOuDNU0AbVa4BpIx~2sU4TxKhoaA3zQ6VzINoduTdR2IJhPvI5xzezp7dR21CEQGGTbenDslXeQ4iLHFA2~bzp1f7etSl9T2W9RID-KH78sRQmzWnv7dbhNodMbpO6xsf1vENf6bMRzqD5vgHEHZu2aSoNuPyYxDU1eM6--61b2xp9mt1k3ud-5WvPVg89RaU9ugU5cxaHgR927lHMCAEU2Ax~zUb3DbrvgQBOTHnJEx2Fp7pOK~PnP6ylkYKQMfLROosLDXinxOoSKP0UYCh2WgIUPwE7WzJH3PiJVF0~WZ1dZ9mg00c~gzLgmkOxe1NpFRNg6XzoARivNVB5NuWqNxr5WKWMLBGQ9YHvHO1OHhUJTowb9X90BhtHnLK2AHwO6fV-iHWxRJyDabhSMj1kuYpVUBQAEAAcAAA==
|
||||
|
||||
TODO(anonimal): finish
|
||||
|
||||
### In-depth Information
|
||||
|
||||
TODO(anonimal): finish
|
23
knowledge-base/moneropedia/canonically-unique-host.md
Normal file
23
knowledge-base/moneropedia/canonically-unique-host.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Canonically-unique host"
|
||||
tags: ["kovri"]
|
||||
terms: ["canonically-unique-host"]
|
||||
summary: "A host that is canonically resolved to an address or set of addresses"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A canonically-unique host is a [FQDN](https://en.wikipedia.org/wiki/FQDN) that will canonically resolve to a designated address or set of addresses. Not to be confused with a @locally-unique-host.
|
||||
|
||||
### In-depth information
|
||||
|
||||
A canonically-unique host is defined by remote authoritative sources; usually through [DNS](https://en.wikipedia.org/wiki/DNS). When resolving a peer's hostname, you will most likely use an external source for resolution unless have the following implemented:
|
||||
|
||||
- a database file similar to a [hosts file](https://en.wikipedia.org/wiki/etc/hosts)
|
||||
- an internal-network resolver (which eventually pulls from external sources)
|
||||
|
||||
### Notes
|
||||
|
||||
- Monero primarily uses @canonically-unique-host resolution while @I2P only uses @locally-unique-host resolution.
|
||||
- @I2P's and @Kovri's assigned top-level domain is currently `.i2p` and @Kovri intends to only process/use the `.i2p` [top-level domain](https://en.wikipedia.org/wiki/Top_level_domain)
|
22
knowledge-base/moneropedia/data-directory.md
Normal file
22
knowledge-base/moneropedia/data-directory.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Data Directory"
|
||||
tags: ["kovri"]
|
||||
terms: ["data-directory"]
|
||||
summary: "Where essential kovri data for runtime is stored"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
Depending on your OS, @Kovri currently stores all run-time data in the following directory:
|
||||
|
||||
- Linux/FreeBSD:
|
||||
- `$HOME/.kovri`
|
||||
|
||||
- OSX:
|
||||
- `$HOME/Library/Application\ Support/Kovri`
|
||||
|
||||
- Windows:
|
||||
- `"$APPDATA"\\Kovri`
|
||||
|
||||
This includes all configuration files, @address-book, certificates, and resources.
|
19
knowledge-base/moneropedia/destination.md
Normal file
19
knowledge-base/moneropedia/destination.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Destination"
|
||||
tags: ["kovri"]
|
||||
terms: ["destination"]
|
||||
summary: "A Kovri/I2P address that serves as a final endpoint"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A destination is the @I2P address of the final endpoint you are trying to connect to (an @I2P website or service).
|
||||
|
||||
TODO(anonimal): finish
|
||||
|
||||
### In-depth Information
|
||||
|
||||
An @I2P destination can be encoded into a @base32-address or @base64-address. Most users will only care about @base32-address or a `.i2p` hostname while, internally, @Kovri will use the @base64-address.
|
||||
|
||||
TODO(anonimal): finish
|
25
knowledge-base/moneropedia/i2p.md
Normal file
25
knowledge-base/moneropedia/i2p.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "I2P"
|
||||
tags: ["kovri"]
|
||||
terms: ["I2P"]
|
||||
summary: "The Invisible Internet Project: an anonymizing overlay network"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
From @Java-I2P's [website](https://geti2p.net/):
|
||||
|
||||
>The I2P network provides strong privacy protections for communication over the Internet. Many activities that would risk your privacy on the public Internet can be conducted anonymously inside I2P.
|
||||
|
||||
### In-depth information
|
||||
|
||||
From @Java-I2P's [website](https://geti2p.net/):
|
||||
|
||||
>I2P is an anonymous overlay network - a network within a network. It is intended to protect communication from dragnet surveillance and monitoring by third parties such as ISPs.
|
||||
|
||||
>I2P is used by many people who care about their privacy: activists, oppressed people, journalists and whistleblowers, as well as the average person.
|
||||
|
||||
>No network can be "perfectly anonymous". The continued goal of I2P is to make attacks more and more difficult to mount. Its anonymity will get stronger as the size of the network increases and with ongoing academic review.
|
||||
|
||||
Details and specifications are available [here](https://geti2p.net/docs/).
|
15
knowledge-base/moneropedia/java-i2p.md
Normal file
15
knowledge-base/moneropedia/java-i2p.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Java I2P"
|
||||
tags: ["kovri"]
|
||||
terms: ["Java-I2P"]
|
||||
summary: "The original implementation of I2P; written in Java"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
The term "Java I2P" is often used to describe the original @I2P implementation currently most known and used today.
|
||||
|
||||
There are various other @I2P implementations, including @Kovri; all of which look up to this original implementation.
|
||||
|
||||
To download/learn more about the Java implementation, visit their [website](https://geti2p.net/).
|
33
knowledge-base/moneropedia/jump-service.md
Normal file
33
knowledge-base/moneropedia/jump-service.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Jump Service"
|
||||
tags: ["kovri"]
|
||||
terms: ["jump-service"]
|
||||
summary: "An I2P website service that adds addresses to your address book"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
In your @I2P configured web browser, you can use a Jump Service to *jump* to an @I2P address that you don't have in your @address-book. Once you've *jumped* to the address, the address will be saved into your @address-book.
|
||||
|
||||
### In-depth Information
|
||||
|
||||
In an @I2P configured browser, visit: http://stats.i2p/i2p/lookup.html (courtesy of @Java-I2P's lead developer *zzz*)
|
||||
|
||||
Then, you'll have two options:
|
||||
|
||||
1. *Hostname lookup* the address you wish to visit and then manually copy/paste the result
|
||||
2. *Jump* to the @I2P website by entering the @I2P hostname (**recommended**)
|
||||
|
||||
### Using hostname lookup
|
||||
|
||||
For example, entering `pinkpaste.i2p` into the *Hostname lookup* box (and then submitting) will return:
|
||||
|
||||
{:.cli-code}
|
||||
pinkpaste.i2p=m-HrPrIAsdxts0WM~P4mE8mt9P7g-QTaBvu7Gc6Nl0UX7Vwck-i~RvOPfK6W~kfdRvwhNTqevkBL2UF5l36We02Aiywu7kB2xOHRkze68h-Tg2ewvRVwokohguCD2G3wwAEz~7FVda2avYDCb9-N6TfuzxKLnmhPMvbNSjGL7ZsD2p-h207R3-2kvuMV9bfu-K~w9NI9XJhIyufvUnFYc2jnTVg8PbaR4UP57cNaOO2YIMPkbr6~yTcIu9B1sUfHK6-N~6virQDOxW4M-62rjnZkLpaCtkOsXslmCwZI--TkZ6hKi1kXZvNmJRE1rYfffYRFn38zhaqszeETX8HiIvahZhXF5fNumBziYdmLdw8hkuN1A~emU6Xz9g~a1Ixfsq1Qr~guYoOtaw-0rOFxNRS9yMehE-2LCb8c-cAg6z5OdlN4qJDl~ZHgru4d~EHp~BpAK3v7u2Gi-8l1ygVW-1CHVna~fwnbOPN3ANPwh6~~yUit0Cx1f54XiNRn6-nPBQAEAAcAAA==
|
||||
|
||||
Copy/paste this host=@base64-address pairing into your **private** @subscription.
|
||||
|
||||
### Directly jumping
|
||||
|
||||
For example, entering `pinkpaste.i2p` into the *Jump* box (and then submitting) will automatically redirect you to the website **and** insert the @locally-unique-host into @address-book.
|
27
knowledge-base/moneropedia/kovri.md
Normal file
27
knowledge-base/moneropedia/kovri.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Kovri"
|
||||
tags: ["kovri"]
|
||||
terms: ["Kovri"]
|
||||
summary: "Monero's C++ router implementation of the I2P network"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
TODO(anonimal): finish
|
||||
|
||||
### In-depth information
|
||||
|
||||
TODO(anonimal): finish
|
||||
|
||||
@Kovri @address-book
|
||||
|
||||
- Kovri Eepsite (hidden-service, garlic-site, garlic-service)
|
||||
- Kovri Clearnet
|
||||
- Kovri Cryptography (encryption, signatures, etc.)
|
||||
- Kovri Network Database (RI, lease-sets, floodfill, etc.)
|
||||
- Kovri Reseed
|
||||
- Kovri Transports (SSU/NTCP)
|
||||
- Kovri Tunnels (garlic routing, I2NP, etc.)
|
||||
- Kovri I2PControl (links to API, clients + qtoopie)
|
||||
- ...more/what else?
|
22
knowledge-base/moneropedia/locally-unique-host.md
Normal file
22
knowledge-base/moneropedia/locally-unique-host.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Locally-unique host"
|
||||
tags: ["kovri"]
|
||||
terms: ["locally-unique-host"]
|
||||
summary: "A host defined by you and resolved only by you"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A locally-unique host is a [FQDN](https://en.wikipedia.org/wiki/FQDN) defined by **you** and resolved only by you; similar to how a [hosts file](https://en.wikipedia.org/wiki/etc/hosts) is implemented. Not to be confused with @canonically-unique-host.
|
||||
|
||||
### In-depth information
|
||||
|
||||
You have the option to share your interpretation of how the host is resolved (e.g., `localhost` always resolves to `127.0.0.1`) but the resolution is not canonically enforced (e.g., someone else can map `localhost` to any arbitrary IP address).
|
||||
|
||||
Hosts in a public subscription can be considered @canonically-unique-host's within the @I2P network but, ultimately, you are free to re-define them as you wish.
|
||||
|
||||
### Notes
|
||||
|
||||
- Monero primarily uses @canonically-unique-host resolution while @I2P only uses @locally-unique-host resolution.
|
||||
- @I2P's and @Kovri's assigned top-level domain is currently `.i2p` and @Kovri intends to only process/use the `.i2p` [top-level domain](https://en.wikipedia.org/wiki/Top_level_domain)
|
46
knowledge-base/moneropedia/subscription.md
Normal file
46
knowledge-base/moneropedia/subscription.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
layout: moneropedia
|
||||
entry: "Subscription"
|
||||
tags: ["kovri"]
|
||||
terms: ["subscription"]
|
||||
summary: "A file used by address book which contains I2P hosts paired with I2P destinations"
|
||||
---
|
||||
|
||||
### The Basics
|
||||
|
||||
A subscription is a file which contains a list of `.i2p` hosts paired with their respective @destination. Subscriptions are used by the @address-book.
|
||||
|
||||
### In-depth information
|
||||
|
||||
Similar to how a [hosts file](https://en.wikipedia.org/wiki/etc/hosts) can map an internet hostname to a specified address, a subscription matches a `.i2p` address to @base64-address by using the following format (no spaces allowed): `host=address`
|
||||
|
||||
More specifically, a subscription pairs a @locally-unique-host to @base64-address.
|
||||
|
||||
Example:
|
||||
|
||||
{:.cli-code}
|
||||
anonimal.i2p=AQZGLAMpI9Q0l0kmMj1vpJJYK3CjLp~fE3MfvE-e7KMKjI5cPOH6EN8m794uHJ6b09qM8mb9VEv1lVLEov~usVliTSXCSHuRBOCIwIOuDNU0AbVa4BpIx~2sU4TxKhoaA3zQ6VzINoduTdR2IJhPvI5xzezp7dR21CEQGGTbenDslXeQ4iLHFA2~bzp1f7etSl9T2W9RID-KH78sRQmzWnv7dbhNodMbpO6xsf1vENf6bMRzqD5vgHEHZu2aSoNuPyYxDU1eM6--61b2xp9mt1k3ud-5WvPVg89RaU9ugU5cxaHgR927lHMCAEU2Ax~zUb3DbrvgQBOTHnJEx2Fp7pOK~PnP6ylkYKQMfLROosLDXinxOoSKP0UYCh2WgIUPwE7WzJH3PiJVF0~WZ1dZ9mg00c~gzLgmkOxe1NpFRNg6XzoARivNVB5NuWqNxr5WKWMLBGQ9YHvHO1OHhUJTowb9X90BhtHnLK2AHwO6fV-iHWxRJyDabhSMj1kuYpVUBQAEAAcAAA==
|
||||
|
||||
1. `anonimal.i2p` is the @locally-unique-host
|
||||
2. `=` is the seperator
|
||||
3. Everything that remains is the @base64-address
|
||||
|
||||
### Subscription types
|
||||
|
||||
For @Kovri, there are two types of subscription files: *public* and *private*.
|
||||
|
||||
A *public* subscription:
|
||||
- is used when bootstrapping to use essential services (IRC, email, monero, etc.)
|
||||
- is static and is refreshed every 12 hours from Monero's @address-book server
|
||||
- allows you to safely share the subscription with everyone as it is publically available (anyone who shares the same public subscription will also be able to resolve the same hostname to the same destination as you)
|
||||
|
||||
A *private* subscription:
|
||||
- is used exclusively by you and is not shared with others unless you explicitely choose to share the file
|
||||
- default file is `private_hosts.txt` in your @data-directory
|
||||
|
||||
### Updating a private subscription
|
||||
|
||||
You can use a @jump-service to manually update your private subscription. The updated subscription will be then fed into the @address-book for you to use.
|
||||
|
||||
### Notes
|
||||
To learn how subscribe to multiple subscriptions, see the [user-guide](https://github.com/monero-project/kovri/blob/master/doc/USER_GUIDE.md).
|
Loading…
Reference in a new issue