了解大篷車中的交易規模和費用計算方式
看起來caravan github儲存庫中沒有活動,所以也許這裡有人可以幫助我解決這個問題。已經在下面的連結中提到了所有內容,但是我的三個基本問題是:
<https://github.com/unchained-capital/caravan/issues/173>
- tx 大小和費用計算如何在商隊中進行?
- 如果有更好的實現,它在其他項目中如何工作?
- 未來是否會有一個標準且簡單的方法來解決這個問題,每個比特幣項目都可以輕鬆使用?
費率在此處拉取:
export function fetchFeeEstimate(network, client) { if (client.type === BLOCK_EXPLORER) { return blockExplorerGetFeeEstimate(network); } return bitcoindEstimateSmartFee({ ...bitcoindParams(client), ...{ numBlocks: 1 }, }); }
( <https://github.com/unchained-capital/caravan/blob/3514039983984e184e8babb6c61c21a46798fc70/src/blockchain.js#L97-L105> )
這取決於您使用的是區塊瀏覽器還是本地 bitcoind 節點。如果使用 bitcoind,它使用
estimatesmartfee
rpi cal:export async function bitcoindEstimateSmartFee({ url, auth, numBlocks = 2 }) { const resp = await callBitcoind(url, auth, "estimatesmartfee", [numBlocks]); const feeRate = resp.result.feerate; return Math.ceil(feeRate * 100000); }
( <https://github.com/unchained-capital/caravan/blob/3514039983984e184e8babb6c61c21a46798fc70/src/bitcoind.js#L111-L115> )
至於交易規模/總費用計算,caravan 使用
estimateMultisigTransactionFee
來自unchained-bitcoin
(<https://github.com/unchained-capital/caravan/blob/fd214eb573c7185c01dfa2040aa914e87a0de359/src/actions/walletActions.js#L129>)根據交易類型(P2SH、P2WSH、P2SH-P2WSH)呼叫交易大小估計器。P2SH 是:
export function estimateMultisigP2SHTransactionVSize(config) { const baseSize = 41 * config.numInputs + 34 * config.numOutputs + 30; const signatureLength = 72 + 1; // approx including push byte const scriptOverhead = 4; const keylength = 33 + 1; // push byte const sigSize = signatureLength*config.m*config.numInputs + keylength*config.n*config.numInputs + scriptOverhead*config.numInputs; const vsize = baseSize + sigSize; return vsize; }
( <https://github.com/unchained-capital/unchained-bitcoin/blob/e9177e7171c3bf11ad5c245c7d633dac484f409c/src/p2sh.js#L27-L35> )
關於您的其他問題,我期待聽到更多關於此的資訊。當我們寫這篇文章時,我不知道
unspents
。如果有一個標準的、經過良好測試的包來計算交易費用,那就太好了。關於其他項目:Lily 使用
unchained-bitcoin
:(<https://github.com/KayBeSee/lily-wallet/blob/5945175f9e25cc7a8ff29159de39c228b79ef205/src/pages/Send/utils.js#L48>)所以它與 Caravan 相同。我不知道卡薩是做什麼的。我假設 BitGo 使用unspents
了 Murch 連結到的那個。我很確定 Electrum 有它自己的東西,但我沒有看過,我認為 Spectre 也是如此。希望這會有所幫助,很抱歉我們沒有就大篷車問題回复您,像這樣的資訊票現在對我們來說是低優先級的。