区块链阅读问题解答(stateRoot, nonce, Hyperledger Fabric)

区块链阅读报告

为什么要有stateRoot?

以太坊中的每一个块都包含一个stateRoot,这是一种特殊类型的Merkle树 (Merkle Patricia Tree) 的根哈希。它存储系统的整个状态:所有账户余额,合同存储,合同代码和账户里的nonce。

这样做的目的是只允许给出最后一个块的节点,以及最后一个块实际上是最新块的保证,通过简单的下载,可以非常快速地与区块链“同步”而无需处理任何历史交易从网络中的节点开始的树的其余部分,通过检查所有哈希是否匹配来验证树是否正确,然后从那里继续。

对于轻型客户端,stateRoot更加有利:它们可以通过简单地向网络询问树的特定分支来立即确定任何帐户的确切平衡和状态,而无需遵循比特币的多步骤1-of-N “询问所有交易输出,然后要求所有交易支出这些产出,并采取其余的”轻客户模型。

nonce值有什么用?

Nonce是一个在加密通信只能使用一次的数字。在认证协议中,它往往是一个随机或伪随机数,以避免重放攻击。Nonce也用于流密码以确保安全。如果需要使用相同的密钥加密一个以上的消息,就需要Nonce来确保不同的消息与该密钥加密的密钥流不同。

在以太坊中,为了防止交易重复进行,以太坊要求每笔交易必须有一个nonce数值。nonce值从0开始递增,每发送一笔交易,nonce便加1。

只有当前面nonce值较小的交易处理完成之后才会处理后面nonce值较大的交易。

以太坊处理nonce的规则:

  1. 当nonce小于之前已经有交易使用的nonce值,交易会被拒绝;
  2. 当nonce大于当前应该使用的nonce时,交易会一直处于队列之中进行等待,交易依次执行,直到补齐中间间隔的nonce值,才可以执行。
  3. 当有一笔处于pending状态的交易,新的一笔交易与其拥有相同的nonce值,如果新交易的gas price太小,无法覆盖pending状态的交易,如果新交易的gas price高于原交易的110%,则原交易会被覆盖掉。

Hyperledger Fabric的特点,和Composer的关系?

**Hyperledger Fabric的特点: **

  • 开放性
    • 超级账本是linux基金会2015年底成立的。自成立后吸引了大批企业,包括IBM、accenture、intel、cisco、HITACHI等大企业的加入。现在的Fabric源代码主要由IBM和Digital Asset这两家公司提供。是IBM开源的blockchain项目。
  • 开源
    • Fabric的源代码的开源的,所有开发者或企业机构都可以自由地下载,进行研究,在此基础上结合业务场景,在不同的商业场景上应用落地。
  • SDK支持多语言,减低门槛
    • 目前Fabric SDK支持go、java、js,python四种主流语言,大多数开发者可以快速的上手,降低了开发的门槛和成本。此外,还有一个Hyper ledger Composer工具,可以快速地搭建环境。
  • 可插拔,可扩展
    • Fabric中的CA、数据库、共识算法都是可插拔的。而且,Fabric中的链码是通过docker实现。
  • 基于联盟链的前提,兼顾数据共享和隐私保护
    • Fabric最多的特点是引入了链码和通道的概念。在Fabric中,通过channel,也即通道隔离数据,只有在这个通道的节点才能共享账本,二访问不了其他账本。通过建立不同的通道,可实现按需共享的目的。更符合现实生活的商业场景。

Hyperledger Fabric和Composer的关系:

Hyperledger Fabric是一个私有区块链网络,为事务性企业应用程序提供基础。

Hyperledger Composer是一个加速开发基于Hyperledger Fabric构建的应用程序的框架 。

Composer框架在其自己的隔离运行时中运行,并通过连接配置文件连接到Fabric网络,该配置文件允许部署由Composer框架生成的已定义的业务网络定义**(BND)存档文件(.bna文件)** 。

联盟链智能合约和中心账本的区别?

联盟区块链是指其共识过程受到预选节点控制的区块链;例如,不妨想象一个有15个金融机构组成的共同体,每个机构都运行着一个节点,而且为了使每个区块生效需要获得其中10个机构的确认(2/3确认)。区块链或许允许每个人都可读取,或者只受限于参与者,或走混合型路线,例如区块的根哈希及其API(应用程序接口)对外公开,API可允许外界用来作有限次数的查询和获取区块链状态的信息。这些区块链可视为“部分去中心化”。 其智能合约的记账方式也是介于分布式记账和中心记账之间。

而中心账簿则是完全中心化的记账方式,只由一方(中心机构)实现记账。这种中心化的记账方式,无法保证数据的安全性,也建立不起一个可信的机制,即无法让人信服这个账本数据的真实性。比如银行,企业的财务账本,一旦出现某个人做假账,将会出现什么样的后果,而如果他们的财务数据突然被一把火烧了,产生的灾难可想而知。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值