首页 > 区块链 > 区块链 > 区块链去中心化DAPP系统开发技术(成熟技术)
区块链节点主要分为两种;轻量级节点和完整节点。有多种类型的节点。他们是:
•Light Nodes
•Masternodes
•Pruned Full Nodes
•Archival Full Nodes
•Mining Nodes
•Lightning Nodes
区块链的类型一、哈希是什么
哈希==散列
哈希技术:让数据的存储位置和数据值本身产生某种联系,这种联系用哈希函数来表示,使得每一个关键字都会有一个存储位置
如果数据的关键字和数据的存储位置之间存在一个映射关系,这时如果数据无序且需要查找,则不用一个一个遍历,可以直接使用哈希计算
映射关系==哈希函数:f(关键字)=存储地址
如果我们使用哈希存储数据,则会有一个效果:假设我们需要查找一个值X是否存储(数据无序),只需要将X代入到哈希函数f(x)中计算即可,会得到一个地址Y,这时只需要直接去看一下地址Y里面的值是否是X即可,时间复杂度是O(1)
二、哈希冲突
哈希函数是一个压缩映像函数。关键码集合比哈希表地址集合大得多。因此有可能经过哈希函数的计算,把不同的关键码映射到同一个哈希地址上,这就产生了冲突。
f(x1)=y,f(x2)=y
三、哈希的构造方法:
直接定址法:f(key)=x*key+b;
数字分析法:分析数字,取得关键字
平方取中法:适合于不知道关键字的分布,位数不是很大
折叠法:将大的数据分割为几分,然后再处理,适合于不知道关键字的分布,位数很大
除留余数法:f(key)=key mod p(p<=m);m是存储空间的大小
随机数法:f(key)=randon(key);
四、哈希冲突的方法:
4.1.开发定址:发生冲突,找下一个空的地址,可能占据其他数据的地址
1.1,线性探测法:fi(key)=(f(key)+di)MOD m(di=1,2,3,...,m-1)//从冲突的地方向右探测
1.2,二次探测法:fi(key)=(f(key)+di)MOD m(di=1^2,,-1^2,2^2,-2^2,,...,q^2,-q^2),q<=m/2
//从冲突的地方向左、右两方探测,而且探测的距离越大
1.3,随机探测法:di采用随机函数得到
4.2.再散列函数:实现准备多个散列函数,一旦发生冲突,换下一个散列函数
fi(key)=RHi(key)(RHi表示多个散列函数)
4.3.链地址法:一旦发生冲突,就将数据链在后面(原地解决,续节点)
4.4.公共区域溢出法:把冲突的数据存储到溢出表里面,溢出表按顺序存放,所以查找也得按顺序查找
基础表哈希,溢出表顺序,并且如果在基础表里面找不到(没有冲突),就不需要在溢出表里面找
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016646/viewspace-2944099/ ,如需转载,请注明出处,否则将追究法律责任。