recompute state bug fixed

This commit is contained in:
2026-05-29 13:51:34 +02:00
parent 763aeb648f
commit 39293029c5
3 changed files with 10 additions and 1 deletions
+1 -1
View File
@@ -97,7 +97,7 @@ static bool DebitAddress(const uint8_t address[32], const uint256_t* amount) {
return BalanceSheet_Insert(entry) >= 0;
}
static bool Chain_RecomputeRuntimeState(blockchain_t* chain) {
bool Chain_RecomputeRuntimeState(blockchain_t* chain) {
if (!chain) {
return false;
}
+5
View File
@@ -698,6 +698,11 @@ int main(int argc, char* argv[]) {
uint8_t lastSavedHash[32] = {0};
if (!Chain_LoadFromFile(chain, chainDataDir, &currentSupply, &difficultyTarget, &currentReward, lastSavedHash, false)) {
printf("No existing chain loaded from %s\n", chainDataDir);
} else {
// Recompute runtime supply/reward from loaded blocks to avoid trusting stale meta values.
if (!Chain_RecomputeRuntimeState(chain)) {
fprintf(stderr, "Failed to recompute runtime state from loaded chain\n");
}
}
if (!BalanceSheet_LoadFromFile(chainDataDir)) {