SHA256
24 12 25
Дорабатываю добавление блоков.
This commit is contained in:
+11
-11
@@ -1,5 +1,6 @@
|
||||
package server.logic.ws_protocol.JSON.handlers.blockchain;
|
||||
|
||||
import blockchain.BchBlockEntry;
|
||||
import shine.db.SqliteDbController;
|
||||
import shine.db.dao.BlockchainStateDAO;
|
||||
import shine.db.dao.BlocksDAO;
|
||||
@@ -31,9 +32,8 @@ public final class BlockchainWriter {
|
||||
public void appendBlockAndState(
|
||||
String login,
|
||||
String blockchainName,
|
||||
int globalNumber,
|
||||
String prevGlobalHashHex,
|
||||
byte[] blockBytes,
|
||||
BchBlockEntry block,
|
||||
BlockchainStateEntry stOrNull,
|
||||
String newHashHex
|
||||
) throws SQLException {
|
||||
@@ -45,10 +45,10 @@ public final class BlockchainWriter {
|
||||
|
||||
try {
|
||||
// 1) блок
|
||||
insertBlockRow(c, login, blockchainName, globalNumber, prevGlobalHashHex, blockBytes);
|
||||
insertBlockRow(c, login, blockchainName, prevGlobalHashHex, block);
|
||||
|
||||
// 2) state
|
||||
appendState(c, blockchainName, globalNumber, stOrNull, newHashHex);
|
||||
appendState(c, blockchainName, block.recordNumber, stOrNull, newHashHex);
|
||||
|
||||
// 3) commit
|
||||
c.commit();
|
||||
@@ -105,9 +105,8 @@ public final class BlockchainWriter {
|
||||
Connection c,
|
||||
String login,
|
||||
String blockchainName,
|
||||
int globalNumber,
|
||||
String prevGlobalHashHex,
|
||||
byte[] blockBytes
|
||||
BchBlockEntry block
|
||||
) throws SQLException {
|
||||
|
||||
BlockEntry e = new BlockEntry();
|
||||
@@ -117,19 +116,20 @@ public final class BlockchainWriter {
|
||||
e.setBchName(blockchainName);
|
||||
|
||||
// Глобальная нумерация
|
||||
e.setBlockGlobalNumber(globalNumber);
|
||||
e.setBlockGlobalNumber(block.recordNumber);
|
||||
e.setBlockGlobalPreHashe(prevGlobalHashHex);
|
||||
|
||||
// Линии пока не используются: lineIndex=0, lineNumber=globalNumber
|
||||
e.setBlockLineIndex(0);
|
||||
e.setBlockLineNumber(globalNumber);
|
||||
e.setBlockLineNumber(block.recordNumber);
|
||||
e.setBlockLinePreHashe(prevGlobalHashHex);
|
||||
|
||||
// msgType у тебя пока 0 (при желании позже можно ставить по Body/type)
|
||||
e.setMsgType(0);
|
||||
// ✅ Теперь сохраняем тип блока
|
||||
e.setMsgType(block.body.type());
|
||||
|
||||
// Сырые байты полного блока
|
||||
e.setBlockByte(blockBytes);
|
||||
e.setBlockByte(block.toBytes());
|
||||
|
||||
// Поля "кому" (для сообщений/трансферов) пока пустые
|
||||
e.setToLogin(null);
|
||||
@@ -140,4 +140,4 @@ public final class BlockchainWriter {
|
||||
// UPSERT блока
|
||||
blocksDAO.upsert(c, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-6
@@ -2,7 +2,6 @@ package server.logic.ws_protocol.JSON.handlers.blockchain;
|
||||
|
||||
import blockchain.BchBlockEntry;
|
||||
import blockchain.BchCryptoVerifier;
|
||||
import blockchain.body.BodyRecordParser;
|
||||
import server.logic.ws_protocol.JSON.ConnectionContext;
|
||||
import server.logic.ws_protocol.JSON.entyties.Net_Request;
|
||||
import server.logic.ws_protocol.JSON.entyties.Net_Response;
|
||||
@@ -124,9 +123,9 @@ public final class Net_AddBlock_Handler implements JsonMessageHandler {
|
||||
return new AddBlockResult(WireCodes.Status.BAD_REQUEST, "bad_block_format", 0, "");
|
||||
}
|
||||
|
||||
// 5) Парсим и валидируем body (type/version + содержимое)
|
||||
// 5) Валидируем body (type/version + содержимое) — теперь body уже распарсен внутри BchBlockEntry
|
||||
try {
|
||||
BodyRecordParser.parse(block.bodyBytes).check();
|
||||
block.body.check();
|
||||
} catch (Exception e) {
|
||||
return new AddBlockResult(WireCodes.Status.BAD_REQUEST, "bad_block_body", 0, "");
|
||||
}
|
||||
@@ -221,9 +220,8 @@ public final class Net_AddBlock_Handler implements JsonMessageHandler {
|
||||
dbWriter.appendBlockAndState(
|
||||
login,
|
||||
blockchainName,
|
||||
globalNumber,
|
||||
nn(prevGlobalHashHex),
|
||||
blockBytes,
|
||||
block, // ✅ передаём целиком объект блока
|
||||
st,
|
||||
newHashHex
|
||||
);
|
||||
@@ -303,4 +301,4 @@ public final class Net_AddBlock_Handler implements JsonMessageHandler {
|
||||
}
|
||||
return new String(out);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user