Страница 1 из 8
Monero / XMR
Добавлено: 14 окт 2021, 17:41
Olej
Почему Monero? (из числа других).
Меня интересует эта монета:
- вообще то, в чисто познавательных (сравнительных) целях ... в том числе: кошелёк, майнинг и др.
- потому что оно позволяет экспериментировать с майнингом на CPU!
Факты о Monero. Что такое Monero (XMR)?
И еще одна актуальная для многих в сообществе Monero проблема - это то, что майнинг Monero довольно централизован. Почти 35% монет Monero добываются на четырех крупных пулах. И хотя самый крупный из них добывает 16% монет Monero на момент написания статьи, важно поддерживать как можно более децентрализованный процесс добычи.
Как майнить Monero на CPU?
Благодаря алгоритму Cryptonight используемого для хеширования, майнинг Monero можно осуществлять как на процессорах, так и на видеокартах и при определенных условиях - это будет выгодно.
CryptoNight является частью протокола CryptoNote и реализует Proof of Work алгоритм.
Задача алгоритма устранить разрыв производительности между CPU и GPU / FPGA / ASIC майнерами.
Также различают соло майнинг и майнинг в пуле.
Соло майнинг это когда одно устройство (нода) ищет блок для блокчейна. Достаточно долгая процедура и победить в гонке генерации блока сложно, это ведет к непредсказуемому доходу, поэтому майнеры объединяются в пулы. Посчитать среднее время нахождения блока в соло можно так: сложность (diff) / хешрейт (H/s) = секунд. Например для среднего хешрейта 200h\s и текущей сложности (на момент написания): 56000439029 / 200 = 280002195 секунд или почти 9 лет.
...
В пуле все устройства занимаются генерацией блока вместе, награда в случае победы пула
делится среди майнеров пула, пропорционально объему произведенной работы. Принципы работы пулов отдельная большая тема, в том числе варианты начисления награды.
...
Примеры пулов для установки:
https://github.com/sammy007/monero-stratum
https://github.com/Snipa22/nodejs-pool
https://github.com/zone117x/node-cryptonote-pool
...
Re: Monero
Добавлено: 14 окт 2021, 18:50
Olej
Что такое Monero (XMR)?
Происхождение Monero
В июле 2012 года был запущен Bytecoin - первая успешная реализация протокола CryptoNote. CryptoNote - это протокол на уровне приложений, который является основой многих децентрализованных валют. В то время как похожий программный код используется и в Bitcoin, во многих аспектах есть целый ряд сильных различий в принципах реализации этих двух криптовалют.
...
... было решено, что оригинальный блокчейн Bytecoin будет форкнут (разделен на две цепи) и новые монеты в новом блокчейне будут называться BitMonero, что в конце концов привело к переименованию новой ветви в Monero (название переводится как «монета» с языка эсперанто). В этом новом блокчейне время нахождения нового блока майнерами было изменено на 2 минуты.
Monero в те времена возглавлялась группой из 7 разработчиков, 5 из которых предпочли остаться анонимными, а 2 из 7 часто появляются на публике. Это Дэвид Латапай (David Latapie) и Риккардо Спаньи «Fluffypony» (Riccardo Spagni). Проект был изначально с открытым исходным кодом и финансируемый самим сообществом.
Подробная история Monero интересно описана для почитать на досуге:
Странная история рождения Monero Часть I: Что такое этот Bytecoin?
Странная история рождения Monero Часть II: BitMonero
Странная история рождения Monero Часть III: Децентрализованная команда
Странная история рождения Monero Часть IV: Monero в настоящее время
8 сен 2017.
И что
очень важно -
Майнинг Монеро (XMR) — алгоритмы, настройка оборудования и расчет доходности:
Повышение сложности продолжалось до начала апреля 2018 года и достигло максимального уровня в 129,5 GH/s. В это время разработчики проекта внесли изменения в протокол майнинга для борьбы с ASIC-устройствами. Мотивацией такого решение стало желание сделать сеть Монеро более децентрализованной
Обновление протокола
сделало невыгодным работу при помощи ASIC-устройств, и сложность сети упала со 129 GH/s до 32 GH/s и в короткий промежуток скорректировалась на уровне 50-60 GH/s.
(выделено мной)
До недавнего времени майнить Монеро можно было при помощи специальных вычислительных устройств — ASIC. Они отличаются высокой производительностью и низким потреблением электроэнергии.
Обновление алгоритма майнинга сделало невыгодным применение таких устройств. На этот шаг руководство проекта Монеро пошло из-за подозрений о сосредоточении огромной вычислительной мощности под контролем одной компании. Подозревали известного производителя асик-устройств для майнинга — Bitmain. После апрельского обновления сложность сети, которая напрямую связана с общей вычислительной мощностью, упала более чем в 3 раза. Это является подтверждением подозрений разработчиков.
Re: Monero
Добавлено: 14 окт 2021, 19:04
Olej
Olej писал(а): ↑14 окт 2021, 17:41
Меня интересует эта монета:
С чего начать
Кошелек
Для хранения собственных средств необходим Monero-кошелек. Кошелек это сгенерированные файлы, конкретного кошелька, где хранятся ключи, которые используются при операциях с этим конкретным кошельком, но чаще всего говоря о кошельке подразумевают ПО для работы с этими файлами.
Загрузки
Там существует 2 клиента кошелька: CLI & GUI.
Monero GUI Wallet
Код: Выделить всё
olej@R420:~/2021/Monero$ ls -l monero-gui-linux-x64-v0.17.2.3.tar.bz2
-rw-rw-r-- 1 olej olej 128822608 окт 14 10:32 monero-gui-linux-x64-v0.17.2.3.tar.bz2
Monero CLI Wallet
Код: Выделить всё
olej@R420:~/2021/Monero$ ls -l monero-linux-x64-v0.17.2.3.tar.bz2
-rw-rw-r-- 1 olej olej 83878544 окт 14 10:41 monero-linux-x64-v0.17.2.3.tar.bz2
После разархивирования, соответственно:
Код: Выделить всё
olej@R420:~/2021/Monero$ tree monero-gui-v0.17.2.3
monero-gui-v0.17.2.3
├── extras
│ ├── monero-blockchain-ancestry
│ ├── monero-blockchain-depth
│ ├── monero-blockchain-export
│ ├── monero-blockchain-import
│ ├── monero-blockchain-mark-spent-outputs
│ ├── monero-blockchain-prune
│ ├── monero-blockchain-prune-known-spent-data
│ ├── monero-blockchain-stats
│ ├── monero-blockchain-usage
│ ├── monero-gen-ssl-cert
│ ├── monero-gen-trusted-multisig
│ ├── monero-wallet-cli
│ └── monero-wallet-rpc
├── LICENSE
├── monerod
├── monero-gui-wallet-guide.pdf
├── monero-wallet-gui
└── monero-wallet-gui.AppImage
1 directory, 18 files
Код: Выделить всё
olej@R420:~/2021/Monero$ tree monero-x86_64-linux-gnu-v0.17.2.3
monero-x86_64-linux-gnu-v0.17.2.3
├── LICENSE
├── monero-blockchain-ancestry
├── monero-blockchain-depth
├── monero-blockchain-export
├── monero-blockchain-import
├── monero-blockchain-mark-spent-outputs
├── monero-blockchain-prune
├── monero-blockchain-prune-known-spent-data
├── monero-blockchain-stats
├── monero-blockchain-usage
├── monerod
├── monero-gen-ssl-cert
├── monero-gen-trusted-multisig
├── monero-wallet-cli
└── monero-wallet-rpc
0 directories, 15 files
Руководство (последняя на сегодня версия - Latest commit c5da09b on Jan 1) по установке и настройке -
Guide for the Monero GUI wallet:
All you need to understand every single part of your Monero wallet, plus some useful tips
v1.9
Re: Monero
Добавлено: 14 окт 2021, 19:22
Olej
Olej писал(а): ↑14 окт 2021, 19:04
Руководство (последняя на сегодня версия - Latest commit c5da09b on Jan 1) по установке и настройке - Guide for the Monero GUI wallet:
Для запуска Monero GUI wallet достаточно:
Код: Выделить всё
olej@R420:~/2021/Monero/monero-gui-v0.17.2.3$ ./monero-wallet-gui
2021-10-14 08:00:10.072 W Qt:5.15.2 GUI:0.17.2.3-113efbf | screen: 1920x1080 - available: QSize(1875, 1080) - dpi: 96 - ratio:0.746896
2021-10-14 08:00:13.318 W qrc:/qt-project.org/imports/QtQuick/Controls/ApplicationWindow.qml:259:9: QML ContentItem: Binding loop detected for property "implicitWidth"
2021-10-14 10:49:06.166 W Logging to "/home/olej/.bitmonero/monero-wallet-gui.log"
...
2021-10-14 16:11:16.695 W Logging to "/home/olej/.bitmonero/monero-wallet-gui.log"
И дальше начинается последовательное создание:
Re: Monero
Добавлено: 14 окт 2021, 21:14
Olej
Устанавливаю "Продвинутый режим", потому что
только он позволяет вести майнинг
в режиме solo прямо из клиента кошелька.
К окончанию этого процесса (последняя картинка) начинается синхронизация (скачивание) блокчейна.
Он намеревается скачать 78.6Gb
... на ещё и на относиельно невысокой скорости отдачи (поряядка 1000Kb/s), так что это затянется на несколько часов, или даже десятков часов.
После установки кошелек начнет качать к себе блокчейн, так же как и во многих других криптовалютах. Ускорить этот процесс можно двумя способами:
1. Скачать блокчейн (
https://xmr.ru/redirect.php?url=https:/ ... kchain.raw) и импортировать его в кошелек. Это будет гораздо быстрее синхронизации и использует меньше памяти.
...
Каким образом можно импортировать - я этого пока не нашёл. А будет ли это быстрее, а тем более "гораздо" - совершенно не уверен, т.к. я начал такую закачку, и прогноз мне показывал что-то типа 23 часов...
Re: Monero
Добавлено: 14 окт 2021, 21:25
Olej
Olej писал(а): ↑14 окт 2021, 19:04
Там существует 2 клиента кошелька: CLI & GUI.
Но оба клиента предоставляются в исходниках, и гораздо лучше способ, разобравшись до конца с деталями использования,
собирать их из исходников себе!
Они даются а GitHub репозитории + с детальными и внятными инструкциями сборки и использования.
- CLI клиент:
monero-project/monero
- GUI клиент:
monero-project/monero-gui
Я позже вернусь к этому занятию...
Re: Monero
Добавлено: 14 окт 2021, 22:22
Olej
Olej писал(а): ↑14 окт 2021, 21:25
Я позже вернусь к этому занятию...
А тем временем к вопросу о динамике курса Монеро:
График курса Монеро за всю историю
Или за год, полгода, месяц ... -
Курс Монеро по отношению к доллару
... и множество других подобных источников...
Re: Monero
Добавлено: 15 окт 2021, 13:11
Olej
Olej писал(а): ↑14 окт 2021, 21:14
Он намеревается скачать 78.6Gb ... на ещё и на относиельно невысокой скорости отдачи (поряядка 1000Kb/s), так что это затянется на несколько часов, или даже десятков часов.
У меня этот процесс синхронизации занял 22 часа! И это на оптоволоконном GPON Интернет канале 50 MiB/s + сервере в 40 потоков (2 процессора Xeon E5-2470 v2)... т.е. время синхронизации не зависит от технических характеристик.
Вид синхронизированного блокчейна:
Код: Выделить всё
olej@R420:~/Загрузки/Monero$ tree lmdb
lmdb
├── data.mdb
└── lock.mdb
0 directories, 2 files
Код: Выделить всё
olej@R420:~/Загрузки/Monero$ ls -l lmdb
итого 119855788
-rw-r--r-- 1 olej olej 122732306432 окт 15 18:42 data.mdb
-rw-r--r-- 1 olej olej 8192 окт 15 18:42 lock.mdb
т.е. порядка 120 Gb.
(Наблюдая за системным монитором, я вижу большие паузы в трафике, и трафик идёт не на максимальной скорости - скорее всего это скорость отдачи. Кроме того, темп синхронизации существенно падает по ходу продвижения синхронизации...).
Re: Monero
Добавлено: 15 окт 2021, 18:25
Olej
Olej писал(а): ↑15 окт 2021, 13:11
У меня этот процесс синхронизации занял 22 часа!
Теперь, после синхронизации блокчейна, можно поиграться с майнингом, в режиме solo, индивидуально (не в пуле).
При максимальных 40 потоках ... видно по системному монитору что все процессоры загружены по 100%!
Мне этот эксперимент был интереснее всего для оценки максимальной производительности - порядка 4000 kH/s.
Re: Monero
Добавлено: 15 окт 2021, 18:39
Olej
Olej писал(а): ↑14 окт 2021, 21:14
Каким образом можно импортировать - я этого пока не нашёл. А будет ли это быстрее, а тем более "гораздо" - совершенно не уверен, т.к. я начал такую закачку, и прогноз мне показывал что-то типа 23 часов...
Нашёл!
В составе и CLI и GUI клиента (в подкаталоге extras) есть утилиты экспорта-импорта:
Код: Выделить всё
olej@R420:~/2021/Monero/monero-gui-v0.17.2.3/extras$ pwd
/home/olej/2021/Monero/monero-gui-v0.17.2.3/extras
Код: Выделить всё
olej@R420:~/2021/Monero/monero-gui-v0.17.2.3/extras$ ./monero-blockchain-export --help
Monero 'Oxygen Orion' (v0.17.2.3-release)
Allowed options:
Command line options:
--help Produce help message
Command line options and settings options:
--data-dir arg (=/home/olej/.bitmonero, /home/olej/.bitmonero/testnet if 'testnet', /home/olej/.bitmonero/stagenet if 'stagenet')
Specify data directory
--output-file arg Specify output file
--testnet Run on testnet. The wallet must be
launched with --testnet flag.
--stagenet Run on stagenet. The wallet must be
launched with --stagenet flag.
--log-level arg 0-4 or categories
--block-start arg (=0) Start at block number
--block-stop arg (=0) Stop at block number
--blocksdat Output in blocks.dat format
Код: Выделить всё
olej@R420:~/2021/Monero/monero-gui-v0.17.2.3/extras$ ./monero-blockchain-import --help
Monero 'Oxygen Orion' (v0.17.2.3-release)
Allowed options:
--data-dir arg (=/home/olej/.bitmonero, /home/olej/.bitmonero/testnet if 'testnet', /home/olej/.bitmonero/stagenet if 'stagenet')
Specify data directory
--test-drop-download For net tests: in download, discard ALL
blocks instead checking/saving them
(very fast)
--test-drop-download-height arg (=0) Like test-drop-download but discards
only after around certain height
--testnet Run on testnet. The wallet must be
launched with --testnet flag.
--stagenet Run on stagenet. The wallet must be
launched with --stagenet flag.
--regtest Run in a regression testing mode.
--keep-fakechain Don't delete any existing database when
in fakechain mode.
--fixed-difficulty arg (=0) Fixed difficulty used for testing.
--enforce-dns-checkpointing checkpoints from DNS server will be
enforced
--prep-blocks-threads arg (=4) Max number of threads to use when
preparing block hashes in groups.
--fast-block-sync arg (=1) Sync up most of the way by using
embedded, known block hashes.
--show-time-stats arg (=0) Show time-stats when processing
blocks/txs and disk synchronization.
--block-sync-size arg (=0) How many blocks to sync at once during
chain synchronization (0 = adaptive).
--check-updates arg (=notify) Check for new versions of monero:
[disabled|notify|download|update]
--fluffy-blocks Relay blocks as fluffy blocks
(obsolete, now default)
--no-fluffy-blocks Relay blocks as normal blocks
--test-dbg-lock-sleep arg (=0) Sleep time in ms, defaults to 0 (off),
used to debug before/after locking
mutex. Values 100 to 1000 are good for
tests.
--offline Do not listen for peers, nor connect to
any
--disable-dns-checkpoints Do not retrieve checkpoints from DNS
--block-download-max-size arg (=0) Set maximum size of block download
queue in bytes (0 for default)
--sync-pruned-blocks Allow syncing from nodes with only
pruned blocks
--max-txpool-weight arg (=648000000) Set maximum txpool weight in bytes.
--block-notify arg Run a program for each new block, '%s'
will be replaced by the block hash
--prune-blockchain Prune blockchain
--reorg-notify arg Run a program for each reorg, '%s' will
be replaced by the split height, '%h'
will be replaced by the new blockchain
height, '%n' will be replaced by the
number of new blocks in the new chain,
and '%d' will be replaced by the number
of blocks discarded from the old chain
--block-rate-notify arg Run a program when the block rate
undergoes large fluctuations. This
might be a sign of large amounts of
hash rate going on and off the Monero
network, and thus be of potential
interest in predicting attacks. %t will
be replaced by the number of minutes
for the observation window, %b by the
number of blocks observed within that
window, and %e by the number of blocks
that was expected in that window. It is
suggested that this notification is
used to automatically increase the
number of confirmations required before
a payment is acted upon.
--keep-alt-blocks Keep alternative blocks on restart
--extra-messages-file arg Specify file for extra messages to
include into coinbase transactions
--start-mining arg Specify wallet address to mining for
--mining-threads arg Specify mining threads count
--bg-mining-enable enable background mining
--bg-mining-ignore-battery if true, assumes plugged in when unable
to query system power status
--bg-mining-min-idle-interval arg Specify min lookback interval in
seconds for determining idle state
--bg-mining-idle-threshold arg Specify minimum avg idle percentage
over lookback interval
--bg-mining-miner-target arg Specify maximum percentage cpu use by
miner(s)
--db-sync-mode arg (=fast:async:250000000bytes)
Specify sync option, using format
[safe|fast|fastest]:[sync|async]:[<nblo
cks_per_sync>[blocks]|<nbytes_per_sync>
[bytes]].
--db-salvage Try to salvage a blockchain database if
it seems corrupted
Command line options:
--count-blocks Count blocks in bootstrap file and exit
--pop-blocks arg (=0) Remove blocks from end of blockchain
--drop-hard-fork Drop hard fork subdbs
--help Produce help message
Command line options and settings options:
--input-file arg Specify input file
--log-level arg 0-4 or categories
--batch-size arg (=20000)
--block-stop arg (=0) Stop at block number
--dangerous-unverified-import arg (=0)
Blindly trust the import file and use
potentially malicious blocks and
transactions during import (only enable
if you exported the file yourself)
--batch arg (=1) Batch transactions for faster import
--resume arg (=1) Resume from current height if output
database already exists