forked from Qortal/qortal
Added DataFile.chunkHashes() method which appends all hashes into a single byte array (32 bytes / 256 bits each).
This commit is contained in:
parent
28425efbe7
commit
cc449f9304
@ -369,6 +369,31 @@ public class DataFile {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public byte[] chunkHashes() {
|
||||||
|
if (this.chunks != null && this.chunks.size() > 0) {
|
||||||
|
// Return null if we only have one chunk, with the same hash as the parent
|
||||||
|
if (this.digest().equals(this.chunks.get(0).digest())) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||||
|
for (DataFileChunk chunk : this.chunks) {
|
||||||
|
byte[] chunkHash = chunk.digest();
|
||||||
|
if (chunkHash.length != 32) {
|
||||||
|
LOGGER.info("Invalid chunk hash length: {}", chunkHash.length);
|
||||||
|
throw new IllegalStateException("Invalid chunk hash length");
|
||||||
|
}
|
||||||
|
outputStream.write(chunk.digest());
|
||||||
|
}
|
||||||
|
return outputStream.toByteArray();
|
||||||
|
} catch (IOException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String base58Digest() {
|
public String base58Digest() {
|
||||||
if (this.digest() != null) {
|
if (this.digest() != null) {
|
||||||
return Base58.encode(this.digest());
|
return Base58.encode(this.digest());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user