楼主: Dear_Li
1488 0

[区块链] 如何十分钟搭建你的区块链概念验证环境? [推广有奖]

  • 0关注
  • 14粉丝

等待验证会员

已卖:405份资源

博士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
699 个
通用积分
7.9246
学术水平
12 点
热心指数
16 点
信用等级
2 点
经验
4905 点
帖子
186
精华
0
在线时间
246 小时
注册时间
2018-7-21
最后登录
2019-1-16

楼主
Dear_Li 发表于 2018-8-4 15:59:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

很多人是通过比特币等密码学货币体系首次接触到区块链这一概念的。然而区块链(比特币体系背后所用的分布账技术)已经被越来越多的企业所接受,并用在数字化货币体系之外的不同领域。

企业对区块链的需求与公众有很大不同:参与者的身份必须是已知的,私链(Permissioned blockchain)无需“工作证明”,同时私链的适用范围也有所不同。企业区块链应用可通过业务网络内共享的资产、参与者,以及事务来定义。通过将这些组件结合在一起,即可打造一种分布式处理系统,也叫做设施(Fabric),借此对区块链应用的运行进行管控。

智能合约(用于实现事务的业务规则汇编后的产物)实际上是一种存储的过程调用(Procedure call),可在网络中多个节点上运行,运行后输出的结果通过合意(Consensus)过程被所有网络成员认可。

目前最大的挑战在于,如何将区块链解决方案中的资产、参与者以及事务与此类区块链处理系统的现有技术进行映射。Linux 基金会托管的 Hyperledger 项目提供的 Hyperledger Composer 致力于解决这样的问题。

为了展示 Hyperledger Composer 的使用,我们会用它创建一个基于区块链的汽车拍卖解决方案。

很多人是通过比特币等密码学货币体系首次接触到区块链这一概念的,这种点对点支付体系很大程度上不受法规约束,抵制单点控制机制。然而近年来,区块链(比特币体系背后所用的分布账技术)已经被越来越多的企业所接受,并用在数字化货币体系之外的不同领域。本文将介绍企业在业务中使用区块链技术的目的,以及 Linux 基金会 Hyperledger Composer 如何帮助应用开发者轻松打造适用于企业的区块链解决方案。


区块链技术在企业领域的飞速增长

比特币是区块链技术的第一个主流应用方式,最早在 2008 年由中本聪(Satoshi Nakamoto)提出。随后区块链技术的应用快速增长,而“区块链”这个词甚至被用于称呼所有分布账应用程序,那么本文也就沿用相同的称呼了。

区块链应用大受欢迎,公众(通常为匿名)网络和私有(企业)网络均有广泛应用。虽然这两种模式均可提供很大的价值,但企业区块链技术的需求与公众用途有很大不同,原因主要有三点:

  • 企业通常需要在受管控的环境中运营,而诸如反洗钱(AML)以及了解客户(KYC)等制度要求企业必须对与自己进行交易的参与者身份有着充分了解。比特币是全匿名(确切来说,是基于假名 [Pseudonymity])的,虽然可以看到事务的具体情况,但几乎不可能确定对方身份。而企业需求通常与之截然相反:需要隐私,用户需要知道网络中参与者的身份并且可以信任对方,但并非必须了解所完成的具体事务。
  • 在假名区块链中,必须防止不可信任的参与者破坏网络。目前,比特币以及其他主流的公用区块链体系通常会使用一种名为“工作证明(Proof of Work)”的概念大幅增加进行欺诈行为的难度,但这会增加事务的处理成本,最明显的体现就是电力的消耗。事务验证程序(Transaction validator)会通过计算非常困难的密码学运算,并将计算后的答案告知整个网络,借此证明自己是真实可信的,这种方式很好地解决了信任问题,但会导致处理能力的使用效率大幅降低。私链并不需要这样做,因为参与者都是已知并且可信的。如果事务最终被证明无效,业务网络中的参与者会声誉受损甚至面临经济损失。
  • 私链的应用范围也有所不同。诸如比特币等公链最初的设计主要围绕点对点支付,但企业的“账本”需要能用于描述任何有价值的东西。通常业务网络的规模也更小,是一种封闭的系统(例如可以类比供应链网络)。这一点与非企业用途的区块链大为不同,非企业用途的区块链通常可被任何有计算机的人所访问。

仔细看看目前业务网络的运转方式就可以了解这些需求。通过商品和服务创造的财富在业务网络内流动,这些商品和服务的转移会以一系列事务(交易)的方式记录在账本中。账本是一种极为有用的记录系统,其中描述了业务的所有投入和产出,以及因此产生的财务状况。自从 15 世纪甚至更早以前,就已经出现了各种形式的账本。

企业区块链技术意在为业务中的这些基本原则建立模型。目前,账本由企业自己所拥有,业务规则决定了商品和服务在网络中的流动。在企业区块链技术的帮助下,账本和业务规则都可以在业务网络内共享,借此可降低开展业务过程中遇到的摩擦(以及相应的成本)。


资产、参与者,以及事务

企业区块链应用可以通过在业务网络内共享的资产、参与者,以及事务来描述:

  • 资产代表任何有价值,可以共享或交易的东西:从汽车、房屋、钻石等有形资产,到有价证券、知识产权,甚至参考数据等无形资产,均可代表。现金本身也是一种资产。
  • 参与者则是指需要在业务网络内共享事务信息的人员。参与者通常是指企业,但也可以包括普通人、监管人员,或其他利益相关者。
  • 事务可用于描述在业务网络内传递的过程中,可针对资产执行的具体操作。

通过将这些组件结合在一起,即可打造一种分布式处理系统,也叫做设施(Fabric),借此对区块链应用的运行进行管控。智能合约(用于实现事务的业务规则汇编后的产物)实际上是一种存储的过程调用,可在网络中多个节点上运行,运行后输出的结果通过合意过程被所有网络成员认可。

目前最大的挑战在于,如何将区块链解决方案中的资产、参与者以及事务与此类区块链处理系统的现实技术进行映射。区块链应用的实现需要极高成本,因为需要通过大量工作实现用于定义业务目标的逻辑,同时需要让智能合约能够顺利使用区块链所提供的服务。


Hyperledger Composer

Linux 基金会托管的 Hyperledger 项目所提供的 Hyperledger Composer 致力于解决这样的问题,借此区块链开发者可以轻松地对业务资产、参与者以及事务建模,将这些模型变成可行的区块链应用。Hyperledger 项目始于 2015 年 12 月,包含了一系列适用于企业,先进的跨行业开源区块链技术。这是 Linux 基金会有史以来发展速度最快的项目,而 Hyperledger“联盟”目前已包含多种技术,如 Hyperledger Fabric 和 Hyperledger Sawtooth 等区块链框架,以及提供监视、身份、开发和部署等服务的工具。Hyperledger Composer 正是其中的一种工具。

与所有 Hyperledger 产品类似,Hyperledger Composer 完全开源,并使用了一种开放的治理模式,任何人都可以为其做贡献或决定未来的发展方向。

Hyperledger Composer 为资产、参与者,以及事务的建模提供了一种面向特定领域,非常简单的建模语言,开发者可以通过 JavaScript 编写实现事务逻辑的方法。开发者可以在自己惯用的任何开发环境中编写这些文件(针对大部分编辑器提供了必要的插件),并可在一种基于 Web 的“试验场(Playground)”帮助下开发、打包、部署并测试这些项目,同时还为脚本环境提供了所需的命令行工具。应用程序可部署至 Hyperledger Fabric 实例,或在 Web 浏览器中进行本地模拟。

Hyperledger Composer 还可针对不同资产生成骨架(Skeleton)命令行或 Angular2 应用,对 Loopback 的支持使得我们可以通过 RESTful 与应用交互,这样区块链即可连接至现有记录系统,例如可使用集成中间件,如 Node.RED 或 IBM Integration Bus 进行连接。


设计基于区块链的汽车拍卖解决方案

为了展示 Hyperledger Composer 的运用,我们将使用该技术创建一个基于区块链的汽车拍卖解决方案。这是一种很棒的区块链应用,因为已经具备妥善定义的业务网络,适用于高价值资产,因此对信任的要求更高,必须明确知道 (a) 不同时间里车的所有者是谁,以及 (b) 不同参与者的现金收支情况。从中也可以清楚地知道这样的应用如何能轻松扩展并运用在其他高价值资产领域。

首先考虑组成这个业务网络的资产、参与者,以及事务:

  • 资产:需要考虑两类资产:机动车,对实体车辆的数字化呈现,可对其所有权进行追踪;以及机动车清单,描述了某辆车正在(或已经)销售,以及这一过程中的不同出价。
  • 参与者:包括代表机动车所有者或购买者,并且有足够货币结余的人或组织成员。此外可能会有一个可以关闭任何商品竞拍的拍卖商。整个网络还可进一步扩展,将保险公司或监管机构包含在内。
  • 事务:两种最重要的事务类型:为机动车出价的事务,以及关闭竞拍的事务。

图 1 – 汽车拍卖应用中的资产、参与者和事务


上述内容定义了组成该区块链解决方案不同组件所需的类型(Type)。为了测试我们的区块链解决方案,我们会创建这些类型的实例,并将其存储在注册机构(Registry)内,注册机构是 Hyperledger Composer 中另一个重要概念。我们将向机动车、机动车清单、成员,以及拍卖商等注册机构中填入数据,并可提交上文提到的两类事务。所有实例和事务数据均将通过区块链存储和访问,这样便可被网络中的参与者共享和信任。解决方案的开发者可以通过访问控制列表决定哪些参与者可以看到哪些资产。


为区块链汽车拍卖解决方案建模

Hyperledger Composer 的所有组件均可下载并本地运行,此外还有一个在线版本的“试验场”,无需安装任何软件即可使用。如果希望从本地副本着手尝试,可参阅 Hyperledger Composer 文档页提供的快速上手指导;如果希望使用在线试验场,可直接访问 Hyperledger Composer Playground 页面。

首次启动试验场并关掉欢迎界面后,会看到类似下图所示的界面(与其他正在活跃开发的项目一样,这个界面后续可能有所改动)。


页面左侧显示了组成区块链项目的所有文件:

  • 一个 About 文件 – Markdown 格式的说明文件,试验场默认将显示该文件的内容。
  • 一个 Model 文件 – 定义了项目中涉及的资产、参与者,以及事务。
  • 一个 Script 文件 – 以 JavaScript 实现的事务逻辑。
  • 一个 Access Control List – 决定了哪些参与者可以看到哪些资产。
  • 一个 Add 按钮 – 必要时可向项目中添加额外的文件。
  • 一个 Deploy 按钮 – 可将对项目文件的改动应用给当前已连接的区块链实例或模拟器。
  • Import 功能可将试验场的内容替换为指定的其他内容。
  • Export 功能可将整个解决方案打包为一个文件,并转移到其他环境中使用。
  • 界面右侧的主区域显示了所选文件的编辑器或查看器。此外页面顶部的 Define/Test 选项卡可供我们在开发或测试模式之间切换。最后,页面右上角可供我们(在本地版本中)模拟另一个区块链用户的身份,连接至自己的线上区块链实例,或开始在 Web 浏览器中模拟。在线版试验场目前仅支持模拟器模式。

首先我们需要将试验场窗口中的文件替换为汽车拍卖应用所需的文件。此处打算使用预创建的范例。如果要开发自己的网络,通常最好导入范例模板,以此为基础着手进行。

点击“Import/Replace”按钮。首先需要通过 GitHub 进行身份验证,随后将直接通过在线代码库下载可用的范例。如果愿意,也欢迎大家贡献自己设计的网络。随后选择“carauction-network”并点击 Deploy,这样即可用 Car Auction 项目的文件替换试验场中的默认文件。

选中 Model 文件(model/org.acme.vehicle.auction.cto)可查看有关资产、参与者,以及事务的定义。同理,Script 文件(lib/logic.js)包含了两个事务类型的 JavaScript 实现。

重要的是,只需要 50 行简单的特定领域语言代码以及 100 行 JavaScript,我们就可以定义实现区块链解决方案所需的全部元素。

阅读全文


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:区块链 区块链学习

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-31 04:14