ITPub博客

首页 > 区块链 > 区块链 > 区块链去中心化DAPP系统开发技术(成熟技术)

区块链去中心化DAPP系统开发技术(成熟技术)

原创 区块链 作者:Tg_StPv888 时间:2023-04-06 14:35:14 0 删除 编辑

  区块链节点主要分为两种;轻量级节点和完整节点。有多种类型的节点。他们是:


  •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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专业区块项目开发团队:18028578624微電

注册时间:2022-04-13

  • 博文量
    158
  • 访问量
    95686