Hyperledger_Fabric_Model
Hyperledger_Fabric_Model
本部分描述了Hyperledger Fabric的主要设计特点
- Assets: 资产定义使得任何东西都可以通过货币值在网络中交易,从食物到老爷车再到期货。
- Chaincode: 由以下几部分构成的执行部分,包括交易排序,限制信任等级,验证节点类型以及优化网络性能。
- Ledger Features: 不可更改的、共享的账本编码了整个交易历史(for each channel),包含了类似于SQL语句的查询命用于高效审计和解决纠纷。
- Privacy through Channels: 可以使具有高度隐私和机密性的多边交易成为竞争企业和受监管行业在公共网络上交换资产所必需的。
- Security & Membership Services: Permissioned membership 提供了一个可信任的区块链网络,它的参与者知道所有的交易都可以被检测到兵器被管理者追踪。
- Consensus: 一个统一的方法用来建立共识,实现了企业级网络所需要的灵活性与可扩展性。
Assets(资产)
资产可以是任何有型的无形的资产,Hyperledger Fabric提供了通过chaincode来修改资产的能力。
资产在Hyperledger Fabric中表现为一个键值对的集合,状态的改变会记录在一个channel的ledger上。资产可以以二进制或者是JSON格式。
在Hyperledger Fabric中,你可以通过Hyperledger Composer工具很容易的定义并使用资产。
Chaincode
Chaincode是通过软件定义资产,以及资产修改的指令。或者说,chaincode是商业逻辑。chaincode执行读取或者更改键值对的规则。Chaincode函数根据账本的当前状态来执行。如果chaincode的执行结果是更改键值对,那么这个操作会传播到网内的所有节点。
Ledger Features
ledger是顺序的、难以破坏的记录,其记录了整个fabric上所有状态变化。状态变化是chain code的执行结果。每个交易都会导致一系列键值对创建、修改或是删除。
ledger是用区块链来用来存储不变的、顺序记录的交易信息,除此之外还有一个状态数据库用来表示当前的fabric状态。每个channel都有一个ledger。每个peer都包含了他所属那个channel的ledger的整个拷贝。
privacy through channels
HyperLedger Fabric在每一个channel上都实现了一个不可变更的账本,chaincode可以管理修改资产的当前状态。一个账本存在于一个channel的作用域内,可以在网络间所有节点内共享(这时所有节点都使用这个channel),也可以只在部分节点中共享。
在后一种情况下,共享账本的节点会创建一个独立的channel以以在相互之间共享账本。为了解决在完全透明的账本和部分可见的账本之间的通讯问题,chaincode可以只在需要访问资产状态的节点上实现。换句话说就是,如果节点上没有安装chaincode,那么该节点就不能正确访问资产。
Security & Membership Services
Hyperledger Fabric实现的区块链网络中,所有节点都有一个唯一的ID,Public Key Infrastructure 用来产生加密证书,这些证书绑定到组织、网络参与者、用户或者客户端应用上。数据访问控制可以在整个网络,在channel级别进行管理。
Consensus 共识
在分布式分类帐技术中,共识最近已经成为特定算法的同义词,在一个单一的函数内。共识已经不仅仅是简单地同意交易的顺序,从提案和背书,到订购、验证和承诺,都突出显示在超级分类账上。简而言之,共识被定义为对包含块的一组事务的正确性进行全面的验证。
endorsement: 背书,是转让汇票权利的一种法定手续,就是由汇票持有人在汇票背面签上自己的名字,或再加上受让人的名字,并把汇票交给受让人的行为。
当块事务的顺序和结果满足显式策略标准检查时,最终会达成一致。这些检查和平衡在事务的生命周期中都会发生,包括使用背书策略来规定哪些特定成员必须认可某个事务类,以及系统链码以确保这些策略得到执行和维护。在确认之前,节点将使用这些chaincode,以确保有足够的背书存在,并且这些背书来自适当的实体。此外,在将包含交易的任何块附加到分类账之前,将进行版本检查,在此期间,对分类账的当前状态达成一致或同意。这个最后的检查提供了对重复开销操作和其他可能危及数据完整性的威胁的保护,并允许对非静态变量执行函数。
除了进行大量的背书、有效性和版本控制检查之外,还有在事务流的各个方向上正在进行的身份验证。访问控制列表在网络的层次层上实现(从服务到通道),并且有效负载在通过不同体系结构组件的事务提案时被反复签名、验证和验证。综上所述,共识不仅限于达成一致的一批交易的顺序,而是作为交易从提案到承诺的过程中正在进行的验证的副产品实现的总体特征。
Hyperledger_Fabric_Model的更多相关文章
随机推荐
- 小程序发微信红包后端Nodejs实现
前提条件 1.有一个微信开放平台 https://open.weixin.qq.com/ 2.有一个微信公众平台 https://mp.weixin.qq.com 并且开通微信支付 3.有一个微信小 ...
- DG不同步,MRP0进程打不开
问题描述:主库备库之前正常连接,但是昨天磁盘空间满了之后,由于不知什么原因将备库重做日志删了,今天早上发现DG不同步的报警. 当时思路如下:1.通过select thread#,low_sequenc ...
- ThinkPHP微信扫码支付接口
最近折腾微信扫码支付,看了微信官方文档,找了很多网页,发现和文档/demo不匹配,现在自己算是弄出来了(文件名称有所更改),贴出来分享一下 一.将有用的官方lib文件和使用的相关文件放置到vendor ...
- 【PTA 天梯赛】L3-003 社交集群(并查集)
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个“社交集群”是指部分兴趣爱好相同的人的集合.你需要找出所有的社交集群. 输入格式: 输入在第一行 ...
- MySQL高级函数case的使用技巧----与sum结合实现分段统计
case 函数 CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionN THEN resu ...
- MySQL----MySQL数据库入门----第二章 数据库和表的基本操作
2.1 数据库和数据库表的创建 ①数据库的创建(在数据库系统中划分一块存储数据的空间): create database 数据库名称 [charset 字符集]: ②数据库表的创建 use 数据库名 ...
- 利用RTTI实现Delphi的多播事件代理研究
我们知道Delphi的每个对象可以包含多个Property,Property中可以是方法,例如TButton.OnClick属性.Delphi提供的仅仅是 一对一的设置,无法直接让TButton.On ...
- 20155333 2016-2017-2 《Java程序设计》第4周学习总结
20155333 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承基本上就是避免多个类间重复定义的共同行为,在Java中,子类只能继承一个父类. priv ...
- 20155336 《Java程序设计》实验二 (Java面向对象程序设计)实验报告
20155336 <Java程序设计>实验二 (Java面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...
- Python中的对象引用、浅拷贝与深拷贝
最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...