Sha256: 54da7a4479f6e94bd85bebb6d7d50f178f533d36cb14a520a6cee8ac7cc3d473
Contents?: true
Size: 1019 Bytes
Versions: 15
Compression:
Stored size: 1019 Bytes
Contents
module Bitcoin module Network class PeerDiscovery attr_reader :logger, :configuration def initialize(configuration) @logger = Bitcoin::Logger.create(:debug) @configuration = configuration end # get peer addresses, from DNS seeds. def peers # TODO add find from previous connected peer at first. (find_from_dns_seeds + seeds).uniq end private def dns_seeds Bitcoin.chain_params.dns_seeds || [] end def seeds [*configuration.conf[:connect]] end def find_from_dns_seeds logger.debug 'discover peer address from DNS seeds.' dns_seeds.map { |seed| begin Socket.getaddrinfo("#{seed}", Bitcoin.chain_params.default_port).map{|a|a[2]}.uniq rescue SocketError => e logger.error "SocketError occurred when load DNS seed: #{seed}, error: #{e.message}" nil end }.flatten.compact end end end end
Version data entries
15 entries across 15 versions & 1 rubygems