来源 | 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 虚拟化,看这文就够了

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

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

带你一文看懂 Blockchain + NoSQL数据库相关推荐

  1. 带你一文看懂数字乡村怎么建

    引言 新一代信息化的大背景下,数字乡村.智慧城市.数字中国的概念,近几年被频繁提及.今年在疫情防控的环境下,农产品电商.在线助农.农业直播等互联网农业新业态不断涌现.近日,中央网信办等七部门联合印发& ...

  2. 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手

    网络基础:TCP/IP四层模型中的典型协议--理解网络通信的流程原理 应用层协议:负责应用程序之间的数据沟通 网络版计算器:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运 ...

  3. 干货收藏!Python完整代码带你一文看懂抽样

    导读:抽样是从整体样本中通过一定的方法选择一部分样本.抽样是数据处理的基本步骤之一,也是科学实验.质量检验.社会调查普遍采用的一种经济有效的工作和研究方法. 作者:宋天龙 来源:大数据DT(ID:bi ...

  4. 带你一文看懂MySqL中的事务与索引

    子查询:在一条sql语句中嵌入在其他sql语句中的select语句,也叫嵌套查询 单行子查询:返回一行记录的子查询.                 查询与"成绩优秀" 同学的同班 ...

  5. lepus监控oracle数据库_一文看懂lepus天兔数据库监控系统如何搭建

    概述 前面框架搭好后,这里就可以开始部署lepus了,下面一起来看看吧~ 1.安装Lepus采集器 1.下载软件安装包 # cd /usr/local # git clone https://gith ...

  6. 一文看懂阿里云端数据库配置+Navicat premium安装

  7. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  8. 一文看懂深度学习——人工智能系列学习笔记

    深度学习有很好的表现,引领了第三次人工智能的浪潮.目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习. 本文将详细的给大家介绍深度学习的基本概念.优缺点和主流的几 ...

  9. 判别两棵树是否相等 设计算法_一文看懂生成对抗网络 - GANs?(附:10种典型算法+13种应用)...

    生成对抗网络 – GANs 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频.我们手机里的照片处理软件中就会使用到它. 本文将详细介绍生成对抗网络 – GANs 的设计初衷.基 ...

最新文章

  1. Python中最好用的命令行参数解析工具
  2. linux安装源码包出现apr错误,Linux源码安装Apchae时报错:error: APR not found.Please read the documentation....
  3. java 双击_利用java开发一个双击执行的小程序
  4. 猫眼java开发暑期实习_校招|猫眼 Android日常实习一面面经
  5. 程序员面试题100题第28题——全排列
  6. android系统预制app/bin/.so文件及文件夹
  7. Cydia Substrate插件编写
  8. 调查 问卷 设计 注意 - Web
  9. 事件查看器mysql_Windows 事件查看器(Event Viewer) 检查日志的方法
  10. 百度 谷歌 Twitter,这么多短链接服务(Short Url)到底哪家强?
  11. 129. 求根节点到叶节点数字之和
  12. Java 无需解压直接读取ZIP压缩包里的文件及内容
  13. yapi 全局变量使用_需要接口管理的你了解一下?
  14. Nginx网站服务与LNMP架构部署(详解)
  15. Flume 海量日志收集利器
  16. 数据库应用基础mysql_尔雅通识课《数据库应用基础(MySQL)》期末答案
  17. torch_geometric.utils.k_hop_subgraph
  18. 3-6 静态数据成员与静态成员函数
  19. C语言程序设计入门之抽象编程
  20. 积分价值调整的两个原因

热门文章

  1. 定点运算和浮点运算_C2000浮点运算注意事项——CPU和CLA的差异及误差处理技巧...
  2. updatebyprimarykeyselective返回什么是成功_嫦娥五号发射升空成功!!!
  3. 图像风格迁移cvpr2020_CVPR 2020 | 浙大李俊成:用无监督强化学习方法来获得迁移能力...
  4. 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!
  5. id门禁卡复制到手机_手机NFC有哪些功能?怎么设置手机门禁卡?别浪费了手机的NFC功能...
  6. 浅谈HR谈薪水的技巧
  7. “被枪指头,中国教授用功夫击退美国劫匪”,他的身份不简单
  8. 屠呦呦凭什么获诺奖?
  9. 基于随机森林的分类与回归
  10. 兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术