NodeInfo from = (NodeInfo) array[(int) (array.length * random.nextFloat())]; try { NImmutableEnvironment environment = network.getEnvironment(id, from, config.getMaxGetItemTime()); if (environment != null) { Set<HashId> conflicts = ledger.saveEnvironment(environment);
/** * Get the keeping item from random network node. Only for permanet network mode. * * @param itemId is {@link HashId} of the looking item * * @return keeping item or null if it is missing */ public Approvable getKeepingItemFromNetwork(HashId itemId) { if (!config.isPermanetMode()) return null; try { NodeInfo source = Do.sample(network.allNodes()); Approvable item = network.getItem(itemId, source, config.getMaxGetItemTime()); if (item != null) return item; } catch (InterruptedException e) { e.printStackTrace(); } return null; }
private void download() { if(processingState.canContinue()) { while (!isPollingExpired() && item == null) { if (sources.isEmpty()) { log.e("empty sources for download tasks, stopping"); return; } else { try { // first we have to wait for sources NodeInfo source; // Important: it could be disturbed by notifications synchronized (sources) { source = Do.sample(sources); } item = network.getItem(itemId, source, config.getMaxGetItemTime()); if (item != null) { itemDownloaded(); return; } else { Thread.sleep(100); } } catch (InterruptedException e) { e.printStackTrace(); } } } } }
source = Do.sample(sources); parcel = network.getParcel(parcelId, source, config.getMaxGetItemTime()); if (parcel != null) { parcelDownloaded();
assertEquals(config.getMaxCacheAge(), copyConfig.getMaxCacheAge()); assertEquals(config.getMaxNameCacheAge(), copyConfig.getMaxNameCacheAge()); assertEquals(config.getMaxGetItemTime(), copyConfig.getMaxGetItemTime()); assertEquals(config.getGetItemRetryCount(), copyConfig.getGetItemRetryCount()); assertEquals(config.getNegativeConsensus(), copyConfig.getNegativeConsensus());