use of co.rsk.db.importer.provider.index.BootstrapIndexCandidateSelector in project rskj by rsksmart.
the class BootstrapDataProviderTest method retrieveData.
@Test
public void retrieveData() {
BootstrapDataVerifier bootstrapDataVerifier = mock(BootstrapDataVerifier.class);
when(bootstrapDataVerifier.verifyEntries(any())).thenReturn(2);
BootstrapFileHandler bootstrapFileHandler = mock(BootstrapFileHandler.class);
BootstrapIndexCandidateSelector bootstrapIndexCandidateSelector = mock(BootstrapIndexCandidateSelector.class);
Map<String, BootstrapDataEntry> entries = new HashMap<>();
BootstrapIndexCandidateSelector.HeightCandidate mchd = new BootstrapIndexCandidateSelector.HeightCandidate(1L, entries);
when(bootstrapIndexCandidateSelector.getHeightData(any())).thenReturn(mchd);
BootstrapDataProvider bootstrapDataProvider = new BootstrapDataProvider(bootstrapDataVerifier, bootstrapFileHandler, bootstrapIndexCandidateSelector, mock(BootstrapIndexRetriever.class), 2);
bootstrapDataProvider.retrieveData();
}
use of co.rsk.db.importer.provider.index.BootstrapIndexCandidateSelector in project rskj by rsksmart.
the class BootstrapDataProviderTest method retrieveDataInsufficientsSources.
@Test(expected = BootstrapImportException.class)
public void retrieveDataInsufficientsSources() {
BootstrapDataVerifier bootstrapDataVerifier = mock(BootstrapDataVerifier.class);
when(bootstrapDataVerifier.verifyEntries(any())).thenReturn(1);
BootstrapFileHandler bootstrapFileHandler = mock(BootstrapFileHandler.class);
BootstrapIndexCandidateSelector bootstrapIndexCandidateSelector = mock(BootstrapIndexCandidateSelector.class);
Map<String, BootstrapDataEntry> entries = new HashMap<>();
BootstrapIndexCandidateSelector.HeightCandidate mchd = new BootstrapIndexCandidateSelector.HeightCandidate(1L, entries);
when(bootstrapIndexCandidateSelector.getHeightData(any())).thenReturn(mchd);
BootstrapDataProvider bootstrapDataProvider = new BootstrapDataProvider(bootstrapDataVerifier, bootstrapFileHandler, bootstrapIndexCandidateSelector, mock(BootstrapIndexRetriever.class), 2);
bootstrapDataProvider.retrieveData();
}
use of co.rsk.db.importer.provider.index.BootstrapIndexCandidateSelector in project rskj by rsksmart.
the class RskContext method getBootstrapImporter.
public synchronized BootstrapImporter getBootstrapImporter() {
checkIfNotClosed();
if (bootstrapImporter == null) {
RskSystemProperties systemProperties = getRskSystemProperties();
List<String> publicKeys = systemProperties.importTrustedKeys();
int minimumRequired = publicKeys.size() / 2 + 1;
if (minimumRequired < 2) {
logger.warn("Configuration has less trusted sources than the minimum required {} of 2", minimumRequired);
minimumRequired = 2;
}
BootstrapURLProvider bootstrapUrlProvider = new BootstrapURLProvider(systemProperties.importUrl());
bootstrapImporter = new BootstrapImporter(getBlockStore(), getTrieStore(), blockFactory, new BootstrapDataProvider(new BootstrapDataVerifier(), new BootstrapFileHandler(bootstrapUrlProvider, new Unzipper()), new BootstrapIndexCandidateSelector(publicKeys, minimumRequired), new BootstrapIndexRetriever(publicKeys, bootstrapUrlProvider, new ObjectMapper()), minimumRequired));
}
return bootstrapImporter;
}
Aggregations