开发者社区> 云水僧> 正文

区块链技术中的哈希指针

简介: 区块链技术中的哈希指针
+关注继续查看

哈希指针:

指针保存的是本地内存的地址,那么只是在本地这台计算机上才有意义,发送到其他计算机上就没有意义了。那么在发布区块的时候哈希指针是怎么能够通过网络进行传输呢?

所谓的哈希指针只是一种形象的说法,实际系统中用的时候只有哈希,没有指针。回顾一下之前看到的block header的数据结构,如图(第1分第39秒)。第25行就是指向前一个区块的哈希,没有指针。block header里只有哈希值,没有指针。

那么怎么才能找到前一个区块的内容呢?全节点一般是把这些区块存储在一个(key,value)数据库里面。key是区块的哈希,value就是区块的内容。一个常用的key value数据库是level DB。所谓的区块链这种链表结构实际上是在level DB里面用哈希值算出来的。只要你掌握了最后一个区块的哈希值,那么你通过level DB的查找,哈希值key对应的value就可以把最后一个区块的内容取出来。然后这个区块块头里面,又有指向前一个区块的哈希值。那么再去查找key和value,可以找到前一个区块的内容,以此类推,一步一步往前找,最终能够把整个区块链都找出来。

所以说在实际系统当中,所谓的哈希指针,只有哈希,没有指针,或者也可以认为哈希值的本身就是指针。

有一些节点没有保存完整的区块链的信息,只保存了最近的几千个区块,如果需要用到前面的区块的信息可以问其他的全节点要。哈希指针的性质保证了整个区块链的内容是不可篡改的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
哈希
在顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(logN),搜索的效率决于搜索过程中元素的比较次数。 理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。
12 0
哈希
我们在判断一个数据是否在给定的整形数据中,结果只有在或者不在这两种状态,那么就可以使用一个二进制比特位来代表数据是否存在的信息,如果二进制比特位为1,代表存在,为0代表不存在。这里我们采用直接定址法的哈希,用一个比特位标识映射值在不在,这就是位图
10 0
【C++】 哈希 (上)
【C++】 哈希 (上)
18 0
区块链技术中的数据结构
比特币中的数据结构
29 0
哈希函数
性质一:in的输入域无穷,比方说可以传入任意长度的字符串。但是在有些工程中也会给输入域规定范围。
51 0
区块链概念1:Hash 算法
区块链概念1:Hash 算法
97 0
「日更刷题」第一周,链表和哈希表(二)
「日更刷题」第一周,链表和哈希表
21 0
「日更刷题」第一周,链表和哈希表(三)
「日更刷题」第一周,链表和哈希表
25 0
「日更刷题」第一周,链表和哈希表(一)
「日更刷题」第一周,链表和哈希表
23 0
+关注
云水僧
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载