hostlist: refactor seed handling.

This commit is contained in:
Christopher Jeffrey 2017-01-15 12:48:46 -08:00
parent fcae101c0f
commit 6d1c918793
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
3 changed files with 20 additions and 14 deletions

View File

@ -71,7 +71,6 @@ function Chain(options) {
this.network = this.options.network; this.network = this.options.network;
this.logger = this.options.logger; this.logger = this.options.logger;
this.db = new ChainDB(this);
this.locker = new Lock(true); this.locker = new Lock(true);
this.invalid = new LRU(100); this.invalid = new LRU(100);
@ -88,6 +87,8 @@ function Chain(options) {
this.orphanCount = 0; this.orphanCount = 0;
this.orphanSize = 0; this.orphanSize = 0;
this.db = new ChainDB(this);
this._init(); this._init();
} }
@ -2304,10 +2305,10 @@ function ChainOptions(options) {
*/ */
ChainOptions.prototype.fromOptions = function fromOptions(options) { ChainOptions.prototype.fromOptions = function fromOptions(options) {
if (options.network != null) if (options.network != null) {
this.network = Network.get(options.network); this.network = Network.get(options.network);
this.witness = this.network.witness;
this.witness = this.network.witness; }
if (options.logger != null) { if (options.logger != null) {
assert(typeof options.logger === 'object'); assert(typeof options.logger === 'object');

View File

@ -555,8 +555,10 @@ HTTPServer.prototype._init = function _init() {
if (cmd.method !== 'getblocktemplate' && cmd.method !== 'getwork') { if (cmd.method !== 'getblocktemplate' && cmd.method !== 'getwork') {
this.logger.debug('Handling RPC call: %s.', cmd.method); this.logger.debug('Handling RPC call: %s.', cmd.method);
if (cmd.method !== 'submitblock') if (cmd.method !== 'submitblock'
&& cmd.method !== 'getmemorypool') {
this.logger.debug(cmd.params); this.logger.debug(cmd.params);
}
} }
try { try {

View File

@ -10,6 +10,7 @@ var assert = require('assert');
var util = require('../utils/util'); var util = require('../utils/util');
var IP = require('../utils/ip'); var IP = require('../utils/ip');
var co = require('../utils/co'); var co = require('../utils/co');
var Network = require('../protocol/network');
var NetAddress = require('../primitives/netaddress'); var NetAddress = require('../primitives/netaddress');
var List = require('../utils/list'); var List = require('../utils/list');
var murmur3 = require('../utils/murmur3'); var murmur3 = require('../utils/murmur3');
@ -17,7 +18,6 @@ var StaticWriter = require('../utils/staticwriter');
var Map = require('../utils/map'); var Map = require('../utils/map');
var common = require('./common'); var common = require('./common');
var dns = require('./dns'); var dns = require('./dns');
var Network = require('../protocol/network');
/** /**
* Host List * Host List
@ -35,6 +35,7 @@ function HostList(options) {
this.proxyServer = null; this.proxyServer = null;
this.resolve = dns.resolve; this.resolve = dns.resolve;
this.banTime = common.BAN_TIME; this.banTime = common.BAN_TIME;
this.rawSeeds = this.network.seeds;
this.seeds = []; this.seeds = [];
this.banned = {}; this.banned = {};
@ -65,8 +66,13 @@ function HostList(options) {
*/ */
HostList.prototype._initOptions = function initOptions(options) { HostList.prototype._initOptions = function initOptions(options) {
if (options.network != null) if (!options)
return;
if (options.network != null) {
this.network = Network.get(options.network); this.network = Network.get(options.network);
this.rawSeeds = this.network.seeds;
}
if (options.logger != null) { if (options.logger != null) {
assert(typeof options.logger === 'object'); assert(typeof options.logger === 'object');
@ -93,8 +99,10 @@ HostList.prototype._initOptions = function initOptions(options) {
this.banTime = options.banTime; this.banTime = options.banTime;
} }
if (options.seeds) if (options.seeds) {
assert(Array.isArray(options.seeds)); assert(Array.isArray(options.seeds));
this.rawSeeds = options.seeds;
}
}; };
/** /**
@ -113,12 +121,7 @@ HostList.prototype._init = function init(options) {
for (i = 0; i < this.maxBuckets; i++) for (i = 0; i < this.maxBuckets; i++)
this.used.push(new List()); this.used.push(new List());
if (options.seeds) { this.setSeeds(this.rawSeeds);
this.setSeeds(options.seeds);
return;
}
this.setSeeds(this.network.seeds);
}; };
/** /**