Как клиенты Bitcoin находят друг друга?
Какие протоколы или алгоритмы используются клиентами Bitcoin, чтобы найти своих сверстников? Я узнал, что клиенты BitTorrent могут полагаться на центральные компьютеры, называемые трекерами. Нужны ли клиентам Bitcoin какие-либо центральные серверы или узлы для работы?
2 ответа
Биткойн-клиенты используют несколько методов для поиска других клиентов. Основной метод - это список узлов из предыдущего подключения к сети. Работа очень хорошо для всего, кроме вашего первого соединения или подключения после очень длительного периода разъединения.
В случае, если у вас нет ранее известных IP-адресов или они не используются, основным методом резервного копирования является использование DNS-семян. Поддерживаются несколько имен узлов (например, dnsseed.bluematt.me ), которые разрешают список IP-адресов, известных как запущенные узлы. Если это не удается, клиент имеет список IP-адресов, которые, как полагают, указывают на стабильные узлы, жестко закодированные в нем.
Один из методов, который использовался, но с тех пор был оставлен, заключался в том, что клиенты находили друг друга с помощью IRC-сервера. Это сработало похоже на трекер BitTorrent.
Как только вы подключитесь к сети, вы начнете получать списки IP-адресов и портов известных клиентов.
Существует несколько методов, которые клиент может использовать . Однако, в отличие от очень хорошего ответа Дэвида, я расскажу о них в хронологическом порядке:
- Один из способов, которым клиенты узнают о других клиентах, - это подключение к другому клиенту и выдача команды «getaddr». У стандартного клиента всегда была эта способность. Однако есть проблема с этим - как вы узнаете о клиенте # 1?
- Поселок IRC. Это то, что было с первой версии. Это было просто реализовать, но в конечном итоге не масштабировалось. Первая версия связана с freenode. Затем узлы биткойнов начали получать k-lined . Более поздние версии подключены к lfnet. Затем lfnet опустился, и полностью отключена поддержка IRC. DNS был вокруг этого момента, так что это было хорошо .
- IP-адреса известных узлов. Это было в клиенте с июня 2010 года. Все еще в клиенте Bitcoin, хотя точные IP-адреса меняются каждый раз часто.
- Поселение DNS. Это было с клиентом с марта 2011 года. Это проще масштабировать, потому что DNS уже построен для обработки десятков из тысяч подключений.