美文网首页区块链技术 blockchain
bitcoinlitelite项目开发记录(2)

bitcoinlitelite项目开发记录(2)

作者: 糖酱桑 | 来源:发表于2017-05-04 14:01 被阅读43次

    该项目目标是实现一个最小的可运行版本的类似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)

        本文链接:https://www.haomeiwen.com/subject/tdnrtxtx.html