A. Quorum介绍
Quorum和以太坊的主要区别:
Quorum 的主要组件:
1,用其自己实现的基于投票机制的共识方式 来代替原来的 “Proof of work” 。
2,在原来无限制的P2P传输方式上增加了权限功能。使得P2P传输只能在互相允许的节点间传输。
3, 修改区块校验逻辑使其能支持 private transaction。
4, Transaction 生成时支持 transaction 内容的替换。这个调整是为了能支持联盟中的私有交易。
Constellation 模块的主要职责是支持 private transaction。Constellation 由两部分组成:Transaction Manager 和 Enclave。Transaction Manager 用来管理和传递私有消息,Enclave 用来对私有消息的加解密。
在私有交易中,Transaction Manager 会存储私有交易的内容,并且会将这条私有交易内容与其他相关的 Transaction Manager 进行交互。同时它也会利用 Enclave 来加密或解密其收到的私有交易。
为了能更有效率的处理消息的加密与解密,Quorum 将这个功能单独拉出并命名为 Enclave 模块。Enclave 和 Transaction Manager 是一对一的关系。
在 Quorum 中有两种交易类型,”Public Transaction” 和 “Privat Transaction”。在实际的交易中,这两种类型都采用了以太坊的 Transaction 模型,但是又做了部分修改。Quorum 在原有的以太坊 tx 模型基础上添加了一个新的 “privateFor” 字段。同时,针对一个 tx 类型的对象添加了一个新的方法 “IsPrivate”。用 “IsPrivate” 方法来判断 Transaction是 public 还是 private,用 “privateFor” 来记录 事务只有谁能查看。
Public Transaction 的机理和以太坊一致。Transaction中的交易内容能被链上的所有人访问到。
Private Transaction 虽然被叫做 “Private”,但是在全网上也会出现与其相关的交易。只不过交易的明细只有与此交易有关系的成员才能访问到。在全网上看到的交易内容是一段hash值,当你是交易的相关人员时,你就能利用这个hash值,然后通过 Transaction Manager 和 Enclave 来获得这笔交易的正确内容。
Public Transaction的处理流程和以太坊的Transaction流程一致。Transaction 广播全网后,被矿工打包到区块中。节点收到区块并校验区块中的 事务 信息。然后根据 Transaction信息更新本地的区块
Private Transaction也会将 Transaction 广播至全网。但是它的 Transaction payload已经从原来的真实内容替换为一个hash值。这个hash值是由Transaction Manager提供的。
有两个共识机制:QuorumChain Consensus 和 Raft-Based Consensus。
在 Quorum 1.2 之前的 Release 版本都采用了 QuorumChain。
从 2.0 版本开始,Quorum 废弃了 QuorumChain 转而只支持 Raft-based Consensus。
QuorumChain Consensus 是一个基于投票的共识算法。其主要特点有:
相比较以太坊的POW,Raft-based 提供了更快更高效的区块生成方式。相比 QuorumChain,Raft-based 不会产生空的区块,而且在区块的生成上比前者更有效率。
要想了解Raft-based Consensus,必须先了解Raft算法
Raft算法
Raft是一种一致性算法,是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程。这就意味着只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。
Raft的工作模式:
raft的工作模式是一个Leader和多个Follower模式,即我们通常说的领导者-追随者模式。除了这两种身份,还有Candidate身份。下面是身份的转化示意图
1,leader的选举过程
raft初始状态时所有server都处于Follower状态,并且随机睡眠一段时间,这个时间在0~1000ms之间。最先醒来的server A进入Candidate状态,Candidate状态的server A有权利发起投票,向其它所有server发出投票请求,请求其它server给它投票成为Leader。
2,Leader产生数据并同步给Follower
Leader产生数据,并向其它Follower节点发送数据添加请求。其它Follower收到数据添加请求后,判断该append请求满足接收条件(接收条件在后面安全保证问题3给出),如果满足条件就将其添加到本地,并给Leader发送添加成功的response。Leader在收到大多数Follower添加成功的response后。提交后的log日志就意味着已经被raft系统接受,并能应用到状态机中了。
Leader具有绝对的数据产生权利,其它Follower上存在数据不全或者与Leader数据不一致的情况时,一切都以Leader上的数据为主,最终所有server上的日志都会复制成与Leader一致的状态。
Raft的动态演示: http://thesecretlivesofdata.com/raft/
安全性保证,对于异常情况下Raft如何处理:
1,Leader选举过程中,如果有两个FollowerA和B同时醒来并发出投票请求怎么办?
在一次选举过程中,一个Follower只能投一票,这就保证了FollowerA和B不可能同时得到大多数(一半以上)的投票。如果A或者B中其一幸运地得到了大多数投票,就能顺利地成为Leader,Raft系统正常运行下去。但是A和B可能刚好都得到一半的投票,两者都成为不了Leader。这时A和B继续保持Candidate状态,并且随机睡眠一段时间,等待进入到下一个选举周期。由于所有Follower都是随机选择睡眠时间,所以连续出现多个server竞选的概率很低。
2,Leader挂了后,如何选举出新的Leader?
Leader在正常运行时候,会周期性的向Follower节点发送数据的同步请求,同时也是起到一个心跳作用。Follower节点如果在一段时间之内(一般是2000ms左右)没有收到数据同步请求,则认为Leader已经死了,于是进入到Candidate状态,开始发起投票竞选新的Leader,每个新的Leader产生后就是一个新的任期,每个任期都对应一个唯一的任期号term。这个term是单调递增的,用来唯一标识一个Leader的任期。投票开始时,Candidate将自己的term加1,并在投票请求中带上term;Follower只会接受任期号term比自己大的request_vote请求,并为之投票。 这条规则保证了只有最新的Candidate才有可能成为Leader。
3,Follower的数据的生效时间
Follower在收到一条添加数据请求后,是否立即保存并将其应用到状态机中去?如果不是立即应用,那么由什么来决定该条日志生效的时间?
首先会检查这条数据同步请求的来源信息是否与本地保存的leader信息符合,包括leaderId和任期号term。检查合法后就将日志保存到本地中,并给Leader回复添加log成功,但是不会立即将其应用到本地状态机。Leader收到大部分Follower添加log成功的回复后,就正式将这条日志commit提交。Leader在随后发出的心跳append_entires中会带上已经提交日志索引。Follower收到Leader发出的心跳append_entries后,就可以确认刚才的log已经被commit(提交)了,这个时候Follower才会把日志应用到本地状态机。下表即是append_entries请求的内容,其中leaderCommit即是Leader已经确认提交的最大日志索引。Follower在收到Leader发出的append_entries后即可以通过leaderCommit字段决定哪些日志可以应用到状态机。
4,向raft系统中添加新机器时,由于配置信息不可能在各个系统上同时达到同步状态,总会有某些server先得到新机器的信息,有些server后得到新机器的信息。比如在raft系统中有三个server,在某个时间段中新增加了server4和server5这两台机器。只有server3率先感知到了这两台机器的添加。这个时候如果进行选举,就有可能出现两个Leader选举成功。因为server3认为有3台server给它投了票,它就是Leader,而server1认为只要有2台server给它投票就是Leader了。raft怎么解决这个问题呢?
产生这个问题的根本原因是,raft系统中有一部分机器使用了旧的配置,如server1和server2,有一部分使用新的配置,如server3。解决这个问题的方法是添加一个中间配置(Cold, Cnew),这个中间配置的内容是旧的配置表Cold和新的配置Cnew。这个时候server3收到添加机器的消息后,不是直接使用新的配置Cnew,而是使用(Cold, Cnew)来做决策。比如说server3在竞选Leader的时候,不仅需要得到Cold中的大部分投票,还要得到Cnew中的大部分投票才能成为Leader。这样就保证了server1和server2在使用Cold配置的情况下,还是只可能产生一个Leader。当所有server都获得了添加机器的消息后,再统一切换到Cnew。raft实现中,将Cold,(Cold,Cnew)以及Cnew都当成一条普通的日志。配置更改信息发送Leader后,由Leader先添加一条 (Cold, Cnew)日志,并同步给其它Follower。当这条日志(Cold, Cnew)提交后,再添加一条Cnew日志同步给其它Follower,通过Cnew日志将所有Follower的配置切换到最新。
Raft算法和以太坊结合
所以为了连接以太坊节点和 Raft 共识,Quorum 采用了网络节点和 Raft 节点一对一的方式来实现 Raft-based 共识
一个Transaction完整流程
1,客户端发起一笔 Transaction并通过 RPC 来呼叫节点。
2,节点通过以太坊的 P2P 协议将节点广播给网络。
3,当前的 Raft leader 对应的以太坊节点收到了 Transaction后将它打包成区块。
区块被 编码后传递给对应的 Raft leader。
leader 收到区块后通过 Raft 算法将区块传递给 follower。这包括如下步骤:
3.1,leader 发送 AppendEntries 指令给 follower。
3.2,follower 收到这个包含区块信息的指令后,返回确认回执给 leader。
3.3,leader 收到不少于指定数量的确认回执后,发送确认 append 的指令给 follower。
3.4,follower 收到确认 append 的指令后将区块信息记录到本地的 Raft log 上。
3.5,Raft 节点将区块传递给对应的 Quorum 节点。Quorum 节点校验区块的合法性,如果合法则记录到本地链上。
参考链接: http://blog.csdn.net/about_blockchain/article/details/78684901
B. “空气币”真相是什么
空气币就是完全没有任何信用背书和实物依托的所谓的应用区块链技术研发的”数字货币”其本质并非是真正的数字货币,其特点为表面上高收益,实则风险极大,币的涨跌完全由发行方掌控。
主要靠包装一个区块链无所不能的好概念,来忽悠外行众筹投资。投机色彩特别明显。但是受益于市场红利,这些币都有5倍以上的升值。不过仅仅几个月过后,这些泡沫浓厚的空气币,就漏出了诈骗的马脚,被媒体报道曝光,这些公司成为了监管治理的重灾区。
空气币的特质:
1、用创始人的背景和已经有的其他荣誉为项目代言。
2、不重技术,重营销,将宣传放在第一位。
3、白皮书无任何技术说明,全部由项目计划组成,无实质性的技术路线图。
4、后期多数以交易所上市为主要目的,把币价作为衡量项目的唯一标准。
5、币价的暴涨并不是由于技术某一难点攻克或者项目进展,而是通过某些营销手段来拉伸。
此回答由康波财经提供,康波财经专注于财经热点事件解读、财经知识科普,奉守专业、追求有趣,做百姓看得懂的财经内容,用生动多样的方式传递财经价值。希望这个回答对您有帮助。
C. 虚拟货币、数字货币、加密货币、代币、通证有什么区别
一、定义不同:
1.虚拟货币:
虚拟货币为指非真实的货币。
2.数字货币:
数字货币为电子货币形式的替代货币。数字金币和密码货币都属于数字货币(DIGICCY)。
3.加密货币:
加密货币为一种使用密码学原理来确保交易安全及控制交易单位创造的交易媒介。
4.代币(通证):
一种形状及尺寸类似货币,但限制使用范围、不具通货效力的物品,其通证则为代币英文Token的谐音。
二、特点不同:
1.虚拟货币:
虚拟货币不是一般等价物,而是价值相对性的表现形式,或者说是表现符号;也可以说,虚拟货币是个性化货币。在另一种说法中,也可称为信息货币。
2.数字货币:
是一种不受管制的、数字化的货币,通常由开发者发行和管理,被特定虚拟社区的成员所接受和使用。
3.加密货币:
加密货币基于去中心化的共识机制 ,与依赖中心化监管体系的银行金融系统相对。
4.代币(通证):
通常需要以金钱换取,用在商店、游乐场、大众运输工具等地方,做为凭证以使用服务、换取物品等。
(3)基于以太坊实现代币发布csdn博客扩展阅读
现阶段数字货币更像一种投资产品,因为缺乏强有力的担保机构维护其价格的稳定,其作为价值尺度的作用还未显现,无法充当支付手段。数字货币作为投资产品,其发展离不开交易平台、运营公司和投资。
数字货币是一把双刃剑,一方面,其所依托的区块链技术实现了去中心化,可以用于数字货币以外的其他领域,这也是比特币受到热捧的原因之一;另一方面,如果数字货币被作为一种货币受到公众的广泛使用,则会对货币政策有效性、金融基础设施、金融市场、金融稳定等方面产生巨大影响。