Перейти к содержимому

Рекомендуемые сообщения

pypy отлично себя поведёт на таком железе.

У меня не захотел.

Traceback (most recent call last):
  File "run_p2pool.py", line 3, in <module>
    from p2pool import main
  File "/home/root2pool/p2pool/p2pool/main.py", line 17, in <module>
    from twisted.internet import defer, reactor, protocol, tcp
ImportError: No module named twisted
 
 

На питоне завелся, но попросил полный блокчейн:

File "/home/root2pool/p2pool/p2pool/util/jsonrpc.py", line 133, in _http_do
    raise Error_for_code(resp['error']['code'])(resp['error']['message'], resp['error'].get('data', None))
p2pool.util.jsonrpc.NarrowError: -32603 Block not available (pruned data)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

У меня не захотел.

Вы его не полностью поставили, надо доставить модули. Вот полная установка:

sudo su
aptitude install python-dev libdwarf-dev libelfg0-dev libunwind8-dev libelf-dev

- к каких-то версиях здесь ругался на имя библиотеки (уже не помню), если ругается скиньте сюда - надо аналог искать.

cd
mkdir install
cd install
aptitude install pypy pypy-dev
wget https://bootstrap.pypa.io/ez_setup.py
pypy ez_setup.py
wget https://bootstrap.pypa.io/get-pip.py
pypy get-pip.py
pip install zope.interface
pip install Twisted
ldconfig

На питоне завелся, но попросил полный блокчейн:

Пулам нужен полный блокчейн. Перезаливайте.

Его лучше расположить на отдельном SSD диске.

Правка исходников от Балтазара решает эту проблему: https://forum.bits.media/index.php?/topic/253-p2pool-detcentralizovannyi-pul/?p=668282

Изменено пользователем ISawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все кто копает на ноде BTC, проверь настройки в своих асиках.
У меня на дефолтном адресе начала расти выплата, смотрите график: http://crypto.office-on-the.net:9332/static/classic/graphs.html?Day
Не могу понять кто это копает.
Скорее всего на одном или нескольких асиках в конце адреса есть пробел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В p2pool/p2pool/work.py на 171 строке

 

user, contents2 = contents[0], contents[1:]

Заменить на:

 

user, contents2 = contents[0].strip(), contents[1:]

 

Тогда юзеры смогут добавлять столько пробелов и табов, сколько захотят, на зачет это не повлияет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В p2pool/p2pool/work.py на 171 строке

user, contents2 = contents[0], contents[1:]

 

Заменить на:

user, contents2 = contents[0].strip(), contents[1:]

Тогда юзеры смогут добавлять столько пробелов и табов, сколько захотят, на зачет это не повлияет.

Спасибо. А то достали именно этой ошибкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

У меня не захотел.

Traceback (most recent call last):
  File "run_p2pool.py", line 3, in <module>
    from p2pool import main
  File "/home/root2pool/p2pool/p2pool/main.py", line 17, in <module>
    from twisted.internet import defer, reactor, protocol, tcp
ImportError: No module named twisted
 
 

На питоне завелся, но попросил полный блокчейн:

File "/home/root2pool/p2pool/p2pool/util/jsonrpc.py", line 133, in _http_do
    raise Error_for_code(resp['error']['code'])(resp['error']['message'], resp['error'].get('data', None))
p2pool.util.jsonrpc.NarrowError: -32603 Block not available (pruned data)

 

Это легко исправить, на самом деле блокчейн ему не нужен для чего бы то ни было, кроме проверки что запуск действительно произведен с bitcoind. В файле p2pool/p2pool/bitcoin/networks/bitcoin.py можно заменить эту лямбду:

RPC_CHECK = defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
            (yield helper.check_genesis_block(bitcoind, '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f')) and
            not (yield bitcoind.rpc_getinfo())['testnet']
        ))

на такую:

RPC_CHECK = defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
            'bitcoin' in (yield bitcoind.rpc_help()) and
            not (yield bitcoind.rpc_getinfo())['testnet']
        ))

После этого заведется с pruned клиентом и будет нормально работать.

Изменено пользователем Balthazar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Это легко исправить, на самом деле блокчейн ему не нужен для чего бы то ни было, кроме проверки что запуск действительно произведен с bitcoind. В файле p2pool/p2pool/bitcoin/networks/bitcoin.py можно заменить эту лямбду:

RPC_CHECK = defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
            (yield helper.check_genesis_block(bitcoind, '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f')) and
            not (yield bitcoind.rpc_getinfo())['testnet']
        ))

на такую:

RPC_CHECK = defer.inlineCallbacks(lambda bitcoind: defer.returnValue(
            'bitcoinaddress' in (yield bitcoind.rpc_help()) and
            not (yield bitcoind.rpc_getinfo())['testnet']
        ))

После этого заведется с pruned клиентом и будет нормально работать.

Что-то ссыкотно. Это на какой-нибуть ноде с pruned блокчейном тестировали? Я не рискну пока.

Я знаю что на pruned кошельках не работает часть команд.

Сможет ли нода в таком случае передать через такого демона найденный блок? Или только шары зарабатывать?

Изменено пользователем ISawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

P2Pool не нужно ничего кроме getnewaddress, getblocktemplate и submitblock. Я постоянно майню на pruned клиенте, даже нашел блок однажды.


Сможет ли нода в таком случае передать через такого демона найденный блок? Или только шары зарабатывать?

Разумеется сможет. Pruned нода точно так же может и передает блоки, как и "полный клиент". Вся разница лишь в том, что она не отдает клиентам старые блоки при запросах на синхронизацию, потому что их у неё нет. 

Изменено пользователем Balthazar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

P2Pool не нужно ничего кроме getnewaddress, getblocktemplate и submitblock. Я постоянно майню на pruned клиенте, даже нашел блок однажды.

Разумеется сможет. Pruned нода точно так же может и передает блоки, как и "полный клиент". Вся разница лишь в том, что она не отдает клиентам старые блоки при запросах на синхронизацию, потому что их у неё нет. 

Благодарствую, теперь можно будет кучу нод наклепать. Требования к размеру диска изменились. Многих останавливала необходимость приобретать накопитель большого объёма.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня на дефолтном адресе начала расти выплата, 

Не могу понять кто это копает.

я отличился, с утра.

прошу прощения, больше не буду)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет. Шарики за ролики уже зашли в попытках завести п2пул на успеченной базе блокчейна. С некоторых пор демон перестал слушать RPC-адрес 8332. Проверка адреса на занятость ничего не даёт, смена адреса на 7332 тоже ничего не дала. Тот же эффект.

Это что? Тем не менее 8333 для p2p нормально цепляется и на TCPv4 и на TCPv6.

Перезагрузка системы и запуск демона вручную тоже не помогает.

Куда ему стукнуть?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Привет. Шарики за ролики уже зашли в попытках завести п2пул на успеченной базе блокчейна. С некоторых пор демон перестал слушать RPC-адрес 8332. Проверка адреса на занятость ничего не даёт, смена адреса на 7332 тоже ничего не дала. Тот же эффект.

Это что? Тем не менее 8333 для p2p нормально цепляется и на TCPv4 и на TCPv6.

Перезагрузка системы и запуск демона вручную тоже не помогает.

Куда ему стукнуть?

Спасибо.

 

Выложи настройки из bitcoin.conf.

Изменено пользователем Balthazar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

rpcallowip=127.0.0.1
daemon=1
server=1
listen=1
rpcport=8332
port=8333
rpcuser=bitcoinrpc
rpcpassword=********************
mintxfee=0.00001
minrelaytxfee=0.0005
datadir=/home/root/data/bitcoin/
shrinkdebugfile=1
prune=70000
 
Настройки 100500% правильные. И раньше всё работало. RPC-порт я даже в брендмауэре не открываю. Тем более, что смена порта ничего не дала. p2p порт 8333 нормально биндится.  Значит дело в самом демоне. Я загрузил актуальную версию с url = https://github.com/bitcoin/bitcoin.git и пересобрал, но это так же не дало результата.

2017-03-26 14:19:44 Bitcoin version v0.14.99.0-1118493
2017-03-26 14:19:44 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2017-03-26 14:19:44 Assuming ancestors of block 00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90 have valid signatures.
2017-03-26 14:19:44 Prune configured to target 70000MiB on disk for block and undo files.
2017-03-26 14:19:44 Default data directory /home/root/.bitcoin
2017-03-26 14:19:44 Using data directory /home/root/data/bitcoin/
2017-03-26 14:19:44 Using config file /root/bitcoin.conf
2017-03-26 14:19:44 Using at most 125 automatic connections (1000000 file descriptors available)
2017-03-26 14:19:44 Using 32 MiB out of 32 requested for signature cache, able to store 1048576 elements
2017-03-26 14:19:44 Using 2 threads for script verification
2017-03-26 14:19:44 scheduler thread start
2017-03-26 14:19:44 Binding RPC on address 0.0.0.0 port 8332 failed.
2017-03-26 14:19:44 HTTP: creating work queue of depth 16
2017-03-26 14:19:44 Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Pleas
2017-03-26 14:19:44 HTTP: starting 4 worker threads
2017-03-26 14:19:44 init message: Verifying wallet...
2017-03-26 14:19:44 Using BerkeleyDB version Berkeley DB 5.3.28: (September  9, 2013)
2017-03-26 14:19:44 Using wallet wallet.dat
2017-03-26 14:19:44 CDBEnv::Open: LogDir=/home/root/data/bitcoin/database ErrorFile=/home/root/data/bitcoin/db.log
2017-03-26 14:19:44 Bound to [::]:8333
2017-03-26 14:19:44 Bound to 0.0.0.0:8333
2017-03-26 14:19:44 Cache configuration:
2017-03-26 14:19:44 * Using 2.0MiB for block index database
2017-03-26 14:19:44 * Using 8.0MiB for chain state database
2017-03-26 14:19:44 * Using 290.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space)
2017-03-26 14:19:44 init message: Loading block index...
2017-03-26 14:19:44 Opening LevelDB in /home/root/data/bitcoin/blocks/index
2017-03-26 14:19:44 Opened LevelDB successfully
2017-03-26 14:19:44 Using obfuscation key for /home/root/data/bitcoin/blocks/index: 0000000000000000
2017-03-26 14:19:44 Opening LevelDB in /home/root/data/bitcoin/chainstate
2017-03-26 14:19:44 Opened LevelDB successfully
2017-03-26 14:19:44 Using obfuscation key for /home/root/data/bitcoin/chainstate: 8e337efd10b20a62
2017-03-26 14:19:46 LoadBlockIndexDB: last block file = 815
2017-03-26 14:19:46 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=101, size=73446011, heights=458313...459029, time=2017-03-21...2017-03-26)
2017-03-26 14:19:46 Checking all blk files are present...
2017-03-26 14:19:46 LoadBlockIndexDB(): Block files have previously been pruned
2017-03-26 14:19:46 LoadBlockIndexDB: transaction index disabled
2017-03-26 14:19:46 LoadBlockIndexDB: hashBestChain=000000000000000000a860d295063f695eb90af91b1551d269cabd819533ff78 height=459029 date=2017-03-26 13:43:01 progress=0.999966
2017-03-26 14:19:46 init message: Rewinding blocks...
2017-03-26 14:19:47 init message: Verifying blocks...
2017-03-26 14:19:47 Verifying last 6 blocks at level 3
2017-03-26 14:19:47 [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[DONE].
2017-03-26 14:19:48 No coin database inconsistencies in last 7 blocks (9038 transactions)
Смена порта на 2332 результата не принесла:

2017-03-26 14:48:51 Bitcoin version v0.14.99.0-1118493
2017-03-26 14:48:51 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2017-03-26 14:48:51 Assuming ancestors of block 00000000000000000013176bf8d7dfeab4e1db31dc93bc311b436e82ab226b90 have valid signatures.
2017-03-26 14:48:51 Prune configured to target 70000MiB on disk for block and undo files.
2017-03-26 14:48:51 Default data directory /home/root/.bitcoin
2017-03-26 14:48:51 Using data directory /home/root/data/bitcoin/
2017-03-26 14:48:51 Using config file /root/bitcoin.conf
2017-03-26 14:48:51 Using at most 125 automatic connections (1000000 file descriptors available)
2017-03-26 14:48:51 Using 32 MiB out of 32 requested for signature cache, able to store 1048576 elements
2017-03-26 14:48:51 Using 2 threads for script verification
2017-03-26 14:48:51 scheduler thread start
2017-03-26 14:48:51 Binding RPC on address 0.0.0.0 port 2332 failed.
2017-03-26 14:48:51 HTTP: creating work queue of depth 16
2017-03-26 14:48:51 Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Pleas
2017-03-26 14:48:51 HTTP: starting 4 worker threads
2017-03-26 14:48:51 init message: Verifying wallet...
2017-03-26 14:48:51 Using BerkeleyDB version Berkeley DB 5.3.28: (September  9, 2013)
2017-03-26 14:48:51 Using wallet wallet.dat
2017-03-26 14:48:51 CDBEnv::Open: LogDir=/home/root/data/bitcoin/database ErrorFile=/home/root/data/bitcoin/db.log
2017-03-26 14:48:51 Bound to [::]:8333
2017-03-26 14:48:51 Bound to 0.0.0.0:8333
2017-03-26 14:48:51 Cache configuration:
2017-03-26 14:48:51 * Using 2.0MiB for block index database
2017-03-26 14:48:51 * Using 8.0MiB for chain state database
2017-03-26 14:48:51 * Using 290.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space)
2017-03-26 14:48:51 init message: Loading block index...
2017-03-26 14:48:51 Opening LevelDB in /home/root/data/bitcoin/blocks/index
Изменено пользователем AndreyNag

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

1. Запускать демон нужно не под рутом. К примеру, под юзером bitcoin вот таким systemd конфигом:

 

$ cat /lib/systemd/system/bitcoind.service
[Unit]
Description=Bitcoin daemon serivce
After=network.target


[Service]
Type=simple
User=bitcoin
ExecStart=/usr/bin/bitcoind -conf=/etc/bitcoin.conf


[Install]
WantedBy=multi-user.target
~$

 

Создать конфиг в выше указанном месте, затем зарегистрировать его в системе командой systemctl enable bitcoind. После этого запускать/останавливать/перезапускать демон можно будет командами systemctl stop/start/restart bitcoind.

 

Естественно, юзера bitcoin сначала нужно создать:

$ sudo useradd -m bitcoin

После чего перенести в /home/bitcoin/ каталог с данными демона и назначить юзера bitcoin его владельцем рекурсивно:

$ sudo chown -R bitcoin:bitcoin /home/bitcoin/.bitcoin

2. В конфиге слишком много параметров, содержимое /etc/bitcoin.conf должно работать вот таким:
 

rpcauth=<тут строка с именем юзера и хэшем пароля>
rpcworkqueue=32
prune=1024
server=1

Больше ничего в конфиге не нужно. Строку rpcauth можно сгенерировать следующим скриптом:

 

https://github.com/bitcoin/bitcoin/tree/master/share/rpcuser

 

Конфигурационному файлу назначить следующих владельца и права:

$ sudo chown bitcoin:bitcoin /etc/bitcoin.conf
$ sudo chmod 600 /etc/bitcoin.conf

Чтобы p2pool смог аутентифицироваться, нужно создать файл .bitcoin/bitcoin.conf в каталоге пользователя, под которым он запускается, и указать там rpcuser/rpcpassword в старом формате.

 

3. Собирать программы из git репозиториев категорически не рекомендуется, потому что это превращает операционную систему в помойку.

 

Кроме того, крайние срезы в репозиториях не предназначены для production эксплуатации, это только для разработчиков и тестеров. О чем демон говорит прямым текстом при запуске:

This is a pre-release test build - use at your own risk - do not use for mining or merchant applications

Устанавливать нужно из официального репозитория, там всегда лежат стабильные и подписанные сборки.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install bitcoind bitcoin-tx

4. Опционально, для удобства можно положить следующий скрипт в /usr/local/bin:

$ cat /usr/local/bin/btc
#!/bin/bash
if [ ! \$1 ]; then
  echo "Usage $0 <options>"
  echo "Please ensure you are allowed to run the sudo"
  exit 1
fi
sudo -u bitcoin bitcoin-cli -conf=/etc/bitcoin.conf -datadir=/home/bitcoin/.bitcoin "$@"
$

Тогда можно будет обращаться к запущенному демону более короткими командами. Например, btc getinfo или btc getbalance.


Все выше сделано на примере debian-based дистрибутива. С другими будет аналогично, только установка пакетов будет отличаться.

Изменено пользователем Balthazar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

listen=1

Убери и все получится - я использую этот параметр, что б на 1 пк запускать 2 разных клиента и только с этим параметром 2-й демон не мешает первому

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Убери и все получится

Это не красивое решение.

Красивое решение выглядит так: rpcbind=127.0.0.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Народ, насчёт исходников от veqtrus я рано взбаламутил. Извините.

Forrest советует пока использовать его версию из официального репозитория.
Версия veqtrus работает правильно но при превышении глобальной скорости свыше 50% на обновлённых нодах у остальных будет выскакивать табличка и отсылать на сайт где об обновлении нет ни слова.
Это будет владельцев нод сбивать с толку.

Изменено пользователем ISawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Forrest советует

А Лесник вообще что-то реально делает или проект в вялотекущей фазе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

А Лесник вообще что-то реально делает или проект в вялотекущей фазе?

Его задача сейчас патчи проверять и включать в официальный репозиторий. Сам уже почти не пишет для п2пула, в основном патчи veqtrus делает.

Я их вчера и сегодня доставал, включено ли голосование за сегвит в официальный реп и нужно ли неофициальные патчи ставить.

Оказывается включено что и один и второй подтвердили. Можно обойтись этими исходниками: https://github.com/p2pool/p2pool.git

Изменено пользователем ISawa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Строка запуска p2pool 

....-w 9332 --net bitcoin --bitcoind-rpc-port 8332 --bitcoind-p2p-port 8333 bitcoinrpc password -a BTCaddress .....
 sudo netstat -ntlp | grep bitcoin
tcp        0      0 127.0.0.1:8332          0.0.0.0:*               LISTEN      1884/bitcoind
tcp        0      0 0.0.0.0:8333            0.0.0.0:*               LISTEN      1884/bitcoind
tcp6       0      0 :::8333                 :::*                    LISTEN      1884/bitcoind

rpcallowip=127.0.0.1
rpcbind=127.0.0.1
daemon=1
server=1
listen=1
rpcport=8332
port=8333
rpcuser=bitcoinrpc
rpcpassword=password
mintxfee=0.00005
minrelaytxfee=0.0005
datadir=/home/root/data/bitcoin/
shrinkdebugfile=1
prune=1024

А p2pool ругается:

2017-03-26 21:45:33.715155 p2pool (version 16.0-4-gde1be30-dirty)
2017-03-26 21:45:33.715282
2017-03-26 21:45:33.715392 Testing bitcoind RPC connection to 'http://127.0.0.1:8332/' with username 'bitcoinrpc'...
2017-03-26 21:45:33.721320 >     Check failed! Make sure that you're connected to the right bitcoind with --bitcoind-rpc-port!
2017-03-26 21:45:34.726698 >     Check failed! Make sure that you're connected to the right bitcoind with --bitcoind-rpc-port!
2017-03-26 21:45:35.781626 >     Check failed! Make sure that you're connected to the right bitcoind with --bitcoind-rpc-port!
2017-03-26 21:45:36.786958 >     Check failed! Make sure that you're connected to the right bitcoind with --bitcoind-rpc-port!
2017-03-26 21:45:37.792406 >     Check failed! Make sure that you're connected to the right bitcoind with --bitcoind-rpc-port!
 

Я уже в осадок потихоньку выпадаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

bitcoin-cli -rpcuser=... -rpcpassword=... getinfo что говорит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

bitcoin-cli -rpcuser=... -rpcpassword=... getinfo что говорит?

 sudo /usr/bin/bitcoin-cli -conf=/root/bitcoin.conf getinfo
{
  "version": 140000,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 459067,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 475705205061.6292,
  "testnet": false,
  "keypoololdest": 1487104553,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00050000,
  "errors": ""
}

В том-то и дело, что канал RPC как таковой работает. И порты нужные "слушаются".

Никак не могу понять что "сломалось", всё ведь работало.

Изменено пользователем AndreyNag

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не парься, я нашел уже причину. Сейчас опишу.


Замени в патче bitcoinaddress на просто bitcoin и все поднимется.


Просто начиная с какой-то версии они поменяли формат вывода help и мой старый патч p2pool больше не работает в том виде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Замени в патче bitcoinaddress на просто bitcoin и все поднимется.

Действительно сработало!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://mnogoblokov.mine.nu:9332

 

Ещё одна нода в строю. Добро пожаловать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×