Blockchain
Blockchain copied to clipboard
记录一些遇到的问题
记录一些学习Fabric时遇到的问题
1.Fabric特性之一是immediate finality, 怎么理解?
当交易发生时,各个节点迅速产生共识并生成立刻产生不可修改的区块(即交易终结) 与之对比的是比特币,需要三个区块确认交易,耗时很长
2.Fabric改造了区块链处理resource exhaustion和performance attacks的方式,什么是资源枯竭?什么是性能攻击? 都是DDos攻击,通过发起大量的交易使得矿工来不及完成交易的打包,从而出现交易拥堵。
3.SMR (State Machine Replication) 状态机副本该怎么理解?为什么区块链是它的一种实现?
区块链中记录每个节点实时信息的快照可以看作一个状态,每个节点都持有一份副本。因此可以看作是一个状态机的副本。
- 交易Transaction 什么时候是确定的(deterministic),什么时候是不确定的(non-deterministic)什么是动态(dynamic)创建交易?
所谓确定性合约就是无论在什么情形下,同样的输入会产生同样的执行结果,非确定性合约则与之相对应,同样的输入在某些情况下会产生不同的结果。智能合约是行运行在区块链上的计算机程序,在任何节点上的计算结果必须是确定不变的,要不然节点之间无法达成共识,因此智能合约的执行结果必须是确定的。要达到这种效果,一种方法是限制合约编程语言不能使用非确定性的结构,另一种方法是通过额外的机制来限定合约的部署和执行。前一种方法对合约编程语言的灵活性限制较大,现在主流平台大都采用第二种方式,例如,以太坊通过EVM虚拟机来提供智能合约的沙箱环境,合约只能在EVM中执行,EVM隔离了文件、网络和其他进程,从而消除了合约执行的不确定性;HyperLedger Fabric的合约是在Docker中执行,并未有效地进行隔离,但它通过一种称为Sieve的机制预先检测和过滤可能导致执行结果不一致的请求,从而保证了执行结果的一致性。
- Accounting for runtime with “gas” in Ethereum,这种基于合约的dos攻击如何理解?
- 什么是可信假设 trust assumptions?
- 执行-排序execute-order(普通区块链使用的范式)和执行-排序-验证execute-order-validation(Fabric使用的范式)有什么区别?
普通的区块链使用执行-排序架构,这个架构简单地说,需要所有的节点运行所有的交易,然后根据结果达成共识后把交易写入区块。 而Fabric的三段式架构有所不同,它只在一部分节点上模拟交易,通过排序节点(VSCC等)对交易进行核实和背书并排序,然后通过满足特定的背书策略来最终验证交易写入区块。 优劣详见IBM Fabric v1.1论文
8.到底什么是gossip....?怎么翻译
9.peer和node到底区别何在?
node是物理上的节点,说node时不分身份,但peer往往指代有身份的节点,比如Fabric v1.1中,node有三种身份,排序节点,负责交易的peer节点和成员管理节点
10.分布式系统中的liveness是什么
- 是不是gossip协议(https://en.wikipedia.org/wiki/Gossip_protocol) 中文翻译成谣言 协议