diff --git a/db.cpp b/db.cpp index 47b5e28..4849014 100644 --- a/db.cpp +++ b/db.cpp @@ -29,25 +29,12 @@ void CAddrInfo::Update(bool good) { bool CAddrDb::Get_(CService &ip, int &wait) { int64 now = time(NULL); int cont = 0; - int tot = unkId.size(); + int tot = unkId.size() + ourId.size(); + if (tot == 0) { + wait = 5; + return false; + } do { - deque::iterator it = ourId.begin(); - while (it < ourId.end()) { - if (now - idToInfo[*it].ourLastTry > MIN_RETRY) { - tot++; - it++; - } else { - break; - } - } - if (tot == 0) { - if (ourId.size() > 0) { - wait = MIN_RETRY - (now - idToInfo[ourId.front()].ourLastTry); - } else { - wait = 5; - } - return false; - } int rnd = rand() % tot; int ret; if (rnd < unkId.size()) { diff --git a/main.cpp b/main.cpp index 07713e6..442ab2e 100644 --- a/main.cpp +++ b/main.cpp @@ -25,7 +25,7 @@ public: const char *host; const char *tor; - CDnsSeedOpts() : nThreads(50), nDnsThreads(4), nPort(53), mbox(NULL), ns(NULL), host(NULL), tor(NULL) {} + CDnsSeedOpts() : nThreads(96), nDnsThreads(4), nPort(53), mbox(NULL), ns(NULL), host(NULL), tor(NULL) {} void ParseCommandLine(int argc, char **argv) { static const char *help = "Bitcoin-seeder\n" @@ -122,14 +122,13 @@ extern "C" void* ThreadCrawler(void* data) { do { std::vector ips; int wait = 5; - db.GetMany(ips, 100, wait); + db.GetMany(ips, 16, wait); if (ips.empty()) { wait *= 1000; wait += rand() % (500 * NTHREADS); Sleep(wait); continue; } - printf("Got %i IPs to test!\n", (int)ips.size()); vector addr; for (int i=0; i