最佳实践:创建成功的区块链应用程序

小夏 科技 更新 2024-01-30

开发第一个成熟的区块链应用程序的技巧。

2024年,中本聪(Satoshi Nakamoto)发布了他对比特币革命性点对点电子现金版本的愿景:点对点电子现金系统,迅速席卷了开发者社区。 虽然比特币和加密货币的概念首先激发了世界的想象力,但中本聪的**也描述了第二个概念:区块链。这种基于账本的系统不仅可以用作比特币的传输机制,还可以用作任何数字对象的传输机制。 但是,创建有效的区块链应用程序的最佳实践是什么? 仅仅将数据放在区块链上并使用智能合约中包含的**(即链码)进行操作是不够的。 为了取得成功,开发人员需要熟悉许多架构领域和最佳实践。 本文提供了一组关键的最佳实践,可帮助您创建成功的区块链应用程序。

在开始开发区块链应用程序之前,开发团队需要利用现有的用例来描述他们打算解决的业务问题的最佳实践。

在这一点上,考虑IBM的三个区块链是很有用的:

必须解决业务问题,必须需要可识别的业务网络,必须需要信任网络,IBM 还提供了开发人员可以在开始开发之前使用的成功区块链用例的详尽页面。 另一个很好的资源是 IBM Blockchain Garage,它使用一种围绕设计思维构建的方法,开发团队可以付费帮助开发最小可行产品 (MVP)。 任何开发团队都不应在没有一个或多个用例作为指导的情况下开始开发。 对于现有用例,链空间提供了迄今为止最受欢迎的成功用例。

IBM Developer Code Pattern for Blockchain 是一个有用的资源,它是开源的、随时可用的**,可供开发人员开箱即用。 区块链技术仍然相对较新,许多开发团队可能不习惯使用它,除非他们已经有很多经验。 正因为如此,你会发现区块链应用程序出现在一些定义明确的领域,比如连锁店,更具体地说是咖啡连锁店。 一旦开发团队在某个业务领域(例如咖啡连锁店)取得成功,他们通常会发现会出现许多克隆,这些克隆将现有解决方案应用于新的和类似的业务领域,例如不同地理区域的咖啡。

由于许多区块链应用程序是开源的,尤其是那些使用Hyperledger不同方言的应用程序(例如Hyperledger Fabric),因此对于新的开发团队来说,建议的第一步是克隆现有的区块链应用程序并将其应用于稍微新的领域。 在这里,咖啡链中的区块链应用提供了一个很好的起点。

说到我们的区块链开发团队,它应该是什么样子? 该团队应包括:

经验丰富的首席架构师,对密码学、性能和最佳实践区块链架构有深入的了解领域专家,与架构师、一些开发人员和区块链运营商相当,从总共大约六名开发人员开始,这个数字可能会随着项目的进展而增加。 资金超出了本文的范围。

区块链基础知识:Hyperledger Fabric 一文准确概述了 Hyperledger Fabric 框架中嵌入的基本必知区块链概念。 以下是关键组件:

资产— 使用智能合约在区块链上放置和搜索的内容。 共享账本— 账本负责记录资产的状态和所有权。 智能合约(或链码)。— 链码是定义资产和相关交易的软件。 订阅服务— 排序服务将交易打包成区块,并保证交易在网络上的交付。 主要的排序服务是 Raft 和 Kafka。 正如我之前提到的,开发团队快速掌握这些概念的最佳方式是重新实现现有的开源项目,例如区块链 Bean 或其他成功的开源 Hyperledger Fabric 项目。 有许多平台和开发工具可用于创建区块链应用程序。 本文重点介绍以下三个方面:

Hyperledger FabricVisual Studio CodeIBM Blockchain PlatformHyperledger Fabric 是一个由 Linux 管理的开源项目。 它旨在用作开发具有模块化架构的区块链应用程序或解决方案的基础。 Hyperledger Fabric 支持组件即插即用。 其模块化、通用设计可满足广泛的行业用例需求,并提供一种独特的共识方法,在保持隐私的同时实现大规模性能。 此外,Hyperledger Fabric 还附带了出色的文档。 带有区块链 VSCode 扩展的 Visual Studio Code 可帮助开发人员创建、测试和调试智能合约,连接到 Hyperledger Fabric 环境,并构建可在区块链网络上交易的应用程序。 确定用例后,开发团队使用带有 VS Code 扩展的 Hyperledger Fabric 来创建使用智能合约的区块链应用程序。 VSCode 扩展带有一个易于遵循的教程库,专注于使用智能合约处理区块链。

我们使用 VS Code 扩展来创建、打包、安装、实例化以及提交和评估智能合约。

图1VS Code 扩展了流程

有关智能合约的更多信息,请参阅“创建和执行区块链智能合约”代码模式。 智能合约是创建区块链应用程序的主要方式。 VSCode Extension 教程库显然是一个很好的入门之地,它展示了如何在 Hyperledger Fabric 和 IBM Blockchain Platform 中使用智能合约创建区块链应用程序。

IBM Blockchain Platform 是一个基于云的平台,用于在您选择的基础架构上创建和运行区块链企业应用程序。 现在,您可以将 IBM Blockchain Platform 部署到公有云(如 IBM Cloud、AWS 或 Azure),或者使用安全基础架构(如 LinuxOne)在私有云中本地部署。 虽然大多数开发团队都是从 Hyperledger Fabric 开始他们的开发之旅的,或者因为 Hyperledger 的其他一些便利性,但几乎可以肯定的是,他们最终都会在公共云或具有不同配置的多个云中部署他们的应用程序。

图2区块链系统的核心

一旦确定了有据可查的用例,开发团队就会专注于构建业务网络。 业务网络使用所有参与者都可以访问的共享账本。 (我在上面的第 3 节中提到了分类账。 作为管理业务交易的一种方式,业务分类账已经存在了很长时间。 然而,传统的账本总是需要将每个业务参与者的账本与业务网络中所有其他参与者的账本进行核对,这既费时又费力且容易出错。

通过强制业务网络的所有成员使用相同的共享账本来消除对账是一项历史性的创新。 放弃和解也意味着共识在商业网络中很重要。 网络的所有成员必须同意,然后才能将任何交易放入账本中。

账本使用具有以下特征的共享区块链:

共识机制,例如 Raft 或 Kafka,有助于实现区块链的崩溃容限。 加密哈希,例如 SHA256,用于标记对区块链上交易的任何更改。 数字签名确保交易不是来自冒名顶替者。 溯源用于跟踪区块链上的项目。 不可变性确保放置在区块链上的数据无法更改。 终局确保一旦交易包含在区块中并添加到区块链中,它就会立即被视为完成。 有关账本的详细信息,请参阅区块链基础知识:分布式账本简介。 然而,对于开发团队来说,这不仅仅是插入区块链并启动和运行的问题。 他们必须首先确定哪些数据属于区块链,哪些数据不属于区块链。 例如,如果您希望能够快速搜索,这是区块链提供的必备功能之一,那么在区块链上放置千兆字节或兆兆字节的数据根本不可行。

同样,一些数据可能已经存在于一个量身定制的、高效的数据库中,不需要重新发明。 最好根据需要将关键数据保存在具有链下数据链接的区块链上,而不是让区块链逐渐停止运行。 链下概念是开发成功的区块链应用程序的关键。 这意味着您的区块链应用程序是现有应用程序的一部分,除非绝对必要,否则不需要重新设计。 最后,不要忘记,由于欧盟的《通用数据保护条例》(GDPR)等数据隐私法,个人数据必须经过匿名化处理才能放置在区块链上。

区块链的一大优点是能够搜索区块链并快速找到关键数据——这是纸质记录无法实现的,令人惊讶的是,许多传统账本经常使用纸质记录。 许多区块链解决方案允许企业将硬拷贝表格数字化,通过区块链提供该表格的证据,并支持数字签名。

链下存储的另一个常见用例是支持缓存链上数据状态的最新值,或利用高级搜索和分析等适用技术来指导区块链应用程序与区块链网络的交互。

敏感数据通常必须存储在链下,因为根据定义,链上数据不能被篡改或删除。 要了解更多信息,您可以在 Hyperledger Fabric 指南中查看隐私数据收集概述。 链下和链上问题是开发团队架构师的工作领域,也是区块链架构问题的核心,这些问题可以成就或破坏区块链应用程序。

我们已经谈到了智能合约(也称为链码),这是开发人员在区块链上处理数据的方式。 区块链保证在未直接通知区块链各方的情况下,不能修改或删除区块链上的任何数据。 这是使区块链在数据世界中独树一帜的优势。 但是,从外部导入的数据呢? 毕竟,区块链必须与现实世界进行交互。

这就是预言机的用武之地。 预言机是可信的数据源,通过智能合约向区块链提供确定性信息,而确定性是关键。 例如,汇率变化很快,外部数据源很容易提供非确定性值,因此(如今天早上发生的那样)数据源的 1 瑞典克朗可能值 011 美元,而另一个数据源可以兑换 010 美元,具体取决于您所在的位置以及您查看汇率的时间。 预言机用于管理区块链所依赖的数据源,确保它们提供固定值,以便区块链可以确定性地处理汇率。 预言机应该从第一天起就被设计到区块链解决方案中,以后不应该添加。 Hyperledger Fabric 和 IBM Blockchain Platform 本质上是安全的。 为确保全面的安全性,谨慎的做法是使用 IBM Secure Service Containerfor IBM Cloud Private,这是一种软件解决方案,用于在 IBM LinuxOne 和 IBM Z 服务器上托管基于容器的应用程序,用于混合云和私有云工作负载。 这种适用于基于微服务的应用程序的安全计算环境无需更改即可部署**,以利用安全功能,同时还提供:

安装过程中的篡改保护、帮助防止滥用特权用户凭据的有限管理员访问权限、自动加密动态和静态数据,开发团队还需要了解联邦信息处理标准 (FIPS)。。这套标准描述了许多文档处理、加密算法和其他信息技术标准,这些标准可以在非军事机构内部以及承包商和与之合作的承包商使用。 FIPS 的 140 系列是美国**安全标准,它规定了加密模块的要求。 截至 2016 年 12 月,该标准的当前版本为 FIPS 140-2,于 2001 年 5 月 25 日发布。 其继任者 FIPS 140-3 于 2019 年 9 月 22 日生效。

安全级别 4 提供最高级别的安全性。 在此安全级别下,物理安全机制在加密模块周围提供完整的保护信封,旨在检测和响应所有未经授权的物理访问尝试。 很有可能检测到从任何方向渗透加密模块外壳,从而导致立即删除所有纯文本关键安全参数 (CSP)。

显然,安全性是开发团队第一个商业区块链应用程序成功与失败的区别。 虽然很少有开发团队需要全面的大型机安全性,但了解 IBM LinuxOne 和 IBM Z 服务器提供的安全解决方案仍然很有用。

Hyperledger Fabric 和 IBM Blockchain(例如 Kafka 和 Raft)中的排序服务提供容错服务,因为典型的区块链实现是分布式的,需要防止故障。

但是,如果一个或多个不怀好意的人渗透到业务网络中,会发生什么? 毕竟,该网络由许多合作组织组成,其中一个组织可能会突然被流氓所有者接管,而流氓所有者可能会试图接管整个区块链。

对于这种情况,实用拜占庭容错 (PBFT) 目前可用。 但唯一的问题是,对于许可的区块链系统来说,PBFT可能是资源密集型的,导致过度劳累。 换句话说,PBFT不一定是解决流氓团伙接管区块链联盟问题的最有效方法。 顾名思义,许可的区块链系统受法律法规保护,如果违反这些法律法规,最好在法庭上进行补救,而不是采用资源密集型技术解决方案。 这就是 Hyperledger Fabric 尚不支持 PBFT 的原因。

使用 Hyperledger Fabric 和 VS Code 扩展开发区块链应用程序简单明了。 启动 Hyperledger Fabric 实例并在区块链上运行链码很容易; 唯一的限制是区块链将在您自己的硬件上运行,而不是在云中运行。

要在云中运行,您可以使用 IBM Blockchain Platform,这是一个基于云的平台,用于在 IBM、AWS 和其他云中创建和运行区块链企业应用程序。 (点击此处了解详情。 在当今的混合云环境中,能够在多个云中运行至关重要,有时甚至同时运行。 最终,大多数区块链应用程序将在一个或多个云中运行。 如图 3 所示,IBM Blockchain Platform 控制台使启动企业区块链应用程序变得容易。

图3IBM Blockchain Platform 控制台

此外,IBM Cloud 中的 IBM Blockchain Platform 具有丰富的架构,可以轻松创建高级企业应用程序(参见图 4)。

图4IBM Blockchain Platform 架构

区块链是过去十年中出现的最令人兴奋和最有前途的新技术之一。 世界各地的开发人员都在忙于学习习区块链,并将其应用于解决他们感兴趣的问题。 借助 Hyperledger Fabric 和带有 Blockchain vs Code 扩展的 Visual Studio Code,无需付费即可轻松开始编写区块链应用程序。

成功的关键是了解您的领域,利用现有的用例,并学习习区块链编程模型。 开始的方法是复制现有的开源应用程序,例如区块链 bean,然后在现有库之上进行连续更改。

从业务和组织方面对新的区块链项目有很好的理解也很重要。 当然,您需要一位具有密码学和安全技能的架构师,以及一些程序员、领域专家和业务专家。 归根结底,你应该避免对区块链过于热情,而是专注于编写真正为你的第一个客户创造价值的应用程序。 如今,几乎可以肯定的是,您会在**连锁细分市场中找到您的客户。

您还应该确保阅读优秀的 Hyperledger Fabric 文档。 这九个最佳实践可以帮助您和您的团队在开发第一个官方区块链应用程序时入门并避免走错路。 剩下的就看你了。

相似文章

    将食物存放在冰箱中的最佳实践

    随着科学技术的进步,现代冰箱的制冷技术和保鲜功能有了很大的提高,给我们的生活带来了很多便利。然而,为了让冰箱真正发挥作用并更好地保存食物,我们还需要掌握一些在冰箱中储存食物的最佳实践。.合理隔断 合理隔断冰箱内部,放置不同的食物隔断,避免相互污染。例如,将肉类 海鲜和家禽存放在冰箱的下层,蔬菜和水果...

    通过在线申请的最佳实践避免退税的麻烦

    在线申请退税的流程可能因国家 地区而异,但以下是具有不同步骤的一般流程。请注意,以下信息可能不适用于您的具体情况,最好查看您所在国家或地区的税务 信息。准备必要的文件和信息 收集并准备所有必需的税务文件,例如纳税申报表 工资单 收据等。确保您拥有正确的个人信息 雇主信息以及报税所需的其他信息。登录税...

    感恩教育的最佳实践 收集父母的作业并回放给您的孩子看

    安徽亳州市初中数学老师童老师通过收集家长的工作照片,给同学们上了一堂生动的班会课,旨在教同学们学会感恩。在这次班会上,童老师精心制作了幻灯片,展现了家长们在日常工作中的辛勤付出和奉献精神。这些真实 饱满的画面,让同学们深切感受到父母的艰辛,并与他们产生深深的共鸣。孩子们眼里含着泪水,感动得啜泣。童老...

    高效冒险!Genshin Impact 传送锚的最佳实践

    Genshin Impact 是一款开放世界冒险游戏,玩家可以在其中自由探索这个广阔的世界。在游戏中,传送锚是一个非常重要的工具,可以帮助玩家快速移动到地图上的任何位置。下面,我们将向您展示如何制作传送锚。首先,我们需要收集制作传送锚所需的材料。这些材料包括 碎蘑菇 灭活菌核 褪色红丝 其中,断星蘑...

    滇缅公路的历史背景及其成功建设所带来的作用

    滇缅公路是连接中国云南省和缅甸的国际通道,也是连接中国与外部世界的唯一运输路线。它诞生于抗日战争的烈火中,由滇西各族人民血肉之躯建造,被誉为 抗日战争的生命线 抗日战争期间,滇缅公路成为中国获取援外物资的重要通道之一。日本侵略者切断了中国的陆上交通线,使中国无法从海上获得外国援助。滇缅公路的修建使中...