lgierth changed the topic of #ipfs to: go-ipfs v0.4.5-rc4 is up: https://dist.ipfs.io/go-ipfs | Week 5+6: 1) IPLD https://git.io/vDkS7 2) CI/CD https://git.io/vDk9v 3) Orbit https://git.io/vDk9U | Roadmap: https://waffle.io/ipfs/roadmaps | IPFS, the InterPlanetary FileSystem: https://github.com/ipfs/ipfs | FAQ: https://git.io/voEh8 | Logs: https://botbot.me/freenode/ipfs/ | Code of Conduct: https://git.io/vVBS0
<Kubuxu> AphelionZ: we have updated the hash of that archive
<Kubuxu> Qmb8wsGZNXt5VXZh1pEmYynjB6Euqpq3HYyeAdw2vScTkQ
<AphelionZ> ah, thanks!
<AphelionZ> that seems to be working
<AphelionZ> pretty slow though, still. I guess i gotta get that sweet sweet bitswap
s_kunk has quit [Ping timeout: 240 seconds]
maxlath has quit [Quit: maxlath]
matoro has quit [Ping timeout: 255 seconds]
<demize> Kubuxu: Cool, thanks.
<demize> Kubuxu: Also, topic is out of date :p
Kubuxu changed the topic of #ipfs to: go-ipfs v0.4.5 is out: https://dist.ipfs.io/go-ipfs | Week 5+6: 1) IPLD https://git.io/vDkS7 2) CI/CD https://git.io/vDk9v 3) Orbit https://git.io/vDk9U | Roadmap: https://waffle.io/ipfs/roadmaps | IPFS, the InterPlanetary FileSystem: https://github.com/ipfs/ipfs | FAQ: https://git.io/voEh8 | Logs: https://botbot.me/freenode/ipfs/ | Code of Conduct: https://git.io/vVBS0
<demize> ❤
<Kubuxu> distributions page isn't up yet
<Kubuxu> but you probably build it on your own don't you?
<demize> Yeah
Oatmeal has quit [Quit: Suzie says, "TTFNs!"]
tilgovi has quit [Ping timeout: 260 seconds]
<Kubuxu> let it rebuild, if it is green then, we are OK
fleeky_ has joined #ipfs
s_kunk has joined #ipfs
arkimedes has joined #ipfs
<Kubuxu> whyrusleeping: also your gx publish is 40MiB, it could be 3MiB
<MikeFair> Kubuxu: Is there an example of how to serve ipfs the way ipfs.io does
fleeky__ has quit [Ping timeout: 276 seconds]
<MikeFair> Something like "Unpack this zip file in the folder you want to be the top of your ipfs link"
<MikeFair> Or even better: "run ipfs get /ipns/ipfs.io/serve_ipfs" in the directory you want to install it in
matoro has joined #ipfs
<demize> Kubuxu: Pushed, btw.
<Kubuxu> <3
tilgovi has joined #ipfs
<whyrusleeping> Kubuxu: wait, why?
<lgierth> test/bin/ stuff
<Kubuxu> because you published test/bin
<Kubuxu> and other crap
<whyrusleeping> ooooooh
<lgierth> :]
<Kubuxu> git clean -fd
<Kubuxu> git clean -Xfd
<whyrusleeping> and git clean -df doesnt catch that
<whyrusleeping> dammit
<lgierth> -fdx
<Kubuxu> yeah you have to do -Xfd
<Kubuxu> to remove ignored files
<lgierth> ah yeah capital -X is better
<Kubuxu> imho your is better
<Kubuxu> :p
anewuser has joined #ipfs
<Kubuxu> We could shave off 400KiB by removing sharness lib
<Kubuxu> but I won't be annoying
<lgierth> well then add a few seconds to ci duration ;)
<Kubuxu> not really
<Kubuxu> as CI doesn't use gx published version
<lgierth> oh right yeah
<lgierth> i think it's good to have a mostly complete package
<lgierth> that you can run tests on etc.
<lgierth> the fix for long gx install runs is having local ipfs daemons
<lgierth> local-ish
<Kubuxu> I mean
<Kubuxu> you are expected to download this sharness lib
<Kubuxu> I would save it would be best if we could link the gx package to git state
<Kubuxu> <3
<lgierth> hah word
<Kubuxu> s/save/say/
<lgierth> moar dogfeeding
<lgierth> !pin QmSgGJwC8a6ZCSW3ayWkx2unjw2PXUXjHYc3QiHHzQkLy3 dist.ipfs.io go-ipfs v0.4.5
<pinbot> now pinning on 8 nodes
<MikeFair> (Sorry to break in an aside; I wanted to give ipld a whirl and the examples on ipld.io show fetching data using an executable called "ipld" where does that executable come from?)
<lgierth> sorry about that, ipld.io is a bit outdated -- right now i'm thinking i should maybe take it down
<lgierth> check github.com/ipld/specs
<lgierth> the go-ipfs command is `ipfs dag`
<pinbot> pinned on 8 of 8 nodes (0 failures) -- https://ipfs.io/ipfs/QmSgGJwC8a6ZCSW3ayWkx2unjw2PXUXjHYc3QiHHzQkLy3
bastianilso has quit [Quit: bastianilso]
<MikeFair> No worries; but maybe a note in the readme.md of /ipld/ of where to look and an example of doing {a:{"/":{"link":"hash"}} -> db 'B'
<MikeFair> I would never have connected ipfs dag <-> ipld :)
<lgierth> whyrusleeping daviddias[m]: do you think it's cool to take ipld.io offline? i feel like no info is better than wrong info
<MikeFair> lgierth: Actually it was quite helpful to set my expectations of how it works
<MikeFair> And there's only a couple lines of example commands; unless the examples are all wrong too
<lgierth> not sure-- i'm still loading it :)
<MikeFair> hehe
<lgierth> anyhow the more up-to-date version is here: https://github.com/ipld/specs/tree/master/ipld
wallacoloo_____ has quit [Quit: wallacoloo_____]
<Kubuxu> whyrusleeping: just fixed the makefiles
<MikeFair> I wonder if there's some kind of cron script that does: git clone $ipld_repo; md2html README.md > index.html
pent has quit [Read error: Connection reset by peer]
arkimedes has quit [Ping timeout: 240 seconds]
pent has joined #ipfs
<lgierth> there sure is
arkimedes has joined #ipfs
<lgierth> ok i think the only things wrong are the example commands
<lgierth> we have this tendency to write down "ideal" code examples
<lgierth> without any indication of whether that stuff is actually implemented
<lgierth> sorry about that, it's pretty annoying
<whyrusleeping> yeah...
<whyrusleeping> "let me make up this command"
<MikeFair> I totally get it's a WIP and enjoy the optimistic targets ;)
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has left #ipfs [#ipfs]
<whyrusleeping> Kubuxu: you there?
<Kubuxu> yeah
<MikeFair> Heck; I posted a suggestion Issue that equates to: When you roll up the changes from linked database to fix the links; also include "Summary Data" (which became the output from a set of map/reduce functions on the child database) on the link object in the parent so it isn't completely without information about what's after the link
<lgierth> you're free to build your data structures however you want with IPLD
<lgierth> the (hash,name,size) links are from the past (merkledag)
<lgierth> and the hashes in ipld links even include info about what type of data it is
<MikeFair> lgierth: Well it would be this: { "contact": {"/": {"link":"someHash", "indexData": {"name": "@lgierth"}} }
<MikeFair> then when I did: /contact/name
<MikeFair> Ordinarily it would need to cross the link
<MikeFair> But the indexData provides "name" field; so it can not do the full retrieval of the linked db
<lgierth> first, i think it's just {"contact":{"/":"somehash"}} :)
<Kubuxu> whyrusleeping: you wanted something?
<lgierth> and yeah you can just add more data in that link object. {"/":"somehash","size":12345,"somethingelse":["foo","bar"]}
<whyrusleeping> Kubuxu: yeah, just checkig that the makefile thing was ready to go
<lgierth> (nevermind that the object is called "link" in the second code example
<lgierth> (the "pseudo link object" example)
<MikeFair> right; I knew that, thanks ;)
<Kubuxu> whyrusleeping: wait
<MikeFair> So then the only change I'm looking for is automated indexData management :)
<lgierth> MikeFair: sorry if i sound scatterbrained about it, ipld hasn't really been my focus in the past few weeks :)
* MikeFair nods. Totally get it; I'll let you guys focus on publishing while I look at ipfs dag
<lgierth> that can just be managed by your code, when you build that data
<MikeFair> Distributed database will be updated by distributed people and distributed code
arkimedes has quit [Ping timeout: 264 seconds]
<MikeFair> I don't trust the other authors to "clean up" ;)
tabrath has quit [Ping timeout: 258 seconds]
* whyrusleeping waits
<whyrusleeping> Kubuxu: you wanna squash any of that down?
<Kubuxu> not really, they are logical changes, I skipped one feature (commit number), I left note to reimpl it and forgot about it
cemerick has joined #ipfs
<Kubuxu> fixed
<Kubuxu> whyrusleeping: ^^
<daviddias> lgierth: sounds like what you want is a page that says 'new page coming soon'
cemerick has quit [Ping timeout: 255 seconds]
cemerick has joined #ipfs
<MikeFair> It totally just hit me that what I'm wanting/needing next is are plugin modules that gets fired up with ipfs daemon (an idea stolen from FreeNet)
<MikeFair> Something that can watch for the changes and execute stuff
<lgierth> daviddias: or an http redirect to ipld/specs/tree/master/ipld
<MikeFair> (and that others can suck into running on their nodes too)
<lgierth> mh -- you mean listening for IPNS changes?
<daviddias> lgierth: I don't think that spec is better
<lgierth> mmmh yeah
<lgierth> yeeah it has the same imaginary commands
<MikeFair> lgierth: Primarily; but ipld changes too (which might just be an ipns change)
<whyrusleeping> Kubuxu: alright, is it really good to go now?
<Kubuxu> yes
<whyrusleeping> kay
<lgierth> MikeFair: ipld changes? do you mean something like tail -f, but for blocks that the node is fetching/creating?
<lgierth> s/blocks/objects/
<MikeFair> lgierth: Objects of interest
<Kubuxu> when you merge it, start re-basing PRs onto it, I hope to have the pipeline running on Monday
<MikeFair> lgierth: Like my data structures that myself and others are allowed to update from their local nodes
<MikeFair> lgierth: Publications of files under ipns nodes; I mean it just boil down to ipns changes; but I'm not certain that's the only use case atm
<MikeFair> lgierth: Using IPLD, mimic CouchDB REST API
<lgierth> you can share an IPNS key (via the ipns-pub tool, not via go-ipfs), but IPNS hasn't really been made for publish-many cases yet
<MikeFair> for example; so this would be an HTTP proxy that launches with ipfs daemon
<lgierth> ah, couchdb <3
<lgierth> _changes
<MikeFair> _changes; map/reduce indexes
<lgierth> yeah
<MikeFair> validation scripts
<MikeFair> (in that model there'd be a place where anyone could "post/write" their changes; these agents would then act as servers to suck in those postings, validate them, then publish to the official "read" ipns location
<MikeFair> Something like /ipns/[clusterpeerhash]/incoming
<MikeFair> But the key part is that I can "ipfs add module [somehash]" which then gets wired into the event architecture
<lgierth> mh, word, it'd be really interesting to take couchdb's api and have it based off ipfs
<MikeFair> I've already written my own code to compute the Couch _rev key
<lgierth> i wrote a soundcloud<->couchdb replicator once :)
<lgierth> including replication checkpoints and all that
<MikeFair> in fact; you could just take the IPLD hash and use that as the _rev key
<lgierth> yeah i think _rev and _id are opaque
<lgierth> just needs to be "sortable" for mvcc
<MikeFair> exactly
<MikeFair> There is some confusion when replicating between nodes on _rev hash disagreement for the same sequence
<MikeFair> (it'll generate a conflict object)
<MikeFair> I put out a recommendation that in that case; have the local system recompute the hash of the incoming object before generating the conflict object
<MikeFair> because of exactly this "intersystem opaque hash" case
<MikeFair> (when everyone computes their _rev hash the same it isn't an issue; but the truth is (and not even within the official CouchDB line of servers) it doesn't work that way
<MikeFair> I also wrote up a workflow for safely merging conflicting objects when the user tried to fix the conflict object by updating the data on the two documents to be the same
<MikeFair> It's mentally easier for a human being to "copy/paste/edit" to make the two conflicting documents be the same and save them; then to fix the right one and delete the wrong one
<MikeFair> s/two/N
arpu has quit [Ping timeout: 240 seconds]
<MikeFair> To make that work; you'd need an online automated agent that's constantly looking for these things and executing
<MikeFair> It also begins heading torward something really experimental I'd like to play with; it's less expensive on the system to move my code and send me the results then it is to move the data
<MikeFair> but that's freaky scary
<MikeFair> But it would literally be more like a "web crawler"; an agent that could run around the system; burning up bitSwap credits following a path to the peers that have the blocks of interest
<MikeFair> for now I'd just take a CouchDB proxy server ;)
<MikeFair> s/take/go for
cwill has quit [Ping timeout: 240 seconds]
cwill has joined #ipfs
arpu has joined #ipfs
dryajov1 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
tilgovi has quit [Ping timeout: 240 seconds]
Akaibu has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
pfrazee has quit [Ping timeout: 240 seconds]
pfrazee has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
Xe has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
alu has quit [Disconnected by services]
tilgovi has joined #ipfs
alu has joined #ipfs
aquentson has quit [Ping timeout: 276 seconds]
dryajov1 has joined #ipfs
dignifiedquire has quit [Quit: Connection closed for inactivity]
dryajov1 has quit [Client Quit]
pfrazee has quit [Ping timeout: 252 seconds]
pfrazee has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
tilgovi has quit [Ping timeout: 255 seconds]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
pfrazee has quit [Ping timeout: 276 seconds]
pfrazee has joined #ipfs
tmg has quit [Ping timeout: 255 seconds]
anewuser has quit [Read error: Connection reset by peer]
anewuser has joined #ipfs
slothbag has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
pfrazee has quit [Ping timeout: 240 seconds]
mguentner has quit [Quit: WeeChat 1.6]
anewuser has quit [Quit: anewuser]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
mguentner has joined #ipfs
pfrazee has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
pfrazee has quit [Ping timeout: 256 seconds]
Foxcool_ has joined #ipfs
mguentner2 has joined #ipfs
dryajov1 has joined #ipfs
mguentner has quit [Ping timeout: 255 seconds]
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
<AphelionZ> hi again, how do I set the CORS headers on the daemon? The ipfs config commands google led me to don't seem to be doing the trick, even after restarting the daemon
dryajov1 has quit [Client Quit]
* MikeFair listens to the crickets chirp. :)
<MikeFair> Wish I knew :)
<AphelionZ> womp womp
dryajov1 has joined #ipfs
<AphelionZ> its ok, they were busy with mission critical stuff earlier in here
<AphelionZ> it looks like my changes were reflected, checking via ipfs config show...
dryajov1 has quit [Client Quit]
<whyrusleeping> AphelionZ: youll need to restart your daemon
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
aquentson has joined #ipfs
anewuser has joined #ipfs
<MikeFair> whyrusleeping: So I'm really digging on the whole daemon plugins concept; I haven't looked at the code; but do you think it'd be moderately feasible to hook some 3rd party modules into the ipfs daemon processing loop?
<MikeFair> It'd be really helpful for this theoretical distributed database API concept I have;
<MikeFair> nm; I'll work with haad and the IPLD stuff
MikeFair has quit [Read error: Connection reset by peer]
FiveBroDeepBook has joined #ipfs
wallacoloo_____ has joined #ipfs
FiveBroDeepBook has quit [Excess Flood]
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has quit [Excess Flood]
muvlon has quit [Ping timeout: 245 seconds]
cyanobacteria has quit [Quit: Konversation terminated!]
muvlon has joined #ipfs
anewuser has quit [Quit: anewuser]
slothbag has quit [Quit: Leaving.]
jedahan has joined #ipfs
Foxcool_ has quit [Ping timeout: 240 seconds]
tmg has joined #ipfs
chris613 has quit [Quit: Leaving.]
Aranjedeath has quit [Quit: Three sheets to the wind]
jceb[m] has joined #ipfs
aquentson1 has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
aquentson has quit [Ping timeout: 264 seconds]
Oatmeal has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
jedahan has quit [Read error: Connection reset by peer]
jedahan_ has joined #ipfs
Pharyngeal has quit [Ping timeout: 252 seconds]
dignifiedquire has joined #ipfs
robattila256 has quit [Ping timeout: 258 seconds]
main has joined #ipfs
Caterpillar has joined #ipfs
main has quit [Quit: Leaving]
jedahan_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
john__ has joined #ipfs
john___ has joined #ipfs
ShalokShalom has quit [Read error: Connection reset by peer]
john1 has quit [Ping timeout: 260 seconds]
john__ has quit [Ping timeout: 255 seconds]
dbri1 has joined #ipfs
dbri has quit [Remote host closed the connection]
dbri1 has quit [Remote host closed the connection]
dbri has joined #ipfs
rendar has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
slothbag has joined #ipfs
dryajov1 has quit [Client Quit]
slothbag has left #ipfs [#ipfs]
dryajov1 has joined #ipfs
MikeFair has joined #ipfs
dryajov1 has quit [Client Quit]
maxlath has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
aquentson1 has quit [Ping timeout: 240 seconds]
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
cemerick has quit [Ping timeout: 255 seconds]
cemerick has joined #ipfs
dryajov1 has quit [Client Quit]
ShalokShalom has joined #ipfs
MikeFair has quit [Ping timeout: 264 seconds]
Oatmeal has quit [Remote host closed the connection]
MikeFair has joined #ipfs
ygrek has quit [Ping timeout: 264 seconds]
tabrath has joined #ipfs
espadrine has joined #ipfs
john has joined #ipfs
Caterpillar has quit [Quit: You were not made to live as brutes, but to follow virtue and knowledge.]
john is now known as Guest31438
john___ has quit [Ping timeout: 240 seconds]
wallacoloo_____ has quit [Quit: wallacoloo_____]
Mizzu has joined #ipfs
Caterpillar has joined #ipfs
palkeo has joined #ipfs
mildred1 has quit [Ping timeout: 252 seconds]
brabo has quit [Ping timeout: 264 seconds]
Akaibu has quit [Quit: Connection closed for inactivity]
ylp has quit [Quit: Leaving.]
ylp has joined #ipfs
Foxcool_ has joined #ipfs
mrBen2k2k2k has joined #ipfs
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has left #ipfs [#ipfs]
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has left #ipfs [#ipfs]
<AphelionZ> whyrusleeping: i did restart it. Im just trying to call the http api from a browser
<AphelionZ> Still getting 403s no cors header
ZaZ has joined #ipfs
eshon[m] has joined #ipfs
<AphelionZ> and my code:
brabo has joined #ipfs
tabrath has quit [Ping timeout: 240 seconds]
ralphtheninja[m] has joined #ipfs
<ralphtheninja[m]> o/
tabrath has joined #ipfs
<ianopolous> congrats on the release everyone!
* MikeFair does the wave. o \o \o/ o/ o
<Stskeeps> g/g izh
<MikeFair> It's finally just hitting me that an ipfs daemon might have a to present an immutatable namespace and repond with redirects to the mutable ipfs nodes
<MikeFair> using http
<MikeFair> So http://localhost:[ipfsport]/some/object/path -> HTTP 302 -> ipfs://someHash
<MikeFair> Or http://localhost:[ipfsport]/some/object/path -> HTTP 302 -> http:[ipfsport]/some/object/path?ipfs=someHash
* MikeFair shrugs "WIP"
<NeoTeo> congrats on 0.4.5 \o/ great update.
<Stskeeps> /g izh
<Stskeeps> .. ignroe me
apiarian has quit [Read error: Connection reset by peer]
apiarian has joined #ipfs
<AphelionZ> congrats everybody!
<MikeFair> hey did someone actually do that data.gov ipfs dump?
<MikeFair> I forgot where I saw that some team was going to test/attempt to load some decently large portion of the site publications into ipfs
<AphelionZ> thats good. they / we should do that with the climatemirror.org stuff before it's destroyed
<MikeFair> Question on "pinning"; if I pin a Hash; does my node attempt to pin the entire tree of hashes in the DAG starting at that point; or can it somehow walk the tree finding the least held hashes in the swarm and request/push those; then repeat
<MikeFair> (having to copy/paste/deal with these hash strings makes think of trying to use a file system by only referencing iNode numbers.)
aquentson has joined #ipfs
ShalokShalom has quit [Remote host closed the connection]
JPLaurin has joined #ipfs
ZaZ has quit [Read error: Connection reset by peer]
ianopolous has quit [Ping timeout: 276 seconds]
<AphelionZ> if I have a curl call like curl -F file=@myfile "http://localhost:5001/api/" how do I do the file=@myfile bit with the fetch api?
screensaver has joined #ipfs
<AphelionZ> better question - whats the best way to call the /dag/put http api from the browser?
<AphelionZ> im so close to finsihing my thing
<AphelionZ> im just getting File argument 'object data' is required
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
tmg has quit [Ping timeout: 252 seconds]
<AphelionZ> is there any documentation at least for /dag/put?
A124 has quit [Ping timeout: 264 seconds]
A124 has joined #ipfs
ShalokShalom has joined #ipfs
verri has quit [Quit: leaving]
<AphelionZ> im trying something like this:
espadrine has quit [Ping timeout: 240 seconds]
<kythyria[m]> Does unixfs have the mechanisms needed for a gateway to support range requests?
cemerick has quit [Ping timeout: 255 seconds]
cemerick has joined #ipfs
<kythyria[m]> (ie, can you load just the middle of a file by byte position without starting from the beginning)
AkhILman has joined #ipfs
ladron` has joined #ipfs
ladron has quit [Ping timeout: 256 seconds]
<AphelionZ> Kubuxu: whyrusleeping let me know when you're back
<AphelionZ> if i can just get help with this last bit I think I can launch my app :D
<Kubuxu> AphelionZ: there is js-ipfs-api
<Kubuxu> it should be quite easy to implement dag handling there
<Kubuxu> this would be the cleanest way
<AphelionZ> Kubuxu: what im building is a interplanetary pastebin
<AphelionZ> would it make sense to use dag for that?
<AphelionZ> or should i use objects?
<Kubuxu> I would use files
<AphelionZ> ok
<Kubuxu> no add option though
<AphelionZ> looks good!
<MikeFair> kythyria[m], there are ways to get a HashCode that represents just those bytes; but the existing tools aren't designed for that atm
<kythyria[m]> Hmm
<MikeFair> kythyria[m]: Easiest way would be [tool to cat/dump that section] > file_section; ipfs add file_section
<kythyria[m]> That'd duplicate the section unless you used rabin fingerprints, though?
<MikeFair> kythyria[m]: My command line foo is low; but I'm pretty confident you can pipe the bytes directly to ipfs add --
<Kubuxu> MikeFair: if you are interested just in HTTP api
<Kubuxu> then the gateway supports ragnes
<MikeFair> kythyria[m]: The bytes are deduplicated; you can add them as many times as you want and it won't increase the storage
<Kubuxu> MikeFair: this depends, but generally ture
<MikeFair> Kubuxu: (yes I'm overgeneralizing ;) )
<MikeFair> As long as the beginning and ending of the block breakdown is on teh same alignment right
<MikeFair> ?
<kythyria[m]> If the section isn't aligned on a chunk boundary (and you aren't using rabin fingerprints) you'll get duplicate chunks for the exact reason that rabin fingerprints are implemented.
<kythyria[m]> Presumably; hence rabin fingerprints.
<MikeFair> kythyria[m]: So why/how do you think this would be any different if you made a file versus cat the blocks from the middle?
* kythyria[m] remembers thinking about a similar question for bittorrent, and IIRC Steam is documented as being most efficient at patching when the patch is mostly file appends.
<kythyria[m]> It's more a question of being able to request efficiently.
<kythyria[m]> If you have a format that has huge files, but it's reasonable to just read a bit out the middle.
<MikeFair> kythyria[m]: Oh yeah; you can totally just request those blocks
<MikeFair> kythyria[m]: You would use the merkle DAG info to figure out what they were first; then just get those hashes
<kythyria[m]> Can you start from the hash that will get you the entire file and a byte range, and end up with which blocks to request, though?
cemerick has quit [Ping timeout: 255 seconds]
<kythyria[m]> Ah, so it has ranges included?
<MikeFair> kythyria[m]: By using the sizing information in the metadata on the blocks; yes
<kythyria[m]> Ahhh.
<MikeFair> kythyria[m]: Each block has two sections; (1) The raw data; and (2) a list of links
bastianilso has joined #ipfs
<MikeFair> I don't totally have the tree hierarchy mapped out in my head yet; it's a directed acyclic graph (aka not just linear list of links); but it's completely navigable
<MikeFair> Kubuxu: What were you thinking on the HTTP REST API?
<MikeFair> Kubuxu: looks like some of your thought didn't come through
<Kubuxu> the `localhost:8080/ipfs/Qm...AAA` supports range and seek requests
<MikeFair> I guess since it's acyclic; it's easier to think of it as an unbalanced tree
<Kubuxu> allowing you to download only parts of the file
<MikeFair> oh!
* MikeFair points kythyria[m] at what Kubuxu just said. "You can just do that!" :)
<AphelionZ> Kubuxu: what did you use for filws paths in your pastebin
<AphelionZ> files*
<Kubuxu> window.fragemt holds IPFS path of a fole
<Kubuxu> s/fole/file
<MikeFair> Kubuxu: So I'm understanding the DAG properly; you can create whatever kind of "raw_data" section you want (up to 256bytes (or 1MB docs aren't clear/a bit confusing)) and give it whatever address you want
<Kubuxu> yes but you will get generated HASH of it
<Kubuxu> then you can combine that hash and the address you gave it
<Kubuxu> to get your raw section back
<AphelionZ> also whats the difference between a dag put, an object put, and a file write :D
chris613 has joined #ipfs
<Kubuxu> file write is for files as it name suggests, object is for internal layer used for files and directories, dag is new API for IPLD that we will be shifting to
<MikeFair> Hmm not sure how that combining part works; sounds cool
<Kubuxu> you just use the HASH to resolve linking block that contains map of string keys to different hashes
* MikeFair played with IPLD *a little* earlier.
Mateon1 has quit [Ping timeout: 240 seconds]
<AphelionZ> objects will be deprecated for dag?
<MikeFair> So the addres I made up is a null raw_data section with a link to the content containing blocks
<Kubuxu> yeah, object supports only unixfs format
robattila256 has joined #ipfs
<AphelionZ> gotcha, cool
<AphelionZ> thanks
mildred1 has joined #ipfs
<MikeFair> Kubuxu: Or is it more the case that I can't make up an address; what I can do is make a head block with content that doesn't change (like the hash of public key ;) ); and use that address to store links on downstream content
<MikeFair> ?
<Kubuxu> ipfs name publish
<Kubuxu> ipfs name resolve
<Kubuxu> /ipns/Qm...AAA
<MikeFair> Kubuxu: Right; I was just connecting how those worked to our discussion
<MikeFair> But if the content of the block isn't changing; just the links; why the need for ipns versus ipfs
<Kubuxu> because links are the content
<MikeFair> ok I get that; but I still not seeing how you get that consistently linked to a new downstream thing if you can't make up your own address
<MikeFair> unless the ipns graph "works differently"
AkhILman has quit [Ping timeout: 255 seconds]
<MikeFair> and excludes links as content
<Kubuxu> no IPNS is just a one links
<Kubuxu> s/links/link
<Kubuxu> from hash of a public key
<Kubuxu> to IPFS content hash
<Kubuxu> which can be updated
<MikeFair> Right; I'm looking forward to seeing/learning why/how that update isn't moving its address :)
<AphelionZ> almost there...
<AphelionZ> this.ipfs.files.write('/hello', [new File(['hello'], "xxx")], {create: true}).then(
<MikeFair> I totally get "Hash this key" always get the same hash; I'm not seeing/clear on how "publishing" which I'm assuming does something to the links on that block, doesn't changethe address just as much as changing the public key itself would
<AphelionZ> what did I do wrong there ^^
<AphelionZ> in node.js it would be a new Buffer but I don't have that in the browser
<__uguu__> when will ipfs's unixfs expose something like epoll?
<MikeFair> I think you have localStorage and something like a browser.files object which prompts the user to pick a spot
<MikeFair> you can then write to that object
<MikeFair> AphelionZ: Or did I misunderstand the need
<AphelionZ> kinda but im still gonna try base64 encoding it anyway :p
<MikeFair> AphelionZ: I htink I misunderstood; you're upload to ipfs and testing success; not trying to fetch from it
<AphelionZ> yes, correct
<MikeFair> ignore my ^ comments ;)
<AphelionZ> :)
<AphelionZ> thats what I'm working on
<AphelionZ> just trying to make that "upload forever" button work
iain has joined #ipfs
DevPump[m] has left #ipfs ["User left"]
<iain> I'm writing a simple go p2p app, to find other peers and send simple messages between them.
<iain> question: How are we supposed to find other peers. I'm using the Routing (dht) one right now
<AphelionZ> oooh very close
<MikeFair> iain: Are you looking for specific peers?
pfrazee has joined #ipfs
<iain> yeah. the same peers that are on the same key
<iain> is this right way to do this? or should I use a swarm (which I don't completely understand yet)
ZaZ has joined #ipfs
<MikeFair> iain: There's a couple ways to do it; othere here can speak better to it
<MikeFair> but I'd like at orbit-db and the ipfs PubSub stuff
<MikeFair> iain: In your case every has teh same key; that gives you an /ipns/HashAddress that every can share
<iain> ah
<MikeFair> iain: You just need to get notified when someone updates it
<MikeFair> (PubSub)
<iain> ah okay
<MikeFair> my first thought was you published the hash of a file which contained the list of all peers involved
<iain> nope. its just a common hash they find each other on
<MikeFair> if your peer node isn't listed; update the file and publish to the /ipns/KayHash
<iain> like a name
<MikeFair> s/KayHash/KeyHash
mildred1 has quit [Ping timeout: 256 seconds]
<iain> okay...
<MikeFair> peer in this case == node id
<iain> I'm wondering.... is there no example anywhere, someone who has done this before. The closest I found was https://github.com/ipfs/examples/tree/master/examples/api/service
<MikeFair> That gets you the list of all the active node ids in your group
<MikeFair> Look at Orbit-db
<iain> ok :)
<MikeFair> There was a chat server link here recently
<iain> yeah. and something similar should be possible in Go
<MikeFair> That's showing two nodes on the same web page talking to each other via Orbit DB
<iain> oh that's so cool :D
mildred1 has joined #ipfs
<MikeFair> I haven't gotten into doing any of the "Streaming" type stuff yet
<MikeFair> iain: I think IPLD might another way to do it
<MikeFair> iain: IPLD is basically a traversable distributed JSON object
<iain> okay...
<MikeFair> iain: So at the ipns address for the sahred key would be the "database" address
<MikeFair> iain: All the peers would open that
<muvlon> btw
<MikeFair> They'd then create their own JSON document that described themselves
<muvlon> how does orbitdb do authentication?
aquentson1 has joined #ipfs
<MikeFair> iain: and add it to ipfs to get the hash of that document
mguentner2 is now known as mguentner
<MikeFair> iain: They'd then update the master database with the link to the document they just created
<MikeFair> using their peer node id as the key; or just appending it to an array
<iain> okay... and what's stopping a peer from ruining that shared db?
<iain> like permissions wise would it not create problems?
<muvlon> my question exactly
<MikeFair> iain: Given that you gave all the peers the same priv/pub key; nothing
pfrazee has quit [Ping timeout: 255 seconds]
<MikeFair> but they are trying to collaborate
<AphelionZ> i dunno, the fact that the content in ipfs is write once, and write ONLY once for the same content hash has weird implications
aquentson has quit [Ping timeout: 240 seconds]
<AphelionZ> hmmm ok so I wrote a file using the js api...
<AphelionZ> what exactly did that do? I was expecting to get a key back. I still dont get this haha
<MikeFair> AphelionZ: Woot!!! \o/
<AphelionZ> MikeFair: yes! very good news!
<AphelionZ> but im still confused :(
<MikeFair> iain: tell me more specifially what you're thinking
aquentson has joined #ipfs
<MikeFair> and muvlon: you too for security
<MikeFair> how do you think it should it work?
<MikeFair> Err; what is the behavior you think should be accomplishable
<iain> yeah. Well right now I'm just looking for a good/easy enough way to find other peers. Now I understand correctly from you that there are multiple ways
<MikeFair> Anyone who has a pub/priv keypair can get a fixed hashAddress that changeable content can be associated to
<iain> and that using the dht networking on would not be the best
<iain> one*
<AphelionZ> iain: are you just looking to kinda explore ipfs and look around?
<iain> sort of yeah. I wanted to make a simple proof of concept
<iain> see if I could get two peers to talk to each other without me giving their exact address
<AphelionZ> oh cool
<iain> in go that is. no js
<MikeFair> iain: It seems like you have app concept; and your thought was that all the users would connect via IPFS to swarm and find each other
<AphelionZ> yeah you're not as brave (or dumb) as me
aquentson1 has quit [Ping timeout: 264 seconds]
<iain> MikeFair: true
<MikeFair> iain: is that what you were going for; and the thing they knew was they were all using the same app
<AphelionZ> but so... base level question here. if I do a `files write` and then I see the file under its path in `ipfs ls`
<AphelionZ> what exactly have I accomplished
<MikeFair> AphelionZ: Anyone within IPFS can get that HASH key / data out
<AphelionZ> but I didn't get a hash
<MikeFair> stat the file
<MikeFair> ipfs files stat /file/path
<MikeFair> ipfs files stat /file/path --hash
<MikeFair> err ipfs files stat --hash /file/path
<MikeFair> to get just the hash id
<MikeFair> ipfs files is a link to the stuff on your local peer in a root filesystem like format
<AphelionZ> well I'll be
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has left #ipfs [#ipfs]
<AphelionZ> alright... hmmm
pfrazee has joined #ipfs
<MikeFair> Now you need to communicate that to the other party for them to retrieve the file
<AphelionZ> MikeFair: ok so can i say
<AphelionZ> QmPk5AgZgrDbsdXTWJfMVZQdWhpSLVU8Sb6n19SUyjSugR
<AphelionZ> can you see that now?
<MikeFair> And I'm now running ipfs get QmPk5AgZgrDbsdXTWJfMVZQdWhpSLVU8Sb6n19SUyjSugR
<MikeFair> And I'm now running ipfs get /ipfs/QmPk5AgZgrDbsdXTWJfMVZQdWhpSLVU8Sb6n19SUyjSugR
<AphelionZ> hehe
<MikeFair> and its thinking
<AphelionZ> i dont need to pin it or anything, right?
<iain> MikeFair: Reading floodsub right now. That looks quite good. It's experimental tho, but stable enough for me to play around with I assume
<AphelionZ> MikeFair: now we wait for you to find me and get the file over my crappy suburban DSL
<MikeFair> AphelionZ: I've also been using http://ipfs.io/ipfs/hashKey
<iain> Will that take care of my use case?
<iain> finding common peers around a topic
<AphelionZ> iain: great use case btw
* MikeFair cancels the get and reissues it as an ipfs ls
<iain> thx :$
<AphelionZ> I run a website for hydrologists
<MikeFair> AphelionZ: now you don't need to pin it; pinning it just means your local node won't purge it while its pinned
<AphelionZ> that would be really cool
<AphelionZ> how often does a local node purge?
<AphelionZ> does it purge even though the files are created locally
mildred1 has quit [Ping timeout: 240 seconds]
<muvlon> MikeFair, I think the bare minimum would be for orbitdb to not allow *every* user to basically do DELETE *
<MikeFair> AphelionZ: I haven't gotten that deep into it to say concretely; my understanding is that under certain conditions it wipes its slate clean to get back drive space or at user request to garbage collect
<AphelionZ> ah ok
<MikeFair> muvlon: Well; they kind of can't
<MikeFair> muvlon: If they do; then a responsible party just rolls it back
<MikeFair> muvlon: All versions of every change are always still in the system
<MikeFair> accessible by their hash id
<AphelionZ> it seems like another use case is like... as a ipfs supporter, i want to set up a long-standing server and allocate a certain amount of disk space to allow the system to autonomously fill it with crucial objects, so that the whole network runs faster / smoother
<muvlon> yes, but who gets to decide what's the "real" status of the db?
mildred1 has joined #ipfs
<AphelionZ> maybe it could store blocks instead of files so you never have true files, just chunks
<muvlon> there needs to be either an authentication system or a proof-of-work/stake/etc
<AphelionZ> so you dont get duped into storing illegal stuff
<MikeFair> muvlon: The owner of the private key that goes with the public key that the hash is made from
<muvlon> ah, alright
<MikeFair> muvlon: And that's only for the /ipns/ space
<muvlon> AphelionZ, you can't get duped into storing _anything_
<MikeFair> muvlon: in the /ipfs/ space every does by just uploading the content
<muvlon> ipfs wont put stuff on your computer that you didn't request
<MikeFair> s/every/everyone/
<AphelionZ> muvlon: im kinda saying it should haha
<MikeFair> muvlon: It will because it's sharing blocks to get credit in the system
<AphelionZ> optionally
<muvlon> oh that, sure
<AphelionZ> MikeFair: ok so it does do that
<muvlon> but having chunks of illegal stuff is no better than having files of illegal stuff
Foxcool_ has quit [Ping timeout: 240 seconds]
<AphelionZ> i mean clearly people are gonna put obnoxious stuff on here if they havent yet
<MikeFair> AphelionZ: might not be exactly working that way atm; but that's the intent; and by querying the state of the network you can find "weakly stored" hash ids and ask for them
<AphelionZ> MikeFair: thats's what ipfs refs local is?
<AphelionZ> like, i have 614 local refs but i've maybe written like 4 files
<muvlon> have you received any files?
<muvlon> also, 1 file can get turned into a lot of hashes, due to chunking
<MikeFair> AphelionZ: Those are blocks; chunks of files
<AphelionZ> are those the weakly stored ones you talked about?
<MikeFair> AphelionZ: If they only exist on your node; then yeah
espadrine has joined #ipfs
<AphelionZ> ok but the general question... "by simply running ipfs daemon and I helping the global ipfs supersystem?"
<MikeFair> Your node publishes a "provides" list
<AphelionZ> the answer is "yes, probably" right?
<MikeFair> exactly; "yes, probably"
<muvlon> to see everything you're actually pinning, do "ipfs pin ls"
<muvlon> those are the ones you're actually holding on to
<AphelionZ> muvlon: ok cool I have 13 of those, some indirect and some recursive
<muvlon> should be 4 recursive
<muvlon> those are the ones you explicitly added
<AphelionZ> ok 5 :)
<AphelionZ> but yes
<muvlon> indirect means they're pinned as a consequence of pinning something else
<AphelionZ> because... they're... blocks? not files?
<muvlon> if you add a file and it gets turned into 3 chunks, those 3 chunks get pinned indirectly
<muvlon> AphelionZ, they can be both
<muvlon> they're files in case you're pushing a directory
<AphelionZ> chunks is what i meant I think
<muvlon> but if you're only adding simple files, they'll be chunks
<MikeFair> muvlon: The bitSwap proposal (work in progress) handles the spamming concerns you were talking about; A peer keeps a credit score on other peers; it has no obligation to negotiate or share data or info with another peer
<muvlon> AphelionZ, are you adding with -w ?
<AphelionZ> no..
<MikeFair> That 5th might something related to his peer node id root
<AphelionZ> or i just added 5 files and miscounted
mildred1 has quit [Ping timeout: 255 seconds]
skinkitten has joined #ipfs
skinkitten_ has joined #ipfs
<muvlon> you can look at the content of each hash and figure that out
<AphelionZ> just via ipfs get?
<MikeFair> ipfs cat is likely easier to just look
<MikeFair> I think ls -v
pfrazee has quit [Ping timeout: 260 seconds]
iain_ has joined #ipfs
<MikeFair> iain (if you're still watching); Here's an interesting thought experiment; imagine you show up at a conference hall and everyone takes a seat; now everyone picks a number between 1 and 100
iain__ has joined #ipfs
<MikeFair> Each participant is then tasked with getting the seat numbers of everyone else who picked the same number as they did
<muvlon> just stay seated, people will come up and ask for your number
<MikeFair> There are lots of empty seats; and you can really only get their seat number by asking them
<iain__> MikeFair: pub&sub. would this work? https://github.com/iain17/dht-hello/blob/libp2p/p2p/app.go#L77
<muvlon> yes, so somebody will ask me :^)
<iain__> or is it better to use a swarm on a ipns hash?
<MikeFair> muvlon: If everyone simultaneously executed that strategy; it'd be oddly quiet
<MikeFair> :)
<muvlon> I'm booking on that not to happen
iain has quit [Ping timeout: 260 seconds]
<muvlon> of course I realize it's no solution
<MikeFair> muvlon: Well your answer is coding the bots on the swarm ;)
iain_ has quit [Ping timeout: 260 seconds]
<MikeFair> iain: I expect it to
<AphelionZ> ok here's another weird question
<iain__> okay
<AphelionZ> on my local filesystem, i can have two files, with different names
<AphelionZ> with the same content
FiveBroDeepBook has joined #ipfs
FiveBroDeepBook has left #ipfs [#ipfs]
<AphelionZ> those will have the same content hash, right?
<MikeFair> muvlon: So you might do something like: Odd number seats stay sitll; even number seats go ask :)
<MikeFair> AphelionZ: if they are actually the same file; yes
<muvlon> what's the objective though?
<muvlon> doing it as fast as possible? or with the fewest asks?
<AphelionZ> ok cool
<MikeFair> muvlon: THe random number you picked is a "Topic of Interest"
<AphelionZ> yeah they should be identical
<MikeFair> muvlon: So you're trying to getting into communication with the others members of your topic
<muvlon> what is the communication model though?
<muvlon> can I broadcast my topic? or is it only point-to-point?
<AphelionZ> I suppose I could use multihash and just generate my own keys to match
<MikeFair> muvlon: As fast as possible and with a way to prevent anyone from drowning everyone else out for any meaningful period of time
<AphelionZ> and then store the files under those names
<muvlon> so I can't expect people to cooperate?
<MikeFair> muvlon: It's whatever you can do hardware wise; it's best if you make a strategy for each model (as ipfs has)
<muvlon> not even those from the same topic?
<muvlon> hmm ok
<MikeFair> muvlon: Assume there are malicious actors
<MikeFair> muvlon: In general most people "want" to succeed at this
<MikeFair> so they'll cooperate; and you've communicated a strategy to the whole room beforehand
<muvlon> alright
<MikeFair> So maybe instead of being a butt in a seat; its better you're the MC trying to give people instructions for how to find each other
<MikeFair> For the most part; ipfs uses the model that each person uses a post-it note with what information they have about others; and what they are interested in
<AphelionZ> yeah i think by and large the number of bad actors vs the number of rational actors is the same as anywhere else in society
<AphelionZ> i.e. very low
<MikeFair> But enough to cause DOS
<AphelionZ> low and loud :)
<AphelionZ> especially if they are on twitter
<MikeFair> "The vocal minority"
anewuser has joined #ipfs
<MikeFair> but hey; all in all; I think it collectively works towards the general betterment of our condition on the planet
<muvlon> my first instinct would be to use MPI-style AllGather
<muvlon> but MPI is designed for 100% cooperative distributed systems
<muvlon> it does have some tolerance to faulty nodes, but not to malicious nodes
<MikeFair> muvlon: We all then pass these post-it notes around (and make more of them as we learn more information)
<MikeFair> muvlon: THre's the specific DHT algorithm for exactly who the people are that you hand your post-its off to next
JPLaurin has quit [Quit: Leaving]
<MikeFair> muvlon: In general it'd be safe to say that ipfs uses a scheme where if one of the digits in the information you receive, is the same as your seat number, then you should keep the information
<MikeFair> You keep all the information you see anyway; but you expect other seat numbers to take care of saving the things that don't share numbers close to your own
<muvlon> do you have a list of all occupied seats?
<muvlon> otherwise you're poking around in the dark, no?
<MikeFair> muvlon: no; but you can ask for all theseats your neighbors have seen; and so forth
<muvlon> oh ok
<MikeFair> and people move seats
<MikeFair> So you can get new neighbors
FiveBroDeepBook has joined #ipfs
<muvlon> yeah then it'd be best to flip each bit in your seat number once and see who's there
FiveBroDeepBook has left #ipfs [#ipfs]
<MikeFair> a "Seat Number" in this scenario is your "Peer Node Address"
<muvlon> i know
<MikeFair> So when you change seats; you have to start hunting again; (you can't change your physical seat location; aka your ip address; but you can change your logical position in the neighborhood)
<MikeFair> You can also occupy multiple logical seats
<MikeFair> But you have to be prepared to do the work for both
<muvlon> now what's this about logical seats?
<MikeFair> muvlon: Oh the actual location of your seat can't be changed (your networked location (ip address) is fixed in space)
<MikeFair> So instead of logical seat; let's say it's your name
<MikeFair> you can change your name even though you can't change your seat number
<MikeFair> that's a better way of describing it
<muvlon> if I change my name, would I not at least notify my neighbors?
<muvlon> otherwise that behavior seems outright malicious
<MikeFair> So you exchange names and topic ids with neighbors that have seat numbers near you
<muvlon> "near me" meaning hamming distance, yes?
<iain__> MikeFair: Weirdly enough. i'm only finding 'QmSdBtmNCzuX5ajNBA25CBDzTy3k3Jns4pB4pAV1Brq3AV'
<MikeFair> muvlon: near you meaning physical datalink
<iain__> MikeFair: client 1: http://take.ms/ZlDbi
<MikeFair> muvlon: ip connection
<MikeFair> in our scenario; people who can hear your talking voice
<iain__> MikeFair: client 2: http://take.ms/jBzei
<muvlon> that makes it even more complicated
<muvlon> now it's also about network topology :/
<MikeFair> it's about all these things; they're taken in layers; so when you see them talk about "multiaddress" that's the ipfs teams way of dealing with the various network topology options
<MikeFair> radio; serial link; ethernet switching; internet ip addresses
<MikeFair> carrier pigeon
<MikeFair> But you only have the actual bandwidth on the links you have
<muvlon> that's link layer, all of those are point-to-point
<muvlon> network topology is one layer up
<MikeFair> ethernet and ip can be point to multipoint
<muvlon> fair enough
<muvlon> either way, I think it's best to find a communication model first and *then* implement pubsub on top of it
<MikeFair> the point is that your network has particular characteristics that impact how you do this whole distributed comms thing
<MikeFair> the same strategy can't work in all cases
<MikeFair> Right that's the whole "names" thing
<MikeFair> Kademlia DHT is the core of it
<MikeFair> Based on your name; you communicate with other people close to your own name; by asking the people that can actually hear you to pass the note
<muvlon> ah, alright
<MikeFair> you specifically choose the person with the name closest towards the name of the person you're trying to reach
<MikeFair> That's the XOR routing techniques you may see mentioned
cemerick has joined #ipfs
<MikeFair> So as the information builds up; the information you're looking for is going to be stored with people that have names similar to that request
<MikeFair> and as the notes are being passed around; everyone is copying down the info
<muvlon> so far so good
<MikeFair> every so often someone takes a bio-break; dies; or gets new papers; or otherwise comes in newly to join the fray
<muvlon> so are you looking for a better way to decide which notes to pass to whom?
<MikeFair> As a class of problem; yes; but not something I'm actively working on
<MikeFair> I'm working on how do we use the notes more effectively to keep note passing to minimum; and succesfully use it effectively in applications
<MikeFair> and a big problem imho is the whole bootstrapping a peer group thing
<MikeFair> (the thing iain asked about)
<MikeFair> well not so much a "problem" but an interesting challenge with no identified "great" solution ye
<MikeFair> t
<muvlon> so the problem is to find someone to talk to in the first place?
<SchrodingersScat> ^ the human condition
<MikeFair> find the right person you're supposed to talk to
<MikeFair> SchrodingersScat: Haha! :)
<muvlon> which peers are the "right ones"?
<MikeFair> muvlon: application defined
<muvlon> alright
ianopolous has joined #ipfs
<MikeFair> muvlon: and everyone has a different opinion on that ;)
<MikeFair> Which is why it's so good to optimize for certain classes of use cases; like file sharing; streaming channels; hierachical structured data
<MikeFair> generally these things can be used to meet most application's requirements
jedahan has joined #ipfs
<MikeFair> So for example the model I'm advocating is one where the application doesn't see a network; it just sees a document tree
<MikeFair> and it looks local
<MikeFair> it changes this document to share it with others; and gets events that tell him that others have made as the local document changes are being made
<MikeFair> totally combined two sentences on that last line
<MikeFair> the application gets an event when the document gets updated from remote sources
<MikeFair> it's like getting a mouse click of a keyboard even
<MikeFair> s/of/or
<MikeFair> Coders know generally know how to update a local object -- that will trigger a side effect of sharing that info
<MikeFair> peers will magically appear in one section of the document
<MikeFair> that kind of thing
superluser[m] has quit [Ping timeout: 252 seconds]
patrickr[m] has quit [Ping timeout: 252 seconds]
<iain__> can we set any restrictions on the pub sub flood thing?
<iain__> like size limitations amount of messages per second
<Kubuxu> not currently, but you will only relay messages on channels you are subscribed to
maxlath has quit [Ping timeout: 252 seconds]
<iain__> true yeah
<MikeFair> iain: BTW congrats on getting that working!!!!
<iain__> but lets say there is someone on the network, wanting to do harm. he could just spam the network with crap
<iain__> thx :)
<MikeFair> iain: No different than any other network :)
<iain__> true.
<iain__> and the alternative was @MikeFair, to have a shared resource
<MikeFair> Basically you need to either shut them out of the conversation or move to a new channel
<iain__> yeah
<iain__> is there are way of blocking certain peer ids?
<iain__> cuz that would fix it
<MikeFair> moving to a new channel is generally more successful but you have to share the new channel info
Buli[m] has quit [Ping timeout: 240 seconds]
datenpunk[m] has quit [Ping timeout: 240 seconds]
tkorrison[m] has quit [Ping timeout: 240 seconds]
ntrn[m] has quit [Ping timeout: 240 seconds]
unilovelight[m] has quit [Ping timeout: 240 seconds]
M107262[m] has quit [Ping timeout: 240 seconds]
M-sol56 has quit [Ping timeout: 240 seconds]
dyce[m] has quit [Ping timeout: 240 seconds]
M-Shrike has quit [Ping timeout: 258 seconds]
krigare[m] has quit [Ping timeout: 258 seconds]
teufel7[m] has quit [Ping timeout: 258 seconds]
demyan[m] has quit [Ping timeout: 258 seconds]
Powersource has quit [Ping timeout: 258 seconds]
victor_mobile has quit [Ping timeout: 258 seconds]
am2on has quit [Ping timeout: 258 seconds]
gmanrwp[m] has quit [Ping timeout: 245 seconds]
MrAxilus[m] has quit [Ping timeout: 245 seconds]
saintaquinas[m] has quit [Ping timeout: 245 seconds]
M50574E[m] has quit [Ping timeout: 245 seconds]
sultan[m] has quit [Ping timeout: 245 seconds]
BlooAlien[m] has quit [Ping timeout: 245 seconds]
kxra[m] has quit [Ping timeout: 245 seconds]
cbHXBY1D[m] has quit [Ping timeout: 245 seconds]
SShrike has quit [Ping timeout: 245 seconds]
herzmeister[m] has quit [Ping timeout: 245 seconds]
M-anomie has quit [Ping timeout: 245 seconds]
<iain__> yep. which a smart attacker at that point could figure out and follow us, hmm
torarne has quit [Ping timeout: 245 seconds]
Remramm has quit [Ping timeout: 245 seconds]
musicmatze[m] has quit [Ping timeout: 255 seconds]
M-mubot has quit [Ping timeout: 255 seconds]
nop[m] has quit [Ping timeout: 255 seconds]
Quiark_ has quit [Ping timeout: 255 seconds]
M-oddvar has quit [Ping timeout: 255 seconds]
bart80[m] has quit [Ping timeout: 252 seconds]
WinterFox[m] has quit [Ping timeout: 252 seconds]
Scio[m] has quit [Ping timeout: 252 seconds]
jord[m] has quit [Ping timeout: 252 seconds]
Leviathanone[m] has quit [Ping timeout: 252 seconds]
na9da[m] has quit [Ping timeout: 252 seconds]
davidar has quit [Ping timeout: 252 seconds]
<MikeFair> that's bitswap's goal/purpose
bolton has quit [Ping timeout: 258 seconds]
hiq[m] has quit [Ping timeout: 255 seconds]
Matthew[m] has quit [Ping timeout: 255 seconds]
M-Dave has quit [Ping timeout: 256 seconds]
TheGillies has quit [Ping timeout: 256 seconds]
djokeefe[m] has quit [Ping timeout: 276 seconds]
M-BostonEnginer4 has quit [Ping timeout: 276 seconds]
cryptix has quit [Ping timeout: 276 seconds]
kythyria[m] has quit [Ping timeout: 276 seconds]
bb010g[m] has quit [Ping timeout: 276 seconds]
scde[m] has quit [Ping timeout: 264 seconds]
Franklyn[m] has quit [Ping timeout: 264 seconds]
Olivier[matrix] has quit [Ping timeout: 264 seconds]
alaeri[m] has quit [Ping timeout: 264 seconds]
kewde[m] has quit [Ping timeout: 255 seconds]
kzimmermann[m] has quit [Ping timeout: 255 seconds]
sudoreboot[m] has quit [Ping timeout: 255 seconds]
jsyn[m] has quit [Ping timeout: 255 seconds]
jfred[m] has quit [Ping timeout: 255 seconds]
<iain__> am I the only one seeing all these ping timeouts?
<MikeFair> iain: depends on the use case; if your channel is supposed to be openly discoverable; then yes
<MikeFair> iain: Nope. Netsplit! Wee!!!
<iain__> :P
dkx[m] has quit [Ping timeout: 276 seconds]
lugarius has quit [Ping timeout: 276 seconds]
M-martinklepsch has quit [Ping timeout: 276 seconds]
<Kubuxu> iain__: that is the reason 1. it is called floodsub 2. it is behind experimental flag
<MikeFair> or someone on the IRC network cleaning house
<iain__> yeah I figured so
vpham24[m] has quit [Ping timeout: 240 seconds]
<Kubuxu> it isn't resistant yet
spbike[m] has quit [Ping timeout: 256 seconds]
Guest123181[m] has quit [Ping timeout: 256 seconds]
Paul[m] has quit [Ping timeout: 256 seconds]
M-wldhx has quit [Ping timeout: 256 seconds]
hjoest[m] has quit [Ping timeout: 256 seconds]
qolop[m] has quit [Ping timeout: 256 seconds]
captainplanet[m] has quit [Ping timeout: 256 seconds]
NathanBraswell[m has quit [Ping timeout: 256 seconds]
jceb[m] has quit [Ping timeout: 256 seconds]
Guest118430[m] has quit [Ping timeout: 256 seconds]
tcrypt[m] has quit [Ping timeout: 256 seconds]
nala[m] has quit [Ping timeout: 256 seconds]
RedArmy[m] has quit [Ping timeout: 256 seconds]
M-Lambo has quit [Ping timeout: 256 seconds]
magog[m] has quit [Ping timeout: 256 seconds]
sa1[m] has quit [Ping timeout: 256 seconds]
wmo[m] has quit [Ping timeout: 256 seconds]
mwilcox[m] has quit [Ping timeout: 256 seconds]
Guest118378[m] has quit [Ping timeout: 256 seconds]
Polychrome[m] has quit [Ping timeout: 256 seconds]
M-mlt has quit [Ping timeout: 256 seconds]
basilgohar[m] has quit [Ping timeout: 256 seconds]
lsf[m] has quit [Ping timeout: 256 seconds]
M-ms has quit [Ping timeout: 256 seconds]
Chris[m] has quit [Ping timeout: 256 seconds]
M-krsiehl has quit [Ping timeout: 256 seconds]
M-Amandine has quit [Ping timeout: 256 seconds]
M-manveru has quit [Ping timeout: 256 seconds]
interfect[m] has quit [Ping timeout: 256 seconds]
max_power[m] has quit [Ping timeout: 256 seconds]
kegan[m] has quit [Ping timeout: 256 seconds]
chpio[m] has quit [Ping timeout: 256 seconds]
bgrayburn[m] has quit [Ping timeout: 256 seconds]
erikj` has quit [Ping timeout: 256 seconds]
silwol has quit [Ping timeout: 256 seconds]
Famicoman[m] has quit [Ping timeout: 256 seconds]
yugosalem[m] has quit [Ping timeout: 240 seconds]
Guest120746[m] has quit [Ping timeout: 240 seconds]
vd[m] has quit [Ping timeout: 240 seconds]
agumonkey[m] has quit [Ping timeout: 240 seconds]
Walter[m] has quit [Ping timeout: 240 seconds]
M[m]6 has quit [Ping timeout: 240 seconds]
Guest144866[m] has quit [Ping timeout: 240 seconds]
MawKKe[m] has quit [Ping timeout: 240 seconds]
BeautifulBash[m] has quit [Ping timeout: 240 seconds]
rplevy[m] has quit [Ping timeout: 240 seconds]
charlienyc[m] has quit [Ping timeout: 240 seconds]
jam[m] has quit [Ping timeout: 240 seconds]
luke-clifton[m] has quit [Ping timeout: 240 seconds]
kharybdis[m] has quit [Ping timeout: 240 seconds]
hansnust[m] has quit [Ping timeout: 240 seconds]
yuh96bbn[m] has quit [Ping timeout: 240 seconds]
gwillen[m] has quit [Ping timeout: 240 seconds]
liuweize[m] has quit [Ping timeout: 240 seconds]
AntoineM[m] has quit [Ping timeout: 240 seconds]
vishnuv[m] has quit [Ping timeout: 240 seconds]
airsickpayload[m has quit [Ping timeout: 240 seconds]
jugash[m] has quit [Ping timeout: 240 seconds]
joshb[m] has quit [Ping timeout: 240 seconds]
harlock[m] has quit [Ping timeout: 240 seconds]
stanko[m] has quit [Ping timeout: 240 seconds]
irx[m] has quit [Ping timeout: 240 seconds]
M-cameron has quit [Ping timeout: 240 seconds]
M-alien has quit [Ping timeout: 240 seconds]
maxlath[m] has quit [Ping timeout: 240 seconds]
PseudoPseu[m] has quit [Ping timeout: 245 seconds]
gendale[m] has quit [Ping timeout: 245 seconds]
firemound[m] has quit [Ping timeout: 245 seconds]
urhuruhurh[m] has quit [Ping timeout: 245 seconds]
dmholmes[m] has quit [Ping timeout: 245 seconds]
M-iav has quit [Ping timeout: 245 seconds]
igel[m] has quit [Ping timeout: 245 seconds]
M0--_[m] has quit [Ping timeout: 245 seconds]
aunix[m] has quit [Ping timeout: 245 seconds]
M-HirmeS has quit [Ping timeout: 245 seconds]
wfjsw[m] has quit [Ping timeout: 245 seconds]
digitalesnievana has quit [Ping timeout: 245 seconds]
sk23[m] has quit [Ping timeout: 245 seconds]
M-erwin has quit [Ping timeout: 245 seconds]
alx[m] has quit [Ping timeout: 245 seconds]
Yakomo[m] has quit [Ping timeout: 245 seconds]
mikkaworkscom[m] has quit [Ping timeout: 245 seconds]
Guest126462[m] has quit [Ping timeout: 245 seconds]
steven[m] has quit [Ping timeout: 245 seconds]
arzale[m] has quit [Ping timeout: 245 seconds]
graydon[m] has quit [Ping timeout: 245 seconds]
Guest75149[m] has quit [Ping timeout: 245 seconds]
m3ta[m] has quit [Ping timeout: 245 seconds]
alex4o[m] has quit [Ping timeout: 245 seconds]
Zedwick[m] has quit [Ping timeout: 245 seconds]
litebit[m] has quit [Ping timeout: 245 seconds]
M-TidyKoala has quit [Ping timeout: 245 seconds]
Guest125925[m] has quit [Ping timeout: 245 seconds]
lambert[m] has quit [Ping timeout: 245 seconds]
M-sraja has quit [Ping timeout: 245 seconds]
null_radix[m] has quit [Ping timeout: 245 seconds]
iwxzr[m] has quit [Ping timeout: 245 seconds]
frabrunelle has quit [Ping timeout: 245 seconds]
fil_redpill has quit [Ping timeout: 245 seconds]
Guest149624[m] has quit [Ping timeout: 258 seconds]
jpereira[m] has quit [Ping timeout: 258 seconds]
jbbr[m] has quit [Ping timeout: 258 seconds]
daviddias[m] has quit [Ping timeout: 258 seconds]
xtarget[m] has quit [Ping timeout: 258 seconds]
Guest147163[m] has quit [Ping timeout: 258 seconds]
mirek1337[m] has quit [Ping timeout: 258 seconds]
zwollenar[m] has quit [Ping timeout: 258 seconds]
ralphtheninja[m] has quit [Ping timeout: 258 seconds]
mojarra[m] has quit [Ping timeout: 258 seconds]
terence977[m] has quit [Ping timeout: 258 seconds]
Guest144612[m] has quit [Ping timeout: 258 seconds]
karambirMatrix has quit [Ping timeout: 258 seconds]
guaraqe[m] has quit [Ping timeout: 258 seconds]
stevelord[m] has quit [Ping timeout: 258 seconds]
Visevius[m] has quit [Ping timeout: 258 seconds]
Bloo[m] has quit [Ping timeout: 258 seconds]
xamino[m] has quit [Ping timeout: 258 seconds]
M-Guillaume has quit [Ping timeout: 258 seconds]
ztl8702[m] has quit [Ping timeout: 258 seconds]
fd0422b08[m] has quit [Ping timeout: 258 seconds]
disinibito[m] has quit [Ping timeout: 258 seconds]
M-javissimo has quit [Ping timeout: 258 seconds]
kekbringer[m] has quit [Ping timeout: 258 seconds]
b3[m] has quit [Ping timeout: 258 seconds]
Kenneth_Seelig[m has quit [Ping timeout: 258 seconds]
RasmusErik[m] has quit [Ping timeout: 258 seconds]
Guest75817[m] has quit [Ping timeout: 258 seconds]
cml[m] has quit [Ping timeout: 258 seconds]
karpodiem[m] has quit [Ping timeout: 258 seconds]
kumavis[m] has quit [Ping timeout: 258 seconds]
pakdeen[m] has quit [Ping timeout: 258 seconds]
Jackneill[m] has quit [Ping timeout: 258 seconds]
lnxw37[m] has quit [Ping timeout: 258 seconds]
brettrick[m] has quit [Ping timeout: 255 seconds]
ttk2[m] has quit [Ping timeout: 255 seconds]
stardot[m] has quit [Ping timeout: 255 seconds]
<iain__> yeah. just wondering if there is something I could do to make it so
sam[m] has quit [Ping timeout: 252 seconds]
mith[m] has quit [Ping timeout: 252 seconds]
joki[m] has quit [Ping timeout: 252 seconds]
Guest146683[m] has quit [Ping timeout: 252 seconds]
kalon[m] has quit [Ping timeout: 252 seconds]
MemeVillain[m] has quit [Ping timeout: 252 seconds]
M-brain has quit [Ping timeout: 252 seconds]
dz[m] has quit [Ping timeout: 252 seconds]
lueo[m] has quit [Ping timeout: 252 seconds]
brunohenriquebh[ has quit [Ping timeout: 252 seconds]
solariiknight[m] has quit [Ping timeout: 252 seconds]
Dineshsac[m] has quit [Ping timeout: 252 seconds]
yifnoon[m] has quit [Ping timeout: 252 seconds]
vorce[m] has quit [Ping timeout: 252 seconds]
aruslan[m] has quit [Ping timeout: 252 seconds]
procarryoat[m] has quit [Ping timeout: 252 seconds]
Guest128423[m] has quit [Ping timeout: 252 seconds]
moellus[m] has quit [Ping timeout: 252 seconds]
Guest94493[m] has quit [Ping timeout: 252 seconds]
jon[m]1 has quit [Ping timeout: 252 seconds]
Turingmachine[m] has quit [Ping timeout: 252 seconds]
LouisJencka[m] has quit [Ping timeout: 252 seconds]
remmy[m] has quit [Ping timeout: 252 seconds]
cdetrio[m] has quit [Ping timeout: 252 seconds]
M-3630 has quit [Ping timeout: 252 seconds]
Guest123396[m] has quit [Ping timeout: 252 seconds]
tr909[m] has quit [Ping timeout: 252 seconds]
M-jfred has quit [Ping timeout: 252 seconds]
neurocis[m] has quit [Ping timeout: 252 seconds]
M89224[m] has quit [Ping timeout: 252 seconds]
Leer10[m] has quit [Ping timeout: 252 seconds]
ashish[m] has quit [Ping timeout: 252 seconds]
palkeo[m] has quit [Ping timeout: 252 seconds]
eluc[m] has quit [Ping timeout: 252 seconds]
whirm[m] has quit [Ping timeout: 264 seconds]
oma[m] has quit [Ping timeout: 264 seconds]
exyi[m] has quit [Ping timeout: 264 seconds]
Guest999999[m] has quit [Ping timeout: 264 seconds]
Guest34757 has quit [Ping timeout: 264 seconds]
M-hostbbb has quit [Ping timeout: 264 seconds]
Hansf[m] has quit [Ping timeout: 264 seconds]
jimtendo[m] has quit [Ping timeout: 264 seconds]
mels[m] has quit [Ping timeout: 264 seconds]
pep0ni[m] has quit [Ping timeout: 264 seconds]
chrono[m] has quit [Ping timeout: 264 seconds]
underskore[m] has quit [Ping timeout: 264 seconds]
datan[m] has quit [Ping timeout: 264 seconds]
yangwao[m] has quit [Ping timeout: 264 seconds]
Guest136220[m] has quit [Ping timeout: 264 seconds]
H3ndr1k[m] has quit [Ping timeout: 264 seconds]
junw[m] has quit [Ping timeout: 264 seconds]
atom[m] has quit [Ping timeout: 264 seconds]
Nekit[m] has quit [Ping timeout: 264 seconds]
gh0st[m] has quit [Ping timeout: 264 seconds]
russon77[m] has quit [Ping timeout: 264 seconds]
atenorio[m] has quit [Ping timeout: 264 seconds]
Step[m] has quit [Ping timeout: 264 seconds]
osiris-[m] has quit [Ping timeout: 264 seconds]
edsilv[m] has quit [Ping timeout: 264 seconds]
Neurolit[m] has quit [Ping timeout: 264 seconds]
M-kalmi has quit [Ping timeout: 264 seconds]
onlnr has quit [Ping timeout: 264 seconds]
Silke[m] has quit [Ping timeout: 264 seconds]
tx[m] has quit [Ping timeout: 264 seconds]
unlmtd[m] has quit [Ping timeout: 264 seconds]
plindner has quit [Ping timeout: 264 seconds]
eshon[m] has quit [Ping timeout: 255 seconds]
PurgingPanda_[m] has quit [Ping timeout: 255 seconds]
Guest148729[m] has quit [Ping timeout: 255 seconds]
Guest150078[m] has quit [Ping timeout: 255 seconds]
Guest139267[m] has quit [Ping timeout: 255 seconds]
Guest146352[m] has quit [Ping timeout: 255 seconds]
BanJo[m] has quit [Ping timeout: 255 seconds]
n0x65B[m] has quit [Ping timeout: 255 seconds]
alkar[m] has quit [Ping timeout: 255 seconds]
Eru[m] has quit [Ping timeout: 255 seconds]
grensjo[m] has quit [Ping timeout: 255 seconds]
esbjorn[m] has quit [Ping timeout: 255 seconds]
wakest has quit [Ping timeout: 255 seconds]
pik[m] has quit [Ping timeout: 255 seconds]
anon[m] has quit [Ping timeout: 255 seconds]
kratonisch[m] has quit [Ping timeout: 255 seconds]
M-nated has quit [Ping timeout: 255 seconds]
cubemonkey[m] has quit [Ping timeout: 255 seconds]
gsf[m] has quit [Ping timeout: 255 seconds]
crvd[m] has quit [Ping timeout: 255 seconds]
SARANKUMAR[m] has quit [Ping timeout: 255 seconds]
dze[m] has quit [Ping timeout: 255 seconds]
reto[m] has quit [Ping timeout: 255 seconds]
DokterBob has quit [Ping timeout: 255 seconds]
nerdfiles[m] has quit [Ping timeout: 255 seconds]
M-slang has quit [Ping timeout: 255 seconds]
ivegotasthma[m] has quit [Ping timeout: 255 seconds]
gabyshu[m] has quit [Ping timeout: 255 seconds]
rschulman has quit [Ping timeout: 255 seconds]
caught_in_the_ma has quit [Ping timeout: 255 seconds]
Hongar[m] has quit [Ping timeout: 255 seconds]
drakaro[m] has quit [Ping timeout: 255 seconds]
M-hash has quit [Ping timeout: 255 seconds]
because[m] has quit [Ping timeout: 255 seconds]
MarkOtaris has quit [Ping timeout: 255 seconds]
M-jimt has quit [Ping timeout: 255 seconds]
mythmon- has quit [Ping timeout: 255 seconds]
ntninja has quit [Ping timeout: 255 seconds]
shellkr[m] has quit [Ping timeout: 255 seconds]
t0dd[m] has quit [Ping timeout: 255 seconds]
<iain__> oh my...
Guest149259[m] has quit [Ping timeout: 276 seconds]
chao[m] has quit [Ping timeout: 276 seconds]
Guest146508[m] has quit [Ping timeout: 276 seconds]
hannes[m] has quit [Ping timeout: 276 seconds]
zerorunnr[m] has quit [Ping timeout: 276 seconds]
Guest115434[m] has quit [Ping timeout: 276 seconds]
inori[m] has quit [Ping timeout: 276 seconds]
M-fabrixxm has quit [Ping timeout: 276 seconds]
masoodahm[m] has quit [Ping timeout: 276 seconds]
tsnieman[m] has quit [Ping timeout: 276 seconds]
ZerataX[m] has quit [Ping timeout: 276 seconds]
DavidAmorn[m] has quit [Ping timeout: 276 seconds]
Guest140787[m] has quit [Ping timeout: 276 seconds]
Guest139286[m] has quit [Ping timeout: 276 seconds]
mcint[m] has quit [Ping timeout: 276 seconds]
Guest41990[m] has quit [Ping timeout: 276 seconds]
aerobil[m] has quit [Ping timeout: 276 seconds]
neurochemical[m] has quit [Ping timeout: 276 seconds]
cretz[m] has quit [Ping timeout: 276 seconds]
jerryisme[m] has quit [Ping timeout: 276 seconds]
YossIrving[m] has quit [Ping timeout: 276 seconds]
Guest122979[m] has quit [Ping timeout: 276 seconds]
rmi7[m] has quit [Ping timeout: 276 seconds]
M-hierophantos has quit [Ping timeout: 276 seconds]
hans[m] has quit [Ping timeout: 276 seconds]
renemayer[m] has quit [Ping timeout: 276 seconds]
MrManor[m] has quit [Ping timeout: 276 seconds]
cmp[m] has quit [Ping timeout: 276 seconds]
googlfvKI6B[m] has quit [Ping timeout: 276 seconds]
xldrkp[m] has quit [Ping timeout: 276 seconds]
panicbit-M has quit [Ping timeout: 276 seconds]
Natanael[m] has quit [Ping timeout: 276 seconds]
albuic has quit [Ping timeout: 276 seconds]
musoke[m] has quit [Ping timeout: 276 seconds]
Guest115462[m] has quit [Ping timeout: 276 seconds]
Patrik[m] has quit [Ping timeout: 276 seconds]
M-amblin has quit [Ping timeout: 276 seconds]
<AphelionZ> whoah
<SchrodingersScat> whatever this is, it's happening
<iain__> xD
<MikeFair> iain: Depends on how many people you're trying communicate with and is it an open group or closed group; or open for a period and then closed
<MikeFair> Public Key hashes make great, shareable channel names
pfrazee has joined #ipfs
kragniz has quit [Quit: WeeChat 1.5]
<iain__> well. it would be a open group. Just a few hundred people that would get connected and find each others peer ids around a common sentence or name
<MikeFair> And they are easy to change/communicate securely
<iain__> and then talk, send messages to each other. much like a chat box
<MikeFair> Hey; we jsut experienced a perfect example of the propblem you're looking to solve
kragniz has joined #ipfs
<iain__> so I understand that the Orbit project has the same weakness, due to it using the Floodsub method of finding peers
<MikeFair> there was nothing we could do about the ping flood messages
<iain__> really?
<MikeFair> Who did they come from?
<MikeFair> They made the channel hard to use
<iain__> Sorry? Is that question address to me?
<iain__> addressed*
<Kubuxu> iain__: yes, point is, pubsub is an interface, floodsub is one naive implementation of it
<SchrodingersScat> MikeFair: seems like different accounts from gateway/shell/matrix.org
<iain__> ah k
<MikeFair> but it was more that we were seeing the messages
<SchrodingersScat> that's between you and your client
<MikeFair> SchrodingersScat: true; I have a client view that filtered them out
<SchrodingersScat> done and done
<MikeFair> iain__: Actually that's probably how you do it
<MikeFair> SchrodingersScat: The main channel window still saw them; but the agrregated "speaking messages from all channels" view left them out
maxlath has joined #ipfs
<MikeFair> iain__: implement scoring in your app on the speakers and mod them out/score them down
<iain__> scoring?
<MikeFair> iain__: you can't stop the messages from being sent; but you can filter them from being seen
<iain__> true
<MikeFair> iain__: You have to make a judgement call on what a "Malicious User" is
<MikeFair> if you want totry and do something about it
<iain__> oh that's quite easy. It's just what do you do after that
<iain__> I mean. Best case would be informing some firewall about this and blocking the ip
<iain__> but that's hard in production. it would run on too many different environments
<MikeFair> If each client has a public key and has to sign every message (the software does this behind the scenes no user interaction involved)
<iain__> hmm
<MikeFair> Then the public key is the thing you're scoring; you first throw out any messages that aren't properly signed
<iain__> It's not really the amount of messages I'm worried about. More the size of them
<MikeFair> that generally proves the message came from your app
<iain__> If there isn't a limit on it. They could just upload a arbitrary large message and everyone's bandwith would just get screwed being subscribed to it
<MikeFair> iain__: you have to request the message data
<iain__> oh.
<MikeFair> iain__: you get an inexpensive annoucement that says there is data
<MikeFair> (at this address)
<iain__> that is true. yeah
<MikeFair> And for the most part; the messages are small enough to fit in the payload of the announcement so it's not generally thought of as a thing
<iain__> But how do I tell what the message is like before I download it
cemerick has quit [Ping timeout: 255 seconds]
<MikeFair> Perhaps you could request the size first before you fetch it
<MikeFair> ipfs ls
<iain__> ah
<MikeFair> I mean I haven't used the FloodSub thing yet; so I'm not sure how it works
<iain__> true
<iain__> no you're right
<iain__> before I go down this rabbit hole. There isn't a better way of finding peers right?
<MikeFair> iain__: not in a distributed system; registering with a central website
<MikeFair> But you can layer it
<MikeFair> it doesn't all have to hang off one channel
<AphelionZ> is there a way to notify the dht that new content is availale
<Kubuxu> lgierth: are you around?
<iain__> well that's where I started. with dht
<iain__> but eh.
<MikeFair> AphelionZ: ipns name publish ? or ipfs add
<AphelionZ> ipfs add probably
<AphelionZ> well, hmm
<MikeFair> AphelionZ: ipfs add puts blocks into the system; but it doesn't announce it to anyone
<MikeFair> except your local peers
<MikeFair> Someone has to figure out how to ask for the block before it really gets out there
<MikeFair> That's why the whole ipns thing is so useful
<AphelionZ> im just trying to tighten the space between me making a new paste in my pastebin and them being able to get it from ipfs.io/ipfs
<MikeFair> It's a fixed address where the content can change
<AphelionZ> ok cool, yeah i get what ipns is
<MikeFair> AphelionZ: hehe; have pinbot on this channel pin it; then unpin it
<AphelionZ> hahah
<AphelionZ> you know, i thought of that
<AphelionZ> thats not a bad idea
<AphelionZ> !pin QmVN4WMQ5Hp3C94ZXx4yofVj2Abu6AxmDfxCuM8aEtwdXb
<AphelionZ> im worried there's some NAT traversal sisues
<MikeFair> AphelionZ: it might not listen to you ;)
<AphelionZ> i wouldnt listen to me
<MikeFair> AphelionZ: have your app submitthe request to ipfs.io right away
<AphelionZ> but you couldnt ipfs get my stuff, and now i'm trying myself and its struggling
anewuser has quit [Ping timeout: 255 seconds]
<MikeFair> iain__: Not putting you on the spot; but I'd love to hear how you'd like it to work
<iain__> what exactly? Which part?
<iain__> oh I don't mind btw :)
<MikeFair> iain__: The peer group bootstrapping
<MikeFair> iain__: and is this more like real time chat or message boards?
<MikeFair> (async)
<iain__> Well. Before I started playing with ipfs I was just using dht directly. Using github.com/anacrolix/dht to just find the ip addresses.
jedahan has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<iain__> I was intrigued on how I didn't need to take care of NAT and so on with ipfs
<MikeFair> iain__: Which is great as long as they aren't behind a NAT
<iain__> true. exactly
<iain__> I can't talk to clients. just know what their addresses might be
anewuser has joined #ipfs
<AphelionZ> how long does discovery typically take?
<MikeFair> AphelionZ: I think something is wrong
<iain__> But it did work up to a point. I think there should be an easy way of finding common peers which are looking for the same info hash
<AphelionZ> yeah i agree
<iain__> just a few seconds
<apiarian> is there something weird between 0.4.5 and the IPFS Station chrome extension? just updated and the daemon seems to be working fine, but the extension can't find it
<Kubuxu> apiarian: we have changed one API endpoint
<Kubuxu> it might be the problem
<iain__> But that's how torrents for example find each other. If I'm asked on how I'd like it to work. I'd assume this part of finding peers would be relatively the same
<Kubuxu> new version of js-ipfs-api supports both formats now
<MikeFair> iain__: I'm just thinking that through; that'd mean potential sending information in the opposite direction of the data flow
<MikeFair> iain__: So you'd be able to ask "Who are all the peers who have asked for hash XYZ"
<iain__> exactly
<iain__> Before I started talking to you, I was planning to do just that
<MikeFair> iain__: The problem is you'll get a bunch of non-participants
<iain__> true
aquentson1 has joined #ipfs
<MikeFair> iain__: because it's a rumormill filled with nodes passing notes; everyone in the neigborhood is asking for that hash
<MikeFair> iain__: The way it's set up at the moment is you can announce to everyone listening to hash xyz that you've arrived
<MikeFair> and they can get back to you
<iain__> true again. yeah. but you would just add a layer of verfication, pinging them and if they don't respond properly dismiss that address.
<iain__> yeah...
<MikeFair> iain__: You don't really have to worry about that in this scenario
<MikeFair> iain__: If they are going to take the take to get back to you; it'll be a well-formed message or a bug
aquentson has quit [Ping timeout: 245 seconds]
<MikeFair> What you might want is authentication for future scoring though
<MikeFair> and permissions/authorizations access
<iain__> to send messages on certain topics?
<MikeFair> yes; and to represent the topics themselves
<MikeFair> each topic is its own address
<MikeFair> its own PubSub channel
<iain__> yeah
<MikeFair> Oh here's a way to kind of lean toward what you want
<MikeFair> You're PubSub listening in the lobby
<MikeFair> actually; the foyer
<MikeFair> someone shows up and you issue them the current key to get to the lobby
mildred1 has joined #ipfs
<iain__> ah
ShalokShalom has quit [Ping timeout: 240 seconds]
ygrek has joined #ipfs
<MikeFair> and the public key for the agent of the lobby
cemerick has joined #ipfs
<iain__> Eventho it's very interesting. I have to leave right now. Dinner is here. I'll be back in half an hour or so
ShalokShalom has joined #ipfs
<iain__> But yeah. maybe a lobby first and then switching topics
<MikeFair> People then set up a private channel with the lobby to get teh addresses of topcis
<MikeFair> In most cases you can model IRC
<MikeFair> we issue commands to the server individually before we can group chat
<MikeFair> that makes the server the gatekeeper
<MikeFair> in this case; you use crypto keys to represent "Server messages"
<MikeFair> only the person who has the permission to make the update can be the server
<MikeFair> anyway; it's an interesting challenge; you give up one limitation (can't get passsed NAT) and take on another :)
<MikeFair> enjoy dinner!
<MikeFair> Kubuxu / SchrodingersScat: You guys still here?
mildred2 has joined #ipfs
<SchrodingersScat> yes
<Kubuxu> I am here, partially
<MikeFair> That conversation reminded me of another "desirable" feature I was wishing for over on Stellar
<MikeFair> private sub-swarms
ygrek has quit [Ping timeout: 260 seconds]
<MikeFair> clusters I guess
DiCE1904 has joined #ipfs
<MikeFair> I'd have to add a key to the node so it could talk; another layer of encryption for the whole set
mildred1 has quit [Ping timeout: 240 seconds]
<MikeFair> is that something ipfs cluster does
<MikeFair> (can do)
apiarian_ has joined #ipfs
apiarian has quit [Read error: Connection reset by peer]
apiarian has joined #ipfs
<Kubuxu> no, we know it as private networks
<Kubuxu> I will be finishing it up for next two weeks
<kpcyrd> is there a health endpoint on the ipfs daemon?
apiarian_ has quit [Ping timeout: 255 seconds]
<Kubuxu> kpcyrd: what do you mean?
<MikeFair> kpcyrd: I've been using ipfs net diag
<MikeFair> but the output hasn't been meaningful
<Kubuxu> in many cases we use: ipfs swarm peers
<Kubuxu> depending what you want to do: ipfs swarm peers
<Kubuxu> to check if you have connectivity
<Kubuxu> or ipfs cat QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y
<kpcyrd> Kubuxu: I'm still fighting with "run an ipfs service on a 512M droplet", the go-ipfs docker container seems to be stuck in an undead state every couple of days
<Kubuxu> yeah, there were few bugs (and still are few bugs)
<Kubuxu> update to 0.4.5
<Kubuxu> it is more stable
<Kubuxu> we still know one bug that might lockup the go-ipfs
<kpcyrd> let me check which version I'm on
<Kubuxu> daviddias: have you killed greenkeeper?
<daviddias> no, why?
skinkitten_ has quit [Ping timeout: 240 seconds]
skinkitten has quit [Ping timeout: 240 seconds]
<Kubuxu> I just saw lots of GK PRs and I remember reading something about killing it.
<kpcyrd> Kubuxu: I'm building a new image, let's see if that fixes the issue :)
<Kubuxu> if you see lockup again or weird behaviour
<kpcyrd> thanks
bastianilso has quit [Quit: bastianilso]
<kpcyrd> Kubuxu: can you bump the release branch? it's still stuck on 0.4.4
<Kubuxu> sure
bastianilso has joined #ipfs
<kpcyrd> thanks!
ShalokShalom has quit [Read error: Connection reset by peer]
<Kubuxu> kpcyrd: it will take a while
<Kubuxu> our release branch was left in sad state after hotfix
<Kubuxu> you can build the image yourself
<Kubuxu> on your machine
<Kubuxu> clone go-ipfs
<Kubuxu> and do: `docker build -t ipfs/go-ipfs:v0.4.5 .`
ShalokShalom has joined #ipfs
<kpcyrd> Kubuxu: I'm executing the steps manually right now, I have a build system in place that automatically builds the release branch :)
<Kubuxu> aah
<Kubuxu> I thought it would be as clean as `git merge -ff HASH; git push`
<Kubuxu> but not
dryajov1 has joined #ipfs
<whyrusleeping> Kubuxu: do we want to do that? or just reset --hard the release branch?
ZaZ has quit [Read error: Connection reset by peer]
<Kubuxu> This is almost reset --hard but with preserving history and not breaking people setups (git pull will break if you do force push and they have this branch checked out).
<Kubuxu> I will create PR merging it back to master after is it merged to release
<Kubuxu> this way it will be possible to do FF merge next time
kzimmermann[m] has joined #ipfs
<whyrusleeping> alright,SGTM
bastianilso has quit [Quit: bastianilso]
<whyrusleeping> i like that we can see everyone who contributed to this release
<whyrusleeping> as "participating" in the PR
bastianilso has joined #ipfs
<Kubuxu> yeah
<Kubuxu> kpcyrd: done
bastianilso has quit [Client Quit]
MikeFair has quit [Ping timeout: 276 seconds]
bastianilso has joined #ipfs
xtarget[m] has joined #ipfs
jfred[m] has joined #ipfs
t0dd[m] has joined #ipfs
Famicoman[m]1 has joined #ipfs
joshb[m] has joined #ipfs
oma[m] has joined #ipfs
silwol has joined #ipfs
sudoreboot[m] has joined #ipfs
Guest65525 has joined #ipfs
M-TidyKoala has joined #ipfs
Chris[m] has joined #ipfs
Guest125925[m] has joined #ipfs
caught_in_the_ma has joined #ipfs
jam[m] has joined #ipfs
edsilv[m] has joined #ipfs
M-jimt has joined #ipfs
Guest139286[m] has joined #ipfs
M-krsiehl has joined #ipfs
MarkOtaris has joined #ipfs
gabyshu[m] has joined #ipfs
nop[m] has joined #ipfs
M-fabrixxm has joined #ipfs
Guest123396[m] has joined #ipfs
lambert[m] has joined #ipfs
M-hash has joined #ipfs
Guest115434[m] has joined #ipfs
herzmeister[m] has joined #ipfs
SShrike has joined #ipfs
jbbr[m] has joined #ipfs
Guest149624[m] has joined #ipfs
cdetrio[m] has joined #ipfs
Powersource has joined #ipfs
M89224[m] has joined #ipfs
teufel7[m] has joined #ipfs
M-wldhx has joined #ipfs
PseudoPseu[m] has joined #ipfs
M-kalmi has joined #ipfs
Guest146352[m] has joined #ipfs
erikj` has joined #ipfs
ivegotasthma[m] has joined #ipfs
zwollenar[m] has joined #ipfs
M-sol56 has joined #ipfs
Guest75817[m] has joined #ipfs
gmanrwp[m] has joined #ipfs
jsyn[m] has joined #ipfs
datenpunk[m] has joined #ipfs
litebit[m] has joined #ipfs
interfect[m] has joined #ipfs
albuic has joined #ipfs
wfjsw[m] has joined #ipfs
remmy[m] has joined #ipfs
sk23[m] has joined #ipfs
Matthew[m] has joined #ipfs
Zedwick[m] has joined #ipfs
Guest120746[m] has joined #ipfs
MemeVillain[m] has joined #ipfs
Patrik[m] has joined #ipfs
M-slang has joined #ipfs
cml[m] has joined #ipfs
M-BostonEnginer4 has joined #ipfs
cbHXBY1D[m] has joined #ipfs
karpodiem[m] has joined #ipfs
musoke[m] has joined #ipfs
osiris-[m] has joined #ipfs
palkeo[m] has joined #ipfs
frabrunelle has joined #ipfs
M-oddvar has joined #ipfs
PurgingPanda_[m] has joined #ipfs
ZerataX[m] has joined #ipfs
inori[m] has joined #ipfs
rplevy[m] has joined #ipfs
tsnieman[m] has joined #ipfs
M-sraja has joined #ipfs
bart80[m] has joined #ipfs
bgrayburn[m] has joined #ipfs
Step[m] has joined #ipfs
Guest149259[m] has joined #ipfs
airsickpayload[m has joined #ipfs
gh0st[m] has joined #ipfs
masoodahm[m] has joined #ipfs
M-iav has joined #ipfs
panicbit-M has joined #ipfs
lsf[m] has joined #ipfs
ashish[m] has joined #ipfs
RasmusErik[m] has joined #ipfs
russon77[m] has joined #ipfs
M-ms has joined #ipfs
vishnuv[m] has joined #ipfs
atenorio[m] has joined #ipfs
liuweize[m] has joined #ipfs
gendale[m] has joined #ipfs
b3[m] has joined #ipfs
Kenneth_Seelig[m has joined #ipfs
chpio[m] has joined #ipfs
kekbringer[m] has joined #ipfs
M-javissimo has joined #ipfs
M[m]1 has joined #ipfs
djokeefe[m] has joined #ipfs
victor_mobile has joined #ipfs
DavidAmorn[m] has joined #ipfs
alex4o[m] has joined #ipfs
demyan[m] has joined #ipfs
M-amblin has joined #ipfs
M-mlt has joined #ipfs
Guest115462[m] has joined #ipfs
Turingmachine[m] has joined #ipfs
charlienyc[m] has joined #ipfs
LouisJencka[m] has joined #ipfs
disinibito[m] has joined #ipfs
Guest140787[m] has joined #ipfs
jon[m]1 has joined #ipfs
zerorunnr[m] has joined #ipfs
yugosalem[m] has joined #ipfs
M-hostbbb has joined #ipfs
Jackneill[m] has joined #ipfs
xldrkp[m] has joined #ipfs
AntoineM[m] has joined #ipfs
tx[m] has joined #ipfs
Nekit[m] has joined #ipfs
TheGillies has joined #ipfs
NathanBraswell[m has joined #ipfs
atom[m] has joined #ipfs
M107262[m] has joined #ipfs
M-anomie has joined #ipfs
DokterBob has joined #ipfs
Guest147163[m] has joined #ipfs
MrAxilus[m] has joined #ipfs
fil_redpill has joined #ipfs
M-martinklepsch has joined #ipfs
M-manveru has joined #ipfs
gwillen[m] has joined #ipfs
googlfvKI6B[m] has joined #ipfs
ntninja has joined #ipfs
qolop[m] has joined #ipfs
Leviathanone[m] has joined #ipfs
M-alien has joined #ipfs
M-Dave has joined #ipfs
nerdfiles[m] has joined #ipfs
onlnr has joined #ipfs
harlock[m] has joined #ipfs
m3ta[m] has joined #ipfs
neurocis[m] has joined #ipfs
basilgohar[m] has joined #ipfs
ntrn[m] has joined #ipfs
Guest139267[m] has joined #ipfs
Hongar[m] has joined #ipfs
cryptix has joined #ipfs
agumonkey[m] has joined #ipfs
yuh96bbn[m] has joined #ipfs
urhuruhurh[m] has joined #ipfs
hiq[m] has joined #ipfs
kegan[m] has joined #ipfs
cmp[m] has joined #ipfs
jceb[m] has joined #ipfs
Silke[m] has joined #ipfs
joki[m] has joined #ipfs
M-Amandine has joined #ipfs
fd0422b08[m] has joined #ipfs
pep0ni[m] has joined #ipfs
stardot[m] has joined #ipfs
drakaro[m] has joined #ipfs
mirek1337[m] has joined #ipfs
MrManor[m] has joined #ipfs
Guest144612[m] has joined #ipfs
krigare[m] has joined #ipfs
reto[m] has joined #ipfs
bolton has joined #ipfs
Guest94493[m] has joined #ipfs
exyi[m] has joined #ipfs
vpham24[m] has joined #ipfs
tr909[m] has joined #ipfs
Paul[m] has joined #ipfs
unlmtd[m] has joined #ipfs
moellus[m] has joined #ipfs
bb010g[m] has joined #ipfs
alkar[m] has joined #ipfs
M-jfred has joined #ipfs
ralphtheninja[m] has joined #ipfs
Polychrome[m] has joined #ipfs
max_power[m] has joined #ipfs
procarryoat[m] has joined #ipfs
patrickr[m] has joined #ipfs
M50574E[m] has joined #ipfs
Guest128423[m] has joined #ipfs
firemound[m] has joined #ipfs
H3ndr1k[m] has joined #ipfs
dze[m] has joined #ipfs
irx[m] has joined #ipfs
ttk2[m] has joined #ipfs
lnxw37[m] has joined #ipfs
M-mubot has joined #ipfs
Quiark_ has joined #ipfs
unilovelight[m] has joined #ipfs
rschulman has joined #ipfs
iwxzr[m] has joined #ipfs
Guest118378[m] has joined #ipfs
renemayer[m] has joined #ipfs
dyce[m] has joined #ipfs
daviddias[m] has joined #ipfs
MawKKe[m] has joined #ipfs
eshon[m] has joined #ipfs
aruslan[m] has joined #ipfs
ztl8702[m] has joined #ipfs
kxra[m] has joined #ipfs
jpereira[m] has joined #ipfs
hans[m] has joined #ipfs
digitalesnievana has joined #ipfs
mwilcox[m] has joined #ipfs
BeautifulBash[m] has joined #ipfs
graydon[m] has joined #ipfs
spbike[m] has joined #ipfs
vorce[m] has joined #ipfs
Guest75149[m] has joined #ipfs
Guest146683[m] has joined #ipfs
torarne has joined #ipfs
hjoest[m] has joined #ipfs
Natanael[m] has joined #ipfs
M-cameron has joined #ipfs
Hansf[m] has joined #ipfs
karambirMatrix has joined #ipfs
chao[m] has joined #ipfs
plindner has joined #ipfs
M-hierophantos has joined #ipfs
aunix[m] has joined #ipfs
SARANKUMAR[m] has joined #ipfs
brettrick[m] has joined #ipfs
rmi7[m] has joined #ipfs
WinterFox[m] has joined #ipfs
M-Guillaume has joined #ipfs
na9da[m] has joined #ipfs
dkx[m] has joined #ipfs
arzale[m] has joined #ipfs
mojarra[m] has joined #ipfs
M0--_[m] has joined #ipfs
whirm[m] has joined #ipfs
steven[m] has joined #ipfs
crvd[m] has joined #ipfs
jimtendo[m] has joined #ipfs
Buli[m] has joined #ipfs
Guest126462[m] has joined #ipfs
null_radix[m] has joined #ipfs
eluc[m] has joined #ipfs
Guest123181[m] has joined #ipfs
junw[m] has joined #ipfs
stanko[m] has joined #ipfs
gsf[m] has joined #ipfs
Leer10[m] has joined #ipfs
lugarius has joined #ipfs
cubemonkey[m] has joined #ipfs
Guest122979[m] has joined #ipfs
mikkaworkscom[m] has joined #ipfs
luke-clifton[m] has joined #ipfs
shellkr[m] has joined #ipfs
kumavis[m] has joined #ipfs
xamino[m] has joined #ipfs
M-nated has joined #ipfs
jord[m] has joined #ipfs
kratonisch[m] has joined #ipfs
alaeri[m] has joined #ipfs
anon[m] has joined #ipfs
yifnoon[m] has joined #ipfs
M-Shrike has joined #ipfs
Franklyn[m] has joined #ipfs
Guest146508[m] has joined #ipfs
davidar has joined #ipfs
hansnust[m] has joined #ipfs
scde[m] has joined #ipfs
BlooAlien[m] has joined #ipfs
Dineshsac[m] has joined #ipfs
Guest150078[m] has joined #ipfs
wmo[m] has joined #ipfs
Yakomo[m] has joined #ipfs
igel[m] has joined #ipfs
solariiknight[m] has joined #ipfs
sa1[m] has joined #ipfs
yangwao[m] has joined #ipfs
kewde[m] has joined #ipfs
magog[m] has joined #ipfs
Olivier[matrix] has joined #ipfs
M-HirmeS has joined #ipfs
mels[m] has joined #ipfs
pakdeen[m] has joined #ipfs
superluser[m] has joined #ipfs
mythmon- has joined #ipfs
M-Lambo has joined #ipfs
underskore[m] has joined #ipfs
hannes[m] has joined #ipfs
Guest148729[m] has joined #ipfs
dmholmes[m] has joined #ipfs
Guest136220[m] has joined #ipfs
terence977[m] has joined #ipfs
pik[m] has joined #ipfs
RedArmy[m] has joined #ipfs
Remramm has joined #ipfs
Neurolit[m] has joined #ipfs
datan[m] has joined #ipfs
wakest has joined #ipfs
mith[m] has joined #ipfs
sultan[m] has joined #ipfs
sam[m] has joined #ipfs
Scio[m] has joined #ipfs
grensjo[m] has joined #ipfs
brunohenriquebh[ has joined #ipfs
Guest118430[m] has joined #ipfs
nala[m] has joined #ipfs
esbjorn[m] has joined #ipfs
M-3630 has joined #ipfs
neurochemical[m] has joined #ipfs
saintaquinas[m] has joined #ipfs
tcrypt[m] has joined #ipfs
because[m] has joined #ipfs
musicmatze[m] has joined #ipfs
tkorrison[m] has joined #ipfs
jugash[m] has joined #ipfs
maxlath[m] has joined #ipfs
am2on has joined #ipfs
vd[m] has joined #ipfs
Walter[m] has joined #ipfs
lueo[m] has joined #ipfs
jerryisme[m] has joined #ipfs
YossIrving[m] has joined #ipfs
kythyria[m] has joined #ipfs
cretz[m] has joined #ipfs
stevelord[m] has joined #ipfs
alx[m] has joined #ipfs
mcint[m] has joined #ipfs
Guest144866[m] has joined #ipfs
dz[m] has joined #ipfs
M-erwin has joined #ipfs
captainplanet[m] has joined #ipfs
aerobil[m] has joined #ipfs
guaraqe[m] has joined #ipfs
Eru[m] has joined #ipfs
BanJo[m] has joined #ipfs
Bloo[m] has joined #ipfs
chrono[m] has joined #ipfs
M-brain has joined #ipfs
kharybdis[m] has joined #ipfs
ygrek has joined #ipfs
n0x65B[m] has joined #ipfs
Guest999999[m] has joined #ipfs
Visevius[m] has joined #ipfs
Guest41990[m] has joined #ipfs
kalon[m] has joined #ipfs
<AphelionZ> what do I do with the Source object that the javascript ipfs.get returns?
<AphelionZ> ipfs.get(hashKey) returns an ObjectsStreams object, which has objstream.content, which is a ...Source object?
<Kubuxu> That buffer bloat: 64 bytes from 8.8.8.8: icmp_seq=6336 ttl=47 time=109410 ms
matoro has quit [Ping timeout: 240 seconds]
<Kubuxu> it should be a crime
<AphelionZ> hot damn
<Kubuxu> whyrusleeping: IDK why jenkins workers are not deployed, I think victor will do that on Monday
<Kubuxu> not sure
<Kubuxu> AphelionZ: yeah, modems try to fake that you still have connection
<Kubuxu> AphelionZ: unfortunately IDK about JS, daviddias or dignifiedquire might be able to help you, or point you to docs or examples
<AphelionZ> ok awesome. that'd be great
<AphelionZ> I'm just not sure what to do with ObjectsStreams or Source
<kythyria[m]> > yeah, modems try to fake that you still have connection
<kythyria[m]> Seriously? Wouldn't that take more effort than sending back destination unreachable?
<Kubuxu> no, as then users connection restarts, and whatever he was downloading over HTTP fails
<kythyria[m]> Which it will anyway if the connection is gone for more than the maximum RTT.
<iain__> MikeFair: you still there?
ShalokShalom has quit [Read error: Connection reset by peer]
ShalokShalom has joined #ipfs
<AphelionZ> my pastebin works! huzzah!
jeb_bush[m] has joined #ipfs
matoro has joined #ipfs
<whyrusleeping> AphelionZ: nice!
<AphelionZ> I'm pushing to github now... if anybody could take a look and try running it locally that would be _awesome_
<AphelionZ> great learning experience building an app though
<AphelionZ> i learned a tonne about ipfs
<AphelionZ> whyrusleeping: Kubuxu ^^
<AphelionZ> I need to make the promises more "functional programming"ish
<AphelionZ> but at first glance it works
<whyrusleeping> AphelionZ: looking at it now :)
* whyrusleeping realizes he cant read javascript
<AphelionZ> to be fair that particular JS of mine isnt the easiest to read
jeb_bush[m] has left #ipfs ["User left"]
<whyrusleeping> be careful about exposing the 5001 api to anything public
<AphelionZ> it uses swarm peers to get the number at the bottom, and uses ipfs.files.write to write a file named as the timestamp, and then uses ipfs.get to get the contents of the file
<AphelionZ> whyrusleeping: yeah I'm gonna lock that down when I deploy, right now I'm just running local
<whyrusleeping> cool, just making sure :)
<AphelionZ> I'll do like ippb.mrh.io and then use CORS to only accept requests from that domain on both API and Gateway
<whyrusleeping> Otherwise it looks pretty good
<AphelionZ> one question I had - if you look here:
<whyrusleeping> using the files api to keep track of things is a neat trick
<AphelionZ> I'm using the microsecond timestamp for the name of the file
<whyrusleeping> Do you want to keep them named? You can skip that entirely by just using add
<AphelionZ> so i might end up with multiple duplicate files with different names, with the same content
<whyrusleeping> content gets deduped, no worries
<AphelionZ> yeah I don't need to keep them named at all
<AphelionZ> right, they'll have the same content hash
<AphelionZ> its a minor thing
<whyrusleeping> Yeah, just use ipfs add
<AphelionZ> so just ipfs.add?
<AphelionZ> ok cool
<whyrusleeping> yeap, it will give you back a hash
<AphelionZ> tight
ylp has quit [Ping timeout: 252 seconds]
<kpcyrd> Kubuxu: Feb 12 20:02:03 ipfs-ink docker[8638]: Run migrations now? [y/N] Not running migrations of fs-repo now.
<kpcyrd> it appears that the docker image can't upgrade without manual plumbing
<kpcyrd> cc: lgierth
<Kubuxu> it can
<Kubuxu> gimme a sec
<whyrusleeping> lgierth was able to do this somehow
<Kubuxu> you can just pass `--migrate=true` to the run command
matoro has quit [Ping timeout: 255 seconds]
<kpcyrd> Feb 12 20:11:53 ipfs-ink docker[12748]: no fs-repo-migration binary found for version 5: failed to check migrations version: fork/exec /tmp/go-ipfs-migrate272553187/fs-repo-migrations: no such file or directory
<Kubuxu> interesting
<Kubuxu> I think it worked over here.
<Kubuxu> lgierth: ^^
<iain__> how must I do for pub sub to work over the internet
ylp has joined #ipfs
<iain__> what*
<Kubuxu> kevina: can I rebase both of those branches to master?
<Kubuxu> If you have any local changes, push them.
<kpcyrd> Kubuxu: not sure if there's anything going on in the docker containers
<Kubuxu> yeah, it is interesting
<Kubuxu> I might have an idea
aquentson has joined #ipfs
<Kubuxu> what architecture are you running?
<kpcyrd> amd64
<Kubuxu> hmm
<kpcyrd> not sure what the flags on /tmp are inside docker
<kpcyrd> I could imagine it's has noexec or something set
<whyrusleeping> Kubuxu: once we get jenkins running nicely we can run CI on raspberry pis :D
iain__ has quit [Quit: Page closed]
<kpcyrd> *it has
<whyrusleeping> kpcyrd: ooooh... thats a good point
<Kubuxu> that might be quite possible
aquentson1 has quit [Ping timeout: 276 seconds]
<Kubuxu> but how it worked in past then?
<kevina> Kubuxu: is there a reason you want to rebase?
<whyrusleeping> you can fix this manually by getting a shell in the docker container and downloading/running the fs-repo-migrations
matoro has joined #ipfs
<whyrusleeping> kevina: so we can get CI on jenkins running
<Kubuxu> kevina: yes, Jenkins CI compat (tomorrow) and sharness test coverage
<whyrusleeping> i'll rebase my filestore branch
<Kubuxu> whyrusleeping: kk
arkimedes has joined #ipfs
<kevina> okay, I will rebase my code, it will require some care...
<kevina> I do have a unpushed commit
<Kubuxu> k, yeah, that is what I was worried about
<Kubuxu> don't ask
<kpcyrd> /tmp/ is not a mountpoint
<kpcyrd> so that doesn't seem to be the issue
<Kubuxu> kpcyrd: does this file is still in tmp dir after it is downloaded (you might want to run shell in the container, and run ipfs from the shell).
<Kubuxu> if it is
<Kubuxu> check its perms
<Kubuxu> ldd it
<lgierth> hey hey
<lgierth> so we have a migrations problem?
<lgierth> eeh two migrations problems?
aquentson1 has joined #ipfs
<kpcyrd> -rwxr-xr-x 1 ipfs ipfs 7772873 Feb 12 20:27 /tmp/go-ipfs-migrate358426158/fs-repo-migrations
<kpcyrd> (sorry for the paste):
<kpcyrd> /lib64/ld-linux-x86-64.so.2 (0x564156d9f000)
<kpcyrd> libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x564156d9f000)
<kpcyrd> libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x564156d9f000)
<kpcyrd> sh: /tmp/go-ipfs-migrate358426158/fs-repo-migrations: not found
<kpcyrd> not sure what's going on
<lgierth> sigh -- might sound like a musl/glibc issue
<lgierth> what does ldd --version print?
<kpcyrd> musl libc (x86_64)
aquentson has quit [Ping timeout: 245 seconds]
<lgierth> ok, so the executable should be equal to the one in here: https://dist.ipfs.io/fs-repo-migrations/v1.2.0/fs-repo-migrations_v1.2.0_linux-musl-amd64.tar.gz
<kpcyrd> /tmp/manual/fs-repo-migrations $ ./fs-repo-migrations
<kpcyrd> Found fs-repo version 4 at /data/ipfs
<kpcyrd> that worked
<kpcyrd> ===> Migration 4 to 5 succeeded!
<lgierth> mmmh
<kpcyrd> my container is back online
<lgierth> could you ldd that executable which worked?
<lgierth> i think it might have just downloaded the glibc executable instead of the musl executable...
<kpcyrd> jup, that seems to be the case
<lgierth> "libc.so.6 => /lib64/ld-linux-x86-64.so.2" doesn't look very musl-ish to me
<kpcyrd> jup, that file doesn't exist
<kpcyrd> I think I didn't actually rm the fixup container yet, one sec
<lgierth> (that's where the "not found" comes from)
<kpcyrd> hm, /tmp is gone already :/
<lgierth> oh man
bastianilso has quit [Quit: bastianilso]
<lgierth> ldd --version on alpine prints to stderr
<lgierth> ldd --version on ubuntu prints to stdout
Guest93151 has joined #ipfs
<whyrusleeping> . . .
<kpcyrd> 2>&1
<whyrusleeping> cmd.CombinedOutput()
<lgierth> :/
<Kubuxu> :/
<whyrusleeping> heh
<whyrusleeping> thats dumb
<lgierth> yes very
<Kubuxu> whyrusleeping: looks like we are getting 0.4.6 early this year :P
<whyrusleeping> looks like 0.4.6 is coming soon :)
<Kubuxu> release EVERYDAY
<lgierth> :):)
<whyrusleeping> EVERY DAMN DAY
<Kubuxu> I feel bad that we didn't tet it
<Kubuxu> s/tet/test/
<lgierth> yeah me too :S
* whyrusleeping beginning of june announcing "ipfs 0.4.715"
<Kubuxu> <3
<Kubuxu> that would mean 4 releases every day
<whyrusleeping> lets get busy
<kpcyrd> so I'm now able to claim I'm the first person using --migrate=true on docker :)
<Kubuxu> whyrusleeping: you probably want to hotfix it again.
<Kubuxu> kpcyrd: no, that is new bug introduced in rc3
<Kubuxu> :P
<Kubuxu> lgierth: base the fix off the release branch
cemerick has quit [Ping timeout: 255 seconds]
<Kubuxu> I will make sure to get the release and master back in sync
<lgierth> kpcyrd: nope, we're using it since it exists :)
<lgierth> i made a "fix" to the migrations code just the other day
<lgierth> clear case of verschlimmbesserung
<kpcyrd> lgierth: I added it to CMD on https://github.com/ipfs/go-ipfs/pull/3685 :)
* whyrusleeping sees no reason we cant re-release 0.4.5 with the docker fix
<lgierth> naaah
<lgierth> no lipstick on pigs
<Kubuxu> whyrusleeping: you mean to do ninja release?
<whyrusleeping> i like ninjas tho
ygrek has quit [Ping timeout: 240 seconds]
<lgierth> as long as there's no 0.4.5 tag i'd be open to that
<Kubuxu> IDK ninja
<lgierth> but there is, so let's just carry on
<Kubuxu> I don't like ninja, got bitten by this in the past
<lgierth> let's concentrate on releasing often
<whyrusleeping> FINE
<whyrusleeping> 0.4.6 it is
<whyrusleeping> then 0.4.7 next week
<Kubuxu> or say screwit
<Kubuxu> and: if you are running in docker either migrate manually or wait two weeks
<whyrusleeping> the manual migration step doesnt seem *that* bad
<Kubuxu> (this might not be my personal opinion, just showing that there is a 3rd option here).
<whyrusleeping> especially if we fix it and release quite soon
<Kubuxu> yup
<Kubuxu> and there are also containers for non release builds
bastianilso has joined #ipfs
<Kubuxu> so someone who wants to do that can run non-release, migrate this way, and run a release build latter
<whyrusleeping> ^ thats a great point
<kpcyrd> Kubuxu: maybe release 0.4.6 with instructions on how to fix it manually
<dignifiedquire> new rust-multiaddr@0.2 is out, now with ipfs and websocket support :)
<Kubuxu> whyrusleeping, lgierth: what is your opinion?
<kevina> whyrusleeping: ping be after you rebased feat/filestore0 and I will fix my p.r.
<lgierth> Kubuxu: eeh not sure right now
dryajov1 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
rendar has quit [Ping timeout: 240 seconds]
Guest93151 has quit [Ping timeout: 240 seconds]
ShalokShalom has quit [Read error: Connection reset by peer]
ShalokShalom has joined #ipfs
bastianilso has quit [Quit: bastianilso]
bastianilso has joined #ipfs
aquentson has joined #ipfs
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
aquentson1 has quit [Ping timeout: 256 seconds]
<whyrusleeping> kevina: rebased
<kevina> thanks, will rebase in a bit...
AkhILman has joined #ipfs
pfrazee has quit [Remote host closed the connection]
<mguentner> /buffer 31
spilotro has joined #ipfs
dryajov1 has joined #ipfs
<AphelionZ> whyrusleeping: switched to add: https://github.com/aphelionz/InterplanetaryPastebin
dryajov1 has quit [Client Quit]
<whyrusleeping> AphelionZ: that looks pretty good to me
<AphelionZ> yeah works much better, thank you
<kpcyrd> uhm... I was reading the migrations I appplied and... https://github.com/ipfs/go-ds-flatfs/blob/master/flatfs.go#L50 is this what I think it is :) ?
<AphelionZ> ...can we talk about the ipfs.get API?
<whyrusleeping> what about it?
<AphelionZ> if i'm not mistaken it returns an object stream, when then returns multiple objects, each of which has a content property, which is another stream
<whyrusleeping> kpcyrd: looks like bad perms to me. That should be 0755
<AphelionZ> could we potentially move that complexity one level up and just have that API return a single stream?
dryajov1 has joined #ipfs
<whyrusleeping> AphelionZ: ipfs get should be returning a tar stream
<AphelionZ> not in the JS API, I don't think
<AphelionZ> in my code the first call returns an ObjectsStream, which in turn returns objects like:
<AphelionZ> { Hash: "hashKey", content: Source }
<whyrusleeping> daviddias: why doesnt the js-ipfs api just return a tar stream for get?
<AphelionZ> where Source is another event source
<kpcyrd> whyrusleeping: yup. I tried to verify I have a 0777 folder, but I can't find it. Are you working on a fix? I'd file a PR otherwise
<kpcyrd> :)
<whyrusleeping> kpcyrd: go ahead and file a PR
<whyrusleeping> i'm going to be away for a few hours
ygrek has joined #ipfs
<kevina> Kubuxu: just rebased
bastianilso has quit [Quit: bastianilso]
bastianilso has joined #ipfs
<kpcyrd> PRing from the github webui feels weird
kichuku[m]1 has joined #ipfs
warner has quit [Ping timeout: 255 seconds]
ylp has quit [Ping timeout: 252 seconds]
dryajov1 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
iain has joined #ipfs
dryajov1 has joined #ipfs
<iain> hi. I'm stuck trying to find other peers based on a hash. Could someone point me in the right direction?
dryajov1 has quit [Client Quit]
muvlon has quit [Quit: Leaving]
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
dryajov1 has joined #ipfs
dryajov1 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<iain> Well I made an github issue. Hoping that someone can help me out https://github.com/ipfs/go-ipfs/issues/3686 :)
<kyledrake> 1588320 keys so far
dryajov1 has joined #ipfs
dryajov1 has quit [Client Quit]
apiarian has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jedahan has joined #ipfs
ylp has joined #ipfs
ylp has quit [Client Quit]
Guest151173[m] has joined #ipfs
ShalokShalom has quit [Ping timeout: 255 seconds]
matoro has quit [Ping timeout: 260 seconds]
bastianilso has quit [Quit: bastianilso]
<whyrusleeping> !pin /ipfs/QmRsQHn9yV1VgGU3fEkBtpnwjVgKkrRXFKGS2cRoJMyG4m random dag maker
<pinbot> now pinning on 8 nodes
<pinbot> pinned on 8 of 8 nodes (0 failures) -- https://ipfs.io/ipfs/QmRsQHn9yV1VgGU3fEkBtpnwjVgKkrRXFKGS2cRoJMyG4m
<daviddias> AphelionZ: it is a stream of streams
<daviddias> Which is what you get with a tarstream too
<daviddias> We just unwrap it for you
dryajov1 has joined #ipfs
jedahan has quit [Read error: Connection reset by peer]
jedahan has joined #ipfs
Roderick has joined #ipfs
Caterpillar has quit [Quit: You were not made to live as brutes, but to follow virtue and knowledge.]
matoro has joined #ipfs
<AphelionZ> daviddias: may I see the best practice for doing that? That part was complex and I just want to make sure my code aligns properly
Encrypt has joined #ipfs
<AphelionZ> whyrusleeping: may i request that you ask pinbot to pin QmPaVpWmKEcLdSU9iymJRMRBPX95bb8yKZ639VCCD6HgPr
<AphelionZ> I'm try to test to see if the content I'm creating here is making it to the global network
<AphelionZ> trying*
dryajov1 has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<whyrusleeping> AphelionZ: if you can view it on the gateway its making it to the global network
<AphelionZ> oh good, thank you!
<AphelionZ> i was showing my kids the pastebin haha
Oatmeal has joined #ipfs
Encrypt has quit [Client Quit]
apiarian has joined #ipfs
<AphelionZ> btw just saying: jbenet
<AphelionZ> and haad and daviddias and Kubuxu and lgierth and whyrusleeping
<AphelionZ> this IPFS stuff rules, good job
<AphelionZ> :)
pfrazee has joined #ipfs
<whyrusleeping> AphelionZ: :D We're glad you think so
iain has quit [Quit: Page closed]
pfrazee has quit [Remote host closed the connection]
warner has joined #ipfs
<victorbjelkholm> I made some weird forum type thing today https://ipfs.io/ipfs/QmbyWNuTs6iEnwPv2oLsKWmPtdqcM1sV55FseXXb9kHuZK
<AphelionZ> cooooll
<alu> victorbjelkholm: did you see the 33c3 art gallery I made
aquentson has quit [Ping timeout: 255 seconds]
aquentson has joined #ipfs
<alu> woah this is interesting
pfrazee has joined #ipfs
Mizzu has quit [Ping timeout: 255 seconds]
arkimedes has quit [Ping timeout: 260 seconds]
<lgierth> i'm on tree-talk
<lgierth> anybody else?
<lgierth> thanks AphelionZ :)
<lgierth> no new threads yet?
<victorbjelkholm> alu: ah, I did not, would be cool to see though
<victorbjelkholm> lgierth: oh, it says you have peers connected?
<lgierth> yeah 4
<lgierth> ok
<lgierth> ok new tab sees my old tab's thread
<alu> I used IPFS to create the skies
<lgierth> "14 replies" but i don't see the replies
<AphelionZ> im in tree chat :)
<AphelionZ> lgierth: even after clicking?
<victorbjelkholm> lgierth: the replies are inside the threads
<lgierth> i only see the ellllo? thread with 0 replies, header says "1 thread, 14 replies"
Roderick has quit [K-Lined]
<victorbjelkholm> alu: ah, sweet with a writeup, I'll check it out :)
<victorbjelkholm> lgierth: hm, try refreshing
<lgierth> now it lost a thread
<lgierth> refreshing
<lgierth> yeah same
<lgierth> it is pretty neat though
<victorbjelkholm> huh, how many threads you see?
pfrazee has quit [Ping timeout: 240 seconds]
<lgierth> one (elllo?) with 0 replies
<lgierth> header says 1 and 14
jedahan has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest31438 has quit [Ping timeout: 276 seconds]