区块链 - Azure Blockchain Workbench 简介

在大致相同应用程序今天与数据库交互,分散在 blockchain 上运行的应用程序进行通信,并执行针对特定的数字分类帐,如 Ethereum 或 Hyperledger 的逻辑。数字分类帐网络包含的节点的对等分散式网络。

Azure Blockchain Workbench (aka.ms/abcworkbench) 是 Microsoft 的旅程,以使客户能够采用 blockchain 技术和开始使用 Azure Blockchain 中的最新步骤。若要提供上下文,Azure Blockchain 是 Azure 服务和功能旨在帮助企业创建和部署具有多个共享的业务流程和数据的应用程序的新类的集合不完全受信任的组织。当前客户可以将这些服务部署到其 Azure 订阅,并将它们与 Azure 应用商店上可用的 blockchains 集成。现在,使用 Azure Blockchain Workbench,完成的繁重任务为他们完成了,因此它们可以集中小于上基架和有关逻辑和智能协定的更多信息。

Azure Blockchain Workbench 安排围绕常用 blockchain 数字分类帐并放入一个可用于生成基于 blockchain 的应用程序的参考体系结构的多个 Azure 服务。它是一种免费能够轻松使用工具,以使用简化的界面,使用户能够创建端到端分散的应用程序利用所有 Azure Blockchain 功能。它配备示例跨组织工作流和智能协定,以及客户可以使用能够大大减少了开发成本并加快概念证明现成可用 UI。

如果你不熟悉 blockchain,建议您阅读 Jonathan Waldman 未完成文章,"Blockchain 基础知识"(msdn.com/magazine/mt845650),在 MSDN 杂志年 3 月 2018年问题。此外,在进行的点,若要观看 Microsoft 机制视频,"引导性到 Blockchain 和 Azure Blockchain Workbench,"aka.ms/workbenchintro

引入 Azure Blockchain Workbench

在大致相同应用程序今天与数据库交互,分散在 blockchain 上运行的应用程序进行通信,并执行针对特定的数字分类帐,如 Ethereum 或 Hyperledger 的逻辑。数字分类帐网络包含的节点的对等分散式网络。这些节点保留一份数据存储区,并运行虚拟机,以支持任意计算针对分类帐,同时保持一致。智能协定是允许在网络上,与传统的关系数据库的存储过程类似此复杂计算的机制。

尽管可能利用 blockchain 不断增长的各种不同的业务流程,有要克服之前企业可以采用 blockchain 技术的障碍。缺乏监管、 网络性能和可伸缩性是往往被认为是影响 blockchain 企业环境中的采用率的挑战。

构建完整解决方案通常运行 blockchain 需要设置基础结构和开发客户端应用程序,编写和部署网关 API、 实现对关闭链存储的支持、 编写日志和报告,和集成标识和密钥保管库服务到解决方案。没有一组通用的挑战是通过 Azure Blockchain Workbench,这将大大减少生成 blockchain 解决方案所需的时间量进行寻址的与 blockchain 应用程序开发相关。

Azure Blockchain Workbench 提供代码资产和 ARM 模板驱动的部署的 blockchain Poc,包括 blockchain 网络,网关 API,响应的 Web 应用程序,Azure Active Directory 集成,Azure 密钥所需的所有基架保管库集成,SQL 数据库配置为收集链上的数据,并支持一组服务以查找数据哈希和签名。该工具还使可以创建一个 Web 前端,而无需编写任何代码。它使用提供的智能协定元数据来动态为参与者提供了上下文的用户体验。框架填充作为关闭链存储区的 SQL 数据库,因为它使组织能够利用现有技能和工具来启用其他功能。

其结果是:Azure Blockchain Workbench 减少了时间和成本的概念证明 (POC) 项目。它使客户能够专注于创建创新的应用程序演示 blockchain,可能在集成任务所需建立起基本 POC 上花费更少的时间和资源。

在 Azure 应用商店 azure Blockchain Workbench 才可用 (aka.ms/tryworkbench),和 Workbench 的操作中的视频可提供的 Microsoft 机制团队aka.ms/workbenchdemo

部署 Azure Blockchain Workbench

Azure Blockchain Workbench 的部署需要以下必需的步骤:

1.主机需要 Azure AD 和密钥保管库应用到一个 Azure Active Directory (Azure AD) 租户。

2.Azure AD 应用程序以及用于在 Azure Blockchain Workbench 的部署过程中引用的密钥保管库值的注册。

你可能想要创建一个新设置测试用户或在不同的 Azure 中注册应用程序的 Azure AD 租户 AD 租户比你公司的 Azure AD 租户。Aka.ms/workbenchdocs 的官方 Azure Blockchain Workbench 文档中报告这些配置步骤的详细的说明。

完成必需的步骤后,可以部署工作台。登录到 Azure 门户,并从 Azure 应用商店中, 所示添加新资源图 1。搜索和选择 Azure Blockchain Workbench,若要开始预配过程。

图 1 在 Azure 应用商店中 Azure Blockchain Workbench

此解决方案模板旨在简化部署和构建 blockchain 网络上的应用程序所需的服务的集成。有少量的用户输入和通过 Azure 门户的单击部署,你可以部署 blockchain 分类帐以及构建封装使用示例 Web UI 的端到端 blockchain 应用程序所需的相关 Azure 服务。生成的应用程序包括 Web 应用程序、 REST API、 关闭链存储和类似的内容。而不是支出集成与 blockchain 网络时所需的构建和配置服务的小时数,Azure 团队已自动化这些耗时的部分,因此,你可以专注于构建出你的方案。通过 Azure Blockchain Workbench Web 应用程序,你可以基于智能协定你业务工作流生成端到端 UX。

设置 Azure Blockchain Workbench,则需要六个步骤,使用前两个建立配置参数和后面的两个寻址网络容量和监视。步骤 1 需要一些基本设置,图中所示图 2,其中包括:

• 一个作为前缀的命名设置为此模板的一部分的所有 Azure 资源的唯一标识符。

• 所有预配虚拟机 (Vm) 的管理员用户名。

• 用于连接到 Vm SSH 公钥。复制并粘贴 RSA 公钥 (从"ssh rsa"开始) 的单行格式或多行 PEM 格式。你可以生成 SSH 密钥 Linux 和 macOS 或在 Windows 上的 PuTTYGen 上使用 ssh keygen。

• 密码来保护对作为 Workbench 部署的一部分包含的数据库的访问。

• 你想要用于部署的 Azure 订阅。请记住,Azure Blockchain Workbench 的使用是免费的任何许可成本,但你支付预配 Azure 计算、 存储和网络资源。

• 使用将所有这些资源组合在一起的资源组。建议创建 Blockchain Workbench 解决方案的新资源组。

• 区域到想要部署的资源。

图 2 入门预配 Azure Blockchain Workbench

步骤 2 要求你已完成注册 blockchain 客户端应用程序的必需的步骤在 Azure AD 中,如你将需要输入请求时的注册应用程序 ID 和密钥。你还需要指定租户域名在 Azure AD 中获取的客户端应用程序注册的一部分。

在步骤 3 中你可以指定预配的 blockchain 分类帐中的节点数和分配的 Vm 的大小。步骤 4 是根据需要选择加入到 Operations Management Suite (OMS) 用于监视部署的解决方案。

步骤 5 和 6 是只需设置的资源和你确认你了解有成本隐含的摘要。完成该 Workbench 的部署后,你将看到一个具有指定名称的新资源组。一些资源,如 Application Insights 在这里,部署将允许你以获取有关 Workbench,包括有关已部署的虚拟机和网络的详细信息的状态的详细信息。

如我前文所述,Azure Blockchain Workbench 利用 Azure AD 进行身份验证,访问控制和工作流角色标识。只有在被引用的 Azure AD 中指定的用户将能够进行身份验证并使用已部署的资源。此外,用户必须是与以便进行交互并执行操作的特定用户组关联。因此,它是需管理与 Azure Blockchain Workbench 交互的用户帐户并将它们分配所需的权限。

部署智能协定

部署后,你可以通过导航到其 URL 来访问 Azure Blockchain Workbench。你将看到遇到你可以在其中输入你的工作或个人 Microsoft 帐户凭据,访问该应用程序的 Azure AD 支持登录。

您现在可以开始利用智能协定,其中包含驱动器不同的方案流的业务逻辑。此方法提供的不可变性,确定性的执行和不受信任的环境所需的透明度。智能协定用 blockchain 堆栈特定语言编写。例如,密度用于 Ethereum,,虽然转到用于 Hyperledger 构造消息。智能协定会部署到 blockchain 上的所有节点。在执行期间,它具有的信息也复制到网络上的所有节点。

Azure Blockchain Workbench 的主要目标是建立起的基架围绕 blockchain 应用程序,以便用户可以专注于创建的智能基于协定的业务逻辑。一旦 Workbench 中实例化智能协定时,它被写入到 blockchain,而且在 blockchain 上会记录智能协定进行后续更新。Azure Blockchain Workbench 管理员已部署智能协定和已完成的用户分配智能协定后,其他用户可以与 blockchain 应用程序进行交互,并参与智能协定工作流。

让我们开始通过部署任何现有的演示智能协定。在登录后成功,你应看到的是管理员链接右上角。单击管理员链接以访问管理员仪表板。有可供管理员使用 Workbench 中, 所示中的当前三个操作图 3。从此处你可以将用户分配、 部署演示协定,以及部署自定义的协定。

图 3 管理员仪表板

单击管理员仪表板中部署演示协定上会使你可以提供的所有演示合同的列表。当前版本的 Blockchain Workbench 包含一组演示智能协定和配置文件,以帮助你入门。Workbench 文档提供有关特定方案和 UI 的分步演练的详细信息。此外,还有演示智能协定和关联的配置文件的创建方式,以及如何设置适当的用户帐户在 Azure AD 中启用此方案的详细的说明。

上载自定义协定

此外可以在任何引用,blockchain 平台支持的编程语言中创建自定义协定还可将它们部署在 Azure Blockchain Workbench 中。所有 Azure Blockchain Workbench 都要求定义业务逻辑、 交互和实现工作流的可视化效果的三个文件。它们是:

智能协定:若要开始,你必须创建包含该方案的业务逻辑的智能协定。在下面的示例中,智能协定设定为目标 Ethereum blockchain,因此协定编写中密度编程语言。

配置:在配置文件中,因此用户映射属性、 操作和智能协定 blockchain 协议信息。你还定义哪些参数是实例化和智能协定上的操作参与者的必需的。

UI 配置:配置 UI 文件中定义的基于角色的访问控制,智能协定的每个状态的 UI,例如限制该角色可以执行特定操作。在此文件中,用户将状态和角色,并指定状态定义,在每个状态的协定和在每个状态的符合条件操作的完成百分比。

智能协定创建

协定定义包含了几个必须指定要使用 Azure Blockchain Workbench 的组件。在定义特定协定详细信息,如状态、 参与者和描述每个操作背后的逻辑的函数的方案之前, 你必须实现 LexingtonBase 协定。中所示,业务方案的业务逻辑的实际约定将继承在 LexingtonBase 协定 (这是等效于 C# 中的类),图 4

图 4 LexingtonBase 协定

contract LexingtonBase {event LexingtonContractCreated(string contractType, address originatingAddress);event LexingtonContractUpdated(string contractType, string action, address originatingAddress);string internal ContractType;function LexingtonBase(string contractType) internal {ContractType = contractType;}function ContractCreated() internal {LexingtonContractCreated(ContractType, msg.sender);}function ContractUpdated(string action) internal {LexingtonContractUpdated(ContractType, action, msg.sender);}}

每个协定应具有表示协定的当前状态、 为参与者参与智能协定,中存储数据协定,定义不同的操作的业务逻辑和构造函数的函数地址的状态当智能协定是实例化。图 5提供构造函数的示例和传输的资产智能协定的属性。

图 5 资产传输智能协定

contract AssetTransfer is LexingtonBase('AssetTransfer'){enum AssetState { Created, Active, OfferPlaced, PendingInspection,Inspected, Appraised,NotionalAcceptance, BuyerAccepted, SellerAccepted, Accepted,Complete, Terminated }address public Owner;string public Description;uint public AskingPrice;AssetState public State;address public Buyer;uint public OfferPrice;address public Inspector;address public Appraiser;function AssetTransfer(string description, uint256 price){Owner = msg.sender;AskingPrice = price;Description = description;State = AssetState.Active;ContractCreated();}}

请确保你的类名称和构造函数名称匹配。你可以查找示例源代码密度语言此智能协定,并在我 GitHub 存储库上的 JSON 配置文件bit.ly/2HJPcET

配置文件创建

配置文件定义的主属性和智能协定的参数。这包括列出的所有属性和类型,以及定义,该值指示用户需要输入来实例化智能协定哪些参数的构造函数。图 6举例说明的资产传输属性和配置文件中的构造函数。

图 6 资产传输属性和构造函数

"Properties": {"State": {"Type": "state"},"Owner": {"Type": "user"},"Description": {"Type": "string"},"AskingPrice": {"Type": "money"},"Buyer": {"Type": "user"},"OfferPrice": {"Type": "money"},"Inspector": {"Type": "user"},"Appraiser": {"Type": "user"}},"Constructor": {"description": {"Type": "string"},"price": {"Type": "money"}},

此外,用户必须枚举并对所有可能的操作,包括指定每个操作的输入的参数提供的详细信息。图 7显示了从资产传输配置文件,这要求用户输入检查器、 人员和优惠价格 MakeOffer 操作规范的示例。

图 7 MakeOffer 操作规范

"MakeOffer": {"Parameters": {"inspector": {"Type": "user"},"appraiser": {"Type": "user"},"offerPrice": {"Type": "money"}}},

最后,包括了 blockchain 的配置信息,如下所示:

"Chains": {"Ethereum": {"Type": "Ethereum","Version": "1.0","Location": "AssetTransfer.sol","TypeName": "AssetTransfer","ActionOverrides": {},"PropertyOverrides": {}}}

UI 配置文件创建

用户定义的 UI 配置文件中的每个操作的 UI 详细信息。这包括用户,例如发起方还是参与者角色和角色映射、 表示映射状态,以及构造函数,该值指示文本用户想要实例化智能协定时要显示的详细信息。图 8举例说明的资产传输属性和 UI 配置文件中的构造函数。

图 8 InitiatingRoles

"InitiatingRoles": ["Admin","User"],"Personas": {"Owner": {"Role": "Initiator","IsInitiator": true,"PropertyMapping": "Owner"},"Buyer": {"Role": "Participant","PropertyMapping": "Buyer"},"Appraiser": {"Role": "Participant","PropertyMapping": "Appraiser"},"Inspector": {"Role": "Participant","PropertyMapping": "Inspector"}},"StateProperty": "State","StateMapping": {"Created": 0,"Active": 1,"OfferPlaced": 2,"PendingInspection": 3,"Inspected": 4,"Appraised": 5,"NotionalAcceptance": 6,"BuyerAccepted": 7,"SellerAccepted": 8,"Accepted": 9,"Complete": 10,"Terminated": 11},"Constructor": {"DisplayName": "Create Asset Transfer","Description": "Description of asset transfer"},

此外,用户应枚举所有可能的状态,并包括指定可以在每个角色时,以及完成百分比的值的每个步骤执行为用户提供智能协定进行过程的可视化效果的操作,每个状态的详细信息。例如,资产传输协定 UI 配置文件演示,当状态显示已置于提议,只有所有者和购买者可以执行指定的操作,如中的代码中所示图 9

图 9 OfferPlaced 代码

"OfferPlaced": {"PercentComplete": 30,"Style": "Success","Actions": {"Owner": {"AcceptOffer": {},"Reject": {},"Terminate": {}},"Buyer": {"RescindOffer": {}}}}

创建你的自定义智能协定和关联的配置文件后, 接下来的任务是部署智能协定。选择管理员仪表板的 Azure Blockchain Workbench 中上载自定义协定之后, 你将看到页以上载自定义协定和配置文件。有三个您需要提供的文件。选择智能协定文件和更早版本,创建的两个配置文件,如图中所示的上载协定屏幕中所示图 10

图 10 上载协定屏幕

用户分配

一旦部署智能的协定 (演示或自定义),与发起程序角色的用户可以创建新协定实例。若要创建特定协定的实例,用户必须具有与该协定关联的角色。具体取决于智能协定的规范,不是每个角色可能没有权限进行创建的协定。作为管理员,可以将用户分配到一个协定,并在业务流程中指定其角色 (角色)。请注意,管理员可以执行任何用户分配操作之前,必须有部署的至少一个协定 (演示或自定义)。一个协定上载后下, 一步是完成的协定的用户分配。管理员可以将用户分配到智能协定中,从 Azure Blockchain Workbench 管理员仪表板中的用户分配屏幕。

分配给协定后,用户可以通过登录到 Azure Blockchain Workbench 来创建协定参与智能协定工作流中。用户想要生成新的资产传输中, 所示的假设图 11。他或她必须通过单击右上方的视图创建新协定来创建新的协定和输入 (此视图的差异取决于您的智能协定) 的协定的详细信息并将其提交。屏幕将自动生成的基于智能协定定义的一部分提供的元数据。

图 11 输入协定详细信息

在创建协定实例后,用户可以向下钻取以查看可用操作,给定协定的当前状态的详细信息。

扩展 Azure Blockchain Workbench

在 Azure Blockchain Workbench 的核心是 Azure 服务总线,启用允许多个分布式的分类帐技术,可扩展和可插入模型存储和数据库的服务,以用作 blockchain 解决方案的一部分。也有机会将与用来扩展功能,如 Azure 逻辑应用程序、 Web Api、 通知中心和 like Workbench 集成其他服务。关闭链存储的数据将允许实现后处理存储和分析方案,使用与 Power BI 中,如选项 Azure 机器学习 HD Insight,Azure Data Lake 和其他服务共享协定数据的位置。

Blockchain 有可能来扩展超出公司的墙的数字转换并且到过程中,它共享与供应商、 客户和合作伙伴。我已所示,blockchain 是这两个计算和数据结构,它可以用于创建数字事务分类帐,而不是使用单个提供程序,停留在线其核心间的计算机的分布式网络共享。结果是一个更透明和可验证的系统,将更改考虑交换值和资产、 实施协定,并共享数据的方式。

Microsoft 致力于使企业 blockchain 和使 Azure 以支持面向开发人员和组织想要构建分布式应用程序的全部好处。目的是帮助公司发展的安全、 多方计算此新时代提供可扩展的平台和服务的任何公司-从分类帐启动和运行状况提供程序和全局银行零售商 — 可用于提高共享的业务处理。Azure Blockchain Workbench 是服务在 Azure 中,以及公布 Azure 机密计算和机密的联合会 Blockchain 框架,可帮助 blockchain 世界上、 企业之间的桥梁的生态系统的一部分监管、 安全性和可伸缩性的要求。关注此空间在不久的将来额外的开发 !

Stefano TempestaCRMUG 瑞士,Dynamics 365 / CRM 专家世界上最大社区中为 Microsoft 区域主管和最有价值,以及章主管。Tempesta 是有关 Dynamics 365、 blockchain 和机器学习的课程一个教师和国际 IT 会议,包括 Microsoft Ignite 和技术峰在正则演讲。他成立 Blogchain 空间 (blogchain.space),有关 blockchain 技术博客写入 MSDN 杂志和 MS Dynamics 世界中,并发布 Azure AI 库上的机器学习试验 (gal lery.azure.ai)。

侵删。