Unverified Commit 6f91672c authored by Riccardo Spagni's avatar Riccardo Spagni
Browse files

Merge pull request #186

cb906768 Moneropedia: fix ESL typo (thanks expez) (anonimal)
03403028 Moneropedia: fix typos (thanks expez) (anonimal)
2253372f Moneropedia: fix typo/tense in Address-Book (thanks expez) (anonimal)
59b605e4 Moneropedia: misc typo/grammar cleanup (thanks olark) (anonimal)
85e28fbf Moneropedia: add Comparison page link in I2P entry (anonimal)
613995da Moneropedia: finish Garlic-Encryption (anonimal)
27214fd5 Moneropedia: finish Network-Database entry (anonimal)
acf07a38 Moneropedia: finish I2PControl entry (anonimal)
d7c43608 Moneropedia: create Message entry and fill-in I2NP (anonimal)
d30a679a Moneropedia: update Garlic-Routing/Encryption entries (anonimal)
b26760ea Moneropedia: update/finish initial Tunnel entry (anonimal)
77d6cde3 Moneropedia: cleanup I2P entry (anonimal)
841f7c1e Moneropedia: resolve various unfinished entries (anonimal)
d2247103 Moneropedia: update/finish initial Kovri entry (anonimal)
31af0214 Moneropedia: link to Signature term in Encryption (anonimal)
2681940c Moneropedia: clarify Garlic Routing, add I2PControl (anonimal)
1af1de08 Moneropedia: add Encryption related entries (anonimal)
3761e3b0 Moneropedia: clarify type of I2P in Clearnet entry (anonimal)
313b0694 Moneropedia: update NTCP/SSU/Transports entries (anonimal)
92b84620 Moneropedia: add Transports/SSU/NTCP (anonimal)
000e95cf Moneropedia: add/update/cleanup/fix entries (anonimal)
e6661fce Moneropedia: cleanup Java-I2P entry (anonimal)
7fda45bd Moneropedia: remove redundant links + fix grammar (anonimal)
bfa7a611 Moneropedia: add empty Lease-Set entry (anonimal)
ce3dc6f5 Moneropedia: add Router-Info and Floodfill entries (anonimal)
8af4ba7f Moneropedia: add Reseed/Network Database/Router-Info entries (anonimal)
32f4f063 Moneropedia: add Matryoshka doll comment in Garlic Routing (anonimal)
13a74cf4 Moneropedia: replace Onion Routing URL (anonimal)
40cebc78 Moneropedia: add wikipedia URLs for Nick/Roger (anonimal)
e8aa590f Moneropedia: add Clearnet entry (anonimal)
9e7e99b5 Moneropedia: edit Eepsite and Garlic Routing entries (anonimal)
9658bc60 Moneropedia: add Eepsite and Garlic Routing entries (anonimal)
e9e52575 Moneropedia: simplify address book's summary (anonimal)
e6ac646e Moneropedia: add Kovri note to I2P entry (anonimal)
87673cc3 Moneropedia: initial commit for monero-project/kovri#256 (anonimal)
parents b11d7c22 cb906768
---
layout: moneropedia
entry: "Address Book"
tags: ["kovri"]
terms: ["Address-Book"]
summary: "Allows you to visit I2P websites/services that have the .i2p domain"
---
### 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 you visit 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 I2P addresses into your 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)
---
layout: moneropedia
entry: "Base32 address"
tags: ["kovri"]
terms: ["Base32-address", "Base32-addresses"]
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.
### Notes
**Note: `.b32` is not a sub-domain of `.i2p`**
---
layout: moneropedia
entry: "Base64 address"
tags: ["kovri"]
terms: ["Base64-address", "Base64-addresses"]
summary: "Base64 encoded I2P destination"
---
### The Basics
A @base64-address is a 516-character [Base64 encoded](https://en.wikipedia.org/wiki/Base64) @I2P @destination. @base64-addresses are primarily used for @address-book, @jump-service, and also internally.
Example:
{:.cli-code}
AQZGLAMpI9Q0l0kmMj1vpJJYK3CjLp~fE3MfvE-e7KMKjI5cPOH6EN8m794uHJ6b09qM8mb9VEv1lVLEov~usVliTSXCSHuRBOCIwIOuDNU0AbVa4BpIx~2sU4TxKhoaA3zQ6VzINoduTdR2IJhPvI5xzezp7dR21CEQGGTbenDslXeQ4iLHFA2~bzp1f7etSl9T2W9RID-KH78sRQmzWnv7dbhNodMbpO6xsf1vENf6bMRzqD5vgHEHZu2aSoNuPyYxDU1eM6--61b2xp9mt1k3ud-5WvPVg89RaU9ugU5cxaHgR927lHMCAEU2Ax~zUb3DbrvgQBOTHnJEx2Fp7pOK~PnP6ylkYKQMfLROosLDXinxOoSKP0UYCh2WgIUPwE7WzJH3PiJVF0~WZ1dZ9mg00c~gzLgmkOxe1NpFRNg6XzoARivNVB5NuWqNxr5WKWMLBGQ9YHvHO1OHhUJTowb9X90BhtHnLK2AHwO6fV-iHWxRJyDabhSMj1kuYpVUBQAEAAcAAA==
### In-depth Information
See @destination for details behind @base64-address
---
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 you 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 self-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)
---
layout: moneropedia
entry: "Clearnet"
tags: ["kovri"]
terms: ["Clearnet"]
summary: "The internet in which anonymous overlay networks are built upon"
---
### The Basics
When you use the internet for things like news, email, social media, and even Monero, you are most likely using a clearnet connection. This means that *all* of your connections can be tracked, traced, and monitored by:
- your [ISP](https://en.wikipedia.org/wiki/ISP)
- the website/service/person you're communicating with
- possibly a [Five Eyes](https://en.wikipedia.org/wiki/5_Eyes) capable entity
and even if you use [HTTPS](https://en.wikipedia.org/wiki/HTTPS) or similar (which *encrypts* your transmission), your route is not hidden nor is it anonymous, thus; it is in the *clear*.
### In-depth information
Since a traditional [VPN](https://en.wikipedia.org/wiki/VPN) cannot save you from clearnet (as you are still using *clearnet* (though you are more proxied than without a VPN)), you should use an *anonymous overlay network* to avoid using clearnet directly:
- @Kovri
- @Java-I2P
- [Tor](https://torproject.org/)
These technologies protect you from clearnet by building an anonymous network **over** clearnet to keep your transmissions both encrypted **and** anonymous.
Here is an accurate, [interactive diagram](https://www.eff.org/pages/tor-and-https) provided by the [EFF](https://www.eff.org/) which describes *clearnet* as it relates to **Tor**. The concept also (somewhat) applies to @Kovri and @I2P in terms of anonymity with the exception that:
- @Kovri does not use exit nodes when connecting to an @eepsite
- Your traffic never need to leave the @I2P network
- You do not need HTTPS to use @Kovri (with the exception of @reseed)
---
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.
---
layout: moneropedia
entry: "Destination"
tags: ["kovri"]
terms: ["Destination", "Destinations"]
summary: "A in-net address that serves as a final endpoint (either local or remote)"
---
### The Basics
A @destination is the @I2P @in-net address of the final endpoint you are trying to connect to (example: an @I2P website, service, or Monero node). This can also include a *local destination* of which *other* peers need to connect to in order to make contact for communication (similar to how, in @clearnet, your IP address is given to a website when you connect so it knows *where* to send the information back to).
### 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 / @I2P @address-book uses @base64-addresses. Ultimately, all @destinations in @I2P are 516-byte (or longer) keys:
`256-byte public key + 128-byte signing key + a null certificate = 516 bytes in Base64 representation`
Note: certificates are not used now but, if they were, the keys would be longer.
---
layout: moneropedia
entry: "Eepsite"
tags: ["kovri"]
terms: ["Eepsite", "Hidden-Service", "Garlic-Site", "Garlic-Service"]
summary: "A website or service hosted within the I2P network"
---
### The Basics
Is it [**EEP!** *(in response to the site's content)*](https://en.wikipedia.org/wiki/Onomatopoeia), or **end-to-end protocol**, or something else entirely different?
While the original definition of eepsite has been lost with time, its use-case remains: an eepsite is a website or service that is hosted within (and only accessible by) the @I2P network.
### In-depth Information
Alternate names include:
1. *Hidden Service*
- because the site/service is *hidden* within the @I2P network and can only be visited within the network
2. *Garlic Site*
- because the website utilizes @I2P's @garlic-routing technology as a means of communicating with a client
- because the service is hosted as a website and not any other type of service
3. *Garlic Service*
- because the service utilizes @I2P's @garlic-routing technology as a means of communicating with a client
- because the service is specific to services like IRC, email, or a Monero peer (but may also include websites)
### Notes
To learn how to setup an Eepsite (Hidden Service, Garlic Site, Garlic Service) visit the @Kovri [user-guide](https://github.com/monero-project/kovri/blob/master/doc/USER_GUIDE.md).
---
layout: moneropedia
entry: "Encryption"
tags: ["kovri"]
terms: ["encryption", "encrypted", "encrypting", "decryption", "decrypted", "decrypting"]
summary: "The process of encoding messages or information in a way that only authorized parties can decode and read"
---
### The Basics
From [Encryption](https://en.wikipedia.org/wiki/Encryption):
>
In cryptography, encryption is the process of encoding messages or information in such a way that only authorized parties can decode and read what is sent. Encryption does not of itself prevent interception, but denies the message content to the interceptor.
### In-depth information
From [Encryption](https://en.wikipedia.org/wiki/Encryption):
>
In an encryption scheme, the intended communication information or message (referred to as *plaintext*), is encrypted using an encryption algorithm, generating ciphertext that can only be read if decrypted. For technical reasons, an encryption scheme usually uses a pseudo-random encryption key generated by an algorithm. It is in principle possible to decrypt the message without possessing the key, but, for a well-designed encryption scheme, large computational resources and skill are required. An authorized recipient can easily decrypt the message with the key provided by the originator to recipients, but not to unauthorized interceptors.
>
The purpose of encryption is to ensure that only somebody who is authorized to access data (e.g. a text message or a file), will be able to read it, using the decryption key. Somebody who is not authorized can be excluded, because he or she does not have the required key, without which it is impossible to read the encrypted information.
### Kovri
@Kovri implements various types of encryption in *at least* 4 essential capacities:
- @Reseed for bootstrapping
- @Garlic-routing: three layers of encryption (@garlic-encryption) are used to verify the secure delivery of @messages to the recipient/peer/@destination
- @Tunnel encryption: garlic messages are passed through a @tunnel and encrypted by the @tunnel gateway to the @tunnel endpoint
- @Transport layer encryption prevents the ability to decrypt @messages at the [media layer](https://en.wikipedia.org/wiki/OSI_model)
For details on the types of encryption and cryptographic @signatures used in @Kovri and @I2P, visit @Java-I2P's [Cryptography](https://geti2p.net/spec/cryptography)
---
layout: moneropedia
entry: "Floodfill"
tags: ["kovri"]
terms: ["Floodfill"]
summary: "An I2P router which maintains a distributed network-database"
---
### The Basics
By actively managing a distributed network-database, a router with *floodfill* capability has the ability to help maintain network stability and resiliancy while also being decentralized and trust-less.
### In-depth information
Though floodfill itself is a simple storage system, the technical underpinnings of floodfill as it relates to @network-database and other protocols within @I2P are much more complex. Visit the [Network Database](https://geti2p.net/en/docs/how/network-database) page for details.
---
layout: moneropedia
entry: "Garlic-Encryption"
tags: ["kovri"]
terms: ["Garlic-Encryption", "Layered-Encryption"]
summary: "Layered encryption as implemented in Kovri / I2P"
---
### The Basics
@garlic-encryption is @I2P's implementation of @message based @layered-encryption (similar to flow-based [Onion-Routing](https://en.wikipedia.org/wiki/Onion_routing)).
By @encrypting @messages in layers, this allows a @message to be routed through a sequence of proxies without allowing the proxies (or any intermediaries) to read the contents of the @message. @Layered-Encryption is a fundamental feature in @Kovri, @I2P, and [Tor](https://torproject.org) and is the cornerstone for securing anonymity within these overlay-networks.
### In-depth information
For @garlic-encryption, the primary difference between @Kovri/@I2P and Tor is:
- @Kovri/@I2P bundles multiple @messages together to form garlic "cloves"
- any number of messages can be contained in a "clove" instead of *only* a single message
- @Kovri/@I2P uses [ElGamal](https://en.wikipedia.org/wiki/ElGamal)/[AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) @encryption for @messages and @transports
### Notes
For details, see @garlic-routing.
---
layout: moneropedia
entry: "Garlic Routing"
tags: ["kovri"]
terms: ["Garlic-Routing"]
summary: "Routing technology as implemented in Kovri"
---
### The Basics
The term *@garlic-routing* has a diverse history of varying interpretations. As it currently stands, Monero defines *@garlic-routing* as the method in which @Kovri and @I2P create a @message-based anonymous overlay network of internet peers.
The @Garlic-Encryption of @Garlic-Routing is similar to the @Layered-Encryption of [Onion Routing](https://en.wikipedia.org/wiki/Onion_routing) and effectively conceals the IP address of the sender and secures information sent from the sender to its @destination (and vice-versa).
### History
In written form, the term *@garlic-routing* can be seen as early as June of 2000 in Roger Dingledine's [Free Haven Master's thesis](http://www.freehaven.net/papers.html) (Section 8.1.1) as derived from the term Onion Routing.
As recent as October of 2016, [#tor-dev](https://oftc.net/WebChat/) has offered insight into the creation of the term *@garlic-routing*:
[Nick Mathewson](https://en.wikipedia.org/wiki/The_Tor_Project,_Inc):
>[I think that there was some attempt to come up with a plant whose structure resembled the 'leaky-pipe' topology of tor, but I don't believe we ever settled on one.]
[Roger Dingledine](https://en.wikipedia.org/wiki/Roger_Dingledine):
>during the free haven brainstorming, there was a moment where we described a routing mechanism, and somebody said "garlic routing!", and everybody laughed.
so we for sure thought we had invented the name, at the time.
*Note: permission to use the aforementioned quotes were granted by Nick Mathewson and Roger Dingledine*
### In-depth Information
In technical terms, for @Kovri and @I2P, *@garlic-routing* translates to any/all of the following:
- @Layered-Encryption (similar to the @layered-encryption in Onion Routing)
- Bundling multiple @messages together (garlic cloves)
- ElGamal/AES @encryption
*Note: though [Tor](https://torproject.org/) uses @layered-encryption, Tor does not use ElGamal and is not message-based.*
**Read more in @garlic-encryption.**
### Notes
- In terms of Onion/Garlic Routing, another way to envision layered @encryption is by replacing the onion/garlic with a [Matryoshka doll](https://en.wikipedia.org/wiki/Matryoshka_doll)
- For more technical details on Garlic Routing, read the @Java-I2P entry on [Garlic Routing](https://geti2p.net/en/docs/how/garlic-routing)
---
layout: moneropedia
entry: "I2NP"
tags: ["kovri"]
terms: ["I2NP"]
summary: "The I2P Network Protocol: the mechanism in which I2NP messages are sent over the I2P network"
---
### The Basics
From @Java-I2P:
>
@I2NP manages the routing and mixing of messages between routers, as well as the selection of what transports to use when communicating with a peer for which there are multiple common transports supported
### In-depth information
From @Java-I2P:
>
@I2NP (@I2P Network Protocol) @messages can be used for one-hop, router-to-router, point-to-point @messages. By @encrypting and wrapping @messages in other @messages, they can be sent in a secure way through multiple hops to the ultimate @destination. @I2NP does not specify nor require any particular @transport layer but does require at least one @transport in use.
>
Whenever a @destination wants to send a message to to another @destination, it provides its local router with both the @destination structure and the raw bytes of the message to be sent. The router then determines where to send it, delivers it through outbound @tunnels, instructing the end point to pass it along to the appropriate inbound @tunnel, where it is passed along again to that @tunnel's end point and made available to the target for reception.
### Notes
Read more about the @I2NP [protocol](https://geti2p.net/en/docs/protocol/i2np) and [specification](https://geti2p.net/spec/i2np).
---
layout: moneropedia
entry: "I2P"
tags: ["kovri"]
terms: ["I2P"]
summary: "The Invisible Internet Project: an anonymizing overlay network"
---
### Monero
For Monero's implementation of @I2P, see @Kovri. For a comparison of @I2P to [Tor](https://torproject.org/), read the [Comparison](https://geti2p.net/en/comparison/tor) page.
### The Basics
From @Java-I2P:
>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:
>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.
### Notes
@I2P documentation and specifications are available [here](https://geti2p.net/docs/).
---
layout: moneropedia
entry: "I2PControl"
tags: ["kovri"]
terms: ["I2PControl"]
summary: "An API inteface for Kovri and Java-I2P that allows simple remote control"
---
### The Basics
@I2Pcontrol is [JSONRPC2](https://en.wikipedia.org/wiki/JSON-RPC) [API](https://en.wikipedia.org/wiki/Application_programming_interface) for @Kovri and @Java-I2P which allows an @I2PControl client to remote control/monitor a running instance.
Two available @I2PControl clients are: [qtoopie](https://github.com/EinMByte/qtoopie) (C++ client) and [itoopie](https://github.com/i2p/i2p.itoopie) (Java client). Read `kovri.conf` to configure @I2PControl for @Kovri.
### In-depth information
Details and specification available on the [I2PControl](https://geti2p.net/en/docs/api/i2pcontrol) page.
---
layout: moneropedia
entry: "In-net"
tags: ["kovri"]
terms: ["In-net"]
summary: "Within the I2P network"
---
### The Basics
**In-net** is a [colloquial](https://en.wikipedia.org/wiki/Colloquial) term of which describes activities, protocols, or functionality that exist *only* within the @I2P network.
### In-depth information
Example: *in-net download* would be defined as downloading *only* within @I2P.
---
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 the original Java implementation.
### Notes
To download/learn more about the Java implementation, visit their [website](https://geti2p.net/).
---
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 [email protected] 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.
---
layout: moneropedia
entry: "Kovri"
tags: ["kovri"]
terms: ["Kovri"]
summary: "Monero's C++ router implementation of the I2P network"
---
### The Basics
[Kovri](https://github.com/monero-project/kovri/) is a C++ implementation of the @I2P network. @Kovri is currently in heavy, active development and not yet integrated with Monero. When Kovri is integrated into your Monero @node, your transactions will be more secure than ever before.
### In-depth information
Kovri will protect you and Monero from:
- @Node partitioning attacks
- Associations between a particular txid and your IP address
- Mining and/or running a node in highly adversarial environments
- Metadata leakage (e.g., @OpenAlias lookups)
...and much more.
Read [anonimal's FFS proposal](https://forum.getmonero.org/9/work-in-progress/86967/anonimal-s-kovri-full-time-development-funding-thread) for more details and for reasoning behind the project. Also read the FAQ and User Guide in the [Kovri repository](https://github.com/monero-project/kovri/).
### @Kovri / @I2P Terminology
#### Client + API
- @Address-Book
- @Base32-address
- @Base64-address
- @Canonically-unique-host
- @Eepsite (@Hidden-Service, @Garlic-Site, @Garlic-Service)
- @I2PControl
- @Jump-Service
- @Locally-unique-host
- @Reseed
- @Subscription
#### Core + Router
- @Clearnet
- @Data-Directory
- @Destination
- @Encryption
- @Floodfill
- @Garlic-Encryption
- @Garlic-Routing
- @I2NP
- @In-net
- @Java-I2P
- @Layered-Encryption
- @Lease
- @LeaseSet
- @Message @Messages
- @NTCP
- @Network-Database
- @Router-Info
- @SSU
- @Transports
- @Tunnel
---
layout: moneropedia
entry: "Lease-Set"
tags: ["kovri"]
terms: ["LeaseSet", "LeaseSets"]
summary: "Contains all currently authorized Leases for a particular I2P Destination"
---
### The Basics
A Lease-Set contains a set of authorized @leases (and other related information) for a particular @destination.
### In-depth information
A Lease-Set contains:
- all of the currently authorized @leases for a particular @destination
- the public key to which garlic messages can be encrypted (see @garlic-routing)
- the signing public key that can be used to revoke this particular version of the structure
The Lease-Set is one of the two structures stored in the @network-database (the other being @router-info), and is keyed under the SHA256 of the contained @destination.
### Notes
For further details, read @Java-I2P's [LeaseSet](https://geti2p.net/en/docs/how/network-database#leaseSet)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment