带你一文看懂 Blockchain + NoSQL数据库

来源 | Tyler Mitchell

译者 | 火火酱,责编 | Carol

图源 | CSDN下载自视觉中国

NoSQL数据库和现代区块链分类账都受益于一套共同的原则。由于其二者平台可以相互补充,因此当它们服务于同一应用程序时,能够配合完成多种工作。

在本文中,我们将一起来回顾一下二者协同的重叠部分,学习如何借助Couchbase的NoSQL平台来支持自己的下一个企业分布式账本应用程序(例如利用Hyperledger)。实际上这一话题涉及的内容非常深奥,但在本文中,我们将只触及两个较为浅显的想法,简要勾画出其共性和机遇:分布式计算和世界状态。

分布式计算

分布式计算是现代企业架构的核心——无论是并行处理CPU/GPU环境、多节点数据库集群,还是在不同地区具有同步集群的全球数据中心。

通过利用这些架构的分布式处理速度、可恢复性和可扩展性(这都是另一个话题了),应用程序开发人员可以专注于构建所需的用户体验,由后端数据系统来完成那些繁重的工作。

“分布式”是什么意思呢?简而言之,就有多个服务器作为节点集群的一部分进行管理。在理想情况下,在分布式系统中是不存在单点故障或集中控制的。

此外,它还假定将工作负载项分解为可供底层原子处理器进行处理的碎片,例如,将工作任务分布到多个节点上。

此类系统的名称中往往包含“点对点网络、集群计算、并行处理”等等。维基百科上有一个很好的列表,里面列出了到目前为止的各类相关系统。

列表地址:

https://en.wikipedia.org/wiki/Distributed_computing?ref=hackernoon.com

区块链是分布式技术的缩影

尽管分布式技术的优点很多,但其实其应用并没有想象中那么广泛,即使是在现代企业中,系统集中化的现象仍然非常普遍。其中就包括那些设计本应更具弹性的行业,如全球金融系统或供应链管理,实际上,这些行业往往更倾向于选择大型机计算。

顺便提一下,集中式系统非常好辨别,因为当它发生故障时,所有工作全部都会停摆!当所有数据或服务都在一台机器上运行时,一旦出现宕机的情况,系统便会完全停止运作。

这可能是因为启动替代机器需要时间,或者在重新路由用户之前需要时间来识别故障,又或许是因为其他各种毁灭性的工程原因。集中式系统与我们期待的点对点网络正好相反。

然而,随着比特币等平台的出现,下一代数字货币和“分类账”逐渐证明了其可行性。现在,有数千种不同的加密货币和数十种区块链后端都在应用去中心化技术。

此外,请注意“分布式账本”并不等同于许多加密货币中使用的“工作量证明”。相反,我们要把分类账视为已经对更新的应用程序建立起了信任,不必为了添加到链上而进行任何特定的任务。

分布式NoSQL

同样,企业也在为其内部系统寻找更多利用分布式技术的方法,以减少宕机时间。如果要做一个以分类账为基础的系统的话,目前有多种方法可供选择。如果要做一个通用数据库的话,选项也不少,特别是在数据管理方面。

在运行分布式系统的企业中,大部分技术都能在数据库中找到,尤其是NoSQL平台。这种分布式特性从其出现的第一天就成为了Couchbase的支柱之一,填补了传统数据库不可避免的关键性空白。

             

Couchbase引入了多维扩展的概念——即能够跨多个节点或多个集群来扩展应用程序和服务。

如果只是在单一节点上运行的话,就和再引入一个JSON文档存储没什么不同了。同样,如果另一种区块链技术不是同样分布在机器集群中的话,也没有任何意义。

集中式系统中一定会存在单一故障点和控制点,从而破坏整个系统的信任。但好在,Couchbase、区块链和相关技术都为分布式系统的存在提供了需求和价值。

超级账本(Hyperledger)组件

Hyperledger和Couchbase等区块链分布式账本的另一个共同点是,用例显示被管理资产的单一“当前”视图。

据Hyperledger Fabric的说法(一个特定的分布式账本实现),其系统中主要是有两类数据处理组件在发挥作用。

  • 操作事务(Operational transaction)是所有分类帐的核心——它验证、创建并记录分类帐中的所有事务。Hyperledger Fabric处理所有内置权限,确认谁可以发起事务,并将其存储在各种后端技术中。

  • 世界状态(World state)作为另一个主要组件,是另一个维护账户当前状态值的数据视图。当执行由一个实体到另一个实体的事务时,世界状态也会随之更新,保持当前最新值。以前的事务不会被存储在世界状态中。

世界状态系统中的每个帐户都会有单独的值,但是其整体的历史记录会被精确详细地存储在事务系统中。

NoSQL信息源

以上两个组件都可以通过Couchbase NoSQL数据库作为后端来实现。Couchbase在许多不同用例(金融、欺诈检测、物联网等)中都被用来处理高吞吐量的操作事务。分布式ACID事务也是可以的,这个话题我们将在以后的文章中进行探讨。

将Couchbase作为区块链系统的主要后端数据库可以方便操作与世界状态数据有关的存储/检索。

Couchbase常会被用来存储来自多个不同数据库的数据集合,提供所谓的信息源(Source of truth)。与世界状态类似,它也会存储相关当前数据的物化图像。

因此,Couchbase非常适合需要存储应用程序用户配置文件的应用开发人员。例如,虽然其他的后端系统或许会更新各数据片段,但当用户进行登录时,用户配置文件会立刻出现在JSON文档中。

在这种情况下,使用Couchbase的最终好处是可以享受为开发人员所提供的一切内置优势。一旦数据被投放到数据库中,我们就可以无障碍地访问基于SQL的强大查询工具、使用自然语言进行全文搜索、针对大型数据集进行大规模的大数据分析,等等。这样一来,开发人员便可以专注于产品和用户,同时让后端系统保持管理和同步。

为什么要选择NoSQL+Blockchain?

我写这篇文章的目的不仅仅是想要比较一下这两种技术,更是希望可以鼓励开发人员和架构师们研究如何将这两种技术结合起来使用,这不失为一种好方法。

Couchbase可以作为任何分布式账本或区块链技术之上的应用开发层,既可以成为可操作的数据库组件,也可以作为世界状态。如果你正在构建的企业解决方案需要快速、便捷地向终端用户提供帐户详细信息,那么世界状态数据库将会是一个绝佳的研究用例。

例如,当发生区块链事务且世界状态需要更新时,相同的更新也将被发送到Couchbase供用户使用。由于Couchbase有移动SDK,以及全面的分析SQL支持,因此它能提供比区块链系统更为强大的数据接口。

当我们希望用户能够快速访问最新信息时,这一点就变得尤为重要。

区块链系统需要一定的时间来传递信息,但借助先进的协议,Couchbase能够在更短的时间内实现这一点——在变化发生的第一时间便可以建立数据视图。而且由于Couchbase在多集群环境中运行,其平台的稳定性和弹性丝毫不逊于区块链系统。

集成

虽然目前还没有现成的Couchbase与Hyperledger集成,但Couchbase SDK支持所有主要的编程语言。任何构建基于区块链的分类账的人都可以使用区块链API和Couchbase API,通过JSON将当前世界状态更新发送到NoSQL数据库。

如果你对构建这种集成感兴趣的话,可以看看Hyperledger Fabric中的后端提供商,并从中挑选一个应用于Couchbase Server。

此外,当智能合约应用程序在分类账中更新时,也可以直接在发送的链码中实现该功能。我也只是才开始涉足这方面的内容,但在之后的文章中,我们可以将数据库用户自定义函数(UDFs)和区块链链码进行比较/对比,以供大家参考。

区块链领域还有很多值得我们深入挖掘的东西,但我希望本文中提到的这一点点相似性和重叠点能帮助你梳理自己的认知。

原文链接:

https://hackernoon.com/an-introduction-to-blockchain-nosql-databases-qm2f341y

本文由CSDN云计算翻译,转载请注明原文出处


更多阅读推荐

  • 都 2021 年了,Serverless 能取代微服务吗?

  • 企业使用云计算低效益怎么办?区块链或成良药

  • 赠书 | 读懂 x86 架构 CPU 虚拟化,看这文就够了

  • 赠书 | 手把手教你自己动手打造一个智能恒温器

  • 求求你给你的微信头像戴个圣诞帽吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

来,一起“八卦”一下数据湖

原文链接 本文为云栖社区原创内容,未经允许不得转载。

mybatisplus代码生成器3.5.2

Mybatis-plus最新代码生成器(3.5.1)的使用 mybatis-plus 代码生成器(3.5.2) Autowiredprivate CodeGeneratorMapper codeGeneratorMapper;//ip地址private String DB_URL "";//用户名private String DB_USERNAME &q…

从OpenKruise用户疑问开始理解K8s资源更新机制

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / Sta…

软考-信息安全

文章目录对称加密(私钥加密)非对称加密(公钥加密)信息摘要、数字信封、数字签名、数字证书安全协议网络攻击入侵检测计算机病毒防火墙对称加密(私钥加密) 加密、解密用同一个密钥;适用于大消息…

学霸的奇葩选择,成功不仅靠运气,对话阿里云MVP黄胜蓝

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 为了逃避高考,他凭借NOIP一等奖成功保送武大;大学时就负责校园门户网站的运维工作&…

CSDN湘苗培优|保持热情,告别平庸

湘苗培优招生进行中在培优中,遇见更好的自己——CSDN高校俱乐部CSDN湘苗培优随着我国信息产业飞速发展,通过常规灌输式培养出来的学员已经不能够满足企业要求。企业更缺乏的是具备自主学习能力、具备综合解决问题能力的高素质技术人才。高素质技术人才需…

对话阿里云总裁张建锋:解密阿里云再生长的动力、合力和张力

文 |《财经》记者 谢丽容 秋冬交替往往在一夜之间。这一年,受疫情的客观影响,数字化新旧时代的交替,从稳步推进,转变为一夜之间——数字化成为中国经济的主要驱动力,变革因为疫情而更加强烈,政府、企业都认…

Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.Date

异常日志: Cause: org.apache.ibatis.builder.BuilderException:Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.Date异常原因: 1.PO、xml、数据库,三者间关系映…

Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务

文章目录1. 问题2. 分析3. 解决方案1. 问题 使用Nacos作为注册中心的Spring Boot项目,以war包形式部署到服务器上,启动项目发现该服务无法在Nacos中注册。 2. 分析 SpringCloud 项目打 war 包部署时,也就是使用外部 Tomcat 部署&#xff0…

掌门1对1微服务体系Solar|阿里巴巴Sentinel落地实践

前言 掌门1对1精耕在线教育领域,近几年业务得到了快速发展,但同时也遭遇了“成长的烦恼”。随着微服务数量不断增加,流量进一步暴增,硬件资源有点不堪重负,那么,如何实现更好的限流熔断降级等流量防护措施…

湘苗培优|值不值?效果告诉你

號外高校俱乐部报名ing湘苗培优REC等待优秀的你!湘苗培优参与项目交付企业内推求职简历指导CSDN技术认证你能获得优秀的企业导师!志同道合的朋友锻造自己的平台!面对面的交流这里有介绍湘苗培优缘起随着我国信息产业飞速发展,通过常规灌输式培…

软考 - 法律法规 标准化

法律法规 知识产权:著作权、邻接权、专利权、商标权、商业秘密权、集成电路布图设计权; 权生效时间有效期(年)专利权(发明)申请20专利权(实用新型)申请10专利权(外观设…

Redis 分布式集群搭建2022版本+密码(linux环境)

Linux环境 安装 Redis-6.2.6 配置运行_01 https://gblfy.blog.csdn.net/article/details/105583077 文章目录一、节点分布总览二、软件配置初始化2.1. 下载2.2. 解压2.3. 编译安装2.4. 配置抽离2.5. 配置编辑2.6. 101节点操作2.7. 102 节点操作2.8. 103节点操作三、软件配置集群…

CDN百科第三讲|如果用了云服务器,还需要做CDN加速吗?

在全站上云的背景下,云计算已经不仅仅是大型互联网公司的独享概念,正在被更多的传统企业、中小企业甚至个人站长所采用。在众多云计算服务中,最常见两个产品就是云服务器和CDN,今天的CDN百科第三讲,就给大家介绍下你关…

如何选择适合你的企业数据管理类产品

在全站上云的背景下,云计算已经不仅仅是大型互联网公司的独享概念,正在被更多的传统企业、中小企业甚至个人站长所采用。在众多云计算服务中,最常见两个产品就是云服务器和CDN,今天的CDN百科第三讲,就给大家介绍下你关…

软件设计师 - 软件工程

文章目录1.风险管理2.多态3.RUP (Rational Unified Process,统一软件开发过程)4.可移植性5.内聚、耦合5.1.内聚类型5.2.耦合类型6.开发模型UP统一开发过程CMM软件过程成熟度软件维护类型极限编程风险1.风险管理 风险识别:建立风险条目检查表&#xff0c…

5G与金融行业融合应用的场景探索

来源 | 人民数字FINTECH责编 | 晋兆雨头图 | 付费下载于视觉中国5G 技术如何与银行、保险、证券业结合?近年来,金融业高度关注5G技术应用,一些金融机构希望抓住5G应用发展窗口期,积极探索新业态和新模式,把握5G金融应用…

云端研发新基建:Serverless与持续架构服务落地实践

在《我心中的云时代原生开发环境》这篇文章中,我们探讨过云厂商的愿景,云计算的趋势与现状以及研发团队的架构服务诉求等背景。今天,我想结合我们打造的云开发平台(Cloud Workbench)跟大家进一步聊聊,如何打…

Dubbo-gok8s注册中心设计方案与实现

Dubbo-go k8s注册中心设计方案与实现 随着云原生的推广,越来越多的公司或组织将服务容器化,并将容器化后的服务部署在k8s集群中。 今天这篇文章将会介绍dubbo-go将k8s作为服务注册中心的方案设计,以及具体实现。到目前为止该方案的实现已经被…