07-BTC-挖矿
2022-12-06 01:10
Words count:
5571
北京大学公开课《区块链技术于应用》笔记,由肖臻老师讲授,主要讲解区块链的基本概念和实现原理。
声明:本文是要点笔记,介绍和系列笔记均收录在专题:区块链技术与应用
全节点简介
- 一直在线,
- 在本地硬盘上维护完整的区块链信息,
- 在内存里维护 UTXO 集合,以便快速检验交易的正确性,
- 监听比特币网络上的交易信息,验证每个交易的合法性,
- 决定哪些交易会被打包到区块里,
- 监听别的矿工挖出来的区块,验证其合法性,
- 挖矿
- 决定沿着那条链挖下去?
- 当出现等长的分叉的时候,选择哪一个分叉?
轻节点简介
- 不是一直在线,
- 不用保存整个区块链,只要保存每个区块的块头,
- 不用保存全部交易,只保存与自己相关的交易,
- 无法检验大多数交易的合法性,只能检验与自己相关的那些交易的合法性,
- 无法检测网上发布的区块的正确性,
- 可以验证挖矿的难度,
- 只能检测哪个是最长链,不知道哪个是最长合法链。
比特币网络中大部分节点都是轻节点,如果只是转账而不是挖矿的话,没必要用全节点。挖矿过程中,如果你监听到别人发布了一个区块,该区块是合法的,也是在延长最长合法链。这时候你该怎么办?
应该停止挖矿,然后重新在本地组装一个候选区块,再重新从头开始挖矿。因为如果沿着新发布的交易往下挖的话,那么本地组装的区块中包含的交易就会发生变化,有些交易可能已经被包含到新发布的区块里了。另外 block header 的内容也会发生变化,像 block header 里由交易所组成的 merkle tree 的根哈希值,还有指向前一个区块的哈希指针,这些也都会发生变化。
1
times bought,
0
times reward

Comments