snowblossom.lib.SnowFieldInfo

Here are the examples of the java api snowblossom.lib.SnowFieldInfo taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

4 Examples 7

18 Source : FieldScan.java
with Apache License 2.0
from snowblossomcoin

private void checkField(int field_number, SnowMerkleProof proof) throws java.io.IOException {
    SplittableRandom rnd = new SplittableRandom();
    long max = proof.getTotalWords();
    long check = rnd.nextLong(max);
    SnowPowProof p = proof.getProof(check);
    SnowFieldInfo info = params.getSnowFieldInfo(field_number);
    if (!Validation.checkProof(p, info.getMerkleRootHash(), info.getLength())) {
        throw new RuntimeException("proof check failed");
    }
}

18 Source : FieldScan.java
with Apache License 2.0
from snowblossomcoin

public void scan(boolean report) {
    TreeMap<Integer, SnowMerkleProof> fmap = new TreeMap<>();
    for (Map.Entry<Integer, String> me : params.getFieldSeeds().entrySet()) {
        int field_number = me.getKey();
        SnowFieldInfo info = params.getSnowFieldInfo(field_number);
        String name = me.getValue();
        File field_folder = new File(path, name);
        if (field_folder.exists() && field_folder.isDirectory()) {
            try {
                double precacheGig = config.getDoubleWithDefault("memfield_precache_gb", 0);
                int minDepthToDisk = config.getIntWithDefault("min_depth_to_disk", 0);
                boolean memfield = config.getBoolean("memfield");
                long precache = 0;
                if (precacheGig > 0.01) {
                    memfield = false;
                    precache = (long) (precacheGig * 1024.0 * 1024.0 * 1024.0);
                }
                logger.info("creating field: " + field_folder + " memfield=" + memfield + ", precache=" + precache + ", minDepthToDisk=" + minDepthToDisk);
                SnowMerkleProof proof = new SnowMerkleProof(field_folder, name, memfield, precache, minDepthToDisk);
                for (int i = 0; i < 64; i++) {
                    checkField(field_number, proof);
                }
                fmap.put(field_number, proof);
                logger.info(String.format("Snow field %d %s (%s) is working", field_number, name, info.getName()));
            } catch (Throwable e) {
                logger.info(String.format("Unable to load %s, error: %s", name, e.toString()));
            }
        } else {
            logger.info(String.format("Not loading %d %s (%s), directory not present: %s", field_number, name, info.getName(), field_folder));
        }
    }
    availible_fields = ImmutableSortedMap.copyOf(fmap);
}

18 Source : AutoSnowFall.java
with Apache License 2.0
from snowblossomcoin

public void run() {
    try {
        SnowFieldInfo field_info = params.getSnowFieldInfo(field);
        logger.info(String.format("Started automatic snowfall of field %d - %s", field, field_info.getName()));
        String path_name = params.getFieldSeeds().get(field);
        File field_dir = new File(snow_path, path_name);
        File snow_file = new File(field_dir, path_name + ".snow");
        field_dir.mkdirs();
        new SnowFall(snow_file.getPath(), path_name, field_info.getLength());
        logger.info(String.format("Snow field written: %s", snow_file.getPath()));
        logger.info("Starting merkle deck files");
        SnowMerkle merk = new SnowMerkle(field_dir, path_name, true);
        ByteString found_root = merk.getRootHash();
        if (field_info.getMerkleRootHash().equals(found_root)) {
            logger.info(String.format("Field %d - %s successfully matches hash %s", field, field_info.getName(), merk.getRootHashStr()));
        } else {
            logger.info("Hash mismatch for field");
        }
        done = true;
    } catch (Exception e) {
        logger.log(Level.WARNING, "Exception in autosnow: " + e);
    }
}

16 Source : SpoonTest.java
with Apache License 2.0
from snowblossomcoin

protected File setupSnow() throws Exception {
    NetworkParams params = new NetworkParamsRegtest();
    String test_folder_base = test_folder.newFolder().getPath();
    File snow_path = new File(test_folder.newFolder(), "snow");
    for (int i = 0; i < 4; i++) {
        SnowFieldInfo info = params.getSnowFieldInfo(i);
        String name = "spoon." + i;
        File field_path = new File(snow_path, name);
        field_path.mkdirs();
        File field = new File(field_path, name + ".snow");
        new SnowFall(field.getPath(), name, info.getLength());
        ByteString root_hash = new SnowMerkle(field_path, name, true).getRootHash();
        replacedert.replacedertEquals(info.getMerkleRootHash(), root_hash);
    }
    return snow_path;
}