forked from Qortal/qortal
More refactoring
This commit is contained in:
parent
bfc0122c1b
commit
f938d8c878
@ -295,7 +295,7 @@ public class WebsiteResource {
|
|||||||
byte[] chunkHashes = transactionData.getChunkHashes();
|
byte[] chunkHashes = transactionData.getChunkHashes();
|
||||||
|
|
||||||
// Load data file(s)
|
// Load data file(s)
|
||||||
DataFile dataFile = DataFile.fromDigest(digest);
|
DataFile dataFile = DataFile.fromHash(digest);
|
||||||
if (!dataFile.exists()) {
|
if (!dataFile.exists()) {
|
||||||
if (!dataFile.allChunksExist(chunkHashes)) {
|
if (!dataFile.allChunksExist(chunkHashes)) {
|
||||||
// TODO: fetch them?
|
// TODO: fetch them?
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.qortal.network.message;
|
package org.qortal.network.message;
|
||||||
|
|
||||||
|
import org.qortal.transform.transaction.TransactionTransformer;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
@ -7,33 +9,33 @@ import java.nio.ByteBuffer;
|
|||||||
|
|
||||||
public class GetDataFileMessage extends Message {
|
public class GetDataFileMessage extends Message {
|
||||||
|
|
||||||
private static final int DIGEST_LENGTH = 32;
|
private static final int HASH_LENGTH = TransactionTransformer.SHA256_LENGTH;
|
||||||
|
|
||||||
private final byte[] digest;
|
private final byte[] hash;
|
||||||
|
|
||||||
public GetDataFileMessage(byte[] digest) {
|
public GetDataFileMessage(byte[] hash) {
|
||||||
this(-1, digest);
|
this(-1, hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
private GetDataFileMessage(int id, byte[] digest) {
|
private GetDataFileMessage(int id, byte[] hash) {
|
||||||
super(id, MessageType.GET_DATA_FILE);
|
super(id, MessageType.GET_DATA_FILE);
|
||||||
|
|
||||||
this.digest = digest;
|
this.hash = hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getDigest() {
|
public byte[] getHash() {
|
||||||
return this.digest;
|
return this.hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Message fromByteBuffer(int id, ByteBuffer bytes) throws UnsupportedEncodingException {
|
public static Message fromByteBuffer(int id, ByteBuffer bytes) throws UnsupportedEncodingException {
|
||||||
if (bytes.remaining() != DIGEST_LENGTH)
|
if (bytes.remaining() != HASH_LENGTH)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
byte[] digest = new byte[DIGEST_LENGTH];
|
byte[] hash = new byte[HASH_LENGTH];
|
||||||
|
|
||||||
bytes.get(digest);
|
bytes.get(hash);
|
||||||
|
|
||||||
return new GetDataFileMessage(id, digest);
|
return new GetDataFileMessage(id, hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -41,7 +43,7 @@ public class GetDataFileMessage extends Message {
|
|||||||
try {
|
try {
|
||||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||||
|
|
||||||
bytes.write(this.digest);
|
bytes.write(this.hash);
|
||||||
|
|
||||||
return bytes.toByteArray();
|
return bytes.toByteArray();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -47,7 +47,7 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository {
|
|||||||
byte[] chunkHashes = transactionData.getChunkHashes();
|
byte[] chunkHashes = transactionData.getChunkHashes();
|
||||||
|
|
||||||
// Load data file(s)
|
// Load data file(s)
|
||||||
DataFile dataFile = DataFile.fromDigest(digest);
|
DataFile dataFile = DataFile.fromHash(digest);
|
||||||
if (chunkHashes.length > 0) {
|
if (chunkHashes.length > 0) {
|
||||||
dataFile.addChunkHashes(chunkHashes);
|
dataFile.addChunkHashes(chunkHashes);
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository {
|
|||||||
byte[] chunkHashes = transactionData.getChunkHashes();
|
byte[] chunkHashes = transactionData.getChunkHashes();
|
||||||
|
|
||||||
// Load data file(s)
|
// Load data file(s)
|
||||||
DataFile dataFile = DataFile.fromDigest(digest);
|
DataFile dataFile = DataFile.fromHash(digest);
|
||||||
if (chunkHashes.length > 0) {
|
if (chunkHashes.length > 0) {
|
||||||
dataFile.addChunkHashes(chunkHashes);
|
dataFile.addChunkHashes(chunkHashes);
|
||||||
}
|
}
|
||||||
@ -167,7 +167,7 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository {
|
|||||||
byte[] chunkHashes = arbitraryTransactionData.getChunkHashes();
|
byte[] chunkHashes = arbitraryTransactionData.getChunkHashes();
|
||||||
|
|
||||||
// Load data file(s)
|
// Load data file(s)
|
||||||
DataFile dataFile = DataFile.fromDigest(digest);
|
DataFile dataFile = DataFile.fromHash(digest);
|
||||||
if (chunkHashes.length > 0) {
|
if (chunkHashes.length > 0) {
|
||||||
dataFile.addChunkHashes(chunkHashes);
|
dataFile.addChunkHashes(chunkHashes);
|
||||||
}
|
}
|
||||||
|
@ -90,8 +90,8 @@ public class DataFile {
|
|||||||
return new DataFile(hash58);
|
return new DataFile(hash58);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataFile fromDigest(byte[] digest) {
|
public static DataFile fromHash(byte[] hash) {
|
||||||
return DataFile.fromHash58(Base58.encode(digest));
|
return DataFile.fromHash58(Base58.encode(hash));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataFile fromPath(String path) {
|
public static DataFile fromPath(String path) {
|
||||||
@ -100,7 +100,7 @@ public class DataFile {
|
|||||||
try {
|
try {
|
||||||
byte[] fileContent = Files.readAllBytes(file.toPath());
|
byte[] fileContent = Files.readAllBytes(file.toPath());
|
||||||
byte[] digest = Crypto.digest(fileContent);
|
byte[] digest = Crypto.digest(fileContent);
|
||||||
DataFile dataFile = DataFile.fromDigest(digest);
|
DataFile dataFile = DataFile.fromHash(digest);
|
||||||
|
|
||||||
// Copy file to base directory if needed
|
// Copy file to base directory if needed
|
||||||
Path filePath = Paths.get(path);
|
Path filePath = Paths.get(path);
|
||||||
@ -194,6 +194,9 @@ public class DataFile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addChunkHashes(byte[] chunks) {
|
public void addChunkHashes(byte[] chunks) {
|
||||||
|
if (chunks == null || chunks.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
ByteBuffer byteBuffer = ByteBuffer.wrap(chunks);
|
ByteBuffer byteBuffer = ByteBuffer.wrap(chunks);
|
||||||
while (byteBuffer.remaining() >= TransactionTransformer.SHA256_LENGTH) {
|
while (byteBuffer.remaining() >= TransactionTransformer.SHA256_LENGTH) {
|
||||||
byte[] chunkDigest = new byte[TransactionTransformer.SHA256_LENGTH];
|
byte[] chunkDigest = new byte[TransactionTransformer.SHA256_LENGTH];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user