question: public synchronized void bootstrap ( ) { if ( ! isRunning ( ) || System . currentTimeMillis ( ) - lastBootstrap < DHTConstants . BOOTSTRAP_MIN_INTERVAL ) { return ; } if ( ! bootstrapping . compareAndSet ( BootstrapState . NONE , BootstrapState . FILL ) ) return ; if ( useRouterBootstrapping && node . getNumEntriesInRoutingTable ( ) < DHTConstants . USE_BT_ROUTER_IF_LESS_THAN_X_PEERS ) { routerBootstrap ( ) ; } else { fillHomeBuckets ( Collections . emptyList ( ) ) ; } }
target:  Initiates a Bootstrap. This function bootstraps with router.bittorrent.com if there are less than 10 Peers in the routing table. If there are more then a lookup on our own ID is initiated. If the either Task is finished than it will try to fill the Buckets.