И еще, то что нода в сети и что-то там слушает и даже раздает адреса - вовсе не значит что у ноды весь блокчейн, а не обрезанный пруном. Так что самый надежный способ имхо - это низкоуровневые запросы первых блоков.
Понял, благодарю за текст выше. Но мерита уже нет
А так то разобрался со способом bitnodes, у них намного более простой способ (который правда не отличит pruned ноду от полной, хех):
getaddr The getaddr message sends a request to a node asking for information about known active peers to help with finding potential nodes in the network. The response to receiving this message is to transmit one or more addr messages with one or more peers from a database of known active peers. The typical presumption is that a node is likely to be active if it has been sending a message within the last three hours.
Тоесть отправляя запрос getaddr ноде, получаешь от нее список ее подключений. А потом фильтруешь на дубликаты. Но здесь, как указано много где, ответ будешь получать только от нод того же протокола. Старые ноды ответ давать не будут.
И да, я посмотрел их гитхаб и нашел краулера -
https://github.com/ayeowch/bitnodes . Завтра ради интереса попробую.
Но вообще, твой способ довольно интересный, именно чтобы узнать количество ПОЛНЫХ нод. Но он будет и дольше, так как тебе придется:
1. Рекконектиться к другим нодам после получения информации
2. Фильтровать те ноды, к которым ты уже подключался
А за это как я знаю можно быть помеченным как спаммер в сети, и ноды перестанут тебе отвечать.