热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Swarm、IPFS、BigchainDB:数据存储和去中心化

作者|MattZand译者|火火酱,责编|高卫华数据管理和内容管理是许多商业应用程序(如信息门户、维基百科、电子商务和社交媒体应用程序)的

作者 | MattZand

译者 | 火火酱,责编 | 高卫华

数据管理和内容管理是许多商业应用程序(如信息门户、维基百科、电子商务和社交媒体应用程序)的两个核心功能。

在去中心化领域也不例外,当谈到EVM时,人们往往十分看重EVM在以太坊上存储数据的能力。虽然这一功能非常方便,但其成本过高,所以并不常用。开发人员们大可以选择其他几种方式来管理和访问去中心化应用程序的数据和内容,比如Swarm (以太坊区块链解决方案)、IPFS和BigchainDB(区块链大数据平台)。下面,我们一起来深入了解一下吧。

Swarm

Swarm为以太坊和DApp提供内容分发服务,具备以下功能:

➢ Swarm是一个去中心化的存储平台,提供以太坊web3堆栈的本地基础层服务。

➢ Swarm旨在替代以太坊链上存储解决方案,成为以太坊公共记录的去中心化存储平台。

➢ Swarm能够在不干扰区块链上信息的情况下,协助DApp存储和分发代码、数据及内容。

假设我们正在开发一个以区块链为基础的的医疗记录系统:跟踪医疗记录的添加日期、医疗记录内容、以及何人出于何种目的查看过记录,那么我们就需要在区块链中维护上述所有不可变的事务记录。但是,医疗记录本身(包括医生记录、医疗诊断和影像等),其实并不适合被存储在以太坊区块链中。Swarm或IPFS更适合此类用例。

DApp可以直接在去中心化的文件系统(如IPFS和Swarm)中创建、管理并存储数据和内容,使用Swarm散列对数据和内容进行访问和检索。当DApp向以太坊网络提交事务时,事务可以借助Swarm散列来引用Swarm资源。

Swarm在去中心化的节点上维护特定类型的内容寻址分布式哈希表(distributed hash table,简称DHT)。上传到Swarm网络中的文件或内容将被作为blob对象分割成不同的块。然后利用这些分块创建Merkle树,从而确保内容的完整性。Trunks将被进一步分配到参与节点,并存储到DHT中。当发出访问请求时,由最接近分块地址的节点提供内容。

Swarm提供了多个用于访问和管理内容的API,其中包括CLI(命令行接口)和JSON-RPC API。我们可以通过erebos、swarm-js或者swarmgw包来获得Javascript包,其可用于大多数以UI/Javascript为基础的DApp。

IPFS

IPFS与Swarm十分类似,是一款在去中心化网络上存储并共享内容的点对点分布式文件系统。IPFS和Swarm二者都能够提供去中心化数据和内容存储,以及直接由内容所生成的可寻址散列;二者都可以存储区块链事务中的各项内容。

但二者内部也存在许多技术差异——它们通过不同的方式来切分大数据集并将分块存储在分布式网络。我们可以把IPFS看作是一个BitTorrent swarm,在Git存储库中交换对象;而Swarm与以太坊区块链集成更加密切,并且有促进内容共享的激励系统。但其实IPFS也可以借助Filecoin来提供相似的激励系统。

同样,Swarm中的DApp应用架构也适用于IPFS。IPFS也提供了多个用于访问和管理内容的API,包括CLI接口、JSON-RPC API以及HTTP接口。Javascript包和Go库也同样可用,可用于大多数以UI/Javascript或Go为基础的DApp。

BigchainDB

BigchainDB是一个去中心化的数据库,它结合了传统数据库、数据管理功能以及区块链功能。作为区块链数据库,BigchainDB是对其他去中心化系统的补充,例如去中心化文件存储(如IPFS或Swarm)和智能合约区块链(如以太坊或EOS)。作为存储去中心化数据和内容的另一种选择,它可以用作传统应用程序的数据存储,也可以用作去中心化区块链平台(如以太坊)的去中心化数据存储。虽然它也可以存储文件,但我们并不推荐您这样做,因为它其实更适用于结构化和非结构化数据。

在以太坊社区中,很多人都想将BigchainDB和以太坊智能合约进行集成,也曾提出过一些EIP和POC(概念原型)来进行相关尝试,比如,利用Oraclize服务在智能合约中从BigchainDB检索数据。在成功检索数据后,智能合约将对逻辑进行评估,并执行请求的操作。DApp可以通过两种方式与BigChainDB集成。一种是通过HTTP GET和POST,作为去中心化的数据存储直接与BigchainDB进行交互。第二种是在智能合约中利用Oraclize服务,从BigChainDB访问外部数据。

该过程遵循以下规则:

➢ BigchainDB具有多个接口(包括CLI 接口和HTTP API),能连接到BigchainDB服务器并且从区块链数据库存储并检索数据。

➢ 在数据库中存储数据时,我们需要用HTTP POST请求将数据发送到数据库服务器,然后使用HTTP GET接口从数据库检索数据。

➢ BigchainDB还具备数据库驱动程序,开发人员可以用Java、Python等高级编程语言连接网络服务器。

在本文中,我们回顾了三种在区块链上管理去中心化数据的内容存储平台。在选择好数据存储平台之后,我们需要通过数据可视化对网络平台进行监控。我们可以通过虚拟数据室来实现这一目标,它可以将所有有用的信息集中显示在一起,协助我们评估网络数据,查看收集的数据列表是否可信。

原文链接:https://hackernoon.com/swarm-ipfs-and-bigchaindb-comparing-data-storage-and-decentralization-4a2o3wf8

推荐阅读

  • 区块链+生鲜:杜绝“偷梁换柱”和“以次充好”

  • PINGPONG技术文档:数据分析三剑客+MySQL+可视化套餐+量化分析+Hadoop仓库

  • 用以太坊承载的比特币,还只是起步阶段

  • AI视觉大牛朱松纯担任北大AI研究院院长,提出通过构建大任务平台走向通用AI

  • 还不懂Redis?看完这个故事就明白了!



推荐阅读
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Swarm挖矿项目的发行机构有哪些组成?如何看待BZZ币未来的价值?相关的知识,希望对你有一定的参考价值。据小编了解,S ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • 不晓得始终在币圈或者矿圈的大佬们,最近是不是常常在探讨无关Swarm主网行将上线的事件?而后就是Swarm挖矿、bzz矿机、挖bzz币等相干的话题,毕竟早前BTC跟以太坊还有fil币的呈现很多人都错过了,这次好不容易遇到,置信大家都不想错过这次Swarm头矿、bzz头矿,可能入场的人也比以往要多。那么你晓得Swarm物理节点矿机怎 ... [详细]
author-avatar
Gemini强强Gemini
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有