Skip to content

Most fixed seed nodes are offline! #1028

@NordPax

Description

@NordPax

Fixed seed nodes.

PR: #1029

3.68.34.196:9333 => VERSION 107
5.100.250.140:9333 => NO RESPONSE
5.133.65.82:9333 => NO RESPONSE
5.149.250.76:9333 => NO RESPONSE
5.199.168.101:9333 => NO RESPONSE
15.204.183.3:9333 => NO RESPONSE
18.193.218.8:9333 => VERSION 107
34.206.199.154:9333 => NO RESPONSE
37.187.29.140:9333 => NO RESPONSE
45.77.162.206:9333 => NO RESPONSE
45.135.92.41:9333 => NO RESPONSE
46.19.67.66:9333 => VERSION 107
46.4.35.198:9333 => NO RESPONSE
51.210.217.144:9333 => VERSION 107
54.37.80.7:9333 => NO RESPONSE
54.37.80.214:9333 => NO RESPONSE
54.211.175.39:9333 => VERSION 109
64.227.105.219:9333 => NO RESPONSE
67.21.93.74:9333 => VERSION 107
69.165.205.142:9933 => VERSION 107
70.181.13.143:9333 => VERSION 107
72.68.211.215:9333 => NO RESPONSE
75.119.135.155:9333 => NO RESPONSE
77.221.211.137:9333 => NO RESPONSE
77.247.178.158:9333 => VERSION 107
80.111.142.213:9333 => VERSION 107
81.78.192.98:9333 => NO RESPONSE
84.201.173.23:9333 => NO RESPONSE
85.15.179.171:9333 => NO RESPONSE
85.214.61.209:9333 => VERSION 107
86.71.47.11:9333 => NO RESPONSE
89.19.26.211:9333 => VERSION 107
90.127.109.104:9333 => NO RESPONSE
91.193.181.3:9333 => VERSION 107
91.228.147.153:9333 => VERSION 107
93.183.72.195:9333 => NO RESPONSE
94.130.49.164:9333 => NO RESPONSE
95.43.97.84:9333 => NO RESPONSE
95.211.210.38:9333 => VERSION 107
97.115.248.110:9333 => NO RESPONSE
136.244.65.212:9333 => NO RESPONSE
142.132.218.251:9333 => NO RESPONSE
144.91.104.184:9333 => NO RESPONSE
146.59.69.245:9333 => VERSION 107
149.7.16.137:9333 => VERSION 109
157.161.128.57:9333 => NO RESPONSE
165.227.148.108:9333 => NO RESPONSE
173.208.172.165:9333 => NO RESPONSE
173.212.242.5:9333 => NO RESPONSE
174.60.186.254:9333 => NO RESPONSE
178.10.236.205:9333 => NO RESPONSE
178.41.11.254:9333 => NO RESPONSE
178.196.21.241:9333 => NO RESPONSE
185.26.30.134:7203 => NO RESPONSE
188.143.140.154:9333 => VERSION 107
190.2.130.27:9333 => VERSION 107
195.154.187.6:9333 => VERSION 107
206.189.195.1:9333 => NO RESPONSE
207.246.96.81:9333 => NO RESPONSE
207.255.193.47:9333 => NO RESPONSE
212.7.202.120:9333 => NO RESPONSE
212.92.101.189:9333 => VERSION 107
213.129.124.50:9333 => NO RESPONSE
217.182.200.177:9333 => NO RESPONSE
221.216.141.193:2321 => NO RESPONSE

nodes-check.py

import socket
import struct
import time
import hashlib
import os

def load_nodes(filename):
    nodes = []
    with open(filename) as f:
        for line in f:
            line = line.strip()
            if not line or ':' not in line or line.startswith('#'):
                continue
            host, port = line.split(':', 1)
            try:
                port = int(port)
                nodes.append((host, port))
            except ValueError:
                continue
    return nodes

def make_version_payload():
    version = 70015
    services = 0
    timestamp = int(time.time())
    addr_recv = b"\x00" * 26
    addr_from = b"\x00" * 26
    nonce = 0
    user_agent = b'\x0f' + b'/LiteNodeCheck:0.1/'
    start_height = 0
    relay = 0

    payload = struct.pack('<iQQ', version, services, timestamp)
    payload += addr_recv
    payload += addr_from
    payload += struct.pack('<Q', nonce)
    payload += user_agent
    payload += struct.pack('<i?', start_height, relay)
    return payload

def bitcoin_checksum(payload):
    return hashlib.sha256(hashlib.sha256(payload).digest()).digest()[:4]

def make_version_message():
    magic = b'\xfb\xc0\xb6\xdb'
    command = b'version' + b'\x00' * (12 - len('version'))
    payload = make_version_payload()
    length = struct.pack('<I', len(payload))
    checksum = bitcoin_checksum(payload)
    return magic + command + length + checksum + payload

def get_litecoin_version(host, port, timeout=2):
    msg = make_version_message()
    try:
        with socket.create_connection((host, port), timeout=timeout) as s:
            s.settimeout(timeout)
            s.sendall(msg)
            data = s.recv(1024)
            if b'version' in data:
                idx = data.find(b'version')
                version_payload = data[idx+12:idx+16]
                if len(version_payload) == 4:
                    version = struct.unpack('<i', version_payload)[0]
                    return version
    except Exception as e:
        # print(f"{host}:{port} => Error: {e}") 
        pass
    return None

def main():
    script_dir = os.path.dirname(os.path.abspath(__file__))
    nodes_file = os.path.join(script_dir, "nodes.txt")
    nodes = load_nodes(nodes_file)
    print(f"Checking Litecoin node versions ({len(nodes)} nodes):\n")
    for host, port in nodes:
        version = get_litecoin_version(host, port)
        if version:
            print(f"{host}:{port} => VERSION {version}")
        else:
            print(f"{host}:{port} => NO RESPONSE")

if __name__ == "__main__":
    main()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions