You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
figure out how to use a p2p backend (e.g. dat) to store and retrieve data from
handle bookmarks/files
bookmark internal/external files
load and cache external files into browser storage (automatically/when clicked)
create new file/folder
rename/delete/move the file
bookmark a file (save it)
browse files or folders
send/export (download to computer, upload to swarm, share to github, create gist, share via local network (from coworker), share link on social media, send to a person)
receive/import (from computer, from swarm/github, get through local network)
Deploy dat-gateway and gonna research on hyperdrive
Try to push a file and save on DAT
import/exports/sync user data (dat/git/...)
implement a demo filesystem.html to use wallet-data
find a way to load a dat in the browser (coding a proof of concept)
find a way to create a new dat in the browser (coding a proof of concept)
find a way to publish and pin a dat from the browser to another browser (e.g. mobile phone)
find a way to pin/publish a browser created in the browser to a public dat server
find a way to backup all relevant dat keys to control a dat to disk (e.g. import/export key files)
find a way to deploy a new dat server from the browser
build a dat management tool for all dats i control or participate in
"dream scenario"
1. user comes to static page **our app** (=static website)
2. user interacts with app and any data is cached locally
3. user decides he likes the app and wants to keep his data
4. user clicks button: e.g. "backup your data" => This starts the process
5. user selects one of the freemium gateway deployment options
* e.g.: heroku, zeit.co, aws, google cloud, azure, ..., hashbase?
* (custom), e.g. rasberry pi, etc..
* (local) download desktop, comandline client, beaker browser, ...
6. user remote controls/configures "their" gateway through
* **our app** (=static website)
* or a "browser extension" or other **app** we program specifically to manage the gateway
7. user can now use many other app's using their "dat data" by just connecting their dat address
message format { from, path, type, body }
from = [<string> key1, <number> id1]
where key1 is the address or path of the sender
and id1 is unique message identifier for all the messages that sender sends
path = [<string> key2, <number> id2]
where key2 is the address or path of the receipient (e.g. "foo/bar/baz")
and id2 is like a reference to an earlier message if there was one
type = <string> (e.g. "get", "set", "list", ....)
to indicate what kind of event or command or request, etc... the message is all about
body = <any>
is any kind of content appropriate for the given "type"
Use Cases:
Users create all kinds of data while going through the workshops lessons & exercises in the skilltree.
For example:
Writing a smart contract
Deploying a smart contract to a network at a specific address
Users switch devices and might open the workshop app on their phone and on different computers or use different browsers or even clear browser caches or re-install their systems, but they don't want to lose their data and they want to continue smoothly when switching devices.
For example:
A user starts a workshop at home on their laptop and wants to continue later using a tablet
Data:
Users work create and change files and folders during workshops
Users generate many actions or activities that go into some kind of journal
Idea:
Maybe we could try to use git or dat in mainstream browsers like (firefox/chrome/...) to enable users to store their Data and sove the two Use Cases listed above.
about iframes
localStorage has a data limit. If we store a lot we will need to switch later to indexeddb :-)
all localStorage data is stored in the browser on the laptop of user 1
all localStorage data is stored in the browser on the laptop of user 2
Link Collection:
A bunch of links to content that might be interesting and eventually useful to solve this issue
The private dat key is stored locally in each browser
you connect both browsers through a generic signalhub
you make one browser talk to the other via webRTC to (e.g. authorize each other to write to those other dats)
...but essentially this kind of dat network and all the dat data stays in browsers - even though they might possibly sync to a dat client running on my desktop (outside the browser) if i run some kind of bridge ...
Is that how it works?
and also - can dats be used on static websites hosted on different domains?
answer
Heya (sorry, I don’t check DMs often). Yes, in a nutshell. Although you don’t have to store the secret key if you use deterministic keys (e.g., derived from a high-entropy passphrase) and also you can bridge to native clients that replicate over TCP by using the always-on node as a relay via WebSocket.
DATs can be used with static sites. It’s what I’m doing my blog currently (dat://ar.al – open that using Beaker Browser) :) But Hypha is the opposite of that. Everything is client-side and the always-on node (“server” in centralised parlance) is an untrusted/unprivileged node.
@alincode there is another issue we discovered that needs work, but it would probably be a project you would need to work on together with @ookangzheng
The skilltree module
The skilltree module is supposed to be a module which can be used to create a static githubpage which shows the skilltree (=curriculum) of connected existing workshop pages, so you could navigate between them.
It consists of two aspects
discover and crawl the workshop.json files of existing workshops to get the "skilltree data"
was a very early experiment using user owned github repos instead of user owned dats and using the github api ..to play a little bit with new ways of doing things.
Maybe it can serve as "inspiration", but that's it.
about matrix
i don't know a lot about matrix (but isn't it a federated system too?), but i'm hoping we could manage to use https://cabal-club.github.io/ in the browser in the future instead or in parallel to gitter
@todo
filesystem.html
to usewallet-data
"dream scenario"
message format
{ from, path, type, body }
from = [<string> key1, <number> id1]
key1
is the address or path of the senderid1
is unique message identifier for all the messages that sender sendspath = [<string> key2, <number> id2]
key2
is the address or path of the receipient (e.g."foo/bar/baz"
)id2
is like a reference to an earlier message if there was onetype = <string>
(e.g."get"
,"set"
,"list"
, ....)body = <any>
Use Cases:
For example:
For example:
Data:
Idea:
Maybe we could try to use git or dat in mainstream browsers like (firefox/chrome/...) to enable users to store their
Data
and sove the twoUse Cases
listed above.about iframes
localStorage
has a data limit. If we store a lot we will need to switch later toindexeddb
:-)localStorage
data is stored in the browser on the laptop ofuser 1
localStorage
data is stored in the browser on the laptop ofuser 2
Link Collection:
A bunch of links to content that might be interesting and eventually useful to solve this issue
Allow for pluggable types of remotes isomorphic-git/isomorphic-git#97
https://github.com/sammacbeth/dat-fox
https://github.com/benwiley4000/hypergit/blob/master/ARCHITECTURE.md
"Finalize" basic architecture before beginning implementation benwiley4000/hypergit#1
Special consideration for how to deploy new business logic benwiley4000/hypergit#2
https://github.com/RangerMauve/dat-archive-web
https://github.com/RangerMauve/dat-gateway
Plausibility of simple Chrome or Firefox plugins dat-ecosystem-archive/datproject-discussions#84
https://github.com/goonism/hyperproxy/
https://github.com/hughisaacs2/datpart
https://github.com/ipfs-shipyard/ipfs-companion/blob/1d537c78b2d81fae8abc2c995c517205287b2c64/add-on/src/lib/ipfs-request.js#L21
DatArchive API sammacbeth/dat-fox#1
https://github.com/RangerMauve/dat-polyfill
I think there are some ideas
Scenario
Useful lib
2.http://y-js.org/
3.https://github.com/nikolaiwarner/cabal-desktop-mini
answer
How can you "log in" on another computer? beakerbrowser/fritter#14
Allow for pluggable types of remotes isomorphic-git/isomorphic-git#97
https://github.com/mafintosh/hyperdb
https://github.com/mafintosh/hyperdrive/#api (Load the file)
Waiting for dat-multiwriter
The text was updated successfully, but these errors were encountered: