What prevents a node in the network from intercepting discovery keys, and then rebroadcasting them to look for the data? Is there some handshake that happens where the requesting peer has to prove they have/know the public key? Does this happen in hypercore?
dat-gitter
(matrixbot) `icarito` y-js is pretty cool
(matrixbot) `icarito` Jappy IDE has a y-js websocket implementation for collaborative writing
(matrixbot) `icarito` *Jappy IDE is my web IDE project that I work on
(matrixbot) `icarito` *mostly transpiled python web ide for teaching children to program
(matrixbot) `icarito` I'm working on adding some support for saving projects as DAT files
(matrixbot) `icarito` i mean dat archives
(matrixbot) `icarito` I look forward to adding collaborative text editing features over dat
notrhodey
prettymuchbryce: I'm pretty sure the discovery key is a hash of the dat archive public key, and you prbly need to prove knowledge of the public key after some crypto-handshake. the dat whitepaper is really great and concise.
dat-gitter
(RangerMauve) prettymuchbryce: the dat url is used for encrypting the connection to peers. So if they're broadcasting but don't have the original url, they won't be able to talk to incoming connections.
prettymuchbryce
@notrhodey The paper does not mention this detail unfortunately, unless I have somehow completely missed it.
@RangerMuave Ah ok. Interesting. Thanks for that information.
RangerMauve* (Sorry I got your name wrong. :P)
dat-gitter
(RangerMauve) Its a pretty cool property of the network. Its one of the reasons it's got me so excited. The discovery mechanism is still vulnerable to what's called a Sybil attack where a person can block a resource by creating a huge number of fake advertisements which means real peers become hard to find and make the data unavailable
technil joined the channel
prettymuchbryce
Yes I am aware of Sybil attacks. The possibility is present in many peer-to-peer networks.
I'm trying to learn more about how peers find and connect with each other in DAT at the implementation level so I have been digging through hypercore, bittorrent-dht, hypercore-protocol.
dat-gitter
(RangerMauve) I think the difference here relative to Bittorrent is that a person can fork a day and suddenly whatever files are in it are available again. The separation of content from advertising prevent efficient reuse of data, but I think it will be useful to circumvent Sybil attacks.
prettymuchbryce
I understand what you mean. It also enables better privacy in the network.
It's interesting because in IPFS people have created search engines by writing a server which sits in the DHT and listens for requests in order to build metadata about different pieces of content, but it seems this is not possible with dat.
dat-gitter
(RangerMauve) Yeah, with Dat you pretty much have to rely on crawlers. Which I think is a good thing, honestly.
prettymuchbryce
Yes it's definitely a good thing.
Are you building something on top of dat?
notrhodey
prettymuchbryce: you can find some more details about peer discovery in the npm module 'hyper-discovery', this is used under-the-hood by dat. https://www.npmjs.com/package/hyperdiscovery
oops, drop the '-'
dat-gitter
(RangerMauve) prettymuchbryce: At the moment I'm working on getting the APIs in the Beaker Browser to work in other browsers by building a "dat-polyfill" and working with the Bunsen Browser folks to get stuff working on Android (and then iOS).
(RangerMauve) Other than that I'm sketching out my ideas for an encrypted and p2p messaging app.
khubo joined the channel
prettymuchbryce
@notrhodey Yeah I have been digging through these modules. hyper-discovery is relatively small. It seems most of the logic lives in discovery-swarm, discovery-channel, bittorrent-dht. I'm trying to learn more about the responsibility of each module. There are quite a few. :)
notrhodey
prettymuchbryce: sweet, sounds like you're on the right path!
prettymuchbryce
@RangerMauve Very interesting. How will the polyfill work? Will you use a browser extension?
A browser-based p2p messaging app would be great as well.
dat-gitter
(RangerMauve) prettymuchbryce: You start a gateway (or use a public one) that lets you sync hypercores over WS and load Dat files in the browser with HTTP. https://github.com/RangerMauve/dat-gateway Then the DatArchive API is implemented over that, and optionally you can have a parent iframe that stores dat data between multiple origins. https://github.com/RangerMauve/dat-polyfill
(RangerMauve) There's the `dat-fox` extension that takes a different approch for Firefox
(RangerMauve) My goal is to make use of gateways to at least give casual users access to the network, then have a path forward to have them install local gateways for added privacy, and push browsers to give us better APIs to eventually have this as a PWA, or get evrything within a single WebExtension.
tyrannus joined the channel
(RangerMauve) Basically, I want to make this technology available to as many people as possible through the simplest means possible. :P
jhand
prettymuchbryce: if something is missing in whitepaper, check out DEPs too. We're getting more methodical about the specs in that repo: https://github.com/datprotocol/DEPs
@jhand Ah. Someone told me to check these DEPs out once and I completely spaced it. This is super helpful. Thanks.
@RangerMauve I understand the gateway. So anyone could start their own gateway and host it which would allow users on the normal web to access the dat network through the gateway proxy. Makes sense. I don't think I understand the polyfill piece, though.
dat-gitter
(RangerMauve) prettymuchbryce: Basically, it implements the DatArchive API from Beaker and lets you create new dats and read existing ones with JS.
(RangerMauve) The gateway will inject it into served pages so that apps targeting Beaker will Just Work (tm)
prettymuchbryce
Ah I understand now!
Very cool. Will you start your own public gateway when it is finished?
dat-gitter
(RangerMauve) prettymuchbryce: I already have one running on http://gateway.mauve.moe:3000 but it's just for testing (hence the lack of HTTPS)
(RangerMauve) There's already been a bunch of gateways made, but their main problems are that 1) They serve from the same domain so absolute `/` urls break, 2) They don't support the Dat Archive API
prettymuchbryce
Nice! I'll be sure to keep an eye on this project.
dat-gitter
(RangerMauve) I want to enable my non technical friends to use it by the end of the month so I can get my office to do a hackathon
todrobbins joined the channel
notrhodey
can someone help me understand the difference between the key you import using `dat keys import` and the keys sitting in `~/.dat/secret_keys`? I created an archive on HostA, then cloned it on HostB, then deleted it on HostA, then cloned it on HostA, and now the archive is not writable from HostA even though I never touched my `~/.dat/secret_keys` directory.
tyrannus has quit
tyrannus joined the channel
millette has quit
millette joined the channel
tyrannus has quit
kernkern joined the channel
rtn joined the channel
son0p joined the channel
kernkern has quit
technil joined the channel
dat-gitter
(matrixbot) `icarito` RangerMauve (Gitter): that's very cool! I want to use it!
icarito joined the channel
icarito
Hi!
mafintosh
notrhodey: hi
icarito: also hi :)
icarito: saw your network comments, I'm hacking all next week to try and improve it. Mind if I dm you to test some things?
icarito
nice to greet you ! working on adding Dat support for my learning IDE and loving it!
mafintosh, sure!
i live with children so my times are interspersed but I'd love to help
mafintosh
notrhodey: there is a file indicating if the archive is writable. I don't think we have an api to write it but if you 'touch .dat/metadata.ogd' if should be writable if you have the secret key
icarito: ya no worries if you're busy. will ping you next week prob :)
mafintosh: thanks! I'll test this out :) appreciate the quick reply!
noffle
mafintosh: hey, are you using https://www.npmjs.com/package/multifeed ? multi-hypercore is a mouthful and I think it does basically what multifeed would do; I'd appreciate if I could use the name
tyrannus has quit
tyrannus joined the channel
pfrazee
mafintosh: interesting, youll need to tell me more
damons joined the channel
icarito
is there a way for me to delete files I've recently added to .datignore from an archive? I'm sharing them with dat cli.
I don't want them to be deleted from the filesystem just ignored from the archive.
e.g. I have a directory which is actually shared as a different dat (my data dat)
so I want to read `workspace/dat.json` to be able to reach the corresponding data dat but I don't want to have the actual data in the main website dat
cblgh
mafintosh: that'd be interesting
mafintosh
noffle: I'm not using atm. You can have it :)
cblgh
as a random aside im currently reading up on stream stuff so that i can make decent stuff efficiently (shoutout 2 hyperdb for the final push towards learning streams)
mafintosh
noffle: will add you when I'm on my laptop
noffle
raaad
lmk
todrobbins joined the channel
mafintosh
cblgh: nice
cblgh
streeeeeeeaaaaaams
going through substack's old workshopper, it's p rad
domanic joined the channel
karissa
Icarito I’m not sure, if it was already added to the dat then I think only adding it to the datignore won’t delete it.