Transaction-Fees
在什麼情況下費率可能是負數,它的真正含義是什麼?
在類的定義中,有
CFeeRate
一個名為 的成員nSatoshisPerK
:/** * Fee rate in satoshis per kilovirtualbyte: CAmount / kvB */ class CFeeRate { private: /** Fee rate in sat/kvB (satoshis per 1000 virtualbytes) */ CAmount nSatoshisPerK;
根據上面的評論,它的工作是顯而易見的。這個類還有一個成員叫做
GetFee
:CAmount CFeeRate::GetFee(uint32_t num_bytes) const { const int64_t nSize{num_bytes}; // Be explicit that we're converting from a double to int64_t (CAmount) here. // We've previously had issues with the silent double->int64_t conversion. CAmount nFee{static_cast<CAmount>(std::ceil(nSatoshisPerK * nSize / 1000.0))}; if (nFee == 0 && nSize != 0) { if (nSatoshisPerK > 0) nFee = CAmount(1); if (nSatoshisPerK < 0) nFee = CAmount(-1); } return nFee; }
我的問題是,在這種情況下,有可能
nSatoshisPerK
小於零?這是什麼意思?
費率不可能小於 0。這意味著輸出比輸入更有價值,這意味著比特幣是憑空創造的。這樣的交易將是無效的,並且不可能有負費率。
在這種情況下,負值表示費率未初始化或無效。