Использование ckproxy в связке с собственной нодой p2pool'а.
Здравствуйте.
После знакомства с p2pool'ом я, так сказать, заболел им. И не смотря на все неурядицы, банальные убытки, не считаясь с личным временем, зачастую в ущерб семье и другим делам, прилагаю усилия, чтобы сдвинуть идею пула с мёртвой точки. Перечитано огромное количество материалов, что не говорит о том, что я уже "всё знаю". Всё еще в поиске наилучшего решения для работы "устаревших" асиков на пуле. Ради этого искал и к нашел решение в виде прокси сервера, прокладки между AntMiner S5 и нодой p2pool'а для минимизации проблем совместимости. Корни этой "неприязни" кроются скорее всего в недрах bitmaintech'а, которому p2pool может и должен составить серьёзную конкуренцию. На этом лирическое отступление можно закончить.
Использование данной связки рекомендуется с мощностью фермы (одиночкам думаю вообще смысла заморачиваться нет) от 10Тх. Экспериментальные 6Тх пятёрок по количеству шар сработали хуже, чем 1 "семёрка".
Итак, приступим. Всё написанное предназначается для использования As Is и без всяких гарантий и т.д. и т.п.
Для начала опишу технологические требования к комплексу p2pool+ckproxy.
1. Желательно выделенный сервер со средними показателями производительности: 2-4 ядра, от 8Гб памяти, от 100Гб жесткий диск, а лучше два - для системы и базы данных демона bitcoin. Нагрузки на процессор замечено не было, поэтому Core i3-i5 будет вполне достаточен и может даже на вырост.
Прилагаю htop с che2pool.mine.nu:9332 при подключенных 5 S5-х через ckproxy. Далее, когда нода переедет поближе к асикам и заведём на неё несколько десятков Тх, выложу снимок под нагрузкой.
2. В качестве OC, по советам ветеранов и по своему опыту, рекомендую ubuntu 14.04. Актуальная версия 15.10 преподносила несколько не приятных подводных граблей и жирных свиней. На борьбу с её глюками было потрачено значительное количество времени, сил и нервов. Все операции настройки и последующего контроля за работой можно и нужно выполнять в консольном варианте, но допустимо использование GUI и даже Teamviewer'a. В итоге все графические навороты можно отключить, если вдруг возникнет недостаток мощности.
3. Установку ноды p2pool`а я описывать не буду. Для информации есть гораздо более обстоятельные публикации форумчан.
Важно! Наличие собственной ноды желательно но не обязательно. Вполне работоспособный вариант наличия только собственного прокси, который будет направлен на любую "ближайшую" ноду.
4. Установка ckproxy будет происходить в два этапа: собственно сборка из исходников и настройка связки с нодой.
Загрузить в домашний каталог желательно с помощью git
Этот вариант предпочтительнее чтобы в будущем легко получать актуальные версии и пересобирать модули без заморочек.
В итоге получим папку ckpool в домашней каталоге.
cd ~/ckpool/
Далее собственно процесс сборки.
./autogen.sh
./configure --without-ckdb
Всё должно пройти без ошибок.
Теперь преступаем к сборке. Говорят, что если к команде make приписать -jX, где X количество ядер вашего процессора, то можно получить значительное ускорение сборки, но по своему опыту могу сказать, что больше вероятность получить проблемы совместного доступа к файлам и другие проблемы. Но попробовать никто не запрещает. ;)
make
Все вышеуказанные команды с успехом выполняются из под обычного пользователя. Но для инсталляции модуля в систему, чтобы не запоминать пути вызова, ну и по феншую так положено, надо выполнить
sudo make install
Далее надо изменить строку запуска демона кошелька. В параметры надо добавить -blocknotify=/usr/bin/notify.sh
Чтобы это работало надо создать собственно файл /usr/bin/notify.sh со следующим содержимым.
#!/bin/bash
/usr/bin/notifier -s /opt
сделать файл исполнимым можно командой
sudo chmod +x /usr/bin/notify.sh
/etc/rc.local
/sbin/ifconfig eth0 txqueuelen 10000
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /usr/bin/bitcoind -conf=/root/.bitcoin/bitcoin.conf -blocknotify=/usr/bin/notify.sh
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /usr/local/bin/litecoind -conf=/root/.litecoin/litecoin.conf -blocknotify=/usr/bin/notify.sh
#screen -dmS RNC LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /usr/local/bin/relaynetworkclient 127.0.0.1 8333
screen -dmS RNC /usr/local/bin/relaynetworkclient 127.0.0.1 8333
sleep 60
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /etc/init.d/start-p2pool start
screen -dmS ckproxy3343 ckpool -p -k -n ckproxy3343 -c /home/root/ckolivas-ckpool/ckproxy.3343.che2pool.rabinovich.conf
screen -dmS ckproxy3344 ckpool -p -k -n ckproxy3344 -c /home/root/ckolivas-ckpool/ckproxy.3344.che2pool.userru.conf
screen -dmS ckproxy3345 ckpool -p -k -n ckproxy3345 -c /home/root/ckolivas-ckpool/ckproxy.3345.che2pool.neotex.conf
screen -dmS ckproxy3346 ckpool -p -k -n ckproxy3346 -c /home/root/ckolivas-ckpool/ckproxy.3346.che2pool.vidikudik.conf
screen -dmS ckproxy3347 ckpool -p -k -n ckproxy3347 -c /home/root/ckolivas-ckpool/ckproxy.3347.che2pool.mishgan61.conf
screen -dmS ckproxy3348 ckpool -p -k -n ckproxy3348 -c /home/root/ckolivas-ckpool/ckproxy.3348.che2pool.nitrosalat.conf
screen -dmS ckproxy3349 ckpool -p -k -n ckproxy3349 -c /home/root/ckolivas-ckpool/ckproxy.3349.che2pool.oleg2.conf
screen -dmS ckproxy3350 ckpool -p -k -n ckproxy3350 -c /home/root/ckolivas-ckpool/ckproxy.3350.che2pool.shmidt.conf
Всё "безобразие" по запуску всего необходимого у меня прописано в /etc/rc.local. Это не по феншую, но пока не отполировал до зеркального блеска. ;)
5. Далее приступаем к настройке прокладки, т.е прокси.
Для нашей задачи необходимо настроить файл: ckproxy.conf.
Для наглядности приведу свои настройки:
ckproxy.conf
{
"proxy" : [
{
"url" : "stratum+tcp://de.kano.is:3333",
"auth" : "user.v200",
"pass" : "123"
},
{
"url" : "stratum+tcp://kano.e46btc.xyz:3335",
"auth" : "user.v200",
"pass" : "123"
},
{
"url" : "stratum+tcp://stratum.antpool.com:3333",
"auth" : "user.200",
"pass" : "123"
},
{
"url" : "stratum+tcp://us1.ghash.io:3333",
"auth" : "upXXXXXX.v200",
"pass" : "123"
},
{
"url" : "10.162.33.200:9332",
"auth" : "1ArcyQNSjvaVLyMV181vtc2p8hroTwkSHS",
"pass" : "123"
},
{
"url" : "crypto.office-on-the.net:9332",
"auth" : "1ArcyQNSjvaVLyMV181vtc2p8hroTwkSHS",
"pass" : "123"
}
],
"update_interval" : 30,
"serverurl" : [
"192.168.0.200:3334", # <-- этот порт определяет на каком порту работает прокси и отделяет один кошелёк от другого.
"127.0.0.1:3334"
],
"mindiff" : 1024,
"startdiff" : 1024,
"maxdiff" : 4992,
"clientsvspeed" : false,
"loglevel" : 1,
"logdir" : "logs"
}
Comments from here on are ignored.
Пока фсЁ.
Процесс познания поистине бесконечен. В начале этого пути я был гораздо менее осведомлённый, чем сейчас. И тем не менее пока успех не достигнут.
Со вчерашнего вечера работают пять пятёрок на ноде через прокси и 7-ка на прямую. За ночь было два блока, но не смотря на в кошельке за вчера-сегодня нуль.
По ходу где-то еще засада.
В общем жду Ваших предложений, пожеланий, критических замечаний и комментариев.
Спасибо за внимание.
30 Comments
Recommended Comments
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now