На данный момент blockchain.info имеет более 1900 узлов, подключенных к их биткойн-клиенту.
Я использую сервер m1.small ubuntu 12.04 и биткойн уже около 4 дней без перезагрузки. Мой биткойн-клиент по-прежнему показывает максимум ~60 подключений при выполнении команды «./bitcoind getinfo».
Как мне добиться более 1000 подключений к моему биткойн-клиенту? И стоит ли оно того, на ваш взгляд?
РЕДАКТИРОВАТЬ: я перезапустил свой биткойн-клиент с параметрами -maxconnections=1000 и -timeout=15000, но после примерно 12 часов работы биткойн количество подключений составляет всего ~40. И я, кажется, еще не максимально использую свой процессор, оперативную память или пропускную способность.
РЕДАКТИРОВАТЬ 2: я не видел «время подключения» более 8 часов в списке, предоставленном blockchain.info , так что это говорит мне, что они должны перезапускать свой сервер каждые 8 часов или около того. Либо так, либо соединения обрываются и обновляются через 8 часов? Я начинаю думать, что blockchain.info отслеживает IP-адреса, на которых работает биткойн, в своего рода базе данных ... и заранее подключается к ним каждый раз, когда их биткойн перезагружается. Я прав?
Клиент bitcoind имеет опцию конфигурации maxconnections. Клиент, запущенный с параметром -maxconnections=N, позволит одновременно устанавливать до N входящих соединений.
Возможно, вам может потребоваться увеличить время ожидания соединения для такого количества попыток соединения с одного (возможно, недостаточно мощного) узла. Возможно, установите его на 15 секунд (15000 мс).
-timeout= Указать время ожидания соединения в миллисекундах (по умолчанию: 5000)
[Редактировать: ответ Питера Вуилле продвинет вас дальше. -addnode позволит вам форсировать новые исходящие соединения с узлами, когда у вас есть их IP-адреса.]
Биткойн по умолчанию не будет выполнять более 8 исходящих подключений и -maxconnections
только контролирует количество входящих подключений, которые вы разрешаете. Не стесняйтесь устанавливать это выше, но это займет некоторое время, прежде чем другие подключатся к вам в большом количестве.
Пожалуйста, не меняйте это, так как в этом нет необходимости. Подключаемые одноранговые узлы в сети являются дефицитным ресурсом и необходимы для децентрализации. Если люди попытаются подключиться ко всем из них, как это делают некоторые сайты, мы очень быстро закончим.
Если вы продавец или майнер, вы, возможно, захотите настроить несколько фиксированных подключений к доверенным другим (см. параметр -addnode
командной строки/конфигурации), но наличие большего количества подключений не означает более строгую проверку (эталонный клиент всегда проверяет все) или даже более быструю ретрансляцию (поскольку вы замедлите распространение новых блоков и транзакций среди всех своих одноранговых узлов). В основном это вопрос предоставления услуг в сети.
Данные ответы не отвечают на вопрос. Хотя достижение тысячи подключений может и не иметь смысла, вот как это сделать в Debian. Вы хотите внести небольшие изменения в код и перекомпилировать биткойн:
Получить необходимые пакеты для компиляции:
$ aptitude install git make build-essential libssl-dev libboost-all-dev libdb-dev libdb++-dev libminiupnpc-dev
Клонируйте репозиторий git (убедитесь, что версия является самой последней веткой ):
$ cd /usr/src
$ sudo git clone -b 0.8.4 https://github.com/bitcoin/bitcoin
$ cd bitcoin/src
Отредактируйте файл net.cpp:
@@ -27,7 +27,7 @@
using namespace std;
using namespace boost;
-static const int MAX_OUTBOUND_CONNECTIONS = 8;
+static const int MAX_OUTBOUND_CONNECTIONS = 1000;
bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false);
@@ -1533,7 +1533,7 @@
OpenNetworkConnection(CAddress(vserv[i % vserv.size()]), &grant);
MilliSleep(500);
}
- MilliSleep(120000); // Retry every 2 minutes
+ MilliSleep(5000); // Retry every 5 seconds
}
}
1.) Изменяя MAX_OUTBOUND_CONNECTIONS, клиент будет продолжать подключаться, пока не достигнет 1000 активных подключений.
2.) Изменяя тайм-аут сна, новые соединения пробуются чаще.
Скомпилируйте и установите биткойн:
$ sudo make -f makefile.unix
$ sudo mv bitcoind /usr/bin
Не забудьте установить maxconnections в bitcoin.conf:
maxconnections=1000
Запустите биткойн и все готово. Клиент будет делать много подключений очень быстро.
Отказ от ответственности: как указал Питер Вуилле, запуск модифицированного клиента, подобного этому, может повредить сети. Пожалуйста, используйте это решение только в исследовательских целях, а не как постоянное решение.
Поскольку никто, кажется, не упомянул об этом, я добавлю для дальнейшего использования. Если ваш биткойн-узел находится за маршрутизатором/NAT, вы можете подключаться только к другим, они не могут подключиться к вам. Предположим, что большинство людей находятся в такой ситуации, что делает большинство узлов неподключаемыми (по крайней мере, напрямую). Если вы откроете порт своего узла на маршрутизаторе, то каждый биткойн-узел сможет подключиться к вам, если захочет, а не ваш узел сможет подключаться только к тем, кто открыл свой порт. То же самое относится к Bittorrent и другим p2p-системам.
Зачем вам 1000+ подключений?
По умолчанию bitcoind не может иметь более 125 подключений. Вам нужно запустить bitcoind с параметром -maxconnections=<n>
или установить maxconnections=<n>
в bitcoin.conf, чтобы иметь возможность подключаться к большему количеству пиров.
Чтобы проверить, разрешаете ли вы входящие, используйте это: https://bitnodes.21.co . Существует кнопка для проверки вашего IP-адреса, и если она отображается зеленым цветом, у вас все в порядке с входящим соединением. Как только вы это сделаете, мне сказали, что у вас может быть больше исходящего соединения. Удачи.
пользователь418
пользователь3145
великий волк
-maxoutconnections
, позволяющая увеличить количество исходящих соединений с пирами. По умолчанию он равен,8
но вы можете установить его выше, не перекомпилируя узел из модифицированного исходного кода.жизнь Гюнтера
-maxconnections
что-то высокое, я получаю следующую ошибку: > Предупреждение: уменьшение -maxconnections с 4096 до 865 из-за ограничений системы. так вроде и с входящим соединением нельзя даже сверхвысоким ходить?пользователь10603
великий волк
фоба