@what @cwebber let me know if this helps: we're trying to do for p2p, decentralized apps what things like rails and django did for web 2.0 apps. that is: we want to give you a technology stack that lets you focus on the business logic of your app and have the output be both secure and decentralized.
I can highly recommend taking a look at the pear runtime. If you are familiar with nodejs javascript, all it takes is:
`npm install pear -g`
and then
`pear run pear://runtime`
to get started. Just follow instructions.
This runtime is part of the @dat_ecosystem and JS was choosen to exactly provide an easy way for anyone to get started with p2p.
an example cross platform app is https://keet.io
runtime docs are here https://docs.pears.com
have fun
@serapath @what @cwebber @dat_ecosystem I am looking at the docs and it appears to be blockchain based, or at least uses something similar? is that correct? specifically looking at hypercore as it appears to be the central component https://docs.pears.com/building-blocks/hypercore
@dthompson @serapath @what @cwebber
dat started in 2013 and is a 501c3 public good organisation. the initial dat grew into a protocol, then into a project, then into a foundation hosting multiple projecys, into an ecosystem of projects with the dat a.k.a hyper stack having its own peer to peer runtime, much closer to the original nodejs vision of the early days.
The dat stack or hyper-stack including hypercore is open source and does not and will never use any blockchain.
@dat_ecosystem @serapath @what @cwebber thanks for clarifying. is it correct though that hypercore is the foundational piece here? I see "append-only log" and "signed merkle tree" in the project readme.
@dthompson @dat_ecosystem @what @cwebber
The foundational piece is hard to say in a hyper modular ecosystem.
If i would need to list the main pieces, i'd say its the interaction between the following modules:
p2p networking:
1. hyperdht
2. hyperswarm
3. hyperdht-relay
data replication protocol:
1. hypercore
2. corestore
data structures
1. hyperbee
2. hyperblob
3. hyperdrive
4. hyperdb
multiwriter
1. autobase
There are many more useful modules build and maintained by many ecosystem devs
@dthompson @dat_ecosystem @what @cwebber
And the most interesting way to start using them is probably the `bare runtime` if you want something low level
...or the pear runtime if you want to build cross platform apps and have a more electron like batteries included runtime.
pear runtime extends bare runtime
https://keet.io is an example app built with the stack and does not involve ANY servers or ANY cloud. ...it features text, image and file sgaring, video and audio calls
@serapath @dat_ecosystem @what @cwebber I found this tutorial which was helpful for understanding things a little better. https://docs.pears.com/guides/making-a-pear-desktop-app
I see that networking uses dht: hyperswarm -> hyperdht -> dht-rpc
what's the serialization format for messages (peer.write in the tutorial)? is it json?
@dthompson @dat_ecosystem @what @cwebber
all connections are streaming based on
https://github.com/mafintosh/streamx
hypercore and others use protomux
https://github.com/holepunchto/protomux
connectiins are end to end encrypted with noise
https://github.com/holepunchto/hyperswarm-secret-stream
for encoding of protomux messages it uses
https://www.npmjs.com/package/compact-encoding
@dthompson @dat_ecosystem @what @cwebber
you can do json if you want.
in hypercore its binary blocks ...encoded however you like. and its all streaming