Search in sources :

Example 1 with BootstrapURLProvider

use of co.rsk.db.importer.BootstrapURLProvider in project rskj by rsksmart.

the class BootstrapIndexRetrieverTest method retrievePublicKey.

@Test
public void retrievePublicKey() throws IOException {
    ObjectMapper objectMapper = mock(ObjectMapper.class);
    BootstrapDataIndex bdi = new BootstrapDataIndex(Collections.singletonList(new BootstrapDataEntry(1, "", "db", "hash", new BootstrapDataSignature("r", "s"))));
    when(objectMapper.readValue(any(URL.class), eq(BootstrapDataIndex.class))).thenReturn(bdi);
    BootstrapURLProvider bootstrapUrlProvider = mock(BootstrapURLProvider.class);
    when(bootstrapUrlProvider.getFullURL(any())).thenReturn(new URL("http://localhost"));
    BootstrapIndexRetriever bootstrapIndexRetriever = new BootstrapIndexRetriever(Collections.singletonList("key1"), bootstrapUrlProvider, objectMapper);
    List<BootstrapDataIndex> indices = bootstrapIndexRetriever.retrieve();
    Assert.assertTrue(indices.contains(bdi));
}
Also used : BootstrapDataSignature(co.rsk.db.importer.provider.index.data.BootstrapDataSignature) BootstrapDataEntry(co.rsk.db.importer.provider.index.data.BootstrapDataEntry) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) BootstrapDataIndex(co.rsk.db.importer.provider.index.data.BootstrapDataIndex) URL(java.net.URL) BootstrapURLProvider(co.rsk.db.importer.BootstrapURLProvider) Test(org.junit.Test)

Example 2 with BootstrapURLProvider

use of co.rsk.db.importer.BootstrapURLProvider 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;
}
Also used : BootstrapFileHandler(co.rsk.db.importer.provider.BootstrapFileHandler) Unzipper(co.rsk.db.importer.provider.Unzipper) BootstrapIndexCandidateSelector(co.rsk.db.importer.provider.index.BootstrapIndexCandidateSelector) BootstrapImporter(co.rsk.db.importer.BootstrapImporter) BootstrapDataProvider(co.rsk.db.importer.provider.BootstrapDataProvider) BootstrapIndexRetriever(co.rsk.db.importer.provider.index.BootstrapIndexRetriever) BootstrapDataVerifier(co.rsk.db.importer.provider.BootstrapDataVerifier) BootstrapURLProvider(co.rsk.db.importer.BootstrapURLProvider) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Aggregations

BootstrapURLProvider (co.rsk.db.importer.BootstrapURLProvider)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 BootstrapImporter (co.rsk.db.importer.BootstrapImporter)1 BootstrapDataProvider (co.rsk.db.importer.provider.BootstrapDataProvider)1 BootstrapDataVerifier (co.rsk.db.importer.provider.BootstrapDataVerifier)1 BootstrapFileHandler (co.rsk.db.importer.provider.BootstrapFileHandler)1 Unzipper (co.rsk.db.importer.provider.Unzipper)1 BootstrapIndexCandidateSelector (co.rsk.db.importer.provider.index.BootstrapIndexCandidateSelector)1 BootstrapIndexRetriever (co.rsk.db.importer.provider.index.BootstrapIndexRetriever)1 BootstrapDataEntry (co.rsk.db.importer.provider.index.data.BootstrapDataEntry)1 BootstrapDataIndex (co.rsk.db.importer.provider.index.data.BootstrapDataIndex)1 BootstrapDataSignature (co.rsk.db.importer.provider.index.data.BootstrapDataSignature)1 URL (java.net.URL)1 Test (org.junit.Test)1