区块链智能合约开发笔记——stateRoot,nonce值,Hyperledger Fabric,联盟链智能合约

版权声明: https://blog.csdn.net/dickdick111/article/details/83474021

问题1:为什么要有stateRoot?

stateRoot指的是状态树根节点的Hash值。每个区块上都包含这样的一个状态结点,方便节点间状态的互相验证,保证在交易的每个区块且每时每刻,所有节点的状态是一致的。

问题2:nonce值有什么用?

交易中的Nonce值指的是from账户发出交易的次数,同一账户的交易会被依次确认。区块中的nonce值是用于挖矿,这是为了证明工作量的无意义的值,这个值将决定挖矿的难度。而交易中的nonce值可以用于确认交易顺序,防止双花,撤销pending中的交易,确定生成的合约地址。

为了防止交易重复进行,以太坊要求每笔交易必须有一个nonce数值。nonce值从0开始递增,每发送一笔交易,nonce便加1。只有当前面nonce值较小的交易处理完成之后才会处理后面nonce值较大的交易。

问题3:Hyperledger Fabric的特点,和Composer的关系?

Hyperledger Fabric是一个模块化的分布式账本解决方案支撑平台,提供高度的保密性、弹性、灵活性与可扩展性。它的目的是支持不同组件的可插入实现,并适应经济系统中存在的复杂性。Hyperledger Fabric提出了一个独特的高弹性且可扩展的体系结构,此结构使Fabric区别于其他区块链解决方案。

Hyperledger Fabric联盟链是chaincode,而Hyperledger Composer是chaincode中的chaincode。Hyperledger Composer是为了抽象出接口,可以和任何区块链网络对联,目前的开发状况基本上是基于Hyperledger Fabric来实现的。Hyperledger Composer 是一组基于 JavaScript 的工具,可简化并加速 Hyperledger Fabric 区块链应用的创建过程。通过使用 Hyperledger Composer,业务所有者和开发人员可以快速创建链码(业务逻辑)和区块链应用。

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

联盟链是指其共识过程受到预选节点控制的区块链,故联盟链可以视为“部分去中心化”。而联盟链智能合约它具有事件驱动,自动执行,价值转移等特点。与中心账本对比,中心账本过于中心化,出错难以追溯,大额交易不可靠。

联盟链智能合约就是基于联盟链设计的计算机程序,它也不是任何人都可以使用的,由联盟链的持有者限定参加合约的用户结点,不需要任何中介结构。中心账本是记录在唯一一个中心的数据记录,具有交易风险以及可信度问题。

猜你喜欢

转载自blog.csdn.net/dickdick111/article/details/83474021