12-BTC-思考
2022-12-07 00:09
Words count:
2890
北京大学公开课《区块链技术于应用》笔记,由肖臻老师讲授,主要讲解区块链的基本概念和实现原理。
哈希指针
指针保存的是本地内存的地址,那么只是在本地这台计算机上才有意义,发送到其他计算机上就没有意义了。那么在发布区块的时候哈希指针是怎么能够通过网络进行传输呢?
所谓的哈希指针只是一种形象的说法,实际系统中用的时候只有哈希,没有指针。回顾一下之前看到的 block header 的数据结构,如下图所示。第 25 行就是指向前一个区块的哈希,没有指针。block header 里只有哈希值,没有指针。
那么怎么才能找到前一个区块的内容呢?全节点一般是把这些区块存储在一个(key,value)数据库里面。key 是区块的哈希,value 就是区块的内容。一个常用的(key,value)数据库是 levelDB。所谓的区块链这种链表结构,实际上是在 level DB 里面用哈希值算出来的。只要你掌握了最后一个区块的哈希值,那么你通过 levelDB 的查找,哈希值 key 对应的 value 就可以把最后一个区块的内容取出来。然后这个区块块头里面,又有指向前一个区块的哈希值。那么再去查找 key 和 value,可以找到前一个区块的内容,以此类推,一步一步往前找,最终能够把整个区块链都找出来。
0
times bought
•
0
times reward