upload unstrandlated files

This commit is contained in:
erciccione 2018-02-04 16:56:31 +01:00
parent edaa998f1a
commit 35dd12bf8e
No known key found for this signature in database
GPG key ID: 8C683AE08CD4A88C
142 changed files with 5765 additions and 0 deletions

View file

@ -0,0 +1,28 @@
{% include untranslated.html %}
<div markdown="1" class="text-center container description">
Monero people are always down to get together and have a good time. Check below to see Monero-related events happening in your area.
</div>
{% for toplevel in site.data.events %}
<div class="events">
<div class="container full col-xs-12">
<div class="info-block text-adapt">
<div class="row">
<div class="col-xs-12">
<h2>{{toplevel.event}}</h2>
<h3>Where</h3>
<p>{{toplevel.where}}</p>
<h3>When</h3>
<p>{{toplevel.when}}</p>
<h3>Description</h3>
<p>{{toplevel.description}}</p>
<h3>Link</h3>
<a>{{toplevel.link}}</a>
</div>
</div>
</div>
</div>
</div>
{%endfor%}

View file

@ -0,0 +1,97 @@
{% include untranslated.html %}
<div markdown="1" class="text-center container description">
The Monero community is diverse and varied. We come from all over, but we definitely have some places we like to hang out together. You'll find most of them below. Join us!
</div>
<div class="hangouts">
<section class="container">
<ul class="row center-xs">
<li>
<a href="https://twitter.com/monerocurrency" target="_blank" rel="noreferrer noopener"><div class="social-icon twitter"></div></a>
</li>
<li>
<a href="https://reddit.com/r/monero" target="_blank" rel="noreferrer noopener"><div class="social-icon reddit"></div></a>
</li>
<li>
<a href="https://www.facebook.com/monerocurrency/" target="_blank" rel="noreferrer noopener"><div class="social-icon facebook"></div></a>
</li>
<li>
<a href="https://github.com/monero-project" target="_blank" rel="noreferrer noopener"><div class="social-icon github"></div></a>
</li>
</ul>
</section>
<section class="container">
<div class="row">
<!-- left two-thirds block-->
<div class="left two-thirds col-lg-8 col-md-8 col-sm-12 col-xs-12">
<div class="col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Workgroup Resources</h2>
</div>
</div>
<div class="row center-xs">
<p>In an effort to support organic workgroups, Monero has several resources that the community can use to meet and plan projects. Mattermost even has relays into the most popular Monero-related IRC channels.</p>
</div>
<div class="row relays around-xs">
<div class="col-md-4 col-sm-4 col-xs-4">
<p><a href="https://monero.slack.com/" class="btn-link btn-fixed">Slack</a></p>
</div>
<div class="col-md-4 col-sm-4 col-xs-4">
<p><a href="https://mattermost.getmonero.org/" class="btn-link btn-fixed">Mattermost</a></p>
</div>
<div class="col-md-4 col-sm-4 col-xs-4">
<p><a href="https://taiga.getmonero.org/" class="btn-link btn-fixed">Taiga</a></p>
</div>
</div>
</div>
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>IRC Channels</h2>
</div>
</div>
<div class="row start-xs">
<p>The Monero community utilizes a lot of IRC channels that each serve different purposes. Some to work, and some just to hang out. You'll find the more popular ones below.</p>
</div>
<div class="row irc">
{% for channel in site.data.irc %}
<div class="col-md-4 col-xs-12">
<a href="irc://chat.freenode.net/#{{ channel.channel }}">#{{ channel.channel }}</a>
<p>{{ channel.description }}</p>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<!-- end left two-thirds block-->
<!-- right one-third block-->
<div class="right one-third col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col"><h2>Stack Exchange</h2></div>
</div>
<div class="row start-xs">
<p>The Monero Stack Exchange is a quick and easy way to ask questions and get answers. Below you'll find some high quality question/answer pairs to some frequently asked questions.</p>
</div>
<div class="row start-xs sequestions">
<a href="https://monero.stackexchange.com/questions/4277/why-does-monero-have-higher-transaction-fees-than-bitcoin">Why does monero have higher transaction fees than bitcoin?</a>
<a href="https://monero.stackexchange.com/questions/4335/what-does-moneros-scaling-roadmap-look-like">What does Monero's scaling roadmap look like?</a>
<a href="https://monero.stackexchange.com/questions/4302/what-cryptography-primitives-concepts-other-than-the-basic-ones-does-monero-us">What cryptography primitives/concepts, other than the basic ones, does Monero use?</a>
<a href="https://monero.stackexchange.com/questions/4242/how-to-extract-data-from-local-blockchain">How to extract data from local blockchain?</a>
<a href="https://monero.stackexchange.com/questions/4302/what-cryptography-primitives-concepts-other-than-the-basic-ones-does-monero-us">Hiding TCP traffic for Monero miners?</a>
</div>
<div class="row center-xs">
<p><a href="https://monero.stackexchange.com" class="btn-link btn-auto">Visit Stack Exchange</a></p>
</div>
</div>
</div>
<!-- end right one-third block-->
</div>
</section>
</div>

View file

@ -0,0 +1,27 @@
{% include untranslated.html %}
<div markdown="1" class="text-center container description">
Merchants of all kinds have come to value the financial privacy that Monero brings. Below is a list of the merchants that we know of that currently accept Monero for their goods and services. If a company no longer accepts Monero or you would like your business to be listed, please [open a GitHub issue and let us know](https://github.com/monero-project/monero-site/issues).
</div>
<div class="merchants">
{% for toplevel in site.data.merchants %}
<div class="container full" id="{{toplevel.id}}">
<div class="info-block">
<h2>{{toplevel.category}}</h2>
<div class="row">
{% assign sortedMerchants = toplevel.merchants | sort: 'name' %}
{% for merchants in sortedMerchants %}
<div class="col-md-4 col-sm-6 col-xs-12">
<a href="{{merchants.url}}">{{merchants.name}}</a>
</div>
{% endfor %}
</div>
</div>
</div>
{%endfor%}
</div>
<div markdown="1" class="text-center container description">
*Please note: these links are being provided as a convenience and for informational purposes only; they do not constitute an endorsement by the Monero community of any products, services or opinions of the corporations or organizations or individuals listed. The Monero community bears no responsibility for the accuracy, legality, or content of these external sites. Contact the external site for answers to questions regarding its content. As always, caveat emptor ("buyer beware"); you are responsible for doing your own research. Always use judgement when making online purchases.*
</div>

View file

@ -0,0 +1,97 @@
{% include untranslated.html %}
<div markdown="1" class="text-center container description">
The following businesses have supported the Monero Project in its goal to bring financial privacy to the world. We couldn't be more grateful for their contributions. If you would like to sponsor the Monero Project and be listed on this page, please send an email to dev@getmonero.org.
</div>
<div>
<section class="container sponsors">
<div class="row">
<div class="left one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>My Monero</h2>
<a href="https://mymonero.com/#/" target="_blank" rel="noreferrer noopener"><img src="/img/mymonero.png"></a>
</div>
</div>
</div>
</div>
<div class="center one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Araxis</h2>
<a href="https://www.araxis.com/"><img src="/img/araxis.png"></a>
</div>
</div>
</div>
</div>
<div class="right one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Dome9 Security</h2>
<a href="https://dome9.com/"><img src="/img/dome9.png"></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="left one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Kitware</h2>
<a href="https://www.kitware.com/"><img src="/img/kitware.png"></a>
</div>
</div>
</div>
</div>
<div class="center one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Fork Networking</h2>
<a href="https://www.forked.net"><img src="/img/forked_logo.png"></a>
</div>
</div>
</div>
</div>
<div class="right one-third no-pad-sm col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>JetBrains</h2>
<a href="http://www.jetbrains.com/"><img src="/img/jetbrains.png"></a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="left half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Navicat</h2>
<a href="https://www.navicat.com"><img src="/img/navicat.png"></a>
</div>
</div>
</div>
</div>
<div class="right half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Symas</h2>
<a href="https://symas.com/"><img src="/img/symas.png"></a>
</div>
</div>
</div>
</div>
</div>
</section>
</div>

181
_i18n/it/community/team.md Normal file
View file

@ -0,0 +1,181 @@
{% include untranslated.html %}
<div class="team">
<section class="container">
<div class="row">
<div class="col-xs-12">
<div class="tabPanel-widget">
<label for="tab-1" tabindex="0"></label>
<input id="tab-1" type="radio" name="tabs" aria-hidden="true" checked>
<h2>Core</h2>
<div class="tabPanel-content">
<div class="row">
{% for toplevel in site.data.team %}
{% if toplevel.area == "Core" %}
{% for member in toplevel.member %}
<div class="half col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="info-block">
<div class="row center-xs">
<h3>{{member.name}}</h3>
</div>
<div class="row center-xs">
<p>{{member.email}}</p>
</div>
<div class="row center-xs icons">
{% if member.github %}
<a href="{{member.github}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon github"></div></a>
{%endif%}
{% if member.twitter %}
<a href="{{member.twitter}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon twitter"></div></a>
{%endif%}
{% if member.reddit %}
<a href="{{member.reddit}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon reddit"></div></a>
{%endif%}
</div>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
<label for="tab-2" tabindex="0"></label>
<input id="tab-2" type="radio" name="tabs" aria-hidden="true">
<h2>Developers</h2>
<div class="tabPanel-content">
<div class="container full">
<div class="info-block text-adapt">
<div class="row">
<div class="col-xs-12 text-adapt">
<p>The Monero Project has had well over 200 contributors over the life of the project. For a complete list, please see the <a href="https://www.openhub.net/p/monero/contributors">OpenHub contributors page</a>. Below you'll find some individuals that have gone above and beyond for Monero.</p>
</div>
</div>
</div>
</div>
<div class="row">
{% for toplevel in site.data.team %}
{% if toplevel.area == "Developers" %}
{% for member in toplevel.member %}
<div class="half col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="info-block">
<div class="row center-xs">
<h3>{{member.name}}</h3>
</div>
<div class="row center-xs icons">
{% if member.github %}
<a href="{{member.github}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon github"></div></a>
{%endif%}
{% if member.twitter %}
<a href="{{member.twitter}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon twitter"></div></a>
{%endif%}
{% if member.reddit %}
<a href="{{member.reddit}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon reddit"></div></a>
{%endif%}
</div>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
<label for="tab-3" tabindex="0"></label>
<input id="tab-3" type="radio" name="tabs" aria-hidden="true">
<h2>Community</h2>
<div class="tabPanel-content">
<div class="row">
{% for toplevel in site.data.team %}
{% if toplevel.area == "Community" %}
{% for member in toplevel.member %}
<div class="half col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="info-block">
<div class="row center-xs">
<h3>{{member.name}}</h3>
</div>
<div class="row center-xs icons">
{% if member.github %}
<a href="{{member.github}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon github"></div></a>
{%endif%}
{% if member.twitter %}
<a href="{{member.twitter}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon twitter"></div></a>
{%endif%}
{% if member.reddit %}
<a href="{{member.reddit}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon reddit"></div></a>
{%endif%}
</div>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
<label for="tab-4" tabindex="0"></label>
<input id="tab-4" type="radio" name="tabs" aria-hidden="true">
<h2>Research Lab</h2>
<div class="tabPanel-content">
<div class="row">
{% for toplevel in site.data.team %}
{% if toplevel.area == "Monero Research Lab" %}
{% for member in toplevel.member %}
<div class="half col-lg-6 col-md-6 col-sm-12 col-xs-6">
<div class="info-block">
<div class="row center-xs">
<h3>{{member.name}}</h3>
</div>
<div class="row center-xs icons">
{% if member.github %}
<a href="{{member.github}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon github"></div></a>
{%endif%}
{% if member.twitter %}
<a href="{{member.twitter}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon twitter"></div></a>
{%endif%}
{% if member.reddit %}
<a href="{{member.reddit}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon reddit"></div></a>
{%endif%}
</div>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
<label for="tab-5" tabindex="0"></label>
<input id="tab-5" type="radio" name="tabs" aria-hidden="true">
<h2>Special Thanks</h2>
<div class="tabPanel-content">
<div class="row">
{% for toplevel in site.data.team %}
{% if toplevel.area == "Special Thanks" %}
{% for member in toplevel.member %}
<div class="half col-lg-6 col-md-6 col-sm-12 col-xs-6">
<div class="info-block">
<div class="row center-xs">
<h3>{{member.name}}</h3>
</div>
<div class="row center-xs icons">
{% if member.github %}
<a href="{{member.github}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon github"></div></a>
{%endif%}
{% if member.twitter %}
<a href="{{member.twitter}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon twitter"></div></a>
{%endif%}
{% if member.reddit %}
<a href="{{member.reddit}}" target="_blank" rel="noreferrer, noopener"><div class="col social-icon reddit"></div></a>
{%endif%}
</div>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
</div>
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,90 @@
{% include untranslated.html %}
<section class="container">
<div class="row">
<!-- left two-thirds block-->
<div class="full">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>Instructions for the Command-Line Interface</h2>
</div>
</div>
<div markdown="1">
### The Basics
Monero works a little differently to what you may have become accustomed to from other @cryptocurrencies. In the case of a digital currency like Bitcoin and its many derivatives merchant payment systems will usually create a new recipient @address for each payment or user.
However, because Monero has @stealth-addresses there is no need to have separate recipient addresses for each payment or user, and a single @account address can be published. Instead, when receiving payments a merchant will provide the person paying with a "payment ID".
A @payment-ID is a hexadecimal string that is 64 characters long, and is normally randomly created by the merchant. An example of a payment ID is:
```
666c75666679706f6e7920697320746865206265737420706f6e792065766572
```
### Checking for a Payment in monero-wallet-cli
If you want to check for a payment using monero-wallet-cli you can use the "payments" command followed by the payment ID or payment IDs you want to check. For example:
```
[wallet 49VNLa]: payments 666c75666679706f6e7920697320746865206265737420706f6e792065766572
payment transaction height amount unlock time
666c75666679706f6e79206973207 7ba4cd810c9b4096869849458181e98e 441942 30.00000 0
[wallet 49VNLa]: █
```
If you need to check for payments programmatically, then details follow the next section.
### Receiving a Payment Step-by-Step
* Generate a random 64 character hexadecimal string for the payment
* Communicate the payment ID and Monero address to the individual who is making payment
* Check for the payment using the "payments" command in monero-wallet-cli
### Checking for a Payment Programmatically
In order to check for a payment programmatically you can use the get_payments or get_bulk_payments JSON RPC API calls.
*get_payments*: this requires a payment_id parameter with a single payment ID.
*get_bulk_payments*: this is the preferred method, and requires two parameters, payment_ids - a JSON array of payment IDs - and an optional min_block_height - the block height to scan from.
An example of returned data is as follows:
```
[ monero->~ ]$ curl -X POST http://127.0.0.1:18500/json_rpc -d '{"jsonrpc":"2.0","method":"get_bulk_payments","id":"test", "params":{"payment_ids": ["666c75666679706f6e7920697320746865206265737420706f6e792065766572"]}}' -H "Content-Type: application/json"
{
"id": "test",
"jsonrpc": "2.0",
"result": {
"payments": [{
"amount": 30000000000000,
"block_height": 441942,
"payment_id": "666c75666679706f6e7920697320746865206265737420706f6e792065766572",
"tx_hash": "7ba4cd810c9b4096869849458181e98e18b6474ab66415de0f4ccf7ab1162fdf",
"unlock_time": 0
}]
}
}
```
It is important to note that the amounts returned are in base Monero units and not in the display units normally used in end-user applications. Also, since a transaction will typically have multiple outputs that add up to the total required for the payment, the amounts should be grouped by the tx_hash or the payment_id and added together. Additionally, as multiple outputs can have the same amount, it is imperative not to try and filter out the returned data from a single get_bulk_payments call.
Before scanning for payments it is useful to check against the daemon RPC API (the get_info RPC call) to see if additional blocks have been received. Typically you would want to then scan only from that received block on by specifying it as the min_block_height to get_bulk_payments.
### Programatically Scanning for Payments
* Get the current block height from the daemon, only proceed if it has increased since our last scan
* Call the get_bulk_payments RPC API call with our last scanned height and the list of all payment IDs in our system
* Store the current block height as our last scanned height
* Remove duplicates based on transaction hashes we have already received and processed
</div>
</div>
</div>
<!-- end right one-third block-->
</div>
</section>

View file

@ -0,0 +1,93 @@
{% include untranslated.html %}
<div markdown="1" class="text-center container description">
Monero is an open-source, community-driven project. Described below are several ways to support the project.
</div>
<div class="contribute">
<section class="container">
<div class="row">
<!-- full block-->
<div class="full col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col"><h2>Support the Network</h2></div>
</div>
<div class="row start-xs" markdown="1">
### Develop
Monero is primarily written in C++. As it is a decentralized project, anyone is welcome to add or make changes to existing code. Pull requests are merged based on community consensus. See the <a href="https://github.com/monero-project"> repositories</a> and outstanding <a href="https://github.com/monero-project/monero/issues">issues</a>.
### Run a Full Node
Run monerod with port 18080 open. Running a full node ensures maximum privacy when transacting with Monero. It also improves distribution of the blockchain to new users.
### Mine
Mining ensures the Monero network remains decentralized and secure. In the Monero graphical user interface and command-line interface, background mining may be activated. Additional resources for mining may be viewed [here](https://reddit.com/r/MoneroMining).
</div>
</div>
</div>
<!-- end full block-->
<!-- full block-->
<div class="full col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>View the Forum Funding System</h2>
</div>
</div>
<div class="row start-xs">
<p>Monero utilizes a <a href="https://forum.getmonero.org">forum funding system</a> whereby projects are proposed for development and community-funded. Funding is held in escrow and remunerated to developers once programming milestones are achieved. Anyone may generate new proposals or fund existing ones.</p>
</div>
</div>
</div>
<!-- full block-->
<!-- full block-->
<div class="full col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>Donate</h2>
</div>
</div>
<div class="row start-xs">
<p>Ongoing development is supported by donations and <a href="{{site.baseurl}}/community/sponsorships/">sponsorships</a>.</p>
</div>
<div class="row center-xs">
<div class="col-lg-6">
<img src="/img/donate-monero.png" alt=""/>
</div>
<div class="col-lg-6">
<img src="/img/donate-bitcoin.png" alt=""/>
</div>
</div>
<div class="row start-xs">
<div class="col-xs-12">
<h3>Donating Monero</h3>
<p>Donations may be sent to donate.getmonero.org or 44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A</p>
</div>
</div>
<div class="row start-xs">
<div class="col-xs-12">
<h3>Donating Bitcoin</h3>
<p>Donations may be sent to donate.getmonero.org or 1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H</p>
</div>
</div>
<div class="row start-xs">
<div class="col-xs-12">
<h3>Other</h3>
<p>E-mail <a href="mailto:dev@getmonero.org">dev@getmonero.org</a> for alternative means of donating or if you would like to become a sponsor for the Monero Project.</p>
</div>
</div>
</div>
</div>
<!-- full block-->
</div>
</section>
</div>

136
_i18n/it/get-started/faq.md Normal file
View file

@ -0,0 +1,136 @@
{% include untranslated.html %}
<div class="tab">
<input id="tab-one" type="checkbox" name="tabs" class="accordion">
<label for="tab-one" class="accordion">How does Monero have value?</label>
<div class="tab-content" markdown="1">
Monero has value because people are willing to buy it. If no one is willing to buy Monero, then it will not have any value. Moneros price increases if demand exceeds supply, and it decreases if supply exceeds demand.
</div>
</div>
<div class="tab">
<input id="tab-two" type="checkbox" name="tabs" class="accordion">
<label for="tab-two" class="accordion">How can I get Monero?</label>
<div class="tab-content" markdown="1">
You can buy Monero from an exchange or from an individual. Alternatively, you can try mining Monero to get coins from the block reward.
</div>
</div>
<div class="tab">
<input id="tab-three" type="checkbox" name="tabs" class="accordion">
<label for="tab-three" class="accordion">What is a mnemonic seed?</label>
<div class="tab-content" markdown="1">
A mnemonic seed is a set of 25 words that can be used to restore your account anywhere. Keep these words safe and do not share them with someone else. You can use this seed to restore your account, even if your computer crashes.
</div>
</div>
<div class="tab">
<input id="tab-four" type="checkbox" name="tabs" class="accordion">
<label for="tab-four" class="accordion">How is Moneros privacy different from other coins?</label>
<div class="tab-content" markdown="1">
Monero uses three different privacy technologies: ring signatures, ring confidential transactions (RingCT), and stealth addresses. These hide the sender, amount, and receiver in the transaction, respectively. All transactions on the network are private by mandate; there is no way to accidentally send a transparent transaction. This feature is exclusive to Monero. You do not need to trust anyone else with your privacy.
</div>
</div>
<div class="tab">
<input id="tab-five" type="checkbox" name="tabs" class="accordion">
<label for="tab-five" class="accordion">Why is my wallet taking so long to sync?</label>
<div class="tab-content" markdown="1">
If you are running a full node locally, you need to copy the entire blockchain to your computer. This can take a long time, especially on an old hard drive or slow internet connection. If you are using a remote node, your computer still needs to request a copy of all the outputs, which can take several hours. Be patient, and if you would like to sacrifice some privacy for faster sync times, consider using a lightweight wallet instead.
</div>
</div>
<div class="tab">
<input id="tab-six" type="checkbox" name="tabs" class="accordion">
<label for="tab-six" class="accordion">What is the different between a lightweight and a normal wallet?</label>
<div class="tab-content" markdown="1">
For a lightweight wallet, you give your view key to a node, who scans the blockchain and looks for incoming transactions to your account on your behalf. This node will know when you receive money, but it will not know how much you receive, who you received it from, or who you are sending money to. Depending on your wallet software, you may be able to use a node you control to avoid privacy leaks. For more privacy, use a normal wallet, which can be used with your own node.
</div>
</div>
<div class="tab">
<input id="tab-seven" type="checkbox" name="tabs" class="accordion">
<label for="tab-seven" class="accordion">How is Monero different from Bitcoin?</label>
<div class="tab-content" markdown="1">
Monero is not based on Bitcoin. It is based on the CryptoNote protocol. Bitcoin is a completely transparent system, where people can see exactly how much money is being sent from one user to another. Monero hides this information to protect user privacy in all transactions. It also has a dynamic block size and dynamic fees, an ASIC-resistant proof of work, and a tail coin emission, among several other changes.
</div>
</div>
<div class="tab">
<input id="tab-eight" type="checkbox" name="tabs" class="accordion">
<label for="tab-eight" class="accordion">Does Monero have a block size limit?</label>
<div class="tab-content" markdown="1">
No, Monero does not have a hard block size limit. Instead, the block size can increase or decrease over time based on demand. It is capped at a certain growth rate to prevent outrageous growth.
</div>
</div>
<div class="tab">
<input id="tab-nine" type="checkbox" name="tabs" class="accordion">
<label for="tab-nine" class="accordion">What is a blockchain?</label>
<div class="tab-content" markdown="1">
A blockchain is a system that stores a copy of all transaction history on the Monero network. Every two minutes, a new block with the latest transaction information is added to the blockchain. This chain allows the network to verify the amount of money accounts have and make it resilient to attacks and centralization attempts.
</div>
</div>
<div class="tab">
<input id="tab-ten" type="checkbox" name="tabs" class="accordion">
<label for="tab-ten" class="accordion">What is Kovri?</label>
<div class="tab-content" markdown="1">
Kovri is an I2P router written in C++. I2P is a hidden network like Tor with several technical differences. Kovri is an independent project of Monero, but it will work with Monero and several other projects. Kovri hides the transaction broadcast, so other nodes do not know who created transactions. In adversarial conditions, Kovri can be used to hide all Monero traffic through I2P, which would prevent people from knowing Monero is being used. Kovri is currently in alpha, and it is not yet fully integrated in Monero. Learn more about Kovri at the [project website.](https://getkovri.org)
</div>
</div>
<div class="tab">
<input id="tab-eleven" type="checkbox" name="tabs" class="accordion">
<label for="tab-eleven" class="accordion">What is fungibility, and why is it important?</label>
<div class="tab-content" markdown="1">
Fungibility is a simple property of money such that there are no differences between two amounts of the same value. If two people exchanged a 10 and two 5s, then no one would lose out. However, lets suppose that everyone knows the 10 was previously used in a ransomware attack. Is the other person still going to make the trade? Probably not, even if the person with the 10 has no connection with the ransomware. This is a problem, since the receiver of money needs to constantly check the money they are receiving to not end up with tainted coins. Monero is fungible, which means people do not need to go through this effort.
</div>
</div>
<div class="tab">
<input id="tab-twelve" type="checkbox" name="tabs" class="accordion">
<label for="tab-twelve" class="accordion">If Monero is so private how do we know they're not being created out of thin air?</label>
<div class="tab-content" markdown="1">
In Monero, every transaction output is uniquely associated with a key image that can only be generated by the holder of that output. Key images that are used more than once are rejected by the miners as double-spends and cannot be added to a valid block. When a new transaction is received, miners verify that the key image does not already exist for a previous transaction to ensure it's not a double-spend.
We can also know that transaction amounts are valid even though the value of the inputs that you are spending and the value of the outputs you are sending are encrypted (these are hidden to everyone except the recipient). Because the amounts are encrypted using Pedersen commitments what this means is that no observers can tell the amounts of the inputs and outputs, but they can do math on the Pedersen commitments to determine that no Monero was created out of thin air.
As long as the encrypted output amounts you create is equal to the sum of the inputs that are being spent (which include an output for the recipient and a change output back to yourself and the unencrypted transaction fee), then you have a legitimate transaction and know no Monero is being created out of thin air. Pedersen commitments mean that the sums can be verified as being equal, but the Monero value of each of the sums and the Monero value of the inputs and outputs individually are undeterminable.
</div>
</div>

View file

@ -0,0 +1,99 @@
{% include untranslated.html %}
<div class="text-center container description">
<p>Transacting with Monero can be made easy. This page is designed to guide users in that process.</p>
</div>
<div class="using">
<section class="container">
<div class="row">
<!-- full block-->
<div class="full col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>1. Learn</h2>
</div>
</div>
<div class="row start-xs">
<p>Monero is a secure, private, and untraceable cryptocurrency. The developers and community are committed to protecting these values. Learn more by reading the <a href="{{site.baseurl}}/get-started/what-is-monero/">What is Monero</a> page. The <a href="https://github.com/monero-project">source code</a> is also available for review and discussion.</p>
</div>
</div>
</div>
<!-- end full block -->
</div>
</section>
<section class="container">
<div class="row">
<div class="left half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>2. Request Support</h2>
</div>
</div>
<div class="row start-xs">
<p>There is a large and supportive community that will assist if you experience any difficulty. See the <a href="{{site.baseurl}}/community/hangouts/">Hangouts</a> page for more information.</p>
</div>
</div>
</div>
<div class="right half col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>3. Generate a Wallet</h2>
</div>
</div>
<div class="row start-xs">
<p>A Monero wallet is required to secure your own funds. See the <a href="{{site.baseurl}}/downloads/">Downloads</a> page for a listing of available wallets.</p>
<p>The easiest way to run a Monero node, without affecting your home bandwidth, is to purchase a VPS (Virtual Private Server). We strongly recommend <a href="https://interserver.net/dock/vps-231552.html">InterServer.net</a> using the 'MONERO' coupon code to get a discount over and above their already cheap $6/month VPS. Using this coupon code and/or <a href="https://interserver.net/dock/vps-231552.html">our affiliate link</a> will also assist in the ongoing funding of Monero development.</p>
</div>
</div>
</div>
</div>
</section>
<section class="container">
<div class="row">
<!-- full block-->
<div class="full col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>4. Acquire Monero</h2>
</div>
</div>
<div class="row start-xs">
<p>Monero may be purchased on an <a href="{{site.baseurl}}/community/merchants#exchanges">exchange</a> with fiat or other cryptocurrencies. An alternate way of acquiring Monero is via <a href="{{site.baseurl}}/get-started/mining/">mining</a>, the computationally-complex process whereby transactions are immutably recorded on the blockchain.</p>
</div>
</div>
</div>
<!-- end full block -->
</div>
</section>
<section class="container">
<div class="row">
<div class="left half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>5. Send and Receive Monero</h2>
</div>
</div>
<div class="row start-xs">
<p>Learn how to send and receive Monero by viewing the <a href="{{site.baseurl}}/get-started/accepting/">guide</a>.</p>
</div>
</div>
</div>
<div class="right half col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>6. Transact with Monero</h2>
</div>
</div>
<div class="row start-xs">
<p>Monero may be used to purchase many goods and services. For a listing, see the <a href="{{site.baseurl}}/community/merchants/">Merchants</a> page. </p>
</div>
</div>
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,57 @@
{% include untranslated.html %}
<div class="about-monero">
<section class="container">
<div class="row">
<!-- left two-thirds block-->
<div class="full col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>A Brief History</h2>
</div>
</div>
<div markdown="1">
Monero was launched in April 2014. It was a fair, pre-announced launch of the CryptoNote reference code. There was no premine or instamine, and no portion of the block reward goes to development. See the original Bitcointalk thread here. The founder, thankful_for_today, proposed some controversial changes that the community disagreed with. A fallout ensued, and the Monero Core Team forked the project with the community following this new Core Team. This Core Team has provided oversight since.
Monero has made several large improvements since launch. The blockchain was migrated to a different database structure to provide greater efficiency and flexibility, minimum ring signature sizes were set so that all transactions were private by mandate, and RingCT was implemented to hide the transaction amounts. Nearly all improvements have provided improvements to security or privacy, or they have facilitated use. Monero continues to develop with goals of privacy and security first, ease of use and efficiency second.
</div>
</div>
</div>
<!-- end right one-third block-->
</div>
<div class="row">
<!-- left two-thirds block-->
<div class="full col-xs-12">
<div class="info-block text-adapt">
<div class="row center-xs">
<div class="col">
<h2>Our Values</h2>
</div>
</div>
<div markdown="1">
Monero is more than just a technology. Its also what the technology stands for. Some of the important guiding philosophies are listed below.
### Security
Users must be able to trust Monero with their transactions, without risk of error or attack. Monero gives the full block reward to the miners, who are the most critical members of the network who provide this security. Transactions are cryptographically secure using the latest and most resilient encryption tools available.
### Privacy
Monero takes privacy seriously. Monero needs to be able to protect users in a court of law and, in extreme cases, from the death penalty. This level of privacy must be completely accessible to all users, whether they are technologically competent or have no idea how Monero works. A user needs to confidently trust Monero in a way that this person does not feel pressured into changing their spending habits for risk of others finding out.
### Decentralization
Monero is committed to providing the maximum amount of decentralization. With Monero, you do not have to trust anyone else on the network, and it is not run by any large group. An accessible “Proof of Work” algorithm makes it easy to mine Monero on normal computers, which makes it more difficult for someone to purchase a large amount of mining power. Nodes connect to each other with I2P to lower the risks of revealing sensitive transaction information and censorship (tba). Development decisions are extremely clear and open to public discussion. Developer meeting logs are published online in their entirety and visible by all.
</div>
</div>
</div>
<!-- end right one-third block-->
</div>
</section>

View file

@ -0,0 +1,20 @@
{% include untranslated.html %}
<div class="guides">
<div class="center-xs container description">
<p class="text-center">Please note: the guides below are currently out of date, but are considered a good starting point for most calls. </p>
</div>
<section class="container full">
<div class="info-block">
<h2>RPC Documetation</h2>
<div markdown="1">
[Daemon RPC Documentation](daemon-rpc.html)
[Wallet RPC Documentation](wallet-rpc.html)
More coming soon...
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,832 @@
{% include untranslated.html %}
## Introduction
This is a list of the monerod daemon RPC calls, their inputs and outputs, and examples of each.
Many RPC calls use the daemon's JSON RPC interface while others use their own interfaces, as demonstrated below.
Note: "atomic units" refer to the smallest fraction of 1 XMR according to the monerod implementation. **1 XMR = 1e12 atomic units.**
### [JSON RPC Methods](#json-rpc-methods):
* [getblockcount](#getblockcount)
* [on_getblockhash](#on_getblockhash)
* [getblocktemplate](#getblocktemplate)
* [submitblock](#submitblock)
* [getlastblockheader](#getlastblockheader)
* [getblockheaderbyhash](#getblockheaderbyhash)
* [getblockheaderbyheight](#getblockheaderbyheight)
* [getblock](#getblock)
* [get_connections](#get_connections)
* [get_info](#get_info)
* [hard_fork_info](#hard_fork_info)
* [setbans](#setbans)
* [getbans](#getbans)
### [Other RPC Methods](#other-daemon-rpc-calls):
* [/getheight](#getheight)
* [/gettransactions](#gettransactions)
* [/is_key_image_spent](#is_key_image_spent)
* [/sendrawtransaction](#sendrawtransaction)
* [/get_transaction_pool](#get_transaction_pool)
* [/stop_daemon](#stop_daemon)
---
## JSON RPC Methods
The majority of monerod RPC calls use the daemon's `json_rpc` interface to request various bits of information. These methods all follow a similar structure, for example:
```
IP=127.0.0.1
PORT=18081
METHOD='getblockheaderbyheight'
PARAMS='{"height":912345}'
curl \
-X POST http://$IP:$PORT/json_rpc \
-d '{"jsonrpc":"2.0","id":"0","method":"'$METHOD'","params":'$PARAMS'}' \
-H 'Content-Type: application/json'
```
Some methods include parameters, while others do not. Examples of each JSON RPC method follow.
### **getblockcount**
Look up how many blocks are in the longest chain known to the node.
Inputs: *None*.
Outputs:
* *count* - unsigned int; Number of blocks in longest chain seen by the node.
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockcount"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"count": 993163,
"status": "OK"
}
}
```
### **on_getblockhash**
Look up a block's hash by its height.
Inputs:
* block height (int array of length 1)
Outputs:
* block hash (string)
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"on_getblockhash","params":[912345]}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"
}
```
### **getblocktemplate**
Inputs:
* *wallet_address* - string; Address of wallet to receive coinbase transactions if block is successfully mined.
* *reserve_size* - unsigned int; Reserve size.
Outputs:
* *blocktemplate_blob* - string; Blob on which to try to mine a new block.
* *difficulty* - unsigned int; Difficulty of next block.
* *height* - unsigned int; Height on which to mine.
* *prev_hash* - string; Hash of the most recent block on which to mine the next block.
* *reserved_offset* - unsigned int; Reserved offset.
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblocktemplate","params":{"wallet_address":"44GBHzv6ZyQdJkjqZje6KLZ3xSyN1hBSFAnLP6EAqJtCRVzMzZmeXTC2AHKDS9aEDTRKmo6a6o9r9j86pYfhCWDkKjbtcns","reserve_size":60}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"blocktemplate_blob": "01029af88cb70568b84a11dc9406ace9e635918ca03b008f7728b9726b327c1b482a98d81ed83000000000018bd03c01ffcfcf3c0493d7cec7020278dfc296544f139394e5e045fcda1ba2cca5b69b39c9ddc90b7e0de859fdebdc80e8eda1ba01029c5d518ce3cc4de26364059eadc8220a3f52edabdaf025a9bff4eec8b6b50e3d8080dd9da417021e642d07a8c33fbe497054cfea9c760ab4068d31532ff0fbb543a7856a9b78ee80c0f9decfae01023ef3a7182cb0c260732e7828606052a0645d3686d7a03ce3da091dbb2b75e5955f01ad2af83bce0d823bf3dbbed01ab219250eb36098c62cbb6aa2976936848bae53023c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f12d7c87346d6b84e17680082d9b4a1d84e36dd01bd2c7f3b3893478a8d88fb3",
"difficulty": 982540729,
"height": 993231,
"prev_hash": "68b84a11dc9406ace9e635918ca03b008f7728b9726b327c1b482a98d81ed830",
"reserved_offset": 246,
"status": "OK"
}
}
```
### **submitblock**
Submit a mined block to the network.
Inputs:
* Block blob data - string
Outputs:
* *status* - string; Block submit status.
### **getlastblockheader**
Block header information for the most recent block is easily retrieved with this method. No inputs are needed.
Inputs: *None*.
Outputs:
* *block_header* - A structure containing block header information.
* *depth* - unsigned int; The number of blocks succeeding this block on the blockchain. A larger number means an older block.
* *difficulty* - unsigned int; The strength of the Monero network based on mining power.
* *hash* - string; The hash of this block.
* *height* - unsigned int; The number of blocks preceding this block on the blockchain.
* *major_version* - unsigned int; The major version of the monero protocol at this block height.
* *minor_version* - unsigned int; The minor version of the monero protocol at this block height.
* *nonce* - unsigned int; a cryptographic random one-time number used in mining a Monero block.
* *orphan_status* - boolean; Usually `false`. If `true`, this block is not part of the longest chain.
* *prev_hash* - string; The hash of the block immediately preceding this block in the chain.
* *reward* - unsigned int; The amount of new atomic units generated in this block and rewarded to the miner. Note: 1 XMR = 1e12 atomic units.
* *timestamp* - unsigned int; The time the block was recorded into the blockchain.
* *status* - string; General RPC error code. "OK" means everything looks good.
In this example, the most recent block (990793 at the time) is returned:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getlastblockheader"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"block_header": {
"depth": 0,
"difficulty": 746963928,
"hash": "ac0f1e226268d45c99a16202fdcb730d8f7b36ea5e5b4a565b1ba1a8fc252eb0",
"height": 990793,
"major_version": 1,
"minor_version": 1,
"nonce": 1550,
"orphan_status": false,
"prev_hash": "386575e3b0b004ed8d458dbd31bff0fe37b280339937f971e06df33f8589b75c",
"reward": 6856609225169,
"timestamp": 1457589942
},
"status": "OK"
}
}
```
### **getblockheaderbyhash**
Block header information can be retrieved using either a block's hash or height. This method includes a block's hash as an input parameter to retrieve basic information about the block.
Inputs:
* *hash* - string; The block's sha256 hash.
Outputs:
* *block_header* - A structure containing block header information. See [getlastblockheader](#getlastblockheader).
In this example, block 912345 is looked up by its hash:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockheaderbyhash","params":{"hash":"e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"block_header": {
"depth": 78376,
"difficulty": 815625611,
"hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
"height": 912345,
"major_version": 1,
"minor_version": 2,
"nonce": 1646,
"orphan_status": false,
"prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
"reward": 7388968946286,
"timestamp": 1452793716
},
"status": "OK"
}
}
```
### **getblockheaderbyheight**
Similar to `getblockheaderbyhash` above, this method includes a block's height as an input parameter to retrieve basic information about the block.
Inputs:
* *height* - unsigned int; The block's height.
Outputs:
* *block_header* - A structure containing block header information. See [getlastblockheader](#getlastblockheader).
In this example, block 912345 is looked up by its height (notice that the returned information is the save as in the previous example):
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblockheaderbyheight","params":{"height":912345}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"block_header": {
"depth": 78376,
"difficulty": 815625611,
"hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
"height": 912345,
"major_version": 1,
"minor_version": 2,
"nonce": 1646,
"orphan_status": false,
"prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
"reward": 7388968946286,
"timestamp": 1452793716
},
"status": "OK"
}
}
```
### **getblock**
Full block information can be retrieved by either block height or hash, like with the above block header calls. For full block information, both lookups use the same method, but with different input parameters.
Inputs (pick one of the following):
* *height* - unsigned int; The block's height.
* *hash* - string; The block's hash.
Outputs:
* *blob* - string; Hexadecimal blob of block information.
* *block_header* - A structure containing block header information. See [getlastblockheader](#getlastblockheader).
* *json* - json string; JSON formatted block details:
* *major_version* - Same as in block header.
* *minor_version* - Same as in block header.
* *timestamp* - Same as in block header.
* *prev_id* - Same as `prev_hash` in block header.
* *nonce* - Same as in block header.
* *miner_tx* - Miner transaction information
* *version* - Transaction version number.
* *unlock_time* - The block height when the coinbase transaction becomes spendable.
* *vin* - List of transaction inputs:
* *gen* - Miner txs are coinbase txs, or "gen".
* *height* - This block height, a.k.a. when the coinbase is generated.
* *vout* - List of transaction outputs. Each output contains:
* *amount* - The amount of the output, in atomic units.
* *target* -
* *key* -
* *extra* - Usually called the "transaction ID" but can be used to include any random 32 byte/64 character hex string.
* *signatures* - Contain signatures of tx signers. Coinbased txs do not have signatures.
* *tx_hashes* - List of hashes of non-coinbase transactions in the block. If there are no other transactions, this will be an empty list.
* *status* - string; General RPC error code. "OK" means everything looks good.
**Look up by height:**
In the following example, block 912345 is looked up by its height. Note that block 912345 does not have any non-coinbase transactions. (See the next example for a block with extra transactions):
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblock","params":{"height":912345}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"blob": "...",
"block_header": {
"depth": 80694,
"difficulty": 815625611,
"hash": "e22cf75f39ae720e8b71b3d120a5ac03f0db50bba6379e2850975b4859190bc6",
"height": 912345,
"major_version": 1,
"minor_version": 2,
"nonce": 1646,
"orphan_status": false,
"prev_hash": "b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78",
"reward": 7388968946286,
"timestamp": 1452793716
},
"json": "{\n \"major_version\": 1, \n \"minor_version\": 2, \n \"timestamp\": 1452793716, \n \"prev_id\": \"b61c58b2e0be53fad5ef9d9731a55e8a81d972b8d90ed07c04fd37ca6403ff78\", \n \"nonce\": 1646, \n \"miner_tx\": {\n \"version\": 1, \n \"unlock_time\": 912405, \n \"vin\": [ {\n \"gen\": {\n \"height\": 912345\n }\n }\n ], \n \"vout\": [ {\n \"amount\": 8968946286, \n \"target\": {\n \"key\": \"378b043c1724c92c69d923d266fe86477d3a5ddd21145062e148c64c57677008\"\n }\n }, {\n \"amount\": 80000000000, \n \"target\": {\n \"key\": \"73733cbd6e6218bda671596462a4b062f95cfe5e1dbb5b990dacb30e827d02f2\"\n }\n }, {\n \"amount\": 300000000000, \n \"target\": {\n \"key\": \"47a5dab669770da69a860acde21616a119818e1a489bb3c4b1b6b3c50547bc0c\"\n }\n }, {\n \"amount\": 7000000000000, \n \"target\": {\n \"key\": \"1f7e4762b8b755e3e3c72b8610cc87b9bc25d1f0a87c0c816ebb952e4f8aff3d\"\n }\n }\n ], \n \"extra\": [ 1, 253, 10, 119, 137, 87, 244, 243, 16, 58, 131, 138, 253, 164, 136, 195, 205, 173, 242, 105, 123, 61, 52, 173, 113, 35, 66, 130, 178, 250, 217, 16, 14, 2, 8, 0, 0, 0, 11, 223, 194, 193, 108\n ], \n \"signatures\": [ ]\n }, \n \"tx_hashes\": [ ]\n}",
"status": "OK"
}
}
```
**Look up by hash:**
In the following example, block 993056 is looked up by its hash. Note that block 993056 has 3 non-coinbase transactions:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblock","params":{"hash":"510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"blob": "...",
"block_header": {
"depth": 12,
"difficulty": 964985344,
"hash": "510ee3c4e14330a7b96e883c323a60ebd1b5556ac1262d0bc03c24a3b785516f",
"height": 993056,
"major_version": 1,
"minor_version": 2,
"nonce": 2036,
"orphan_status": false,
"prev_hash": "0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d",
"reward": 6932043647005,
"timestamp": 1457720227
},
"json": "{\n \"major_version\": 1, \n \"minor_version\": 2, \n \"timestamp\": 1457720227, \n \"prev_id\": \"0ea4af6547c05c965afc8df6d31509ff3105dc7ae6b10172521d77e09711fd6d\", \n \"nonce\": 2036, \n \"miner_tx\": {\n \"version\": 1, \n \"unlock_time\": 993116, \n \"vin\": [ {\n \"gen\": {\n \"height\": 993056\n }\n }\n ], \n \"vout\": [ {\n \"amount\": 2043647005, \n \"target\": {\n \"key\": \"59e9d685b3484886bc7b47c133e6099ecdf212d5eaa16ce19cd58e8c3c1e590a\"\n }\n }, {\n \"amount\": 30000000000, \n \"target\": {\n \"key\": \"4c5e2f542d25513c46b9e3b7d40140a22d0ae5314bfcae492ad9f56fff8185f0\"\n }\n }, {\n \"amount\": 900000000000, \n \"target\": {\n \"key\": \"13dd8ffdac9e6a2f71e327dad65328198dc879a492d145eae72677c0703a3515\"\n }\n }, {\n \"amount\": 6000000000000, \n \"target\": {\n \"key\": \"62bda00341681dccbc066757862da593734395745bdfe1fdc89b5948c86a5d4c\"\n }\n }\n ], \n \"extra\": [ 1, 182, 145, 133, 28, 240, 87, 185, 195, 2, 163, 219, 202, 135, 158, 28, 186, 76, 196, 80, 97, 202, 85, 170, 166, 224, 60, 220, 103, 171, 158, 69, 80, 2, 8, 0, 0, 0, 12, 97, 127, 223, 22\n ], \n \"signatures\": [ ]\n }, \n \"tx_hashes\": [ \"79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07\", \"d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b\", \"b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d\"\n ]\n}",
"status": "OK",
"tx_hashes": ["79c6b9f00db027bde151705aafe85c495883aae2597d5cb8e1adb2e0f3ae1d07","d715db73331abc3ec588ef07c7bb195786a4724b08dff431b51ffa32a4ce899b","b197066426c0ed89f0b431fe171f7fd62bc95dd29943daa7cf3585cf1fdfc99d"]
}
}
```
### **get_connections**
Retrieve information about incoming and outgoing connections to your node.
Inputs: *None*.
Outputs:
* *connections* - List of all connections and their info:
* *avg_download* - unsigned int; Average bytes of data downloaded by node.
* *avg_upload* - unsigned int; Average bytes of data uploaded by node.
* *current_download* - unsigned int; Current bytes downloaded by node.
* *current_upload* - unsigned int; Current bytes uploaded by node.
* *incoming* - boolean; Is the node getting information from your node?
* *ip* - string; The node's IP address.
* *live_time* - unsigned int
* *local_ip* - boolean
* *localhost* - boolean
* *peer_id* - string; The node's ID on the network.
* *port* - stringl The port that the node is using to connect to the network.
* *recv_count* - unsigned int
* *recv_idle_time* - unsigned int
* *send_count* - unsigned int
* *send_idle_time* - unsigned int
* *state* - string
Following is an example of `get_connections` and it's return:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_connections"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"connections": [{
"avg_download": 0,
"avg_upload": 0,
"current_download": 0,
"current_upload": 0,
"incoming": false,
"ip": "76.173.170.133",
"live_time": 1865,
"local_ip": false,
"localhost": false,
"peer_id": "3bfe29d6b1aa7c4c",
"port": "18080",
"recv_count": 116396,
"recv_idle_time": 23,
"send_count": 176893,
"send_idle_time": 1457726610,
"state": "state_normal"
},{
...
}],
"status": "OK"
}
}
```
### **get_info**
Retrieve general information about the state of your node and the network.
Inputs: *None*.
Outputs:
* *alt_blocks_count* - unsigned int; Number of alternative blocks to main chain.
* *difficulty* - unsigned int; Network difficulty (analogous to the strength of the network)
* *grey_peerlist_size* - unsigned int; Grey Peerlist Size
* *height* - unsigned int; Current length of longest chain known to daemon.
* *incoming_connections_count* - unsigned int; Number of peers connected to and pulling from your node.
* *outgoing_connections_count* - unsigned int; Number of peers that you are connected to and getting information from.
* *status* - string; General RPC error code. "OK" means everything looks good.
* *target* - unsigned int; Current target for next proof of work.
* *target_height* - unsigned int; The height of the next block in the chain.
* *testnet* - boolean; States if the node is on the testnet (true) or mainnet (false).
* *top_block_hash* - string; Hash of the highest block in the chain.
* *tx_count* - unsigned int; Total number of non-coinbase transaction in the chain.
* *tx_pool_siz* - unsigned int; Number of transactions that have been broadcast but not included in a block.
* *white_peerlist_size* - unsigned int; White Peerlist Size
Following is an example `get_info` call and its return:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"alt_blocks_count": 5,
"difficulty": 972165250,
"grey_peerlist_size": 2280,
"height": 993145,
"incoming_connections_count": 0,
"outgoing_connections_count": 8,
"status": "OK",
"target": 60,
"target_height": 993137,
"testnet": false,
"top_block_hash": "",
"tx_count": 564287,
"tx_pool_size": 45,
"white_peerlist_size": 529
}
}
```
### **hard_fork_info**
Look up information regarding hard fork voting and readiness.
Inputs: *None*.
Outputs:
* *earliest_height* - unsigned int; Block height at which hard fork would be enabled if voted in.
* *enabled* - boolean; Tells if hard fork is enforced.
* *state* - unsigned int; Current hard fork state: 0 (There is likely a hard fork), 1 (An update is needed to fork properly), or 2 (Everything looks good).
* *status* - string; General RPC error code. "OK" means everything looks good.
* *threshold* - unsigned int; Minimum percent of votes to trigger hard fork. Default is 80.
* *version* - unsigned int; The major block version for the fork.
* *votes* - unsigned int; Number of votes towards hard fork.
* *voting* - unsigned int; Hard fork voting status.
* *window* - unsigned int; Number of blocks over which current votes are cast. Default is 10080 blocks.
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"hard_fork_info"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"earliest_height": 1009827,
"enabled": false,
"state": 2,
"status": "OK",
"threshold": 0,
"version": 1,
"votes": 7277,
"voting": 2,
"window": 10080
}
}
```
### **setbans**
Ban another node by IP.
Inputs:
* *bans* - A list of nodes to ban:
* *ip* - unsigned int; IP address to ban, in Int format.
* *ban* - boolean; Set `true` to ban.
* *seconds* - unsigned int; Number of seconds to ban node.
Outputs:
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"setbans","params":{"bans":[{"ip":838969536,"ban":true,"seconds":30}]}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"status": "OK"
}
}
```
### **getbans**
Inputs: *None*.
Outputs:
* *bans* - List of banned nodes:
* *ip* - unsigned int; Banned IP address, in Int format.
* *seconds* - unsigned int; Local Unix time that IP is banned until.
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getbans"}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"bans": [{
"ip": 838969536,
"seconds": 1457748792
}],
"status": "OK"
}
}
```
---
## Other Daemon RPC Calls
Not all daemon RPC calls use the JSON_RPC interface. This section gives examples of these calls.
The data structure for these calls is different than the JSON RPC calls. Whereas the JSON RPC methods were called using the `/json_rpc` extension and specifying a method, these methods are called at their own extensions. For example:
IP=127.0.0.1
PORT=18081
METHOD='gettransactions'
PARAMS='{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"]}'
curl \
-X POST http://$IP:$PORT/$METHOD \
-d $PARAMS \
-H 'Content-Type: application/json'
Note: It is recommended to use JSON RPC where such alternatives exist, rather than the following methods. For example, the recommended way to get a node's height is via the JSON RPC methods [get_info](#getinfo) or [getlastblockheader](#getlastblockheader), rather than [getheight](#getheight) below.
### **/getheight**
Get the node's current height.
Inputs: *None*.
Outputs:
* *height* - unsigned int; Current length of longest chain known to daemon.
```
$ curl -X POST http://127.0.0.1:18081/getheight -H 'Content-Type: application/json'
{
"height": 993488,
"status": "OK"
}
```
### **/gettransactions**
Look up one or more transactions by hash.
Inputs:
* *txs_hashes* - string list; List of transaction hashes to look up.
* *decode_as_json* - boolean; Optional. If set `true`, the returned transaction information will be decoded rather than binary.
Outputs:
* *status* - General RPC error code. "OK" means everything looks good.
* *txs_as_hex* - string; Full transaction information as a hex string.
* *txs_as_json* - json string; (Optional - returned if set in inputs.) List of transaction info:
* *version* - Transaction version
* *unlock_time* - If not 0, this tells when a transaction output is spendable.
* *vin* - List of inputs into transaction:
* *key* - The public key of the previous output spent in this transaction.
* *amount* - The amount of the input, in atomic units.
* *key_offsets* - A list of integer offets to the input.
* *k_image* - The key image for the given input
* *vout* - List of outputs from transaction:
* *amount* - Amount of transaction output, in atomic units.
* *target* - Output destination information:
* *key* - The stealth public key of the receiver. Whoever owns the private key associated with this key controls this transaction output.
* *extra* - Usually called the "payment ID" but can be used to include any random 32 bytes.
* *signatures* - List of ignatures used in ring signature to hide the true origin of the transaction.
Example 1: Return transaction information in binary format.
```
$ curl -X POST http://127.0.0.1:18081/gettransactions -d '{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"]}' -H 'Content-Type: application/json'
{
"status": "OK",
"txs_as_hex": ["..."]
}
```
Example 2: Decode returned transaction information in JSON format. Note: the "vout" list has been truncated in the displayed return for space considerations.
```
$ curl -X POST http://127.0.0.1:18081/gettransactions -d '{"txs_hashes":["d6e48158472848e6687173a91ae6eebfa3e1d778e65252ee99d7515d63090408"],"decode_as_json":true}' -H 'Content-Type: application/json'
{
"status": "OK",
"txs_as_hex": ["..."],
"txs_as_json": ["{\n \"version\": 1, \n \"unlock_time\": 0, \n \"vin\": [ {\n \"key\": {\n \"amount\": 70000000, \n \"key_offsets\": [ 35952\n ], \n \"k_image\": \"d16908468dff9438a9814fe96bdaa575f06fe8da85772b72e54926428712293d\"\n }\n }, {\n \"key\": {\n \"amount\": 400000000000000, \n \"key_offsets\": [ 6830\n ], \n \"k_image\": \"c7a7024b763df1181ae6fe821b70669735e38a68162ac02362e33acbe829b605\"\n }\n }\n ], \n \"vout\": [ {\n \"amount\": 50000, \n \"target\": {\n \"key\": \"f6be43f7be4f06adcb1d06f4a07c637c7359e009cf3e57bb32b8c9ea636509c3\"\n }\n }, {\n \"amount\": 200000, \n \"target\": {\n \"key\": \"b0a7a8e32f2b5302552bcd8d85112c62838b1f56cccd844eb9b63e0a732d0353\"\n }\n }, ... \n ], \n \"extra\": [ 1, 225, 240, 98, 34, 169, 73, 47, 237, 117, 192, 30, 192, 60, 155, 47, 4, 115, 20, 21, 11, 13, 252, 219, 129, 13, 174, 37, 36, 78, 191, 141, 109\n ], \n \"signatures\": [ \"e6a3be8003d481d2855c8127f56871de3d28a4fb52385b999eb986c831c5cc08361c126b0db24a21b6c4299b438ee2be201d44d57a371230b9cd04395ab8c400\", \"8309851abaf2cf2a7091e0cdb9c83704fa7d68838a7a8ef8c178bb55a1e93a038dd18bb4a7549dc056b7a70e037cabd80911a03f427e36f712756d4c00f38f0b\"]\n}"]
}
```
### **/is_key_image_spent**
Check if outputs have been spent using the key image associated with the output.
Inputs:
* *key_images* - string list; List of key image hex strings to check.
Outputs:
* *spent_status* - unsigned int list; List of statuses for each image checked. Statuses are follows: 0 = unspent, 1 = spent in blockchain, 2 = spent in transaction pool
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/is_key_image_spent -d '{"key_images":["8d1bd8181bf7d857bdb281e0153d84cd55a3fcaa57c3e570f4a49f935850b5e3","7319134bfc50668251f5b899c66b005805ee255c136f0e1cecbb0f3a912e09d4"]}' -H 'Content-Type: application/json'
{
"spent_status": [1,2],
"status": "OK"
}
```
### **/sendrawtransaction**
Broadcast a raw transaction to the network.
Inputs:
* *tx_as_hex* - string; Full transaction information as hexidecimal string.
Outputs:
* *status* - string; General RPC error code. "OK" means everything looks good. Any other value means that something went wrong.
* *double_spend* - boolean; Transaction is a double spend (`true`) or not (`false`).
* *fee_too_low* - boolean; Fee is too low (`true`) or OK (`false`).
* *invalid_input* - boolean; Input is invalid (`true`) or valid (`false`).
* *invalid_output* - boolean; Output is invalid (`true`) or valid (`false`).
* *low_mixin* - boolean; Mixin count is too low (`true`) or OK (`false`).
* *not_rct* - boolean; Transaction is not a ring transaction (`true`) or a ring transaction (`false`).
* *not_relayed* - boolean; Transaction was not relayed (`true`) or relayed (`false`).
* *overspend* - boolean; Transaction uses more money than available (`true`) or not (`false`).
* *reason* - string; Additional information. Currently empty or "Not relayed" if transaction was accepted but not relayed.
* *too_big* - boolean; Transaction size is too big (`true`) or OK (`false`).
Example (No return information included here.):
```
$ curl -X POST http://127.0.0.1:18081/sendrawtransaction -d '{"tx_as_hex":"de6a3..."}' -H 'Content-Type: application/json'
```
### **/get_transaction_pool**
Show information about valid transactions seen by the node but not yet mined into a block, as well as spent key image information in the node's memory.
Inputs: *None*.
Outputs:
* *spent_key_images* - List of spent output key images:
* *id_hash* - string; Key image ID hash.
* *txs_hashes* - string list; Key image transaction hashes.
* *status* - string; General RPC error code. "OK" means everything looks good.
* *transactions* - List of transactions in the mempool that have not been included in a block:
* *blob_size* - unsigned int; The size of the full transaction blob.
* *fee* - unsigned int; The amount of the mining fee included in the transaction, in atomic units.
* *id_hash* - string; The transaction ID hash.
* *kept_by_block* - boolean; We do not accept transactions that timed out before, unless set `true`.
* *last_failed_height* - unsigned int; If the transaction has previously timed out, this tells at what height that occured.
* *last_failed_id_hash* - string; Like the previous, this tells the previous transaction ID hash.
* *max_used_block_height* - unsigned int; Tells the height of the most recent block with an output used in this transaction.
* *max_used_block_hash* - string; Tells the hash of the most recent block with an output used in this transaction.
* *receive_time* - unsigned int; The Unix time that the transaction was first seen on the network by the node.
* *tx_json* - json string; JSON structure of all information in the transaction:
* *version* - Transaction version
* *unlock_time* - If not 0, this tells when a transaction output is spendable.
* *vin* - List of inputs into transaction:
* *key* - The public key of the previous output spent in this transaction.
* *amount* - The amount of the input, in atomic units.
* *key_offsets* - A list of integer offets to the input.
* *k_image* - The key image for the given input
* *vout* - List of outputs from transaction:
* *amount* - Amount of transaction output, in atomic units.
* *target* - Output destination information:
* *key* - The stealth public key of the receiver. Whoever owns the private key associated with this key controls this transaction output.
* *extra* - Usually called the "transaction ID" but can be used to include any random 32 bytes.
* *signatures* - List of ignatures used in ring signature to hide the true origin of the transaction.
Example (Note: Some lists in the returned information have been truncated for display reasons):
```
$ curl -X POST http://127.0.0.1:18081/get_transaction_pool -H 'Content-Type: application/json'
{
"spent_key_images": [{
"id_hash": "1edb9ecc39602040282d326070ad22cb473c952c0d6280c9c4c3b853fb34f3bc",
"txs_hashes": ["409911b2be02e3f0e930b326c67ab9e74675885ce23d71bb3bd28b62bc3e7803"]
},{
"id_hash": "4adb4bb63b3397027340ca4e6c45f4ce2147dfb3a4e0fafdec18834ae594a05e",
"txs_hashes": ["946f1f4c52e3426a41959c93b60078f314813bc4bdebcf69b8ee11d593b2bd14"]
},
...],
"status": "OK",
"transactions": [{
"blob_size": 25761,
"fee": 290000000000,
"id_hash": "11d4cff23e610fac6a2b89187ad61d429a5e226652693dcac5d83d506eb92b96",
"kept_by_block": false,
"last_failed_height": 0,
"last_failed_id_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"max_used_block_height": 954508,
"max_used_block_id_hash": "03f96b374778bc059e47b96e2beec2e6d4d9e0ad39afeabdbcd77e1bd5a62f81",
"receive_time": 1457676127,
"tx_json": "{\n \"version\": 1, \n \"unlock_time\": 0, \n \"vin\": [ {\n \"key\": {\n \"amount\": 70000000000, \n \"key_offsets\": [ 63408, 18978, 78357, 16560\n ], \n \"k_image\": \"7319134bfc50668251f5b899c66b005805ee255c136f0e1cecbb0f3a912e09d4\"\n }\n }, ... ], \n \"vout\": [ {\n \"amount\": 80000000000, \n \"target\": {\n \"key\": \"094e6a1b187385533665f89db741149f42d95fdc50bdd2a2384bcd1dc5209c55\"\n }\n }, ... ], \n \"extra\": [ 2, 33, 0, 15, 56, 190, 21, 169, 77, 13, 182, 209, 51, 35, 54, 96, 89, 237, 96, 23, 24, 107, 240, 79, 40, 86, 64, 68, 45, 166, 119, 192, 17, 225, 23, 1, 31, 159, 145, 15, 173, 255, 165, 192, 55, 84, 127, 154, 163, 25, 85, 204, 212, 127, 147, 133, 118, 218, 166, 52, 78, 188, 131, 235, 9, 159, 105, 158\n ], \n \"signatures\": [ \"966e5a67fbdbf72d7dc0364b705121a58e0ced7e2ab45747b6b154c05a1afe04fac4aac7f64faa2dc6dd4d51b8277f11e2f2ec7729fac225088befe3b8399c0b71a4cb55b9d0e20f93d305c78cebceff1bcfcfaf225428dfcfaaec630c88720ab65bf5d3399dd1ac82ea0ecf308b3f80d9780af7742fb157692cd60515a7e2086878f082117fa80fff3d257de7d3a2e9cc8b3472ef4a5e545d90e1159523a60f38d16cece783579627124776813334bdb2a2df4171ef1fa12bf415da338ce5085c01e7a715638ef5505aebec06a0625aaa72d13839838f7d4f981673c8f05f08408e8b372f900af7227c49cfb1e1febab6c07dd42b7c26f921cf010832841205\", ... ]\n}"
},
...]
}
```
### **/stop_daemon**
Send a command to the daemon to safely disconnect and shut down.
Inputs: *None*.
Outputs:
* *status* - string; General RPC error code. "OK" means everything looks good.
Example:
```
$ curl -X POST http://127.0.0.1:18081/stop_daemon -H 'Content-Type: application/json'
{
"status": "OK"
}
```

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,10 @@
---
layout: moneropedia
entry: ""
terms: ["", ""]
summary: ""
---
### The Basics
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,82 @@
---
layout: moneropedia
entry: "Account"
terms: ["account", "accounts", "wallet", "wallets"]
summary: "similar in function to a bank account, contains all of your sent and received transactions"
---
### The Basics
Those familiar with Monero's predecessors will be more familiar with the term *wallet* to describe this. In Monero we call this an account, and it is a private account owned and operated by a Monero user.
Your account contains all of the Monero @transactions you have sent and received. Your account balance is a sum of all the Monero you've received, less the Monero you've sent. When using Monero you may notice that your account has two balances, a locked and an unlocked balance. The unlocked balance contains funds that can be spent immediately, and the locked balance contains funds that you can't spend right now. You may receive a transaction that has an @unlock-time set, or you may have sent some Monero and are waiting for the @change to come back to your wallet, both situations that could lead to those funds being locked for a time.
A key difference between traditional electronic currency and Monero is that your account resides only under your control, normally on your computer, and cannot be accessed by anyone else if you [practice good security](#practicing-good-security).
### Multiple Accounts
There are no costs attached to creating a Monero account, and there are no fees charged except for individual @transaction fees that go to @miners.
This means that individuals can easily create a Monero account for themselves as well as a joint account to share with their partner, and individual accounts for their children. Similarly, a business could create separate accounts for each division or group. Since Monero's @transaction fees are quite low, moving funds between accounts is not an expensive exercise.
### Cryptographic Keys
Monero relies heavily on a cryptography principle known as *public/private key cryptography* or *asymmetric cryptography*, which is thoroughly detailed in [this Wikipedia article](https://en.wikipedia.org/wiki/Public-key_cryptography).
Your account is based on two keys, a @spend-key and a @view-key. The @spend-key is special in that it is the single key required to spend your Monero funds, whereas the @view-key allows you to reveal your @transactions to a third party, for example for auditing or accounting purposes. These keys in your account also play an important role in Monero's @transaction-privacy.
The private keys for both of these must be protected by you in order to retain your account privacy. On the other hand, the public keys are obviously public (they are part of your Monero account address). For normal public/private key cryptography someone could send you a private message by encrypting it with either of your public keys, and you would then be the only one able to decrypt it with your private keys.
### Backing Up Your Account
When you manage your own Monero Account with the private @spend-key, you are solely responsible for the security of your funds. Thankfully, Monero makes it very easy to backup your account. When creating a Monero account for the first time you will be given a unique @mnemonic-seed for your account that consists of 13 or 25 words in the language of your choosing. **This seed is the only thing you need to backup for your account**, and so it is imperative that it is written down and stored securely. Never store this seed in a form or location that would allow someone else to see it!
```
List of available languages for your wallet's seed:
0 : Deutsch
1 : English
2 : Español
3 : Français
4 : Italiano
5 : Nederlands
6 : Português
7 : русский язык
8 : 日本語
9 : 简体中文 (中国)
10 : Esperanto
Enter the number corresponding to the language of your choice: 1
Generated new wallet: 4B15ZjveuttEaTmfZjLVioPVw7bfSmRLpSgB33CJbuC6BoGtZrug9TDAmhZEWD6XoFDGz55bgzisT9Dnv61sbsA6Sa47TYu
view key: 4130fa26463d9451781771a8baa5d0b8085c47c4500cefe4746bab48f1d15903
**********************************************************************
Your wallet has been generated.
To start synchronizing with the daemon, use "refresh" command.
Use "help" command to see the list of available commands.
Always use "exit" command when closing monero-wallet-cli to save your
current session's state. Otherwise, you might need to synchronize
your wallet again (your wallet keys are NOT at risk in any case).
PLEASE NOTE: the following 25 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.
aunt knuckle italics moisture hawk thorn iris abort
chlorine smog uphill glass aptitude nowhere sewage plywood
dual relic fierce divers anvil nodes bubble cabin abort
**********************************************************************
Starting refresh...
Refresh done, blocks received: 21939
Balance: 0.000000000000, unlocked balance: 0.000000000000
Background refresh thread started
[wallet 4B15Zj]: █
```
As the example above indicates, it is incredibly important to store these words in safe locations. If you are concerned about the risk of critical loss at your home, for instance, you may want to store a second copy of your seed with your attorney or in a safety deposit box. It is also recommended that it is stored in a way that does not make it obvious that it is your seed, so writing it into a letter or as part of other notes is advisable.
### Practicing Good Security
Over and above backing up your @mnemonic-seed so that you have access to your account in the event of critical data loss, it is also important to practice good security. Use a secure password when creating a local Monero account (not used on [MyMonero](https://mymonero.com) or other web-based account systems).
Don't ever give your Monero account password to anyone, as this can be used to access the Monero on your computer without knowing your @mnemonic-seed. Similarly, make sure you have running and up-to-date antivirus, especially on Windows computers. Finally, be careful when clicking links in emails or on unknown and untrusted websites, as malware installed on your computer can sit and wait for you to access your Monero account before taking the funds from it.
### Leaving Your Account to Next of Kin
Providing access to your Monero account to your next of kin is just as easy as it is to backup your Monero account. Simply leave your @mnemonic-seed to them in your will, or store it somewhere safe where it will be given to them upon the execution of your will. A key advantage to this is that your next of kin won't have to wait for months for a third party to release the funds to them.

View file

@ -0,0 +1,35 @@
---
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)

View file

@ -0,0 +1,22 @@
---
layout: moneropedia
entry: "Address"
terms: ["address", "addresses"]
summary: "either an alias, such as donate.getmonero.org, or a set of 95 characters starting with a 4"
---
### The Basics
When you send Monero to someone you only need one piece of information, and that is their Monero address. A *raw* Monero address is a set of 95 characters starting with a '4'. The Monero donation address, for instance, is <span class="long-term">44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A</span>.
Because those addresses are long and complex you will often encounter an @OpenAlias address instead. For example, Monero donations can be sent to <span class="long-term">donate@getmonero.org</span> or <span class="long-term">donate.getmonero.org</span>.
If you would like to get an @OpenAlias address of your own then there is some information on the [OpenAlias page](/knowledge-base/openalias).
### Integrated address
An integrated address is an address combined with an encrypted 64-bit @payment-ID. A raw integrated address is 106 characters long.
### In-depth Information
The address is actually the concatenation, in Base58 format, of the *public* @spend-key and the *public* @view-key, prefixed with the network byte (the number 18 for Monero) and suffixed with the first four bytes of the Keccac-256 hash of the whole string (used as a checksum).

View file

@ -0,0 +1,12 @@
---
layout: moneropedia
entry: "Airgap"
terms: ["airgap"]
summary: "An airgap is a security measure to physically separate a computer or device from all other networks, such as the Internet."
---
### The Basics
"An air gap, air wall or air gapping is a network security measure employed on one or more computers to ensure that a secure computer network is physically isolated from unsecured networks, such as the public Internet or an unsecured local area network.[2] The name arises from the technique of creating a network that is physically separated (with a conceptual air gap) from all other networks. The air gap may not be completely literal, as networks employing the use of dedicated cryptographic devices that can tunnel packets over untrusted networks while avoiding packet rate or size variation can be considered air gapped, as there is no ability for computers on opposite sides of the gap to communicate."
Taken from https://en.wikipedia.org/wiki/Air_gap_(networking)

View file

@ -0,0 +1,27 @@
---
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`**

View file

@ -0,0 +1,22 @@
---
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:
```
AQZGLAMpI9Q0l0kmMj1vpJJYK3CjLp~fE3MfvE-e7KMKjI5cPOH6EN8m794uHJ6b09qM8mb9VEv1lVLEov~usVliTSXCSHuRBOCIwIOuDNU0AbVa4BpIx~2sU4TxKhoaA3zQ6VzINoduTdR2IJhPvI5xzezp7dR21CEQGGTbenDslXeQ4iLHFA2~bzp1f7etSl9T2W9RID-KH78sRQmzWnv7dbhNodMbpO6xsf1vENf6bMRzqD5vgHEHZu2aSoNuPyYxDU1eM6--61b2xp9mt1k3ud-5WvPVg89RaU9ugU5cxaHgR927lHMCAEU2Ax~zUb3DbrvgQBOTHnJEx2Fp7pOK~PnP6ylkYKQMfLROosLDXinxOoSKP0UYCh2WgIUPwE7WzJH3PiJVF0~WZ1dZ9mg00c~gzLgmkOxe1NpFRNg6XzoARivNVB5NuWqNxr5WKWMLBGQ9YHvHO1OHhUJTowb9X90BhtHnLK2AHwO6fV-iHWxRJyDabhSMj1kuYpVUBQAEAAcAAA==
```
### In-depth Information
See @destination for details behind @base64-address

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Block"
terms: ["block", "blocks"]
summary: "a container of transactions, a sequence of which forms a blockchain"
---
### The Basics
A block is a container of @transactions, with a new block being added to the @blockchain once every 2 minutes (see constant `DIFFICULTY_TARGET_V2` defined as 120 seconds), on average.
Blocks also contain a special type of transaction, the @coinbase-transaction, which add newly created Monero to the network.
Blocks are created through the process of @mining, and the @node that successfully mines the block then broadcasts it to each of the @nodes connected to it, who subsequently re-broadcast the block until the entire Monero network has received it.
Fake or bad blocks generally cannot be created, as @nodes that receive blocks always verify the @transactions they contain against a set of consensus rules that all nodes adhere to, including validating the cryptographic @signatures on each transaction.

View file

@ -0,0 +1,13 @@
---
layout: moneropedia
entry: "Blockchain"
terms: ["blockchain", "blockchains"]
summary: "a distributed ledger of all transactions both past and present, without revealing who the funds came from or went to"
---
### The Basics
A @blockchain is a distributed database that continuously grows with a record of all of the transactions that have occurred with a given cryptocurrency. This database is often referred to as a ledger because the data contains a large list of transactions that have taken place. In Monero, these transactions are packaged together into 'blocks' every 2 minutes (on average) and all miners and nodes on the network have copies of these blocks.
### Monero's @Blockchain
Unlike Bitcoin and other cryptocurrencies, transactions in the Monero @blockchain do not reveal where funds came from or went to, providing anonymity and making the currency completely @fungible. Additionally, the amounts of all transactions are hidden by @RingCT, a feature of Monero. For auditing or other transparency purposes a user can share a @view-key to prove they control certain amounts of @Moneroj.

View 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 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)

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Change"
terms: ["change"]
summary: "Monero sent as part of a transaction, that returns to your account instead of going to another recipient"
---
### The Basics
{{ page.summary | capitalize }}.
### More Information
The @wallet in the the Monero software makes change automatically, but when you send a transaction, you are taking an @input that you control and telling the Monero network what to do with it. The @input is a "deposit" to your account that you are able to spend. @Outputs are the part of the transaction that tells the Monero network where to send the funds.
You might have multiple inputs in your account, in many different denominations (For example: you deposited 0.5 XMR on Friday, and 0.75 XMR on Saturday). So, when have a transaction with an input of 0.5 XMR, but you only want to send 0.1 XMR, your transaction will include a @fee to pay the @miner, an output for 0.1 XMR to send to the recipient, and the rest that you want to send back to yourself will be an output back to you (this is called "change"). Once the transaction is completed, the change becomes available to you as an input that you can again split and send with a new transaction.

View file

@ -0,0 +1,33 @@
---
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)

View file

@ -0,0 +1,10 @@
---
layout: moneropedia
entry: "Coinbase Transaction"
terms: ["coinbase-transaction"]
summary: "a special type of transaction included in each block, which contains a small amount of Monero sent to the miner as a reward for their mining work"
---
### The Basics
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,10 @@
---
layout: moneropedia
entry: "Consensus"
terms: ["consensus", "consensus-network"]
summary: "consensus describes a property of distributed networks like Monero where most of the participants follow the rules, and thus reject bad participants"
---
### The Basics
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,22 @@
---
layout: moneropedia
entry: "Cryptocurrency"
terms: ["cryptocurrency", "cryptocurrencies", "altcoin", "altcoins"]
summary: "a digital currency in which encryption techniques are used to regulate the generation of units of currency and verify the transfer of funds, usually operating independently of a central bank"
---
### The Basics
{{ page.summary | capitalize }}.
### More Information
Cryptocurrency is the generic term for a large set of digital assets that use encryption techniques to generate units of currency, verify the transactions, and transfer value. Generally, cryptocurrencies are considered to be decentralized. Cryptocurrency should not be confused with virtual currency which is a type of digital money that is usually controlled by it's creators or developers. (Some examples of virtual currency are gametime in World of Warcraft, ROBUX in Roblox, reward points programs, or Ripple, all of which can be exchanged for currency or cash value, but are not considered cryptocurrency because they are centalized and controlled/issued by a single entity).
Monero is one of many cryptocurrencies currently available. Other examples are Bitcoin, Litecoin, Dogecoin, Dash, Zcash, etc, but nearly all other cryptocurrencies lack features that make them a true money (most importantly @fungability which is a requirement for it to be a @store-of-value).
Not all cryptocurrencies operate the same, but they usually share the properties of @decentralization, encryption, and the ability to send and receive transactions. Most are irreversible, pseudonymous, global, and permissionless. Most aim to be a @store-of-value or be digital cash that allows you to transact.
Most cryptocurrencies (including Monero) use a distributed ledger (called a @blockchain) to keep track of previous transactions . The blockchain serves to tell other users on the network that transactions have happened. There are many different ways for cryptocurrencies to create their blockchain, and not all are the same. Monero uses @proof-of-work to craft blocks, where other cryptocurrencies may use proof-of-stake or other consolidated methods.
Ultimately, cryptocurrency is an attempt to create @trustless value; that is free from borders, governments, and banks. Whether that be to transact or to be digital gold is up to the users of each.

View 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.

View file

@ -0,0 +1,36 @@
---
layout: moneropedia
entry: "Denominations"
terms: ["denominations", "subunits", "tacoshi", "piconero", "nanonero", "micronero", "millinero", "centinero", "decinero","decanero","hectonero","kilonero","meganero","giganero"]
summary: "A denomination is a proper description of a currency amount. It is oftentimes a sub-unit of the currency. For example, traditionally a cent is 1/100th of a a particular unit of currency.)"
---
### The Basics
A denomination is a proper description of a currency amount, oftentimes a sub-unit of the currency (for example, traditionally a cent is 1/100th of a a unit of currency). Monero denomination names add SI prefixes after dropping the initial "mo" for ease of use. The smallest unit of Monero is 1 piconero (0.000000000001 XMR).
### Denominations of Monero
|------------+----------+-------------------|
| Name | Base 10 | Amount |
|-----------:|:--------:| -----------------:|
| piconero | 10^-12 | 0.000000000001 |
| nanonero | 10^-9 | 0.000000001 |
| micronero | 10^-6 | 0.000001 |
| millinero | 10^-3 | 0.001 |
| centinero | 10^-2 | 0.01 |
| decinero | 10^-1 | 0.1 |
|============+==========+===================|
| **monero** | **10^0** | **1** |
|============+==========+===================|
| decanero | 10^1 | 10 |
| hectonero | 10^2 | 100 |
| kilonero | 10^3 | 1,000 |
| meganero | 10^6 | 1,000,000 |
|------------+----------+-------------------|
### In-depth Information
Support for input using SI prefixes was [added to the Monero codebase](https://github.com/monero-project/monero/pull/1826) on March 3, 2017 by [Moneromooo](https://github.com/moneromooo-monero). The smallest unit of monero (10^-12 XMR) was originally called a tacoshi in honor of user [Tacotime](https://bitcointalk.org/index.php?action=profile;u=19270), an early Monero contributor and was later renamed for ease of use and consistancy.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,19 @@
---
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.

View file

@ -0,0 +1,30 @@
---
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).

View file

@ -0,0 +1,35 @@
---
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)

View file

@ -0,0 +1,15 @@
---
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.

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Fungibility"
terms: ["fungibility"]
summary: "property of a currency whereby two units can be substituted in place of one another"
---
### The Basics
Fungibility means that two units of a currency can be mutually substituted and the substituted currency is equal to another unit of the same size. For example, two $10 bills can be exchanged and they are functionally identical to any other $10 bills in circulation (although $10 bills have unique ID numbers and are therefore not completely fungible). Gold is probably a closer example of true fungibility, where any 1 oz. of gold of the same grade is worth the same as another 1 oz of gold. Monero is fungible due to the nature of the currency which provides no way to link transactions together nor trace the history of any particular XMR. 1 XMR is functionally identical to any other 1 XMR.
Fungibility is an advantage Monero has over Bitcoin and almost every other cryptocurrency, due to the privacy inherent in the Monero @blockchain and the permanently traceable nature of the Bitcoin blockchain. With Bitcoin, any BTC can be tracked by anyone back to it's creation @coinbase-transaction. Therefore, if a coin has been used for an illegal purpose in the past, this history will be contained in the @blockchain in perpetuity. This lack of fungibility means that certain businesses will be obligated to avoid accepting BTC that have been previously used for purposes which are illegal, or simply run afoul of their Terms of Service. Currently some large Bitcoin companies are blocking, suspending, or closing accounts that have received Bitcoin used in online gambling or other purposes deemed unsavory by said companies.
Monero has been built specifically to address the problem of traceability and non-fungability inherent in other cryptocurrencies. By having completely private transactions Monero is truly fungible and there can be no blacklisting of certain XMR, while at the same time providing all the benefits of a secure, decentralized, permanent blockchain.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,25 @@
---
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.

View file

@ -0,0 +1,45 @@
---
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 was 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) - with each outer/inner doll having a lock and public key to the next/previous doll
- For more technical details on Garlic Routing, read the @Java-I2P entry on [Garlic Routing](https://geti2p.net/en/docs/how/garlic-routing)

View file

@ -0,0 +1,28 @@
---
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).

View file

@ -0,0 +1,31 @@
---
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/).

View file

@ -0,0 +1,17 @@
---
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.

View file

@ -0,0 +1,15 @@
---
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.

View file

@ -0,0 +1,21 @@
---
layout: full
title: "Moneropedia"
title-pre-kick: "Moneropedia - The "
title-kick: "Monero Wiki"
title-post-kick: ""
kick-class: "softyellow-kicks"
icon: "icon_wiki"
attribution: "<!-- Icon is based on work by Freepik (http://www.freepik.com) and is licensed under Creative Commons BY 3.0 -->"
---
<div class="row">
@moneropedia
</div>
<p><a href="https://github.com/monero-project/monero-site/new/master/knowledge-base/moneropedia" class="btn-link btn-auto btn-primary">Add New Entry</a></p>
If there is an entry you'd like to modify or be added, please [open an issue on this website's Github repository](https://github.com/monero-project/monero-site/issues) or submit changes via pull request.

View 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 the original Java implementation.
### Notes
To download/learn more about the Java implementation, visit their [website](https://geti2p.net/).

View file

@ -0,0 +1,34 @@
---
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:
```
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.

View file

@ -0,0 +1,62 @@
---
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

View file

@ -0,0 +1,25 @@
---
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)

View file

@ -0,0 +1,15 @@
---
layout: moneropedia
entry: "Lease"
tags: ["kovri"]
terms: ["Lease", "Leases"]
summary: "Authorizes an I2P tunnel to receive messages targeting a destination"
---
### The Basics
A lease defines the authorization for a particular @I2P @tunnel to receive a @messages targeting a @destination.
### In-depth information
For further details, read @Java-I2P's [Lease](https://geti2p.net/spec/common-structures#lease)

View 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)

View file

@ -0,0 +1,33 @@
---
layout: moneropedia
entry: "Message"
tags: ["kovri"]
terms: ["Message", "Messages"]
summary: "The mechanisms in which information travels within I2P"
---
### The Basics
*Messages* (which exist on top of the @transports layer), contain varying types of information that are needed for the network but, most importantly, everything you see, do, send, or receive, will come and go in the form of *messages*.
There are 2 essential types of *messages* in @I2P:
- @Tunnel messages
- @I2NP messages
Essentially: *@tunnel messages* **contain** @I2NP **message fragments** which are then [reassembled](https://geti2p.net/en/docs/tunnels/implementation) at certain points within a @tunnel's path.
### In-depth information
@I2NP messages have a close relationship with @tunnel @messages so it is easy to get the term *messages* confused when reading @Java-I2P specifications:
>
1. First, the tunnel gateway accumulates a number of I2NP messages and preprocesses them into tunnel messages for delivery.
2. Next, that gateway encrypts that preprocessed data, then forwards it to the first hop.
3. That peer, and subsequent tunnel participants, unwrap a layer of the encryption, verifying that it isn't a duplicate, then forward it on to the next peer.
4. Eventually, the tunnel messages arrive at the endpoint where the I2NP messages originally bundled by the gateway are reassembled and forwarded on as requested.
### Notes
- @I2NP @messages need to be fragmented because they are variable in size (from 0 to almost 64 KB) and @tunnel @messages are fixed-size (approximately 1 KB).
- For details and specifications, visit the [I2NP spec](https://geti2p.net/spec/i2np) and [Tunnel Message spec](https://geti2p.net/spec/tunnel-message)

View file

@ -0,0 +1,20 @@
---
layout: moneropedia
entry: "Mining"
terms: ["mining", "miner", "miners"]
summary: "the process of cryptographically computing a mathematical proof for a block, containing a number of transactions, which is then added to the blockchain"
---
### The Basics
Mining is the distributed process of confirming transactions on the public ledger of all transactions, aka @blockchain. Monero nodes use the block chain to distinguish legitimate transactions from attempts to re-spend coins that have already been spent elsewhere.
Monero is powered strictly by Proof of Work. It employs a mining algorithm that has the potential to be efficiently tasked to billions of existing devices (any modern x86 CPU and many GPU's). Monero uses the @CryptoNight Proof of Work (@PoW) algorithm, which is designed for use in ordinary CPUs and GPUs.
The smart mining feature allows transparent CPU mining on the user's computer, far from the de facto centralization of mining farms and pool mining, pursuing Satoshi Nakamoto's original vision of a true P2P currency.
As of June 2017, botnets made of hacked computers account for a not-insignificant portion of the miners on the Monero network. This is due to the profitability of mining on CPUs via the @CryptoNight algorithm.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,20 @@
---
layout: moneropedia
entry: "Mnemonic Seed"
terms: ["mnemonic-seed", "mnemonic"]
summary: "a 13 or 25 word phrase used to backup a Monero account, available in a number of languages"
---
### The Basics
{{ page.summary | capitalize }}. This 25-word phrase (13 words in the case of MyMonero) has all the information needed to view and spend funds from a Monero @account.
### In-depth Information
In the official wallet, the mnemonic seed comprises 25 words with the last word being used as a checksum. Those words correspond to a 256-bit integer, which is the account's *private* @spend-key. The *private* @view-key is derived by hashing the private spend key with Keccak-256, producing a second 256-bit integer. The corresponding *public* keys are then derived from the private keys.
By storing the 25 word mnemonic key in a secure location, you have a backup of your private keys and hence all of your Moneroj. Sharing this 25 word key is the equivalent of allowing another person complete access to your funds.
It's not a good idea to store more than you want to lose in a "hot wallet" aka a wallet which is currently or has ever been connected to the internet or loaded onto any device that has or may in the future be connected to the internet or any untrusted source!
By creating a cold, or @paper-wallet you can safely store Moneroj.

View file

@ -0,0 +1,25 @@
---
layout: moneropedia
entry: "Network Database"
tags: ["kovri"]
terms: ["Network-Database"]
summary: "A distributed database which contains needed router information so the network can stay intact"
---
### The Basics
@network-database is a [distributed database](https://en.wikipedia.org/wiki/Distributed_database) which contains router information that peers must use so the network can stay intact.
### In-depth information
From @Java-I2P:
>
@I2P's @network-database is a specialized distributed database, containing just two types of data - router contact information (@Router-Infos) and @destination contact information (@LeaseSets). Each piece of data is signed by the appropriate party and verified by anyone who uses or stores it. In addition, the data has liveliness information within it, allowing irrelevant entries to be dropped, newer entries to replace older ones, and protection against certain classes of attack.
>
The @network-database is distributed with a simple technique called "@floodfill", where a subset of all routers, called "@floodfill routers", maintains the distributed database.
### Notes
Read [Network-Database](https://geti2p.net/en/docs/how/network-database) for details.

View file

@ -0,0 +1,25 @@
---
layout: moneropedia
entry: "Node"
terms: ["node", "nodes", "full-node", "full-nodes"]
summary: "a device on the Internet running the Monero software, with a full copy of the Monero blockchain, actively assisting the Monero network"
---
### The Basics
{{ page.summary | capitalize }}.
### More Information
Nodes participate in the Monero network and secure @transactions by enforcing the rules of the network. Nodes download the entire @blockchain to know what transactions have taken place. Nodes assist the network by relaying transactions to other nodes on the network. Nodes may also choose contribute to the Monero network by participating in crafting @blocks (this is called @mining).
Mining is the process by which nodes create a block from the previously accepted block, transactions that are waiting to be processed in the @tx-pool, and the @coinbase. When a node believes it has crafted a valid block it will transmit the completed block to other nodes on the network and those nodes signal agreement by working on the next block in the chain.
The rules that nodes follow are built into the Monero software; When all nodes agree about the rules to follow this is called @consensus). Consensus is necessary for a cryptocurrency because it is how the blockchain is built; If nodes don't agree about which blocks are valid, for example people who have not updated their Monero software, those nodes that don't agree will no longer be able to participate in the Monero network.
The Monero Core Team plans for a @hardforks every 6 months, to occur in September and March of each year. At that time, if you are running a node it must be updated to the most recent version of the Monero software or it will no longer be able to participate in the network.
---
##### Other Resources
<sub>1. *Fluffypony gives a great explanation of why mandatory hardforks are good for Monero.* ([Monero Missives for the Week of 2016-06-20](https://getmonero.org/2016/06/20/monero-missive-for-the-week-of-2016-06-20.html))</sub>

View file

@ -0,0 +1,34 @@
---
layout: moneropedia
entry: "NTCP"
tags: ["kovri"]
terms: ["NTCP"]
summary: "NIO-Based TCP (Non-blocking I/O based TCP): one of two Kovri transports"
---
### The Basics
*NIO-Based TCP (Non-blocking I/O based TCP)* is one of two encrypted @transports for @Kovri.
Similar to @SSU, @NTCP's *primary* purpose is to securely transmit @in-net @I2NP messages through @tunnels but, unlike @SSU, @NTCP functions solely over encrypted [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol).
### In-depth information
- Passes along individual @I2NP messages (both Standard and Time Sync) after:
- TCP has been established
- Establishment Sequence has been completed
- Uses the following @encryption:
- 2048-bit [Diffie-Hellman](https://en.wikipedia.org/wiki/Diffie-hellman)
- [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)/[CBC](https://en.wikipedia.org/wiki/Block_cipher_modes_of_operation)
- Establishment Sequence has the following *states*:
- Pre-establishment
- Establishment
- Post-establishment or "Established"
- Uses the following from the @network-database:
- Transport name: NTCP
- Host: IP (IPv4 or IPv6) or host name (shortened IPv6 address (with "::") is allowed)
- Port: 1024 - 65535
### Notes
For further details, read @Java-I2P's [NTCP](https://geti2p.net/en/docs/transport/ntcp)

View file

@ -0,0 +1,20 @@
---
layout: moneropedia
entry: "OpenAlias"
terms: ["OpenAlias"]
summary: "a standard that allows you to use an email or domain syntax to pay someone instead of an address, eg. donate@getmonero.org or donate.getmonero.org"
---
### The Basics
The Monero Core Team released a standard called OpenAlias which permits much more human-readable addresses and "squares" the Zooko's triangle. OpenAlias can be used for any cryptocurrency and is already implemented in Monero, Bitcoin (in latest Electrum versions) and HyperStake.
OpenAlias seeks to provide a way to simplify aliasing amidst a rapidly shifting technology climate. Users are trying to cross the bridge to private and cryptographically secure infrastructure and systems, but many of them have just barely started remembering the email addresses of their friends and family.
As part of the ongoing development of the Monero cryptocurrency project, we asked ourselves: how can we simplify payments for users unfamiliar with cryptocurrency? Monero stealth addresses are at least 95 characters long - memorizing them is not an option, and asking someone to send a payment to <95-character-string> is only going to lead to confusion.
At its most basic, OpenAlias is a TXT DNS record on a FQDN (fully qualified domain name). By combining this with DNS-related technologies we have created an aliasing standard that is extensible for developers, intuitive and familiar for users, and can interoperate with both centralized and decentralized domain systems.
{{ page.summary | capitalize }}.
More information can be found on the [OpenAlias page](/knowledge-base/openalias) or on the [OpenAlias website](https://openalias.org)

View file

@ -0,0 +1,7 @@
---
layout: moneropedia
entry: "Paper Wallet"
terms: ["paperwallet", "paperwallets", "paper-wallet", "paper-wallets"]
summary: "A paper wallet stores the information necessary to send and receive Monero"
---

View file

@ -0,0 +1,25 @@
---
layout: moneropedia
entry: "Payment ID"
terms: ["payment-ID", "payment-IDs"]
summary: "an optional flag that is added to identify transactions to merchants, consisting of 64 hexadecimal characters"
---
### The Basics
Payment ID is an **arbitrary** and **optional** transaction attachment that consists of 32 bytes (64 hexadecimal characters) or 8 bytes (in the case of integrated addresses).
The Payment ID is usually used to identify transactions to merchants and exchanges: Given the intrinsic privacy features built into Monero, where a single public address is usually used for incoming transactions, the Payment ID is especially useful to tie incoming payments with user accounts.
### Compact Payment ID's and Integrated Addresses
Since the 0.9 Hydrogen Helix version, the Payment IDs can be encrypted and embedded in a payment address. The payment ID's of this type should be 64-bits and are encrypted with a random one-time key known only to the sender and receiver.
### Creating a Payment ID
It is recommended to use the official wallet's `integrated_address` command to automatically generate Integrated Addresses that contain Compact Payment ID's. If you want to use the command line, you can generate Payment ID's as follows:
Creating a compact Payment ID for an Integrated Address:
```# openssl rand -hex 8```
Creating an old-style Payment ID:
```# openssl rand -hex 32```

View file

@ -0,0 +1,24 @@
---
layout: moneropedia
entry: "Pedersen Commitment"
terms: ["commitments", "commitment", "pedersen"]
summary: "Pedersen commitments are cryptographic algorythms that allow a prover to commit to a certain value without revealing it or being able to change it."
---
### The Basics
When you spend Monero, the value of the inputs that you are spending and the value of the outputs you are sending are encrypted and opaque to everyone except the recipient of each of those outputs. Pedersen commitments allow you to send Monero without revealing the value of the transactions. Pedersen commitments also make it possible for people to verify that transactions on the blockchain are valid and not creating Monero out of thin air.
### What It Means
As long as the encrypted output amounts created, which include an output for the recipient and a change output back to the sender, and the unencrypted transaction fee is equal to the sum of the inputs that are being spent, it is a legitimate transaction and can be confirmed to not be creating Monero out of thin air.
Pedersen commitments mean that the sums can be verified as being equal, but the Monero value of each of the sums and the Monero value of the inputs and outputs individually are undeterminable. Pedersen commitments also mean that even the ratio of one input to another, or one output to another is undeterminable.
Even though it's unclear which inputs are really being spent (the ring signature lists both the real inputs being spent and decoy inputs therefore you don't actually know which input Pedersen commitments you need to sum) that's okay, because the RingCT ring signature only has to prove is that for one combination of the inputs the outputs are equal to the sum of the inputs. For mathematical reasons, this is impossible to forge.
### In-depth Information
See information in [Ring Confidential Transactions paper](https://eprint.iacr.org/2015/1098.pdf) by Shen Noether of the Monero Research Lab.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,17 @@
---
layout: moneropedia
entry: "Reseed"
tags: ["kovri"]
terms: ["Reseed"]
summary: "The method of which Kovri uses to bootstrap into the I2P network"
---
### The Basics
When you start @Kovri for the first time (or if it's been offline for a long time), @Kovri will need a list of peers to connect to so it can [bootstrap](https://en.wikipedia.org/wiki/Bootstrap) into the @I2P network. @Kovri gets these peers from a special file stored on a reseed server. On this file are all the various pieces of information @Kovri needs in order to connect with @I2P peers.
### In-depth information
@Kovri has a list of [hard-coded](https://en.wikipedia.org/wiki/Hard-coded) reseed servers available to fetch from. These servers securely serve an [SU3](https://geti2p.net/spec/updates#su3) file (signed with a cryptographic @signature) over @clearnet with [HTTPS](https://en.wikipedia.org/wiki/HTTPS). This SU3 file contains information that's used to verify both the integrity of the file and its content.
Aside from the technical elements needed to verify and process the file, the file's main contents consist of a series of @router-info files which @Kovri and @I2P routers use to locate and communicate with other @I2P peers. These peers are then stored into a @network-database.

View file

@ -0,0 +1,11 @@
---
layout: moneropedia
entry: "Ring Size"
terms: ["ring-size"]
summary: "total number of possible signers in a ring signature"
---
### The Basics
Ring size refers to the total number of possible signers in a @ring-signature. If a ring size of 4 is selected for a given @transaction, this means that there are 3 foreign outputs in addition to your “real” output. A higher ring size number will typically provide more privacy than a lower number. However, reusing an odd, recognizable ring size number for transactions could possibly make transactions stand out.
`Ring size = foreign outputs + 1 (your output)`

View file

@ -0,0 +1,24 @@
---
layout: moneropedia
entry: "Ring CT"
terms: ["ringCT", "ring-CT"]
summary: "a way to hide the amount sent in a Monero transaction"
---
### The Basics
RingCT, short for Ring Confidential Transactions, is how transaction amounts are hidden in Monero.
Ring CT was implemented in block #1220516 in January 2017. After September 2017, this feature became mandatory for all transactions on the network.
RingCT introduces an improved version of @ring-signatures called A Multi-layered Linkable Spontaneous Anonymous Group signature, which allows for hidden amounts, origins and destinations of transactions with reasonable efficiency and verifiable, trustless coin generation.
For more information, please read the creator Shen Noether's paper [here](https://eprint.iacr.org/2015/1098).
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,18 @@
---
layout: moneropedia
entry: "Ring Signature"
terms: ["ring-signature", "ring-signatures"]
summary: "a group of cryptographic signatures with at least one real participant, but no way to tell which in the group is the real one as they all appear valid"
---
### The Basics
In cryptography, a ring signature is a type of digital signature that can be performed by any member of a group of users that each have keys. Therefore, a message signed with a ring signature is endorsed by someone in a particular group of people. One of the security properties of a ring signature is that it should be computationally infeasible to determine *which* of the group members' keys was used to produce the signature.
For instance, a ring signature could be used to provide an anonymous signature from "a high-ranking White House official", without revealing which official signed the message. Ring signatures are right for this application because the anonymity of a ring signature cannot be revoked, and because the group for a ring signature can be improvised (requires no prior setup).
### Application to Monero
A ring signature makes use of your @account keys and a number of public keys (also known as outputs) pulled from the @blockchain using a triangular distribution method. Over the course of time, past outputs could be used multiple times to form possible signer participants. In a "ring" of possible signers, all ring members are equal and valid. There is no way an outside observer can tell which of the possible signers in a signature group belongs to your @account. So, ring signatures ensure that transaction outputs are untraceable. Moreover, there are no fungibility issues with Monero given that every transaction output has plausible deniability (e.g. the network can not tell which outputs are spent or unspent).
To read how Monero gives you privacy by default (unlinkability), see @stealth-addresses.

View file

@ -0,0 +1,68 @@
---
layout: moneropedia
entry: "Router-Info"
tags: ["kovri"]
terms: ["Router-Info", "Router-infos"]
summary: "A data structure or file which contains an I2P peer's needed network information"
---
### The Basics
@Router-Info is a data structure (periodically written to a [binary file](https://en.wikipedia.org/wiki/Binary_file)) which contains all needed information to locate, identify, and communicate with an @I2P peer. @Router-Info includes IP address, router identity, other misc. technical details; is needed for @network-database and is published to @floodfill routers.
### In-depth information
In human-readable form, Router-Info may look like this:
```
Identity: [RouterIdentity:
Hash: nYZ5Qe7gQ-~QgfgJVRUG4c0JnVeVqzM~duUX1EGT1ek=
Certificate: [Certificate: type: Key certificate
Crypto type: 0
Sig type: 7 (EdDSA_SHA512_Ed25519)]
PublicKey: [PublicKey: size: 256]
SigningPublicKey: [SigningPublicKey EdDSA_SHA512_Ed25519: size: 32]
Padding: 96 bytes]
Signature: [Signature EdDSA_SHA512_Ed25519: size: 64]
Published: Sun Oct 09 01:34:59 UTC 2016
Options (5):
[caps] = [LfR]
[netId] = [2]
[netdb.knownLeaseSets] = [37]
[netdb.knownRouters] = [2435]
[router.version] = [0.9.26]
Addresses (4):
[RouterAddress:
Type: SSU
Cost: 4
Options (5):
[caps] = [BC]
[host] = [2a01:e35:8b5c:b240:71a2:6750:8d4:47fa]
[key] = [nYZ5Qe7gQ-~QgfgJVRUG4c0JnVeVqzM~duUX1EGT1ek=]
[mtu] = [1472]
[port] = [22244]]
[RouterAddress:
Type: NTCP
Cost: 9
Options (2):
[host] = [2a01:e35:8b5c:b240:71a2:6750:8d4:47fa]
[port] = [22244]]
[RouterAddress:
Type: SSU
Cost: 6
Options (4):
[caps] = [BC]
[host] = [88.181.203.36]
[key] = [nYZ5Qe7gQ-~QgfgJVRUG4c0JnVeVqzM~duUX1EGT1ek=]
[port] = [22244]]
[RouterAddress:
Type: NTCP
Cost: 11
Options (2):
[host] = [88.181.203.36]
[port] = [22244]]]
```
### Notes
For details and specification, visit @Java-I2P [Network Database](https://geti2p.net/en/docs/how/network-database) page.

View file

@ -0,0 +1,10 @@
---
layout: moneropedia
entry: "Scalability"
terms: ["scalability"]
summary: "Growth potential of Monero, resources required, and methods of increasing efficiency"
---
### The Basics
Monero has no hardcoded maximum block size, which means that unlike Bitcoin it does not have a 1 MB block size limit preventing scaling. However, a block reward penalty mechanism is built into the protocol to avoid a too excessive block size increase: The new block's size (NBS) is compared to the median size M100 of the last 100 blocks. If NBS>M100, the block reward gets reduced in quadratic dependency of how much NBS exceeds M100. E.g. if NBS is [10%, 50%, 80%, 100%] greater than M100, the nominal block reward gets reduced by [1%, 25%, 64%, 100%]. Generally, blocks greater than 2*M100 are not allowed, and blocks <= 60kB are always free of any block reward penalties.

View file

@ -0,0 +1,10 @@
---
layout: moneropedia
entry: "Cryptographic Signature"
terms: ["signature", "signatures"]
summary: "a cryptographic method for proving ownership of a piece of information, as well as proving that the information has not been modified after being signed"
---
### The Basics
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,17 @@
---
layout: moneropedia
entry: "Smart Mining"
terms: ["smart-mining"]
summary: "a process of having a throttled miner mine when it otherwise does not cause drawbacks"
---
### The Basics
Smart mining is the process of having a throttled miner mine when it otherwise does not cause drawbacks.
Drawbacks include increases heat, slower machine, depleting battery, etc. The intent of smart mining is to increase network security by allowing as many people as possible to let the smart miner on all the time. For this to work, the miner must prove unobtrusive, or it will be turned off, depriving the Monero network from a little bit of security. As such, it is likely that a smart miner will mine slower than a normal miner on the same hardware.
Smart mining is available in the official CLI and GUI wallet, which are available in the [downloads page](https://getmonero.org/downloads/).
It is hoped that the relative slowness of a smart miner (especially on low-power machines) will be offset by the large amount of people running a miner for a possible "lottery win", and thus increase the Monero network security by a non trivial amount. The increased hash rate from many different sources helps keep the Monero network decentralized.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Spend Key"
terms: ["spend-key", "spend-keys"]
summary: "one of the two pairs of private and public cryptographic keys that each account has, with the *private* spend key used to spend any funds in the account"
---
### The Basics
{{ page.summary | capitalize }}.
### In-depth Information
The *private* spend key is a 256-bit integer that is used to sign Monero transactions. With the current deterministic key derivation method of the official wallet, the private spend key is also an alternate representation of the @mnemonic-seed. It can be used to derive all other account keys.

View file

@ -0,0 +1,26 @@
---
layout: moneropedia
entry: "SSU"
tags: ["kovri"]
terms: ["SSU"]
summary: "Secure Semi-reliable UDP: one of two Kovri transports"
---
### The Basics
*Secure Semi-reliable UDP* is one of two encrypted @transports for @Kovri.
Similar to @NTCP, @SSU's *primary* purpose is to securely transmit @in-net @I2NP messages through @tunnels but, unlike @NTCP, @SSU functions solely over encrypted [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol).
### In-depth information
- Like @NTCP, @SSU is a connection-oriented, point-to-point data transport
- Termed *semi-reliable* because @SSU will repeatedly retransmit *unacknowledged* messages (up to maximum number then dropped)
- @SSU also provides several unique services (in addition to its function as a @transport layer):
- IP detection (local inspection or with [peer testing](https://geti2p.net/en/docs/transport/ssu#peerTesting))
- [NAT](https://en.wikipedia.org/wiki/Network_address_translation) traversal (using [introducers](https://geti2p.net/en/docs/transport/ssu#introduction))
- [Firewall](https://en.wikipedia.org/wiki/Firewall_%28computing%29) status and, if implemented, @SSU can notify @NTCP if the external address or firewall status changes
### Notes
For further details, read @Java-I2P's [SSU](https://geti2p.net/en/docs/transport/ssu)

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Stealth Address"
terms: ["stealth-address", "stealth-addresses"]
summary: "automatic one-time addresses for every transaction"
---
### The Basics
Stealth addresses are an important part of Monero's inherent privacy. They allow and require the sender to create random one-time addresses for every @transaction on behalf of the recipient. The recipient can publish just one address, yet have all of his/her incoming payments go to unique addresses on the @blockchain, where they cannot be linked back to either the recipient's published address or any other transactions' addresses. By using stealth addresses, only the sender and receiver can determine where a payment was sent.
When you create a Monero account youll have a private @view-key, a private @spend-key, and a Public Address. The @spend-key is used to send payments, the @view-key is used to display incoming transactions destined for your account, and the Public Address is for receiving payments. Both the @spend-key and @view-key are used to build your Monero address. You can have a “watch only” wallet that only uses the @view-key. This feature can be used for accounting or auditing purposes but is currently unreliable due to the inability to track outgoing transactions. You can decide who can see your Monero balance by sharing your @view-key. Monero is private by default and optionally semi-transparent!
When using the Monero Wallet all this is handled by the software. Sending Monero is as easy as entering the destination address, the amount, and pressing Send. To recieve Monero, simply provide the sender your Public Address.
To learn how Monero prevents tracking history (untraceability), see @ring-signatures.

View file

@ -0,0 +1,47 @@
---
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:
```
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 separator
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 explicitly 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 then be fed into the @address-book for you to use.
### Notes
To learn how to subscribe to multiple subscriptions, see the [user-guide](https://github.com/monero-project/kovri/blob/master/doc/USER_GUIDE.md).

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "Tail Emission"
terms: ["Tail-Emission"]
summary: "the block reward at the end of the emission curve"
---
### The Basics
Monero block rewards will never drop to zero. Block rewards will gradually drop until tail emission commences at the end of May 2022. At this point, rewards will be fixed at 0.6 XMR per block.
### Why
Miners need an incentive to mine. Because of the dynamic blocksize, competition between miners will cause fees to decrease. If mining is not profitable due to a high cost and low reward, miners lose their incentive and will stop mining, reducing the security of the network.
Tail emission ensures that a dynamic block size and fee market can develop.

View file

@ -0,0 +1,21 @@
---
layout: moneropedia
entry: "Transactions"
terms: ["transaction", "transactions"]
summary: "a cryptographically signed container that details the transfer of Monero to a recipient (or recipients)"
---
### The Basics
{{ page.summary | capitalize }}.
The parameters of a transaction contain one or more recipient addresses with corresponding amounts of funds and a `mixin_count` parameter that specifies the number of foreign outputs bound to the transaction. The more outputs that are used, a higher degree of obfuscation is possible, but that comes with a cost. Since a transaction gets larger with more outputs, the transaction fee would be higher. It is possible to form a transaction offline, which is a huge benefit for privacy.
A transaction can be uniquely identified with the use of an optional Transaction ID, which is usually represented by a 32-byte string (64 hexadecimal characters).
### In-depth Information
Every transaction involves two keys: a public @spend-key, and a public @view-key. The destination for an output in a transaction is actually a one-time public key computed from these two keys.
When a wallet is scanning for incoming transactions, every transaction is scanned to see if it is for "you". This only requires your private view key and your public spend key, and this check is immutable and cannot be faked. You cannot receive transactions and identify them without a corresponding private view key.
In order to spend the funds you have to compute a one-time private spend key for that output. This is almost always done automatically by the Monero Wallet software.

View file

@ -0,0 +1,20 @@
---
layout: moneropedia
entry: "Transports"
tags: ["kovri"]
terms: ["Transports", "Transport"]
summary: "The two encrypted transport layers for Kovri"
---
### The Basics
@I2P comes with two encrypted transport layer technologies that allow @Kovri to securely use [TCP/IP](https://en.wikipedia.org/wiki/Tcp/ip) connections. These technologies (@SSU and @NTCP) are called *@transports*.
### In-depth information
@SSU is encrypted [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol) and @NTCP is encrypted [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol). They provide @encryption at the [transport layer](https://en.wikipedia.org/wiki/Transport_layer) so higher level @messages can be sent through @tunnels across the @I2P network.
### Notes
- Read about @I2P's transports on the [Transport](https://geti2p.net/en/docs/transport) page
- Read about the transports layer within the [OSI model](https://en.wikipedia.org/wiki/OSI_model)

View file

@ -0,0 +1,37 @@
---
layout: moneropedia
entry: "Tunnel"
tags: ["kovri"]
terms: ["Tunnel", "Tunnels"]
summary: "Uni-directional virtual paths that pass messages through a defined sequence of I2P routers"
---
### The Basics
When you communicate over @I2P (visit an @eepsite / use a @garlic-service), you'll first need to connect to a peer by using @transports and then build virtual *tunnels*. These virtual tunnels are temporary, uni-directional paths that pass information through a defined sequence of @I2P routers to your @destination. Tunnels are built, and then used, with layered @garlic-encryption and are a general-purpose mechanism to transport all @I2NP @messages.
Each peer builds, at a minimum, *two* uni-directional tunnels: one for **outbound traffic**, and one for **inbound traffic**. These tunnels are classified as either **inbound tunnels** (where @messages come toward the creator of the tunnel) or **outbound tunnels** (where the tunnel creator sends @messages away from the creator of the tunnel). Thus, *four* tunnels are required for a single round-trip @message and reply to your @destination (two for your, two for your destination).
### In-depth information
From @Java-I2P:
>
Within I2P, @messages are passed in one direction through a virtual tunnel of peers, using whatever means are available to pass the @message on to the next hop. Messages arrive at the tunnel's gateway, get bundled up and/or fragmented into fixed-size @tunnel @messages, and are forwarded on to the next hop in the tunnel, which processes and verifies the validity of the @message and sends it on to the next hop, and so on, until it reaches the @tunnel endpoint. That endpoint takes the messages bundled up by the gateway and forwards them as instructed - either to another router, to another tunnel on another router, or locally.
>
Tunnels all work the same, but can be segmented into two different groups - inbound tunnels and outbound tunnels. The inbound tunnels have an untrusted gateway which passes messages down towards the tunnel creator, which serves as the tunnel endpoint. For outbound tunnels, the tunnel creator serves as the gateway, passing messages out to the remote endpoint.
>
The tunnel's creator selects exactly which peers will participate in the tunnel, and provides each with the necessary configuration data. They may have any number of hops. It is the intent to make it hard for either participants or third parties to determine the length of a tunnel, or even for colluding participants to determine whether they are a part of the same tunnel at all (barring the situation where colluding peers are next to each other in the tunnel).
### Notes
From @Java-I2P:
>
@I2P is an inherently packet switched network, even with these tunnels, allowing it to take advantage of multiple tunnels running in parallel, increasing resilience and balancing load. Even though the tunnels within I2P bear a resemblance to a circuit switched network, everything within I2P is strictly message based - tunnels are merely accounting tricks to help organize the delivery of messages. No assumptions are made regarding reliability or ordering of messages, and retransmissions are left to higher levels (e.g. I2P's client layer streaming library).
### Documentation
For specification and detailed documentation, visit the [Tunnel-Routing](https://geti2p.net/en/docs/how/tunnel-routing) and [Tunnel-Implementation](https://geti2p.net/en/docs/tunnels/implementation) page.

View file

@ -0,0 +1,14 @@
---
layout: moneropedia
entry: "Transaction Unlock Time"
terms: ["unlock-time"]
summary: "a special transaction where the recipient can only spend the funds after a future date, as set by the sender"
---
### The Basics
{{ page.summary | capitalize }}.
Unlock time allows you to send a transaction to someone, such that they can not spend it until after a certain number of blocks, or until a certain time.
Note that this works differently than Bitcoin's [nLockTime](https://en.bitcoin.it/wiki/NLockTime), in which the transaction is not valid until the given time.

View file

@ -0,0 +1,16 @@
---
layout: moneropedia
entry: "View Key"
terms: ["view-key", "view-keys"]
summary: "one of two sets of private and public cryptographic keys that each account has, with the private view key required to view all transactions related to the account"
---
### The Basics
Monero features an opaque blockchain (with an explicit allowance system called the @view-key), in sharp contrast with transparent blockchains used by any other cryptocurrency not based on @CryptoNote. Thus, Monero is said to be "private, optionally transparent".
Every Monero address has a private viewkey which can be shared. By sharing a viewkey a person is allowing access to view every incoming transaction for that address. However, outgoing transactions cannot be reliably viewed as of June 2017. Therefore the balance of a Monero address as shown via a viewkey should not be relied upon.
{{ page.summary | capitalize }}.

View file

@ -0,0 +1,19 @@
---
layout: moneropedia
entry: "Wallet"
terms: ["wallet", "wallets"]
summary: "A wallet stores the information necessary to send and receive Monero"
---
### The Basics
A Monero account, or wallet, stores the information necessary to send and receive Moneroj. In addition to sending and receiving, the Monero Wallet software keeps a private history of your transactions and allows you to cryptographically sign messages. It also includes Monero mining software and an address book.
The term "hot wallet" describes a Monero @account which is connected to the Internet. You can send funds easily but security is much lower than a cold wallet. Never store large amounts of cryptocurrency in a hot wallet!
A cold wallet is generated on a trusted device or computer via an @airgap. If the device is to be reused, the data storage should be securely overwritten. As soon as a cold wallet is connected to the internet or its mnemonic phrase or @spend-key is entered on an internet-connected device, it's no longer "cold" and should be considered "hot".
A Monero @paper-wallet can be generated by downloading the source code of https://moneroaddress.org/. Verify the signature of the code on a trusted airgapped device. Create the wallet and print or store it on the media of your choice.
Monero accounts and paper-wallets can be stored on any media - paper, USB drive, CD/DVD, or a hardware wallet device (none available for Monero as of June 2017).

View file

@ -0,0 +1,164 @@
{% include untranslated.html %}
<div class="container description">
<p>Monero is not only committed to making a fungible currency, but also to continued research into the realm of financial privacy as it involves cryptocurrencies. Below you'll find the work of our very own Monero Research Lab, with more papers to come.</p>
</div>
<section class="container">
<div class="row">
<!-- left two-thirds block-->
<div class="left two-thirds col-lg-8 col-md-8 col-sm-12 col-xs-12">
<div class="info-block research-paper">
<div class="row center-xs">
<div class="col"><h2>Monero Research Lab Papers</h2></div>
</div>
<div class="tab">
<input id="tab-one" type="checkbox" name="tabs" class="accordion" checked="checked">
<label for="tab-one" class="accordion">MRL-0001: A Note on Chain Reactions in Traceability in CryptoNote 2.0</label>
<div class="tab-content">
<p><strong>Abstract:</strong> This research bulletin describes a plausible attack on a ring-signature based
anonymity system. We use as motivation the cryptocurrency protocol CryptoNote
2.0 ostensibly published by Nicolas van Saberhagen in 2012. It has been
previously demonstrated that the untraceability obscuring a one-time key pair can
be dependent upon the untraceability of all of the keys used in composing that
ring signature. This allows for the possibility of chain reactions in traceability
between ring signatures, causing a critical loss in untraceability across the whole
network if parameters are poorly chosen and if an attacker owns a sufficient
percentage of the network. The signatures are still one-time, however, and any
such attack will still not necessarily violate the anonymity of users. However, such
an attack could plausibly weaken the resistance CryptoNote demonstrates against
blockchain analysis. This research bulletin has not undergone peer review, and
reflects only the results of internal investigation.
<br>
<br>
<a target="_blank" rel="noreferrer noopener" href="https://lab.getmonero.org/pubs/MRL-0001.pdf">Read Paper</a>
</p>
</div>
</div>
<div class="tab">
<input id="tab-two" type="checkbox" name="tabs" class="accordion">
<label for="tab-two" class="accordion">MRL-0002: Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol</label>
<div class="tab-content">
<p><strong>Abstract:</strong> On 4 September 2014, an unusual and novel attack was executed against the
Monero cryptocurrency network. This attack partitioned the network into two
distinct subsets which refused to accept the legitimacy of the other subset. This
had myriad effects, not all of which are yet known. The attacker had a short
window of time during which a sort of counterfeiting could occur, for example.
This research bulletin describes deficiencies in the CryptoNote reference code
allowing for this attack, describes the solution initially put forth by Rafal Freeman
from Tigusoft.pl and subsequently by the CryptoNote team, describes the current
fix in the Monero code base, and elaborates upon exactly what the offending
block did to the network. This research bulletin has not undergone peer review,
and reflects only the results of internal investigation.<br>
<br>
<a target="_blank" rel="noreferrer noopener" href="https://lab.getmonero.org/pubs/MRL-0002.pdf">Read Paper</a></p>
</div>
</div>
<div class="tab">
<input id="tab-three" type="checkbox" name="tabs" class="accordion">
<label for="tab-three" class="accordion">MRL-0003: Monero is Not That Mysterious</label>
<div class="tab-content">
<p><strong>Introduction:</strong> Recently, there have been some vague fears about the CryptoNote source code and
protocol floating around the internet based on the fact that it is a more complicated
protocol than, for instance, Bitcoin. The purpose of this note is to try and clear
up some misconceptions, and hopefully remove some of the mystery surrounding
Monero Ring Signatures. I will start by comparing the mathematics involved in
CryptoNote ring signatures (as described in [CN]) to the mathematics in [FS], on
which CryptoNote is based. After this, I will compare the mathematics of the ring
signature to what is actually in the CryptoNote codebase.<br>
<br>
<a target="_blank" rel="noreferrer noopener" href="https://lab.getmonero.org/pubs/MRL-0003.pdf">Read Paper</a></p>
</div>
</div>
<div class="tab">
<input id="tab-four" type="checkbox" name="tabs" class="accordion">
<label for="tab-four" class="accordion">MRL-0004: Improving Obfuscation in the CryptoNote Protocol</label>
<div class="tab-content">
<p><strong>Abstract:</strong> We identify several blockchain analysis attacks available to degrade the
untraceability of the CryptoNote 2.0 protocol. We analyze possible solutions,
discuss the relative merits and drawbacks to those solutions, and recommend
improvements to the Monero protocol that will hopefully provide long-term
resistance of the cryptocurrency against blockchain analysis. Our recommended
improvements to Monero include a protocol-level network-wide minimum mix-in
policy of
n
= 2
foreign outputs per ring signature, a protocol-level increase of this
value to
n
= 4
after two years, and a wallet-level default value of
n
= 4
in the
interim. We also recommend a torrent-style method of sending Monero output.
We also discuss a non-uniform, age-dependent mix-in selection method to
mitigate the other forms of blockchain analysis identified herein, but we make no
formal recommendations on implementation for a variety of reasons. The
ramifications following these improvements are also discussed in some detail.
This research bulletin has not undergone peer review, and reflects only the
results of internal investigation.<br>
<br>
<a target="_blank" rel="noreferrer noopener" href="https://lab.getmonero.org/pubs/MRL-0004.pdf">Read Paper</a></p>
</div>
</div>
<div class="tab">
<input id="tab-five" type="checkbox" name="tabs" class="accordion">
<label for="tab-five" class="accordion">MRL-0005: Ring Signature Confidential Transactions</label>
<div class="tab-content">
<p><strong>Abstract:</strong> This article introduces a method of hiding transaction amounts in the strongly
decentralized anonymous cryptocurrency Monero. Similar to Bitcoin, Monero is a
cryptocurrency which is distributed through a proof of work “mining” process.
The original Monero protocol was based on CryptoNote, which uses ring
signatures and one-time keys to hide the destination and origin of transactions.
Recently the technique of using a commitment scheme to hide the amount of a
transaction has been discussed and implemented by Bitcoin Core Developer
Gregory Maxwell. In this article, a new type of ring signature, A Multi-layered
Linkable Spontaneous Anonymous Group signature is described which allows for
hidden amounts, origins and destinations of transactions with reasonable
efficiency and verifiable, trustless coin generation. Some extensions of the
protocol are provided, such as Aggregate Schnorr Range Proofs, and Ring
Multisignature. The author would like to note that early drafts of this were
publicized in the Monero Community and on the bitcoin research irc channel.
Blockchain hashed drafts are available in [14] showing that this work was started
in Summer 2015, and completed in early October 2015. An eprint is also
available at
http://eprint.iacr.org/2015/1098
.<br>
<br>
<a href="https://lab.getmonero.org/pubs/MRL-0005.pdf" target="_blank" rel="noreferrer noopener">Read Paper</a></p>
</div>
</div>
</div>
</div>
<!-- end left two-thirds block-->
<!-- right one-third block-->
<div class="right one-third col-lg-4 col-md-4 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Cryptonote Whitepapers</h2>
</div>
</div>
<div markdown="1">
[Cryptonote Whitepaper](https://cryptonote.org/whitepaper.pdf)
This is the original cryptonote paper written by the cryptonote team. Reading it will give an understanding about how the cryptonote algorithm works in general.
[Annotated Whitepaper](https://downloads.getmonero.org/whitepaper_annotated.pdf)
The Monero Research Lab released an annotated version of the cryptonote whitepaper. This is sort of like an informal review of the claims that are made line-by-line of the whitepaper. It also explains some of the harder concepts in relatively easy to understand terms.
[Brandon Goodell's Whitepaper Review](https://downloads.getmonero.org/whitepaper_review.pdf)
This paper is a formal review of the original cryptonote paper by MRL researcher Brandon Goodell. He takes an in-depth look at the claims and mathematics presented in the cryptonote paper.
</div>
</div>
</div>
<!-- end right one-third block-->
</div>
</section>

View file

@ -0,0 +1,130 @@
{% include untranslated.html %}
<div class="roadmap">
<div class="text-center pre-roadmap container">
<div class="row">
<div class="col-xs-4">
<li class="completed"></li>
<p>Completed task</p>
</div>
<div class="col-xs-4">
<li class="ongoing"></li>
<p>Ongoing task</p>
</div>
<div class="col-xs-4">
<li class="upcoming"></li>
<p>Upcoming task</p>
</div>
</div>
</div>
<section class="container">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="tabPanel-widget">
<label for="tab-1" tabindex="0"></label>
<input id="tab-1" type="radio" name="tabs" aria-hidden="true">
<h2>2014</h2>
<div class="tabPanel-content">
{% for toplevel in site.data.lang[site.lang].roadmap %}
{% if toplevel.year == 2014 %}
{% for roadlist in toplevel.accomplishments %}
<div class="row start-xs middle-xs">
<div class="col-xs-1">
<span class="{{roadlist.status}}"></span>
</div>
<div class="col-xs-11">
<p>{{roadlist.date}}: {{roadlist.name}}</p>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
<label for="tab-2" tabindex="0"></label>
<input id="tab-2" type="radio" name="tabs" aria-hidden="true">
<h2>2015</h2>
<div class="tabPanel-content">
{% for toplevel in site.data.lang[site.lang].roadmap %}
{% if toplevel.year == 2015 %}
{% for roadlist in toplevel.accomplishments %}
<div class="row start-xs middle-xs">
<div class="col-xs-1">
<span class="{{roadlist.status}}"></span>
</div>
<div class="col-xs-11">
<p>{{roadlist.date}}: {{roadlist.name}}</p>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
<label for="tab-3" tabindex="0"></label>
<input id="tab-3" type="radio" name="tabs" aria-hidden="true">
<h2>2016</h2>
<div class="tabPanel-content">
{% for toplevel in site.data.lang[site.lang].roadmap %}
{% if toplevel.year == 2016 %}
{% for roadlist in toplevel.accomplishments %}
<div class="row start-xs middle-xs">
<div class="col-xs-1">
<span class="{{roadlist.status}}"></span>
</div>
<div class="col-xs-11">
<p>{{roadlist.date}}: {{roadlist.name}}</p>
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
<label for="tab-4" tabindex="0"></label>
<input id="tab-4" type="radio" name="tabs" aria-hidden="true" checked>
<h2>2017</h2>
<div class="tabPanel-content">
{% for toplevel in site.data.lang[site.lang].roadmap %}
{% if toplevel.year == 2017 %}
{% for roadlist in toplevel.accomplishments %}
<div class="row start-xs middle-xs">
<div class="col-xs-1">
<span class="{{roadlist.status}}"></span>
</div>
<div class="col-xs-11">
{% if roadlist.date %}
<p>{{roadlist.date}}: {{roadlist.name}}</p>
{%else%}
<p>{{roadlist.name}}</p>
{%endif%}
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
<label for="tab-5" tabindex="0"></label>
<input id="tab-5" type="radio" name="tabs" aria-hidden="true">
<h2>Future</h2>
<div class="tabPanel-content">
{% for toplevel in site.data.lang[site.lang].roadmap %}
{% if toplevel.year == 2018 %}
{% for roadlist in toplevel.accomplishments %}
<div class="row start-xs">
<div class="col-xs-1">
<span class="{{roadlist.status}}"></span>
</div>
<div class="col-xs-11">
{% if roadlist.date %}
<p>{{roadlist.date}}: {{roadlist.name}}</p>
{%else%}
<p>{{roadlist.name}}</p>
{%endif%}
</div>
</div>
{%endfor%}
{%endif%}
{%endfor%}
</div>
</div>
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,49 @@
{% include untranslated.html %}
## How to mine Monero (XMR) without a mining equipment?
If you dont have a profitable mining equipment, nor time or
money to invest into building it, you can still mine Monero with NiceHash.
NiceHash is a hashing power marketplace. Sellers of hashing
power, i.e. miners, provide the hashing power for buyers (those who want to buy
a service of mining a certain coin). Hence, NiceHash can provide you a massive
hashing power in short amount of time. You wont have to wait for years to see
if you will make a profit or not and you can control which coin, at which pool,
and for how long you want to mine.
### **Step 1:** Create new account at NiceHash
Visit [registration
page](https://www.nicehash.com/?p=register) and register with your e-mail address.
### **Step 2:** Deposit some Bitcoins to your account
You will mine Monero, but you can buy hashing power at
NiceHash only with Bitcoins. You can always withdraw unspent Bitcoins from your
account back to any Bitcoin wallet.
Visit your [wallet
page](https://www.nicehash.com/?p=wallet) and make a deposit. Note that the minimum price for placing an order
equals 0.01 BTC.
### **Step 3:** Find a suitable pool for mining and add it to your pool list
Selection of the pool plays a big role in the final amount
of mined cryptocurrency. Make sure the pool you have selected can handle
massive hashing rate and loads of shares, especially from a single connection.
You can find a list of Monero pools [here](https://bitcointalk.org/index.php?topic=583449.0).
Note that you will probably have to register an account at
selected pool as well. The pool will provide you with all the information you need.
You can save your favorite pools at [this page](https://www.nicehash.com/?p=managepools).
### **Step 4:** Create new order and start mining
When creating a [new order](https://www.nicehash.com/?p=orders&new), make sure you
select CryptoNight algorithm for mining Monero. If you want to first learn more
about placing an order with NiceHash, we recommend you to read this [frequently asked question](https://www.nicehash.com/?p=faq#faqb0).
If you want to bid on
hashing power select Standard (bidding) order type and if you want a fixed
order that cannot be outbid, select Fixed order type. The status of marketplace
and approximate prices of mining can be checked at [live marketplace](https://www.nicehash.com/index.jsp?p=orders). 

View file

@ -0,0 +1,37 @@
{% include untranslated.html %}
## Operating Systems: Various versions of Linux and Windows 7, 8
### Wallet Software: Simplewallet
#### Resource for Creating Bootable Disks: [Linux](http://www.pendrivelinux.com/), [Windows](https://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool)
#### Resource for Monero Binaries: [Monero Binaries](https://getmonero.org/downloads/)
- Take any computer you have lying around, even your normal workstation. You may find it easier to use an older computer that has no wifi or bluetooth if you're particularly paranoid
- Create a Linux or Windows bootable disk, and make sure you have the Monero binaries on the same disk or on a second disk (for Linux make sure you have also downloaded copies of the dependencies you will need, libboost1.55 and miniupnpc for instance)
- Disconnect the network and/or Internet cables from your computer, physically remove the wifi card or switch the wifi/bluetooth off on a laptop if possible
- Boot into your bootable OS, install the dependencies if necessary
- Copy the Monero binaries to a RAM disk (/dev/shm in Linux, Windows bootable ISOs normally have a Z: drive or something)
- Don't run the Monero daemon. Instead, using the command line, use monero-wallet-cli to create a new Monero @account
- When prompted for a name, give it any name, it doesn't really matter
- When prompted for a password, type in like 50 - 100 random characters. Don't worry that you don't know the password, just make it LONG
- **CRITICAL STEP**: Write down (on paper) your 25 word @mnemonic-seed
**WARNING**: If you forget to write down this information your funds may be lost forever
- Write down (on your phone, on paper, on another computer, wherever you want) your address and view key
- Switch off the computer, remove the battery if there is one, and leave it physically off for a few hours
The account you've created was created in RAM, and the digital files are now inaccessible. If some adversary manages to somehow obtain the data, they will lack the long password to open it. If you need to receive payments, you have your public address, and you have the view key if needed. If you need access to it, you have your 25 word @mnemonic-seed, and you can now write out several copies of it, including an offsite copy (e.g. a bank deposit box).
Credit: Riccardo Spagni
Related: [Offline Account Generator](http://moneroaddress.org/)

View file

@ -0,0 +1,61 @@
{% include untranslated.html %}
### Operating Systems: Ubuntu
- Download the [official binaries](https://getmonero.org/downloads/) or compile the last source available on [Github](https://github.com/monero-project/bitmonero)
![image1](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/1.png)
![image2](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/2.png)
- Extract the files with the archive manager (same as Winzip on Windows). Note the path where the files "monerod" and "monero-wallet-cli" are
![image3](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/3.png)
![image4](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/4.png)
- You only need to do this step once : open a terminal (ctrl+alt+t) and install the required dependencies by typing : "*sudo apt-get install libboost-all-dev libssl-dev libevent-dev libdb++-dev*". When asked, press the Y key and then Enter to continue
![image5](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/5.png)
![image6](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/6.png)
- Open a terminal and load the path where your binaries are extracted (cf. step 2) by typing : "*cd yourPathFromStep2*"
![image7](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/7.png)
- Load monerod by typing in your terminal : "*./monerod*". Wait for the synchronization with the network (monerod is updating the blockchain you have downloaded in step 4 or is downloading it from scratch). This can take a lot of time the first time, so be patient
![image8](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/8.png)
![image9](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/9.png)
![image10](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/10.png)
![image11](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/11.png)
- Once monerod is synchronized with the network, open a new terminal, change the directory (cf. step 5), and launch monero-wallet-cli by typing "*./monero-wallet-cli*"
![image12](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/12.png)
- Enter the name you want for your portfolio and follow the instructions from the terminal
![image13](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/13.png)
![image14](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/14.png)
![image15](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/15.png)
![image16](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/16.png)
*This is your private key. Write it down and keep it in a safe place!*
![image17](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/17.png)
*This is your view key. You need it to create a view only wallet (cf. associated user guide)*
![image18](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/18.png)
*This is the address of your wallet*
![image19](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/19.png)
![image20](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/20.png)
![image21](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/21.png)
![image22](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/22.png)
![image23](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/create_wallet/23.png)
- To exit monerod or monero-wallet-cli just type "*exit*" in the associated terminal
Now to access the portfolio you have just created you will have to launch monerod, wait for it to be synchronized with the network, launch monero-wallet-cli, and type the name of your portfolio and your password.

View file

@ -0,0 +1,65 @@
{% include untranslated.html %}
## How to obtain Monero
This is a guide to obtain your own Monero as of 20150919. This is perhaps the easiest way to purchase and hold Monero.
####Step 1: Buy Bitcoin
There are many ways to buy Bitcoin. Perhaps the easiest way is through circle.com. Once you have purchased some Bitcoin, you are ready to buy some Monero! Buying Bitcoin is straightforward. Please goto circle.com and just follow the instructions there.
####Step 2: Set up a mymonero.com account
MyMonero.com is an online wallet for Monero, maintained by Monero Core Developer Ricardo Spagni (fluffpony). It is the easiest wallet to use. Simply go to MyMonero.com and click on the "Create an Account" button.
![image1](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/01.png)
After clicking the button, you will see your private key. This key is what gives you access to your funds. Never share this key with anyone!
### WRITE DOWN THIS KEY IMMEDIATELY!
![image2](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/02.png)
Type in your private key in the box below, and click the button.
On the next page, you will see your address.
![image3](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/03.png)
Copy your address to the clipboard by highlighting the whole thing and hitting ctrl+c (or edit menu, copy), or clicking the little icon next to your address. Save your address somewhere. This is how others will send Monero to you, and what you will use to deposit Monero into your account!
#### Step 3: Buy Monero and transfer the Monero to your new address
Go to www.shapeshift.io . On the righthand side, of the screen, click icon under "Receive" to select Monero.
![image5](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/05.png)
![image6](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/06.png)
Paste your address into the field under the Monero logo. Select the "agree to terms" button, then hit "Start"
![image7](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/07.png)
In the new screen that pops up, copy the Deposit Address into your clipboard (select and hit ctrl+c or edit-copy)
![image8](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/08.png)
Go back to your circle.com page, hit the "transfer" button, and paste the Bitcoin address into the field
Enter the amount of Bitcoin you would like to spend.
![image4](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/04.png)
![image9](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/09.png)
You will get a text message verification code. Enter code and hit send.
![image10](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/10.png)
You will see the shapeshift change to "awaiting exchange"
![image11](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/11.png)
Then it will change to COMPLETE!
![image12](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/12.png)
After a while you will see it in your Monero account
![image13](https://github.com/luuul/monero-site/blob/master/knowledge-base/user-guides/png/easiest_way/13.png)

View file

@ -0,0 +1,31 @@
{% include untranslated.html %}
Sometimes, your funds will become stuck - you will have some locked funds that never become unlocked. This is how you fix it.
- Load your wallet in monero-wallet-cli.
- Type
> seed
into the command prompt. Write down your 25 word seed, if you haven't already. This is the best way to make sure you don't loose access to your funds.
- Close monero-wallet-cli by typing
> exit
- Backup all of your wallet related files. These include:
> yourwalletname.bin
> yourwalletname.bin.keys
> yourwalletname.bin.address.txt
This can be done by copying the files to a new folder.
Sometimes, when creating your wallet, you might have named it something without the .bin part. In that case, the wallet file will be called yourwalletname without the .bin at the end.
- Delete yourwallet.bin
- Load monero-wallet-cli, type in the name of the wallet you just deleted
- Enter password. The wallet will now refresh and hopefully your locked funds will now become unlocked.

View file

@ -0,0 +1,57 @@
{% include untranslated.html %}
# Importing the Blockchain to Monero GUI wallet (Windows)
### Step 1
Download the Current bootstrap from https://downloads.getmonero.org/blockchain.raw; you can skip this step if you are importing the Blockchain from another source.
### Step 2
Find the path of your Monero wallet (the folder where you extracted your wallet). For example mine is:
`D:\monero-gui-0.10.3.1`
Your path may be different depending on where you decided to download your wallet and what version of the Monero wallet you have.
### Step 3
Find the path of your downloaded Blockchain for example mine was:
`C:\Users\KeeJef\Downloads\blockchain.raw`
Yours might be different depending on where you downloaded the Blockchain to.
### Step 4
Open a Command Prompt window. You can do this by pressing the Windows key + R, and then typing in the popup box `CMD`
### Step 5
Now you need to navigate using the CMD window to the path of your Monero wallet. You can do this by typing:
`cd C:\YOUR\MONERO\WALLET\FILE\PATH\HERE`
It should look something like:
`cd D:\monero-gui-0.10.3.1`
If your Monero wallet is on another drive you can use `DriveLetter:` for example if your Monero wallet was on your D drive then before using the cd command you would do `D:`
### Step 6
Now type in your command prompt window:
`monero-blockchain-import --verify 1 --input-file C:\YOUR\BLOCKCHAIN\FILE\PATH\HERE`
For example I would type :
`monero-blockchain-import --verify 1 --input-file C:\Users\KeeJef\Downloads\blockchain.raw`
If you downloaded the Blockchain from a trusted, reputable source you may set `verify 0` this will reduce the amount of time to sync the Blockchain.
### Step 7
After the the Blockchain has finished syncing up you can open your Monero wallet normally. Your downloaded blockchain.raw can be deleted.
Author: Kee Jefferys

View file

@ -0,0 +1,82 @@
{% include untranslated.html %}
<div class="guides">
<section class="container">
<div class="row">
<div class="left half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>General</h2>
</div>
</div>
<div class="row start-xs" markdown="1">
[Monero Tools]({{site.baseurl}}/resources/user-guides/monero_tools.html)
[How to make an offline backup]({{site.baseurl}}/resources/user-guides/Offline_Backup.html)
[Importing the Monero blockchain]({{site.baseurl}}/resources/user-guides/importing_blockchain.html)
[How to run a node on VPS]({{site.baseurl}}/resources/user-guides/vps_run_node.html)
[Securely purchasing and storing Monero]({{site.baseurl}}/resources/user-guides/securely_purchase.html)
</div>
</div>
</div>
<div class="right half col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Wallets</h2>
</div>
</div>
<div class="row start-xs" markdown="1">
[Getting started with the CLI wallet]({{site.baseurl}}/resources/user-guides/monero-wallet-cli.html)
[How to make a view-only wallet]({{site.baseurl}}/resources/user-guides/view_only.html)
[How to prove payment]({{site.baseurl}}/resources/user-guides/prove-payment.html)
[Restoring wallet from keys]({{site.baseurl}}/resources/user-guides/restore_from_keys.html)
[How to connect to a remote node within GUI wallet]({{site.baseurl}}/resources/user-guides/remote_node_gui.html)
</div>
</div>
</div>
</div>
</section>
<section class="container">
<div class="row">
<div class="left half no-pad-sm col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Recovery</h2>
</div>
</div>
<div class="row start-xs" markdown="1">
[How to fix locked up funds]({{site.baseurl}}/resources/user-guides/howto_fix_stuck_funds.html)
[How to restore your account]({{site.baseurl}}/resources/user-guides/restore_account.html)
</div>
</div>
</div>
<div class="right half col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="info-block">
<div class="row center-xs">
<div class="col">
<h2>Mining</h2>
</div>
</div>
<div class="row start-xs" markdown="1">
[How to solo mine with the GUI]({{site.baseurl}}/resources/user-guides/solo_mine_GUI.html)
[How to mine on a pool with xmr-stak-cpu]({{site.baseurl}}/resources/user-guides/mine-to-pool.html)
[Mining with Docker and XMRig]({{site.baseurl}}/resources/user-guides/mining_with_xmrig_and_docker.html)
</div>
</div>
</div>
</div>
</section>
</div>

View file

@ -0,0 +1,114 @@
{% include untranslated.html %}
# Selecting a pool
There are many pools to choose from, a list is available at
[moneropools.com](https://moneropools.com). Mining on a larger pool could mean
more frequent payouts, but mining on a smaller pool helps to keep the network
decentralized.
# Selecting a CPU miner
Just like pools, there are a lot of miners to choose from. The one that you
should pick depends on the hardware you want to mine on. This guide will only
use a CPU miner, and will be using
[xmr-stak-cpu](https://github.com/fireice-uk/xmr-stak-cpu). Alternatives include
[wolf's CPUMiner](https://github.com/wolf9466/cpuminer-multi) and
[sgminer-gm](https://github.com/genesismining/sgminer-gm). However, their
configuration is slightly different and will not be covered in this guide.
## For Windows Systems
If you are using a Windows system, the developer of xmr-stak-cpu provides
binaries to download on the
[GitHub release page](https://github.com/fireice-uk/xmr-stak-cpu/releases).
Download `xmr-stak-cpu-win64.zip` and extract it somewhere you'll be able to
find it again.
## For Other Operating Systems
If you're not using Windows, you will have to compile xmr-stak-cpu for yourself,
luckily this isn't as hard as it sounds. Before you can compile the miner, you
will need to install some of its prerequisites.
For Debian-based distros:
sudo apt-get install libmicrohttpd-dev libssl-dev cmake build-essential
For Red Hat based distros:
sudo yum install openssl-devel cmake gcc-c++ libmicrohttpd-devel
<!-- TODO: Add dependencies for other operating systems? -->
Following this, you just need to use cmake to generate the build files, run
make and copy the config file:
mkdir build-$(gcc -dumpmachine)
cd $_
cmake ../
make -j$(nproc)
cp ../config.txt bin/
cd bin
Don't celebrate just yet, as the miner needs to be configured. Running the miner
now should give you a block of text to copy and paste:
![image1](png/mine_to_pool/1.png)
Open `config.txt` and *replace* the two `"cpu_threads_conf"` lines with the text
you just copied. It should look something like this afterwards:
![image2](png/mine_to_pool/2.png)
Scroll down in the file until you see the lines containing `"pool_address"`.
*Replace* the contents of the second set of quotes with the address and port of
the pool you chose earlier. You can find this information on the pool's website.
Put your wallet address between the quotes on the wallet address. You may leave
the password blank unless the pool specifies otherwise.
After this, your config should look something like this:
![image3](png/mine_to_pool/3.png)
# Running the miner
**Save the config** file and run the miner!
![image4](png/mine_to_pool/4.png)
Some pools allow you to monitor your hashrate by pasting your address into their
website. You can also monitor your hashrate by pressing the `h` key.
# Tuning the miner
You might see nasty messages like this:
[2017-07-09 12:04:02] : MEMORY ALLOC FAILED: mmap failed
This means that you can get around a 20% hashrate boost by enabling large pages.
## Large pages on Linux
Firstly stop the miner (if it's running), run the following commands to enable
large pages and then start the miner as root:
sudo sysctl -w vm.nr_hugepages=128
sudo ./xmr-stak-cpu
## Large pages on Windows
Taken from `config.txt`:
>By default we will try to allocate large pages. This means you need to "Run As Administrator" on Windows
You need to edit your system's group policies to enable locking large pages. Here are the steps from MSDN
1. On the Start menu, click Run. In the Open box, type gpedit.msc.
2. On the Local Group Policy Editor console, expand Computer Configuration, and then expand Windows Settings.
3. Expand Security Settings, and then expand Local Policies.
4. Select the User Rights Assignment folder.
5. The policies will be displayed in the details pane.
6. In the pane, double-click Lock pages in memory.
7. In the Local Security Setting Lock pages in memory dialog box, click Add User or Group.
8. In the Select Users, Service Accounts, or Groups dialog box, add an account that you will run the miner on
9. Reboot for change to take effect.

View file

@ -0,0 +1,37 @@
{% include untranslated.html %}
## Introduction
This guide is two fold, ease of use for mining on Linux distributions and some extra security around mining as most of these miners have not had security auditing.
At the end of this guide you will be able to sleep a little easier knowing that if the miner gets exploited it will not migrate to your OS.
### Why Docker
[Docker](https://www.docker.com/) is being used as it is the most well known and has the biggest chance to be already installed.
The container I an using is [alpine-xmrig](https://hub.docker.com/r/bitnn/alpine-xmrig/) as per the name it is built on the [Alpine Linux](https://www.alpinelinux.org/) image.
If you are interested in getting started with Docker, here are some really good starting references.
* Arch Linux Wiki [Docker Page](https://wiki.archlinux.org/index.php/Docker)
* Container Solutions [Security Cheat Sheet](http://container-solutions.com/content/uploads/2015/06/15.06.15_DockerCheatSheet_A2.pdf)
* Digital Oceans [Dockerfile Howto](https://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images).
For distribution specific installation please refer to the [Docker Docs](https://docs.docker.com/engine/installation/) website.
### Why XMRig
[XMRig](https://github.com/xmrig/xmrig) is just a really solid miner to me. Nice output and statistics, no flashy web-ui's or dependencies. The XMRig container is only ~4MB what makes it extremely portable.
#### Step 1: Mining with XMRig
Run the following
```bash
# docker run --restart unless-stopped --read-only -m 50M -c 512 bitnn/alpine-xmrig -o POOL01 -o POOL02 -u WALLET -p PASSWORD -k
# docker run --restart unless-stopped --read-only -m 50M -c 512 bitnn/alpine-xmrig -o pool.supportxmr.com:7777 -u 45CJVagd6WwQAQfAkS91EHiTyfVaJn12uM4Su8iz6S2SHZ3QthmFM9BSPHVZY388ASWx8G9Wbz4BA24RQZUpGczb35fnnJz -p docker:secret -k
```
#### Step 2: There is no Step 2
You have already done everything you need to do. You are now mining in a docker container with XMRig `ctrl+c` to exit the miner or add `-d` just after `docker run` to background the miner.

View file

@ -0,0 +1,146 @@
{% include untranslated.html %}
# monero-wallet-cli
`monero-wallet-cli` is the wallet software that ships with the Monero tree. It is a console program,
and manages an account. While a bitcoin wallet manages both an account and the blockchain,
Monero separates these: `monerod` handles the blockchain, and `monero-wallet-cli` handles the account.
This guide will show how to perform various operations from the `monero-wallet-cli` UI. The guide assumes you are using the most recent version of Monero and have already created an account according to the other guides.
## Checking your balance
Since the blockchain handling and the wallet are separate programs, many uses of `monero-wallet-cli`
need to work with the daemon. This includes looking for incoming transactions to your address.
Once you are running both `monero-wallet-cli` and `monerod`, enter `balance`.
Example:
This will pull blocks from the daemon the wallet did not yet see, and update your balance
to match. This process will normally be done in the background every minute or so. To see the
balance without refreshing:
balance
Balance: 64.526198850000, unlocked balance: 44.526198850000, including unlocked dust: 0.006198850000
In this example, `Balance` is your total balance. The `unlocked balance` is the amount currently available to spend. Newly received transactions require 10 confirmations on the blockchain before being unlocked. `unlocked dust` refers to very small amounts of unspent outputs that may have accumulated in your account.
## Sending monero
You will need the standard address you want to send to (a long string starting with '4'), and
possibly a payment ID, if the receiving party requires one. In that latter case, that party
may instead give you an integrated address, which is both of these packed into a single address.
### Sending to a standard address:
transfer ADDRESS AMOUNT PAYMENTID
Replace `ADDRESS` with the address you want to send to, `AMOUNT` with how many monero you want to send,
and `PAYMENTID` with the payment ID you were given. Payment ID's are optional. If the receiving party doesn't need one, just
omit it.
### Sending to an integrated address:
transfer ADDRESS AMOUNT
The payment ID is implicit in the integrated address in that case.
### Specify the number of outputs for a transaction:
transfer MIXIN ADDRESS AMOUNT
Replace `MIXIN` with the number of outputs you wish to use. **If not specified, the default is 4.** It's a good idea to use the default, but you can increase the number if you want to include more outputs. The higher the number, the larger the transaction, and higher fees are needed.
## Receiving monero
If you have your own Monero address, you just need to give your standard address to someone.
You can find out your address with:
address
Since Monero is anonymous, you won't see the origin address the funds you receive came from. If you
want to know, for instance to credit a particular customer, you'll have to tell the sender to use
a payment ID, which is an arbitrary optional tag which gets attached to a transaction. To make life
easier, you can generate an address that already includes a random payment ID:
integrated_address
This will generate a random payment ID, and give you the address that includes your own account
and that payment ID. If you want to select a particular payment ID, you can do that too:
integrated_address 12346780abcdef00
Payments made to an integrated address generated from your account will go to your account,
with that payment id attached, so you can tell payments apart.
## Proving to a third party you paid someone
If you pay a merchant, and the merchant claims to not have received the funds, you may need
to prove to a third party you did send the funds - or even to the merchant, if it is a honest
mistake. Monero is private, so you can't just point to your transaction in the blockchain,
as you can't tell who sent it, and who received it. However, by supplying the per-transaction
private key to a party, that party can tell whether that transaction sent monero to that
particular address. Note that storing these per-transaction keys is disabled by default, and
you will have to enable it before sending, if you think you may need it:
set store-tx-info 1
You can retrieve the tx key from an earlier transaction:
get_tx_key 1234567890123456789012345678901212345678901234567890123456789012
Pass in the transaction ID you want the key for. Remember that a payment might have been
split in more than one transaction, so you may need several keys. You can then send that key,
or these keys, to whoever you want to provide proof of your transaction, along with the
transaction id and the address you sent to. Note that this third party, if knowing your
own address, will be able to see how much change was returned to you as well.
If you are the third party (that is, someone wants to prove to you that they sent monero
to an address), then you can check this way:
check_tx_key TXID TXKEY ADDRESS
Replace `TXID`, `TXKEY` and `ADDRESS` with the transaction ID, per-transaction key, and destination
address which were supplied to you, respectively. monero-wallet-cli will check that transaction
and let you know how much monero this transaction paid to the given address.
## Getting a chance to confirm/cancel payments
If you want to get a last chance confirmation when sending a payment:
set always-confirm-transfers 1
## How to find a payment to you
If you received a payment using a particular payment ID, you can look it up:
payments PAYMENTID
You can give more than one payment ID too.
More generally, you can review incoming and outgoing payments:
show_transfers
You can give an optional height to list only recent transactions, and request
only incoming or outgoing transactions. For example,
show_transfers in 650000
will only incoming transfers after block 650000. You can also give a height
range.
If you want to mine, you can do so from the wallet:
start_mining 2
This will start mining on the daemon usin two threads. Note that this is solo mining,
and may take a while before you find a block. To stop mining:
stop_mining

View file

@ -0,0 +1,18 @@
{% include untranslated.html %}
# Monero tools
These tools can be used to gain information about the Monero network or your transaction data in the blockchain.
### [Check that a recipient has received your funds](http://xmrtests.llcoins.net/checktx.html)
### [Tools for monero address generation](https://xmr.llcoins.net/)
### [Monero node count](http://moneronodes.i2p.xyz/)
### [Monero node map](https://monerohash.com/nodes-distribution.html)
### [Monero offline wallet generator](http://moneroaddress.org/)
### [Monero network statistics](http://moneroblocks.info/stats)
### [Monero.how statistics](https://www.monero.how/)

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Some files were not shown because too many files have changed in this diff Show more