2018年11月15日,微软宣布了Azure区块链开发工具包,它基于微软的无服务器技术构建,并且利用微软和第三方SaaS,完美集成了区块链。该工具包扩展了微软的区块链开发模板和Azure Blockchain Workbench,其中,后者把 Azure 密钥管理服务、“链下(off-chain)”身份和数据、监控和消息传递API纳入了同一个参考体系结构,用于快速构建基于区块链的应用程序。这些工具已经成为许多组织创新业务方式之旅的第一步。
最初的版本主要实现了三个方面的功能:连接接口、数据和系统集成、部署智能合约和区块链网络。
连接
为国际联盟提供端到端的区块链解决方案,开发人员需要能够使组织、人和设备连接到区块链,并且可以从一组异构的用户界面完成。
举个端到端商品(如可可豆)供应链的例子。
-SMS和语音接口使得非洲的小型农场可以在供应链的第一英里处理和跟踪他们的货物 。
-物联网(IoT) 设备提供传感器数据来追踪货物在运往市场的过程中不同时刻的状况——跟踪存放豆子的集装箱的湿度以及包含这些豆子的最终产品冰淇淋的温度。
-移动客户端 使物流供应商能够在产品从制造商转移到零售商的过程中,利用员工口袋中已有的计算能力,接收并转移产品责任。移动设备也有传感器,如GPS和摄像头,可以补充数据,帮助说明什么时间往哪里发什么货。
-后端系统和数据 是ERP系统的形式,如Dynamics和SAP,用于管理不同参与者的核心流程。通过扩展,这些系统还会变成客户端,与智能合约进行交互,代表组织提供和接收可证明的数据。
-机器人和智能助手 使制造商和零售商可以与供应链交互。这包括使用自然语言与订单智能合约和原产地交互,使用从区块链获得的可证明数据直接代表用户采取行动。
-Web 客户端 让终端消费者可以查询从零售商购买的产品的来源,通常包括其原产地和产品从“农场到餐桌”的整个过程。
Azure 区块链开发工具包 包括针对所有这些场景的样例,包括 入站 和 出站、SMS、IVR、IoT Hub 和 IoT Central、Xamarin iOS 和 Android 移动客户端、通过通用数据服务(CDS)集成 Dynamics、机器人和智能助手(微软小娜、Alexa、谷歌助手)及 Web UX。
集成
企业使用区块链和智能合约促进多方流程。区块链还会向合适的参与者提供那些合约的实时状态和事件,保证透明度。
端到端区块链解决方案需要集成链下的数据、软件和媒体。外部的更新和事件可以触发智能合约动作。智能合约事件和状态变化可以触发“链下”系统和数据的操作和更新。这些外部系统和人工智能还需要从智能合约查询可证明数据来指导行动。
具体来说,有两个领域的集成最需要指导。
文档和媒体:文档和媒体不属于区块链,但业务流程通常包括图像、视频、音频、办公文档、3D 印制机 CAD 文件或其他文件类型。常见的模式是生成一个唯一的媒体散列和描述它的元数据。然后,那些散列会被放在一个公有或私有链上。如果文件的真实性遭到质疑,则可以稍后把“链下”文件重新散列,并把那个散列和存储在区块链上的散列进行比较。如果散列值匹配,则文档是真实的,但是,如果图像的一个像素或文档中的一个字母改变了,则散列将不匹配,显然发生了篡改。
11月15日,微软发布了一组“逻辑应用(Logic Apps)”,它们支持文件散列和与之相关的元数据。其中还包括文件智能合约和在链上存储散列的文件注册中心。已创建的逻辑应用是为添加到最流行的文档和媒体源的文件提供这个功能,包括 Azure Storage、OneDrive、One Drive for Business、SharePoint、Box、Adobe Creative Cloud 和 FTP。null智能合约交互:将区块链从白板上移除并投入生产应用,意味着要处理交易双方现如今如何交互的实际情况。事实是,企业集成一团糟。
微软把这方面数十年的经验带到了区块链。他们的企业系统集成工作始于大约 20 年前推出 BizTalk Server,他们对数据库集成的关注可以追溯到上世纪 90 年代他们开发的开放数据库连接(ODBC)。他们的所有经验都已在 Azure 服务中实现并提供。这包括在逻辑应用程序和流中提供的 200 多个连接器,以及其数据平台的健壮性。null区块链应用程序开发工具包 包括以下领域的 Workbench 集成示例:
遗留应用程序和协议——通过 FTP发送 和 接收 文件、处理逗号分隔的文件 以及 通过电子邮件发送数据;
数据—— SQL、Azure Search、Excel 和 PowerBI;
SaaS—— SharePoint、Dynamics、Outlook 和 Gmail;
Registries—— 一个 加速器,可以生成自定义注册中心和注册项智能合约以适应任何场景。
逻辑应用区块链连接器
11月15日,微软还宣布,他们将发布一组逻辑应用和流连接器,把这些样例扩展到 以太坊、Corda、Bitcoin 等分类账。
R3 产品主管 Mike Ward 表示:
在 R3,我们致力于确保开发者能够快速、安全、轻松地部署 CorDapps。Azure 区块链开发工具包将为我们的企业客户提供与应用程序、软件和人们日常使用的实用程序(如 Outlook、Alexa、SMS 和 Web UX)集成的工具。区块链正走出实验室,进入日常商业应用领域。
现在,以太坊区块链连接器已经可用,用户可以部署合约、调用合约操作、读取合约状态并根据分类账中的事件触发其他逻辑应用。
部署
随着区块链技术在企业软件开发中日益成为主流,组织希望在如何为智能合约和区块链项目提供 DevOps 方面获得指导。
以下是一些常见的问题:
我的业务逻辑和该逻辑的数据模式反映在智能合约中。智能合约是用我不太熟悉的语言编写的,比如以太坊的 Solidity、Corda 的 Kotlin 或者 Hyperledger Fabric 的 Go。我该用什么工具来开发它们?
我如何进行智能合约的单元测试和调试?
许多区块链场景反映了多方交易和业务工作流。这些工作流包括以特定顺序发生的来自多方的签名交易。我如何考虑那个场景中测试环境里的数据呢?
智能合约被部署到区块链,它是不可变的。我要如何考虑基础设施即代码、本地开发 / 测试、合约升级,等等?
区块链是一个在联盟中的多个组织间共享数据的技术,它对全球多方环境中的源代码控制、构建和发布管道有什么影响?
虽然这种方法有一些细微的差别,但好消息是,就像其他类型的解决方案开发一样,这个模型在 DevOps 模型中很容易处理。同一天,微软发布了白皮书《区块链智能合约 DevOps》。
Truffle 创始人 Tim Coulter 表示:
我们很高兴能与微软合作,为区块链工程师创建规范的 DevOps 体验。我们的白皮书“区块链智能合约 DevOps”做了详细介绍,并通过示例说明了如何在联盟环境中开发基于 CI/CD 的区块链应用程序。
一份实现指南对白皮书进行了补充,可以通过Azure区块链开发工具包获得,它展示了如何使用 Visual Studio Code、GitHub、Azure DevOps 和 Truffle 的 OSS 为智能合约和基础设施及代码实现 CI/CD。
作者:dkadll