diff --git a/lib/bcoin-browser.js b/lib/bcoin-browser.js index 82a2cad4..082fca14 100644 --- a/lib/bcoin-browser.js +++ b/lib/bcoin-browser.js @@ -75,11 +75,9 @@ bcoin.net = require('./net'); bcoin.bip150 = require('./net/bip150'); bcoin.bip151 = require('./net/bip151'); bcoin.bip152 = require('./net/bip152'); -bcoin.dns = require('./net/dns'); bcoin.packets = require('./net/packets'); bcoin.peer = require('./net/peer'); bcoin.pool = require('./net/pool'); -bcoin.tcp = require('./net/tcp'); // Node bcoin.node = require('./node'); diff --git a/lib/bcoin.js b/lib/bcoin.js index 9c1b3d1c..e40e79c1 100644 --- a/lib/bcoin.js +++ b/lib/bcoin.js @@ -110,11 +110,9 @@ bcoin.define('net', './net'); bcoin.define('bip150', './net/bip150'); bcoin.define('bip151', './net/bip151'); bcoin.define('bip152', './net/bip152'); -bcoin.define('dns', './net/dns'); bcoin.define('packets', './net/packets'); bcoin.define('peer', './net/peer'); bcoin.define('pool', './net/pool'); -bcoin.define('tcp', './net/tcp'); // Node bcoin.define('node', './node'); diff --git a/lib/net/bip150.js b/lib/net/bip150.js index b0c7f48a..8700ab8c 100644 --- a/lib/net/bip150.js +++ b/lib/net/bip150.js @@ -12,6 +12,7 @@ const assert = require('assert'); const path = require('path'); const EventEmitter = require('events'); const fs = require('bfile'); +const dns = require('bdns'); const IP = require('binet'); const Logger = require('blgr'); const ccmp = require('bcrypto/lib/ccmp'); @@ -24,7 +25,6 @@ const encoding = require('bbuf/lib/encoding'); const base58 = require('bstr/lib/base58'); const co = require('../utils/co'); const packets = require('./packets'); -const dns = require('./dns'); /** * Represents a BIP150 input/output stream. diff --git a/lib/net/dns-browser.js b/lib/net/dns-browser.js deleted file mode 100644 index ac3096b2..00000000 --- a/lib/net/dns-browser.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! - * dns.js - dns backend for bcoin - * Copyright (c) 2014-2017, Christopher Jeffrey (MIT License). - * https://github.com/bcoin-org/bcoin - */ - -'use strict'; - -/** - * Resolve host (no getaddrinfo). - * @ignore - * @param {String} host - * @param {String?} proxy - Tor socks proxy. - * @returns {Promise} - */ - -exports.resolve = function resolve(host, proxy) { - return new Promise((resolve, reject) => { - reject(new Error('DNS not supported.')); - }); -}; - -/** - * Resolve host (getaddrinfo). - * @ignore - * @param {String} host - * @param {String?} proxy - Tor socks proxy. - * @returns {Promise} - */ - -exports.lookup = function lookup(host, proxy) { - return new Promise((resolve, reject) => { - reject(new Error('DNS not supported.')); - }); -}; diff --git a/lib/net/dns.js b/lib/net/dns.js deleted file mode 100644 index e2310d42..00000000 --- a/lib/net/dns.js +++ /dev/null @@ -1,99 +0,0 @@ -/*! - * dns.js - dns backend for bcoin - * Copyright (c) 2014-2017, Christopher Jeffrey (MIT License). - * https://github.com/bcoin-org/bcoin - */ - -'use strict'; - -/** - * @module net/dns - */ - -const dns = require('dns'); -const socks = require('./socks'); - -const options = { - family: 4, - hints: dns.ADDRCONFIG | dns.V4MAPPED, - all: true -}; - -/** - * Resolve host (async w/ libcares). - * @param {String} host - * @param {String?} proxy - Tor socks proxy. - * @returns {Promise} - */ - -exports.resolve = function resolve(host, proxy) { - if (proxy) - return socks.resolve(proxy, host); - - return new Promise((resolve, reject) => { - dns.resolve(host, 'A', to((err, result) => { - if (err) { - reject(err); - return; - } - - if (result.length === 0) { - reject(new Error('No DNS results.')); - return; - } - - resolve(result); - })); - }); -}; - -/** - * Resolve host (getaddrinfo). - * @param {String} host - * @param {String?} proxy - Tor socks proxy. - * @returns {Promise} - */ - -exports.lookup = function lookup(host, proxy) { - if (proxy) - return socks.resolve(proxy, host); - - return new Promise((resolve, reject) => { - dns.lookup(host, options, to((err, result) => { - if (err) { - reject(err); - return; - } - - if (result.length === 0) { - reject(new Error('No DNS results.')); - return; - } - - const addrs = []; - - for (const addr of result) - addrs.push(addr.address); - - resolve(addrs); - })); - }); -}; - -/* - * Helpers - */ - -function to(callback) { - const timeout = setTimeout(() => { - callback(new Error('DNS request timed out.')); - callback = null; - }, 5000); - - return function(err, result) { - if (callback) { - clearTimeout(timeout); - callback(err, result); - } - }; -} diff --git a/lib/net/hostlist.js b/lib/net/hostlist.js index 9e51a64d..2854da45 100644 --- a/lib/net/hostlist.js +++ b/lib/net/hostlist.js @@ -9,17 +9,17 @@ const assert = require('assert'); const path = require('path'); const fs = require('bfile'); +const IP = require('binet'); +const dns = require('bdns'); +const Logger = require('blgr'); const murmur3 = require('bfilter/lib/murmur3'); const util = require('../utils/util'); -const IP = require('binet'); const co = require('../utils/co'); const Network = require('../protocol/network'); const NetAddress = require('../primitives/netaddress'); const List = require('../utils/list'); const common = require('./common'); const seeds = require('./seeds'); -const dns = require('./dns'); -const Logger = require('blgr'); const POOL32 = Buffer.allocUnsafe(32); /** diff --git a/lib/net/index.js b/lib/net/index.js index 1396c6e7..261c3e93 100644 --- a/lib/net/index.js +++ b/lib/net/index.js @@ -14,7 +14,6 @@ exports.BIP150 = require('./bip150'); exports.BIP151 = require('./bip151'); exports.bip152 = require('./bip152'); exports.common = require('./common'); -exports.dns = require('./dns'); exports.external = require('./external'); exports.Framer = require('./framer'); exports.HostList = require('./hostlist'); @@ -23,5 +22,4 @@ exports.Parser = require('./parser'); exports.Peer = require('./peer'); exports.Pool = require('./pool'); exports.socks = require('./socks'); -exports.tcp = require('./tcp'); exports.UPNP = require('./upnp'); diff --git a/lib/net/peer.js b/lib/net/peer.js index 50061d70..b8ef7cbf 100644 --- a/lib/net/peer.js +++ b/lib/net/peer.js @@ -10,6 +10,10 @@ const assert = require('assert'); const EventEmitter = require('events'); const {format} = require('util'); +const tcp = require('btcp'); +const Logger = require('blgr'); +const encoding = require('bbuf/lib/encoding'); +const RollingFilter = require('bfilter/lib/rolling'); const co = require('../utils/co'); const Parser = require('./parser'); const Framer = require('./framer'); @@ -18,17 +22,13 @@ const consensus = require('../protocol/consensus'); const common = require('./common'); const InvItem = require('../primitives/invitem'); const Lock = require('../utils/lock'); -const RollingFilter = require('bfilter/lib/rolling'); const BIP151 = require('./bip151'); const BIP150 = require('./bip150'); const BIP152 = require('./bip152'); const Block = require('../primitives/block'); const TX = require('../primitives/tx'); -const encoding = require('bbuf/lib/encoding'); const NetAddress = require('../primitives/netaddress'); const Network = require('../protocol/network'); -const Logger = require('blgr'); -const tcp = require('./tcp'); const services = common.services; const invTypes = InvItem.types; const packetTypes = packets.types; diff --git a/lib/net/pool.js b/lib/net/pool.js index 9d88cdd5..57efa971 100644 --- a/lib/net/pool.js +++ b/lib/net/pool.js @@ -9,8 +9,14 @@ const assert = require('assert'); const EventEmitter = require('events'); -const util = require('../utils/util'); const IP = require('binet'); +const dns = require('bdns'); +const tcp = require('btcp'); +const BloomFilter = require('bfilter/lib/bloom'); +const RollingFilter = require('bfilter/lib/rolling'); +const secp256k1 = require('bcrypto/lib/secp256k1'); +const encoding = require('bbuf/lib/encoding'); +const util = require('../utils/util'); const co = require('../utils/co'); const common = require('./common'); const chainCommon = require('../blockchain/common'); @@ -18,22 +24,16 @@ const Address = require('../primitives/address'); const BIP150 = require('./bip150'); const BIP151 = require('./bip151'); const BIP152 = require('./bip152'); -const BloomFilter = require('bfilter/lib/bloom'); -const RollingFilter = require('bfilter/lib/rolling'); -const secp256k1 = require('bcrypto/lib/secp256k1'); const Lock = require('../utils/lock'); const Network = require('../protocol/network'); const Peer = require('./peer'); const external = require('./external'); const List = require('../utils/list'); -const tcp = require('./tcp'); -const dns = require('./dns'); const socks = require('./socks'); const HostList = require('./hostlist'); const UPNP = require('./upnp'); const InvItem = require('../primitives/invitem'); const packets = require('./packets'); -const encoding = require('bbuf/lib/encoding'); const services = common.services; const invTypes = InvItem.types; const packetTypes = packets.types; diff --git a/lib/net/tcp-browser.js b/lib/net/tcp-browser.js deleted file mode 100644 index 4bdd7644..00000000 --- a/lib/net/tcp-browser.js +++ /dev/null @@ -1,39 +0,0 @@ -/*! - * tcp.js - tcp backend for bcoin - * Copyright (c) 2014-2017, Christopher Jeffrey (MIT License). - * https://github.com/bcoin-org/bcoin - */ - -'use strict'; - -const ProxySocket = require('./proxysocket'); -const EventEmitter = require('events'); -const tcp = exports; - -tcp.createSocket = function createSocket(port, host, proxy) { - return ProxySocket.connect(proxy, port, host); -}; - -tcp.createServer = function createServer() { - const server = new EventEmitter(); - - server.listen = async function listen(port, host) { - server.emit('listening'); - return; - }; - - server.close = async function close() { - return; - }; - - server.address = function address() { - return { - address: '127.0.0.1', - port: 0 - }; - }; - - server.maxConnections = undefined; - - return server; -}; diff --git a/lib/net/tcp.js b/lib/net/tcp.js deleted file mode 100644 index 2866e553..00000000 --- a/lib/net/tcp.js +++ /dev/null @@ -1,101 +0,0 @@ -/*! - * tcp.js - tcp backend for bcoin - * Copyright (c) 2014-2017, Christopher Jeffrey (MIT License). - * https://github.com/bcoin-org/bcoin - */ - -/* eslint prefer-arrow-callback: "off" */ - -'use strict'; - -const EventEmitter = require('events'); -const net = require('net'); -const socks = require('./socks'); - -/** - * @exports net/tcp - */ - -const tcp = exports; - -/** - * Create a TCP socket and connect. - * @param {Number} port - * @param {String} host - * @param {String?} proxy - * @returns {Object} - */ - -tcp.createSocket = function createSocket(port, host, proxy) { - if (proxy) - return socks.connect(proxy, port, host); - return net.connect(port, host); -}; - -/** - * Create a TCP server. - * @returns {Object} - */ - -tcp.createServer = function createServer() { - const server = new net.Server(); - const ee = new EventEmitter(); - - ee.listen = function listen(port, host) { - return new Promise((resolve, reject) => { - server.once('error', reject); - server.listen(port, host, () => { - server.removeListener('error', reject); - resolve(); - }); - }); - }; - - ee.close = function close() { - return new Promise((resolve, reject) => { - server.close(wrap(resolve, reject)); - }); - }; - - ee.address = function address() { - return server.address(); - }; - - Object.defineProperty(ee, 'maxConnections', { - get() { - return server.maxConnections; - }, - set(value) { - server.maxConnections = value; - return server.maxConnections; - } - }); - - server.on('listening', () => { - ee.emit('listening'); - }); - - server.on('connection', (socket) => { - ee.emit('connection', socket); - }); - - server.on('error', (err) => { - ee.emit('error', err); - }); - - return ee; -}; - -/* - * Helpers - */ - -function wrap(resolve, reject) { - return function(err, result) { - if (err) { - reject(err); - return; - } - resolve(result); - }; -}