Transaction-Fees

了解大篷車中的交易規模和費用計算方式

  • August 28, 2020

看起來caravan github儲存庫中沒有活動,所以也許這裡有人可以幫助我解決這個問題。已經在下面的連結中提到了所有內容,但是我的三個基本問題是:

<https://github.com/unchained-capital/caravan/issues/173>

  1. tx 大小和費用計算如何在商隊中進行?
  2. 如果有更好的實現,它在其他項目中如何工作?
  3. 未來是否會有一個標準且簡單的方法來解決這個問題,每個比特幣項目都可以輕鬆使用?

截圖-大篷車

費率在此處拉取:

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,它使用estimatesmartfeerpi 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 也是如此。

希望這會有所幫助,很抱歉我們沒有就大篷車問題回复您,像這樣的資訊票現在對我們來說是低優先級的。

引用自:https://bitcoin.stackexchange.com/questions/98590