当前位置: 首页 > 软件库 > 数据库相关 > >

godless

Peer-to-peer lite database over IPFS
授权协议 MIT License
开发语言 Google Go
所属分类 数据库相关
软件类型 开源软件
地区 不详
投 递 者 燕寒
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Godless

A toy peer-to-peer database for the future internet.

What does that mean?

Godless is a way of sharing structured data between computers without using servers or the cloud.

Check the wiki for a tutorial.

Try it!

Run IPFS:

$ ipfs daemon

Run server:

$ godless init
$ godless store server --early

The --early flag indicates that the server should fail if it can find no running IPFS daemon.

Now send queries to the server using godless query console:

> join books rows (@key=book50, authorName="EL James", publisher="Don't wanna know")

QmPbufdDocGLc1jxmyLwMXdNpnj4Gsgs5Ve5ky4at5DFYx
Waited 278.572562ms for response from server.

> select books where str_eq(@key, "book50")

--------------------------------------------------
| Table | Row    | Entry      | Point            |
--------------------------------------------------
| books | book50 | authorName | EL James         |
| books | book50 | publisher  | Don't wanna know |
--------------------------------------------------
Found 2 Namespace Entries.
Waited 29.798089ms for response from server.

How does it work?

Data is stored in a CRDT namespace suitable for sharing between peers. This is indexed using an another datastructure which itself is a CRDT. Indexes and namespaces are arranged into a canonical order and saved to the Interplanetary File System.

The datastructures can be reassembled at another peer by looking up the IPFS hash. Index hashes are shared over PubSub.

Crucially, data is signed using strong cryptography. You can specify a key in your queries to sign (in joins) or verify (in selects). This is crucial to maintaining data consistency in the face of arbitrary joins by other net users :).

Installing

Godless is currently in alpha stage for Linux only.

For everyone

Check out the releases page.

Download signatures from teoma.org.uk.

For Golang programmers

go get -u github.com/johnny-morrice/godless/godless
  • analysis of words: godless 无神论者,不信神的, missionaries 传教士 devout 虔诚的,真诚的 piety  虔诚 perdition 毁灭 mess:混乱,困境,把事情弄脏;mess up :乱搞,弄乱;mess  hall 食堂;mess with:打扰,乱搞;mess around胡闹,弄乱 christian: 基督教徒,信基督教徒的 visas

 相关资料
  • 当我在网上做研究时,似乎人们也在这个堆栈中使用SQS,SNS会将信息放在SQS上,然后SQS会调用Lambda。 我想我想理解的是在这方面对SQS的需求。这增加了什么价值?换句话说,直接从SNS调用我的Lambda会失去什么?

  • .to( target:Object, duration:Number, vars:Object, position:* ) : * 添加一个TweenLite.to()动画到时间轴,相当于add(TweenLite.to(...)),以下两行产生相同的结果: myTimeline.add( TweenLite.to(element, 1, {left:100, opacity:0.5}) );

  • 我正在测试在服务器上设置一个Git(EC2-Linux,Amazon)。一切都很好,但我做了一件事,我不能复制,我想理解。 我正在遵循以下Git在服务器https://git-scm.com/book/en/v2/git-on-the-server-setting-up-the-server上的教程 我创建了4个用户进行测试,并在服务器上创建了他们的ssh密钥。(User Git)在/home/G

  • 描述 (Description) 如果你想打开浮动操作按钮酥料饼的点击,那么你可以使用floating-button-to-popover类。 例子 (Example) 下面的示例指定使用变形过渡(创建的具有平滑的动画内容的外观)在酥料饼的内容的呈现 - <!DOCTYPE html> <html> <head> <meta name = "viewport" content =

  • 一个无后端待办事项应用,数据用 LeanCloud 进行同步。 简介 这是一个无后端的待办事项应用,数据用 LeanCloud 进行同步,也是我的第三个 iOS 项目。 做这个项目的初衷是想比较全面地体现我的前后端水平,该同步算法从整理思路到实现 95% 的代码(意为接近稳定)花了两周时间,除思路外没有任何代码可以参考(反正我是没有找到... 界面设计来源于 DO ,部分素材和界面为本人设计。 该

  • to-markdown 是一个用 JavaScript 编写的将 HTML 文档转成 Markdown 格式的库。 示例代码: var toMarkdown = require('to-markdown').toMarkdown;console.log(toMarkdown('<b>Hello world</b>'));// Will output '**Hello world**' 在线演示:h

  • 问题内容: I have 10 jenkins job in folder . I have created a new sub folder in folder . How to move the 10 jobs from folder to the subfolder ? 问题答案: First, you need to install cloudbees folder plugin then

  • Returns subpath of a given element from given start and end lengths (only works for path elements) Parameters fromnumberlength, in pixels, from the start ofthe path to the start of the segment tonumbe