Live data from Hacker News

Peer-to-Peer Databases for the Decentralized Web

orbitdb.org

71–80 of 84 posts

Re: Peer-to-Peer Databases for the Decentralized Web

#71
post #62
post #56

I like this, but I feel its important to point out that this is effectively unusable by the very people who would benefit from it most: non-web developers. If this were a drop-in C/C++ library, I'd use it immediately in my native apps and adopt it as a widespread platform technology. I want to be able to do this, and if it were truly a working technology, I'd put it in every single app I use. But as a Node/JS library…

Amen to this! I too got really excited until I saw it was JavaScript. For me to use it I'd have to link against some sort of JavaScript interpreter (ew) and probably incur performance penalties shoveling the data too and fro. Can't we just have nice, normal libraries like we used to? Tools that require me to install a huge new build system, package management ( cough golang cough ) just to run quickly lose their appe…

The answer is the same as it always was: you'll have "normal" libraries when somebody writes them (it could even be you). Most new application development relies on web servers, where JavaScript is very relevant and normal.

Re: Peer-to-Peer Databases for the Decentralized Web

#72
post #56

I like this, but I feel its important to point out that this is effectively unusable by the very people who would benefit from it most: non-web developers. If this were a drop-in C/C++ library, I'd use it immediately in my native apps and adopt it as a widespread platform technology. I want to be able to do this, and if it were truly a working technology, I'd put it in every single app I use. But as a Node/JS library…

Something like https://dqlite.io/ would fit your needs? It's distributed thanks to Raft with all consequences. It's not viable to call it P2P as it lacks node discovery et cetera. Yet, it's distributed.

Re: Peer-to-Peer Databases for the Decentralized Web

#74
post #52

Earlier quoted context omitted.

Honestly, the biggest pain point around adding ARM support is that it'll be a pain to create ARM-compatible packages for all the apps. I definitely think the largest unanswered question in ARM support for Sandstorm.io is "how do we make it convenient for app developers to release packages for multiple architectures?" That being said, I'd be super excited at the possible expansion of the community ARM support would br…

I'm not a security engineer, so the seccomp stuff isn't something I know a lot about. Given that limited experience. whitelist sounds more sensible than blacklist, and I presume that it would be more portable on different architectures. I have a lot more confidence when it comes to tooling, packaging, testing, developer environments, CI/CD systems etc. since that is the kind of thing I do at work. Within that old Git…

Yeah, my understanding is when ARM support is added, we'll add a field to the pkgdef file that you can specify architecture. Any apps missing that field can be assumed to be x64.

spk and vagrant-spk definitely take the "grab what the app needs" approach, but Ian is in agreement with you in wanting something more reproducible and well-defined. (vagrant-spk is mostly reproducible because VMs made with it should be roughly the same, spk is not remotely reproducible).

docker-spk is a tool he wrote that creates Sandstorm app packages from specially-crafted Docker images (you still have to be writing a Sandstorm package here, it won't convert a traditional Dockerfile to work on Sandstorm, for instance). He has also repeatedly expressed interest in building a nix-spk tool that uses Nix packages. ;)

Re: Peer-to-Peer Databases for the Decentralized Web

#75
post #56

I like this, but I feel its important to point out that this is effectively unusable by the very people who would benefit from it most: non-web developers. If this were a drop-in C/C++ library, I'd use it immediately in my native apps and adopt it as a widespread platform technology. I want to be able to do this, and if it were truly a working technology, I'd put it in every single app I use. But as a Node/JS library…

There is a Go implementation available https://github.com/berty/go-orbit-db

Re: Peer-to-Peer Databases for the Decentralized Web

#76
post #56

I like this, but I feel its important to point out that this is effectively unusable by the very people who would benefit from it most: non-web developers. If this were a drop-in C/C++ library, I'd use it immediately in my native apps and adopt it as a widespread platform technology. I want to be able to do this, and if it were truly a working technology, I'd put it in every single app I use. But as a Node/JS library…

What is the definition of a toy language? That’s a new term for me. I (thankfully) haven’t written C++ in over 20 years, but if I had to drop back down to a low level language, it’d be C or a compile-to-C language. C is the language these things should target, in my opinion.

Systems developer here. I made an account to answer this, because the OP is 100% right about this.

A toy language is one which you do not allow to escape the play-room/sandbox, you play with it (because hey, you can, so why not..), but you would not actually use it.

The reason this is important for decentralization efforts, is that the OS should be doing this.

Sure, paint the pretty UI, but expose the entire thing to common OS-level abstractions, please, and then host the scripts, kthxbai ..

(A non-toy language is one you are very comfortable shipping. Javascript is that for a lot of people. Not for systems programmers = it is an application execution environment, not a place for things which must operate, as part of the system, without much user hassle ..)

Re: Peer-to-Peer Databases for the Decentralized Web

#77

Earlier quoted context omitted.

Would you call torrents decentralised?

To an extent, although many times you still rely on a centralized tracker and dedicated seeds. Unless you belong to a private tracker where users are forced to maintain certain ratios to continue using a service, then in most cases a torrent will end up like an IPFS site without any pins. If IPFS provided the ability to track pins from users of a site like private trackers, and provide rewards or some incentive then…

Most torrent clients also "pin" content a user downloads by default, with configuration options to stop seeding once certain conditions or upload ratios are met.

Does IPFS support something similar? e.g. pin this content until I have a 5:1 upload to download ratio

---

I 100% agree on the ability to track pins. I want to see organizations be able to easily peer/pin content from other orgs they endorse; and for end users to be able to follow and help peer for organizations they support.

I want something like Youtube where I choose who appears as in the related videos on my channel and can be a peer to hosting them; and where my users can help to peer my videos (and I can help peer others).

As an end user, my client (or local server/cache) would prefetch the content I follow both to be a peer and to have it ready for me to access.

This would also help with locality of data; if 4 people in my household watch the same video or channel they would be able to get the content locally. If I'm an organization with a physical location, users connected to my network can fetch the content on a local link.

Re: Peer-to-Peer Databases for the Decentralized Web

#78

Earlier quoted context omitted.

Not really, if you want something to be perpetually available in any p2p network you need to ensure that you're still hosting it. That goes for torrents, ed2k, freenet, and ipfs too.

This isn't true of most blockchain p2p networks, eg, Bitcoin. Anything uploaded to these lasts as long as the entire network does. The reason this works is it costs some amount to initially print the data to the network, limiting that kind of abuse.

And because there is money involved in making it last as long as the entire network.

Once the monetary reasons drop then so does the data.

Re: Peer-to-Peer Databases for the Decentralized Web

#79
post #65

Earlier quoted context omitted.

Not really, if you want something to be perpetually available in any p2p network you need to ensure that you're still hosting it. That goes for torrents, ed2k, freenet, and ipfs too.

I'm not claiming the reality of P2P always matches the ideas behind it. And surely you're not saying centralized hosting being a strict requirement was what people had in mind for P2P?

I'm saying perpetual availability wasn't what what people had in mind for P2P.

Re: Peer-to-Peer Databases for the Decentralized Web

#80
post #51
post #48

Earlier quoted context omitted.

I've been doing some experimentation along the same lines ... I've got a small proof-of-concept working where I can sync Earthstar databases between multiple Sandstorm instances - each "grain" acts as a pub, and you can use "webkeys" as pubs. I'm using powerbox-http-proxy to request capabilities for connections, so it works even with fully sandboxed client-side networking (ALLOW_LEGACY_RELAXED_CSP=false). It's madden…

I was wondering about that. I suppose, things that the user wants to share publicly can be done so (via powerbox), but otherwise, everything else would not be. Are you using the grain model for each individual files to be shared? (I looked up your email and I would like to continue chatting about this).

Everything is in a grain, but I think the Earthstar applications could be decomposed to just handle a single document at a time.

I made a quick demo recording and updated the README with a link.

Video is here: https://bafybeih6kkv4rgmfada4kfc5thmtzheiurq7ck5uz4rchqkrxw7...

Post reply on HN