bitcoinlitelite项目开发记录(2)

该项目目标是实现一个最小的可运行版本的类似bitcoin的blockchain。

  • 目的:
    • 阐述bitcoin的机制
    • 熟悉相关知识点
      github地址:bitcoinlitelite

说明

  • Transaction指的是bitcoin里面的交易,里面包含了此次交易的信息。多个Transaction构成一个集合,形成block。

  • 流程是:userA 要给userB转账,userA会打包一个Transaction,里面包含了userA的address(这里暂时用publicKey取代),还有userA用privateKey Sign之后的信息。其他的user收到该笔Transaction,根据Transaction里面包含的userA的address,通过公钥算法验证该笔Transaction是否就是userA发出的。

  • POW:多个节点都收到一定的Transaction之后,谁来打包?POW算法决定谁来打包,某个user,假设C,C必须根据规则不断生成Hash,直到生成的Hash符合这次打包规则。C把该block信息广播,其他节点验证其POW是否正确,如果是,block加入到chain里。

  • 包含文件:

    • btc/transaction.go
    • consensus/pow.go
Transaction
  • Header:
    • From 从哪个地址发出
    • To 发到哪个地址
    • PayloadHash 对交易内容进行SHA256
    • PayloadLen 交易内容的长度,用于最终解码
    • Timestamp 交易产生时间
    • Nonce 可以理解为不断递增的数字,用于跟交易内容合并,产生HASH,然后匹配是否符合POW
  • Transaction:
    • Header 交易Header
    • Signature 交易发起者使用私钥进行签名
    • Payload 交易内容

你可能感兴趣的:(bitcoinlitelite项目开发记录(2))