HostDB should always scan hosts that renter has contracts with
PROGRAMMING TASK
Description of Task
Have threadedScan
in the hostdb
always scan the hosts you have contracts with.
Reason or Need for Change
You want to make sure that the hosts you have contracts with are the most up to date.
Design / Proposal
Currently threadedScan
in the hostdb
scans a set of online and offline hosts every couple hours. These hosts are randomly pulled from the hostdb
. threadedScan
should grab the hosts associated with the renter's active contracts and scan those hosts first. This will ensure that the hosts with contracts are the most up to date.
In order to do this the hostdb
needs to know what hosts currently have contracts with the renter. The hostdb
does not have access to the renter
or the contractor
so that it can get the contracts directly and the hosts do not have a field that indicates if they have a contract with the renter
. There are a few options that can be taken to solve this.
-
Update HostDBEntry
One option is to add a field toHostDBEntry
that indicates if it has an active contract. This would require making sure that the field is updated properly through all the handling of the contract. -
Add Contract field to the HostDB
This option would entail creating a method on thecontractor
that sets a field on thehostdb
and contains the hosts that have active contracts with therenter
. This option is cleaner since it could be called at the end ofthreadedContractMaintenance
and thus updates thehostdb
with the most up to date information. Then thehostdb
just needs to read its own field. -
Options identified previously in #3042 (closed)