比特币交易的结构体相关定义:
交易 、交易输入、交易输出
交易汇总包含交易ID,TxInPut 、TxOutPut
type Transaction struct {
TId []byte
TxInPut []byte
TxOutPut []byte
}
type TxInPut struct {
Hash []byte
index int
Script []byte
}
type TxOutPut struct {
value int
Script []byte
}
在上面的结构中包含TxInput 中包含交易ID的哈希值,角标和解锁脚本,ID的哈希值是标识哪一笔交易,角标标识交易的output所在的索引,解锁脚本用于定位output。
TxOutPut 中包含交易的值和解锁脚本
交易首先用普通字符串进行表示,在后期补充成完成的交易结构。 在交易的过程中引入挖矿奖励,实现账户间的转账。
查看指定地址的余额,首先找到这个地址的UTXO所在的交易集合(即交易集合),根据交易集合找到地址所支配的UTXO,根据UTXO找到余额。
coinbase没有输入的交易即为挖矿交易,这个挖矿交易只有一个输入,一个输出,并且输入id为-1,索引为-1,解锁脚本任意。
转账:每一笔能够支配的钱来源于上一个交易的输出即为普通交易,每一笔交易的输出都要一次性花完,如果有剩余,转给自己。