Hyperledger系列供应链金融
- 深夜,别人睡觉,正是差异拉取的时候
- 关于我,有情怀
- 含分布式账本和智能合约。
*** 什么是分布式账本**
- 一个只允许记录或者交易日志追加的系统。
- Blockchain (区块链) 可以用来记录承诺、交易或者简单的我们不想让它消失的条目。
- 在给定网络的所有节点中,它都存在备份,不可能被擦除或者修改。
- (基于共识机制,擦除或者修改,意味着要修改所有节点中至少一半节点的内容,作弊成本非常高,几乎不可能。)
- 交易按照区块链中的顺序处理,处理的结果就是一个分布式账本。
- 智能合约
- 是一段代码或者复杂的程序,它们存储在区块链上,并且在区块链上执行。这个代码会在不同的节点上同时执行。
- 智能合约的运用举例:
- 假设一个农场主,为他的农作物买了保险,如果极端天气的气温超过50度,并且天数超过了100天,那么保险公司要赔偿100万。
- 现在,这样的合约是线下签订,当事情发生的时候,保险公司可能会找各种理由拒绝赔偿。
- 当使用智能合约的时候,极端天气发生后,100万会自动打入农场主的账号,这是代码自动执行的,而且是不可撤回的。
- 区块链不是加密货币
- Cryptocurrency(cryptography + currency的组合),即加密货币,是比特币、以太币这样的。而区块链不等同于这些。加密货币仅仅是基于区块链的一个应用。
- 为什么使用商业区块链
- 全球的商场都有账本,组织和个人一样,都必须相信账本。
- 大多数企业区块链应用都是基于,真实世界的信任关系。它的目标是建立一个生态系统,使更多的可信的合作伙伴加入进来。
- 在一个被限制的网络中,参与者彼此了解,他们很有兴趣参与相同的活动。不需要POW(工作量证明),他们能够解决更即时的问题。
- 商业区块链组件术语
- Consensus Layer,在交易的顺序和正确性上达成共识
- Smart Contract Layer,处理交易请求,并且通过执行商业逻辑代码来判断这个交易是否有效。
- Communication Layer,负责节点间peer to peer的消息传输
- Data Store Abstraction,允许其它的模块使用不同的数据库存储
- Crypto Abstraction,允许不同的加密算法或者模块相互替换,而不影响其它的模块。
- Identity Services,在启动区块链实例的时候,保证建立一个最根本的信任。登录或者注册时候的身份验证,网络操作时候的身份验证。同时,进行对身份的管理,包括删除、增加、更改等。提供身份的验证和授权。
- Policy Services, 系统中各种各样的策略的管理。例如,背书策略、共识策略、分组管理策略。它和其它的模块进行交互,并且是依赖其它的模块来强制执行这些策略。
- APIs,使客户端和程序能够和区块链进行交互。
- Interoperation,支持不同区块链实例间的互操作。
- Hyperledger模块化设计
- Hyperledger像Linux一样,是模块化设计。
-
Hyperledger区块链框架
-
Hyperledger Fabric,作为开发程序,或者解决模块架构问题的基础架构。它允许组件,像共识服务、成员服务是可插拔的。
-
Hyperledger Iroha,一个商业的区块链框架,可以简便的嵌入到需要用到分布式账本技术的项目中。
-
Hyperledger Sawtooth,一个构建、部署、运行分布式账本的平台。它包含一个共识算法,Proof of Elapsed Time (PoET),它的目标是,大量的分布式验证人群,使用更少的资源消耗。
-
Hyperledger Burrow,一个许可的智能合约机制。
-
Hyperledger Indy,提供区块链上数字一致性的工具、库、可重用的组件,这样就可以在管理区域、程序、或者其它的仓库之间进行互操作。
-
使用场景
-
跨国支付,健康信息记录,食物安全供应链,钻石供应链,难民身份ID,真正的房地产交易,音乐媒体产权,绿色能源管理(中国二氧化碳排放量)
Hyperledger Composer
- 是一系列的,用于构建区块链商业网络的协同工具。它帮助商业主更简单、更快的构建,帮助开发者创建智能合约和区块链应用来解决商业问题。它用JavaScript,和更现代化的工具,包括node.js、npm、CLI等。Composer提供的是一个商业抽象,具体可以参考汽车商业的例子。
- 通过使用Hyperledger Composer,一个商人可以和开发者合作,
- 定义在区块链使用场景中的资产
- 定义商业规则,来决定什么样的交易是可以的
- 定义参与者、身份识别和访问权限的控制,存在哪些角色,哪些角色可以执行哪种类型的交易
- 开发者做如下的事情:
- 做出可重用的、商业网络中的核心组件—资产、参与者、交易逻辑和商业网络的访问控制。然后,这个商业网络可以在多个公司之间进行分享。
- 生成JavaScript和REST APIs,以便和程序、遗留系统交互。创建概要程序,并在商业网络上运行分析。
- 开始开发和测试,然后把这个商业网络部署到线上的Hyperledger Fabric或者其它的区块链网络实例上。
- 采用Hyperledger Composer的区块链客户端,有如下的优点:
- 更快的创建区块链程序
- 经过良好的测试、高效的设计,减少风险
- 高度的抽象,更容易迭代,可扩展性高Hyperledger Composer包括下面几个主要组件:
- 商业网络压缩包:抓取商业网络中的核心数据,包括商业模型、交易逻辑、访问控制。商业网络压缩包把这些元素打包起来,并把它们部署运行。
- Composer场地:这个基于网络的工具,允许开发者学习Hyperledger Composer、为商业网络的建模,测试网络并部署到线上环境。Composer场地提供了一个商业网络样例的库,可以据此创建自己的商业网络。
- REST API支持和整合的能力:一个商业网络的LoopBack连接已经被开发好了,它把一个运行的商业网络,作为REST API的方式暴露出来。这样商业网络可以和客户端程序交互,也可以很容易的和非区块链程序整合。