Don't translate state.Abort() messages
There is only one message passed to AbortNode() that makes sense to translate to the user specifically: Disk space is low. For the others show a generic message and refer to debug.log for details. Reduces the number of confusing jargon translation messages.
This commit is contained in:
parent
6faee79426
commit
b9b2e3fabd
2 changed files with 21 additions and 19 deletions
38
src/main.cpp
38
src/main.cpp
|
@ -1688,7 +1688,7 @@ bool ConnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, C
|
|||
if (!FindUndoPos(state, pindex->nFile, pos, ::GetSerializeSize(blockundo, SER_DISK, CLIENT_VERSION) + 40))
|
||||
return error("ConnectBlock() : FindUndoPos failed");
|
||||
if (!blockundo.WriteToDisk(pos, pindex->pprev->GetBlockHash()))
|
||||
return state.Abort(_("Failed to write undo data"));
|
||||
return state.Abort("Failed to write undo data");
|
||||
|
||||
// update nUndoPos in block index
|
||||
pindex->nUndoPos = pos.nPos;
|
||||
|
@ -1699,12 +1699,12 @@ bool ConnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, C
|
|||
|
||||
CDiskBlockIndex blockindex(pindex);
|
||||
if (!pblocktree->WriteBlockIndex(blockindex))
|
||||
return state.Abort(_("Failed to write block index"));
|
||||
return state.Abort("Failed to write block index");
|
||||
}
|
||||
|
||||
if (fTxIndex)
|
||||
if (!pblocktree->WriteTxIndex(vPos))
|
||||
return state.Abort(_("Failed to write transaction index"));
|
||||
return state.Abort("Failed to write transaction index");
|
||||
|
||||
// add this block to the view's block chain
|
||||
bool ret;
|
||||
|
@ -1739,7 +1739,7 @@ bool static WriteChainState(CValidationState &state) {
|
|||
FlushBlockFile();
|
||||
pblocktree->Sync();
|
||||
if (!pcoinsTip->Flush())
|
||||
return state.Abort(_("Failed to write to coin database"));
|
||||
return state.Abort("Failed to write to coin database");
|
||||
nLastWrite = GetTimeMicros();
|
||||
}
|
||||
return true;
|
||||
|
@ -1787,7 +1787,7 @@ bool static DisconnectTip(CValidationState &state) {
|
|||
// Read block from disk.
|
||||
CBlock block;
|
||||
if (!ReadBlockFromDisk(block, pindexDelete))
|
||||
return state.Abort(_("Failed to read block"));
|
||||
return state.Abort("Failed to read block");
|
||||
// Apply the block atomically to the chain state.
|
||||
int64_t nStart = GetTimeMicros();
|
||||
{
|
||||
|
@ -1836,7 +1836,7 @@ bool static ConnectTip(CValidationState &state, CBlockIndex *pindexNew, CBlock *
|
|||
CBlock block;
|
||||
if (!pblock) {
|
||||
if (!ReadBlockFromDisk(block, pindexNew))
|
||||
return state.Abort(_("Failed to read block"));
|
||||
return state.Abort("Failed to read block");
|
||||
pblock = █
|
||||
}
|
||||
// Apply the block atomically to the chain state.
|
||||
|
@ -1990,7 +1990,7 @@ static bool ActivateBestChainStep(CValidationState &state, CBlockIndex *pindexMo
|
|||
CheckForkWarningConditions();
|
||||
|
||||
if (!pblocktree->Flush())
|
||||
return state.Abort(_("Failed to sync block index"));
|
||||
return state.Abort("Failed to sync block index");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -2097,7 +2097,7 @@ bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBl
|
|||
setBlockIndexValid.insert(pindexNew);
|
||||
|
||||
if (!pblocktree->WriteBlockIndex(CDiskBlockIndex(pindexNew)))
|
||||
return state.Abort(_("Failed to write block index"));
|
||||
return state.Abort("Failed to write block index");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -2149,7 +2149,7 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
|
|||
}
|
||||
|
||||
if (!pblocktree->WriteBlockFileInfo(nLastBlockFile, infoLastBlockFile))
|
||||
return state.Abort(_("Failed to write file info"));
|
||||
return state.Abort("Failed to write file info");
|
||||
if (fUpdatedLast)
|
||||
pblocktree->WriteLastBlockFile(nLastBlockFile);
|
||||
|
||||
|
@ -2167,15 +2167,15 @@ bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigne
|
|||
pos.nPos = infoLastBlockFile.nUndoSize;
|
||||
nNewSize = (infoLastBlockFile.nUndoSize += nAddSize);
|
||||
if (!pblocktree->WriteBlockFileInfo(nLastBlockFile, infoLastBlockFile))
|
||||
return state.Abort(_("Failed to write block info"));
|
||||
return state.Abort("Failed to write block info");
|
||||
} else {
|
||||
CBlockFileInfo info;
|
||||
if (!pblocktree->ReadBlockFileInfo(nFile, info))
|
||||
return state.Abort(_("Failed to read block info"));
|
||||
return state.Abort("Failed to read block info");
|
||||
pos.nPos = info.nUndoSize;
|
||||
nNewSize = (info.nUndoSize += nAddSize);
|
||||
if (!pblocktree->WriteBlockFileInfo(nFile, info))
|
||||
return state.Abort(_("Failed to write block info"));
|
||||
return state.Abort("Failed to write block info");
|
||||
}
|
||||
|
||||
unsigned int nOldChunks = (pos.nPos + UNDOFILE_CHUNK_SIZE - 1) / UNDOFILE_CHUNK_SIZE;
|
||||
|
@ -2392,11 +2392,11 @@ bool AcceptBlock(CBlock& block, CValidationState& state, CBlockIndex** ppindex,
|
|||
return error("AcceptBlock() : FindBlockPos failed");
|
||||
if (dbp == NULL)
|
||||
if (!WriteBlockToDisk(block, blockPos))
|
||||
return state.Abort(_("Failed to write block"));
|
||||
return state.Abort("Failed to write block");
|
||||
if (!ReceivedBlockTransactions(block, state, pindex, blockPos))
|
||||
return error("AcceptBlock() : ReceivedBlockTransactions failed");
|
||||
} catch(std::runtime_error &e) {
|
||||
return state.Abort(_("System error: ") + e.what());
|
||||
return state.Abort(std::string("System error: ") + e.what());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -2719,10 +2719,12 @@ uint256 CPartialMerkleTree::ExtractMatches(std::vector<uint256> &vMatch) {
|
|||
|
||||
|
||||
|
||||
bool AbortNode(const std::string &strMessage) {
|
||||
bool AbortNode(const std::string &strMessage, const std::string &userMessage) {
|
||||
strMiscWarning = strMessage;
|
||||
LogPrintf("*** %s\n", strMessage);
|
||||
uiInterface.ThreadSafeMessageBox(strMessage, "", CClientUIInterface::MSG_ERROR);
|
||||
uiInterface.ThreadSafeMessageBox(
|
||||
userMessage.empty() ? _("Error: A fatal internal error occured, see debug.log for details") : userMessage,
|
||||
"", CClientUIInterface::MSG_ERROR);
|
||||
StartShutdown();
|
||||
return false;
|
||||
}
|
||||
|
@ -2733,7 +2735,7 @@ bool CheckDiskSpace(uint64_t nAdditionalBytes)
|
|||
|
||||
// Check for nMinDiskSpace bytes (currently 50MB)
|
||||
if (nFreeBytesAvailable < nMinDiskSpace + nAdditionalBytes)
|
||||
return AbortNode(_("Error: Disk space is low!"));
|
||||
return AbortNode("Disk space is low!", _("Error: Disk space is low!"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -3143,7 +3145,7 @@ bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp)
|
|||
}
|
||||
fclose(fileIn);
|
||||
} catch(std::runtime_error &e) {
|
||||
AbortNode(_("Error: system error: ") + e.what());
|
||||
AbortNode(std::string("System error: ") + e.what());
|
||||
}
|
||||
if (nLoaded > 0)
|
||||
LogPrintf("Loaded %i blocks from external file in %dms\n", nLoaded, GetTimeMillis() - nStart);
|
||||
|
|
|
@ -177,7 +177,7 @@ CAmount GetBlockValue(int nHeight, const CAmount& nFees);
|
|||
/** Create a new block index entry for a given block hash */
|
||||
CBlockIndex * InsertBlockIndex(uint256 hash);
|
||||
/** Abort with a message */
|
||||
bool AbortNode(const std::string &msg);
|
||||
bool AbortNode(const std::string &msg, const std::string &userMessage="");
|
||||
/** Get statistics from node state */
|
||||
bool GetNodeStateStats(NodeId nodeid, CNodeStateStats &stats);
|
||||
/** Increase a node's misbehavior score. */
|
||||
|
|
Loading…
Reference in a new issue