Open ISheepp opened 3 years ago
去中心化金融
平时业务中用到的结构(是根据key而直接访问在内存储位置的数据结构)
若关键字为,则其值存放在的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系为散列函数,按这个思想建立的表为散列表。
对不同的关键字可能得到同一散列地址,即,而,这种现象称为冲突(英语:Collision)。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数和处理冲突的方法将一组关键字映射到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便称为散列表,这一映射过程称为散列造表或散列,所得的存储位置称散列地址。
若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(Uniform Hash function),这就使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。
可参考Java8中的HashMap处理冲突的办法(扰动函数解决不了冲突,只能让数据尽量均匀)
共识算法可以被定义为一个通过区块链网络达成共识的机制
涉及到加密货币的升级
硬分叉是一种不支持向后兼容的软件升级方式。通常,这些情况发生在节点以与旧节点的规则冲突的方式添加新规则时。新节点只能与运行新版本的软件节点进行交互。结果,区块链发生了分裂,生产出两个单独的网络:一个按照旧规则运行,一个则按照新规则运行。
软分叉相当于fork代码,创建新分支、单独产生一个新的项目。
软分叉是支持向后兼容的软件升级方式,升级后的节点仍可以与未升级的节点进行交互。软分叉的升级方式通常是向程序中新添加了一条规则,该规则也不会与之前的旧规则发生冲突。
只要叛徒的数量不超过将军的三分之一,就是拜占庭容错
The Byzantine Generals Problem
问题的本质是:在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。
其实可以和分布式系统中的CAP理论一起分析。
通常分区容错无法避免,而一致性和可用性无法同时做到(可能通信失败,即可能发生分区容错)。
"在什么场合,可用性高于一致性?"
举例来说,发布一张网页到 CDN,多个服务器有这张网页的副本。后来发现一个错误,需要更新网页,这时只能每个服务器都更新一遍。
一般来说,网页的更新不是特别强调一致性。短时期内,一些用户拿到老版本,另一些用户拿到新版本,问题不会特别大。当然,所有人最终都会看到新版本。所以,这个场合就是可用性高于一致性。
对于涉及钱财的,必须要保证一致性
当每个节点开始广播交易信息,即在保持一致性(共识)。当出现恶意节点时,就需要一个安全的共识协议,它必须是容错的。
由于将军的信使无法传达信息的可能性总是大于0,所以将军们永远无法以100%的自信达成共识。
1993年就开始使用,主要用于防止服务攻击和滥用(例如垃圾邮件)。
说简单点就是做题,当有人做出,就会广播答案,其余节点就会验证答案是否正确。
缺点:浪费资源
又叫股权机制。
主链确认下一个区块的方式为利用一种伪随机的方式,因素还包括节点存在的时间,随机性和节点的资产状况。
如果你想要参与到“锻造”过程当中,那么你就得在该网络中锁仓一定数量的数字货币作为股权。股权的大小决定了你被选为下一个区块节点的概率 -- 股权越大,概率越大。为了防止该网络中只存在资产量大的人,节点的选举过程中被加入了很多特殊的方式,最常见的两种是“随机区块选举”和“币龄选举”
Web3.0 底层公链:Eth,Dot,Icp,Vsys; Web3.0 数据存储:Ar,Fil,Cru,vsys, Meson(未发币)、Stratos、Theta、Storj(我在使用的FreeOss); Web3.0 广告:Bat; Web3.0 社交:Mask,Rss3(未发币),Mirror(未发币); Web3.0 应用:Link,Grt,Mask,Bat,Band,Gnt,Lpt; Web3.0 论坛:Bbs(未发币); Web3.0 军火库:Gtc,Rad; Web3.0 云计算与通信:Ankr,Icp,Rlc,Mask,Pha,Cqt; Web3.0 身份索引:Lit,Icx,Bright,Sjsnb; Web3.0 隐私与匿名:Nu,Keep,Pha; Web3.0 交易:Uni,Dydx,Vega,Sushi,1Inch,Snx Web3.0 组织Dao:GTC,Ygg,Fwb,Bit,Gno,Dora
此issue将作为了解区块链的笔记