go语言实现交易的基本构思

package main

import "bytes"

const subsidy=10//奖励,矿工挖掘给与的奖励
type TXInput struct {
    Txid []byte //Txid存储了交易的id
    Vout int //vout 则保存该交易的中一个output索引
    ScriptSig string  //ScriptSig 仅只是保存了一个任意用户定义的钱包
}
func(intput*TXInput)CanUnlockOutPutWith(un)
}


type TXOutput struct {
    Value int    //output保存了“币”(上面的value)
    ScriptPubkey string//   用脚本语言意味着比特币可以也作为智能合约平台
}
type Transaction struct {
    ID[]byte
    Vin[]TXInput
    Vout[]TXOutput
}
//检查交易失误是否为coinbase
func( tx *Transaction )IsCoinBase()bool{
    return len(tx.Vin)==1&&len(tx.Vin[0].Txid)==0 && tx.Vin[0].Vout==-1

}
//设置交易ID,从二进制数据中
func( tx *Transaction)Set ID(){
    var encoded bytes.Buffer//开辟内存
}   var hash[32]byte//哈希数组
    enc:=gob.NewEncoder(&enncoded)//解码对象
    err:=enc.Encode(tx)//解码
    if err!=nil{
        log.Panic(err)
    }
    hash=sha256.Sum256(encoded.Bytes())//计算哈希
    tx.ID=hash[:]//设置ID`这里写代码片`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值