Transaction(TX) 的产生

in #but7 years ago (edited)

Transaction(TX) 的产生

  1. CreateTransaction (A转账给B一个btc)
    1) 返回值 bool
    2) 传入参数



    @ nFeeRequiredRet 最终要返回的给矿工的小费
    3) 主要调用
    @ CRITICAL_BLOCK(cs_main) 暂时跳过
    @ SelectionCoins(nValue,setCoins) 选择到具体的UTXO,把对对应的TX存在setCoins里面
    4) 流程图 @scriptPubKey B的地址加上一些其他信息生成的 @nValue 要转账的金额(猜测n是num或者new的缩写) @wtxNew 生成的新Tx(w是什么缩写未知)
  1. SelectCoins
    1)返回值 bool
    2)传入参数


    3)主要调用

    5) 流程图 @nTargetValue 需要凑够的金额 @setCoinsRet 选择的UTXO在这个set返回 @CRITICAL_BLOCK(cs_mapWallet)暂时跳过

  2. CommitTransactionSpent

  1. 返回值 bool
  2. 传入参数
    @wtxIn 要写入Disk的Tx
  3. 主要调用

    4)流程图 @AddToWallet 判断收到的Tx是否重复,并写入Disk // 中间有一些没读懂
  1. AddToWallet
  1. 返回值 bool
  2. 参数列表

    3)主要调用

    4)流程图 @wxtIn 要写入的Tx @wtx.WriteToDisk() 暂时跳过,看函数名应该是写入Disk的方法
  1. SendMoney(A转账给B一个btc)
  1. 返回值 bool
  2. 传入参数


    @scriptPubKey 由B的公钥生成 @nValue 转账金额 @wtxNew 新交易
  3. 主要调用
    @CreateTransaction 生成Tx
    @CommitTransaction 扫尾工作,记录Tx
    @wtxNew.AcceptTransaction 一定要成功
    4)流程图