jbenet changed the topic of #ipfs to: IPFS - InterPlanetary File System - https://github.com/jbenet/ipfs -- channel logged at https://botbot.me/freenode/ipfs/ -- code of conduct at https://github.com/ipfs/community/blob/master/code-of-conduct.md -- sprint at https://github.com/ipfs/pm/issues/7
<wking> revocation lists are just for tie-breaking for folks who change validity schemes
<kyledrake> jbenet +1 for ß
<kyledrake> aye, what a mess. Maybe I'll just throw the hashes into the domain records and have everyone yell at their nameserver providers to obey expire rules
<jbenet> "make your crude, mess of an alphabet safe for binary encoded bases (when you add the arabic numerals) 400 years from now damnit!"
<kyledrake> lol
<jbenet> kyledrake: try base32 ?
<jbenet> long but, hey, safety.
<kyledrake> chrome has a proper freakout with the =s in base32
anshukla has quit [Ping timeout: 240 seconds]
<kyledrake> It also seems to be not okay with the length of it
<Tv`> z-base-32 looks very nice for when you need semi-humanfriendly case-insensitive
<whyrusleeping> jbenet: also, i think that your records spec README is a little confused
guest965 has quit [Ping timeout: 256 seconds]
<kyledrake> I'm just going to link to the path for now. origin isn't life-or-death for these sites. Any sites using absolute paths vs relative will break.. oh well.
<kyledrake> Would have been nice, but it's not a show stopper.
<whyrusleeping> jbenet: under 'The Object' you list value as a link, and validity as the Data, but under 'The Interface' you list value as Data and dont have any place specified for the validity data
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
andyleap has quit [Ping timeout: 256 seconds]
* kyledrake wonders how much work it would take to make a FF/Chrome extension to handle ipfs://ipfs.git.sexy, then conspicuously looks at feross
williamcotton has quit [Ping timeout: 255 seconds]
Vendan has quit [Ping timeout: 265 seconds]
<Blame> thinking about the "how much do we need to reliably address x bits of possible contents). Inspired by the birthday attack: http://www.wolframalpha.com/input/?i=0.001+%3D+%281-2%5E-x%29%5E%282%5Ey%29
domanic has quit [Ping timeout: 252 seconds]
<Blame> how many bits do we need to store x bits of contents with 1 in thousand odds of a collision happening.
guest965 has joined #ipfs
<Tv`> kyledrake: web+ipfs, easy
<kyledrake> Pretty good compromise. Next is to figure out how to make it work :)
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<kyledrake> the crappy way is to feed it into a network of IPFS gateways. The good way is to implement IPFS in JS on the browser side.
<zignig> kyledrake: I think application is important to ( browser would be good for casual users ).
<zignig> kyledrake: application that leverage ipfs are going to be the killer application (IMHO)
<Blame> looks like you essentially need 2^(x*2) possible hashes to safely address 2^x values
<kyledrake> zignig I guess you could wire webkit into something and take that tack.
<zignig> kyledrake: yeah, having a full js node would be cool.
<zignig> Blame: depends on the hash. " birthday attack " would be a cool name for a death metal band. ;)
<Blame> this is assuming magical perfect (all value->key selections are perfectly independent)
inconshr_ has quit [Ping timeout: 272 seconds]
<zignig> Blame: that _is_ the idea for a hashing function. ;)
<Tv`> Blame: btw http://en.wikipedia.org/wiki/Birthday_attack has a good overview table
<Blame> yeah im reading that now. It has the right math
hellertime has joined #ipfs
<Tv`> and plugging those numbers into wolfram alpha gives you a fraction of the atoms in visible universe that number matches ;)
<Tv`> how many atoms per bit will your storage system be needing?
<zignig> Tv`: at least 1.
<Blame> eh, that assumes we only have 1 universe to work with.
<Tv`> ah, boil *their* ocean
<zignig> MWHAHA!
<Tv`> i've read some scifi that was like that
<bengl> tperson: saw your ipfs-blob-store. yay!!!
<zignig> bengl: url?
<jbenet> kyledrake: wait, the base32 hash is too long for a subdomain?
<jbenet> whyrusleeping; good point can you make an inline comment? i'll go fix all this later
<kyledrake> "In theory, this subdivision can go down to 127 levels deep, and each DNS label can contain up to 63 characters, as long as the whole domain name does not exceed a total length of 255 characters. But in practice most domain registries limit at 253 characters."
notduncansmith has joined #ipfs
<jbenet> kyledrake: can you find anything that is not "ipfs://" ? there are problems with using "ipfs://" that i would very much like to avoid.
notduncansmith has quit [Read error: Connection reset by peer]
<kyledrake> jbenet web+ipfs:// would be the only way for chrome extensions. I'm not sure Firefox supports this, last I checked they were using a whitelist of protocols you could register handlers for.
<jbenet> kyledrake: you could clip the has to the maximum val possible, cryptgraphically, you wont run into problems in the next couple years i dont think
<kyledrake> Extensions might be a different story
<jbenet> kyledrake: extentions can get around in different ways, and already working with some browser folks to make ipfs work in browser BUT id like to avoid ipfs://
<jbenet> kyledrake: i'd like to mend the rift between unix and the web
<jbenet> kyledrake: it's an uphill battle that i may have to give up some day, but i dont think it's actually that hard to propose support for it and have browsers + W3C ok it in the next 2yrs. i just want to get a chance to show people _why_ universal paths are better than the scheme identifier
<kyledrake> jbenet it is very exciting to learn that there is already work into integrating browser support.
<jbenet> its an experimental browser, but it comes with good pedigree
Wallacoloo has quit [Quit: Leaving.]
<kyledrake> jbenet any details yet?
<jbenet> kyledrake: not yet, but good interest and progress towards it. i'll check in soon
<bengl> tperson: for removal in ipfs-blob-store, could maintain a list of keys that have been "removed", and then check that list before accessing w/ createReadStream or exists
<bengl> .. you know, just to pass the tests ;)
<tperson> haha, so black list keys when "removed"?
<bengl> right
<bengl> i feel kinda silly suggesting that... but a spec is a spec, right?
<tperson> I have a few ideas for different ways to initial the blob store. Right now we have a very generic one with blocks. We'll be able to have ipns back stores (which we can remove keys), as well as unixfs store, which are super cool because you can mount your blob store.
notduncansmith has joined #ipfs
<tperson> We could also use the dag to create a record system for a blob store, which you could then save and reload with it's hash to get access to the same keys.
<bengl> unixfs++
notduncansmith has quit [Read error: Connection reset by peer]
anshukla has joined #ipfs
<whyrusleeping> ^ unixfs++
tilgovi has quit [Ping timeout: 258 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> jbenet: i want play.ipfs.io to use ipns dns records to redirect to the html5 video player
anshukla has quit [Remote host closed the connection]
guest965 has quit [Ping timeout: 256 seconds]
nessence has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
hellertime has quit [Ping timeout: 255 seconds]
inconshreveable has joined #ipfs
patcon has quit [Ping timeout: 272 seconds]
Wallacoloo has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
anshukla has joined #ipfs
anshukla has quit [Remote host closed the connection]
<JasonWoof> jbenet: what do you want instead of ipfs:// ?
<jbenet> JasonWoof just /ipfs/...
<jbenet> paths are universally composable.
<JasonWoof> jbenet: so basically file://ipfs/ ?
<jbenet> no, no "file://"
<jbenet> forget "://"
<JasonWoof> jbenet: that's what chromium displays when I open a file on my hard drive
<JasonWoof> jbenet: so you want /https/com/jasonwoof or /http/jasonwoof.com or some such?
guest965 has joined #ipfs
<tperson> jbenet: Just so we can get a quick iteration here, does circle want any special formatting from mocha or do we care?
<jbenet> tperson i dont think so, it should just use error return values.
<jbenet> tperson all these CI systems are pretty generic and are all similarly agnostic to output
<whyrusleeping> jbenet: previously we stored the key for an ipns record in the record itself
<whyrusleeping> i remember there being a reason for it...
<whyrusleeping> but i cant recall what it was
<tperson> okay cool, I think we can merge this then now.
<jbenet> whyrusleeping: we dont need to anymore once they're ipfs objects :)
<jbenet> tperson: link?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
rht__ has joined #ipfs
<jbenet> tperson: do i need to enable circleci
<tperson> Ya, at least if you want. Sounds like thats all we need to do.
guest965 has quit [Read error: No route to host]
guest965 has joined #ipfs
bren2010 has joined #ipfs
nessence has joined #ipfs
notduncansmith has joined #ipfs
nessence has quit [Read error: Connection reset by peer]
notduncansmith has quit [Write error: Connection reset by peer]
harlan_ has joined #ipfs
nessence has joined #ipfs
harlan_ is now known as harlan--
harlan-- is now known as harlan_
<harlan_> anyone know if there is a way to get the API (not the gateway) to serve HTML to a browser with content type HTML?
<harlan_> that is view the actual web page in a browser
<tperson> Like just through the API port or via some command in the api?
<harlan_> something like http://localhost:5001/api/v0/object/data?arg=/ipfs/QmXwU4GDEjjtZrvRL4ifTxyWbTpESnRvW7qkXnqr6pJ1FP is pretty close, but the html is not recognized as html by the browser, probably a binary stream or something
nessence has quit [Ping timeout: 240 seconds]
<harlan_> all this will be moot after https://github.com/ipfs/go-ipfs/issues/1322 is done, just looking to see if there is a quick way to prototype before that
<harlan_> tperson yup
<harlan_> not a big deal, will code around if if no current pathway
EricJ2190 has quit [Ping timeout: 258 seconds]
<tperson> How is 1322 going to solve it?
<tperson> 1322 is talking about returning raw objects
<harlan_> ah, sorry, lack of context there. I'm doing cline side dataviz, which is served up by the gateway (say port 8080). I need to request JSON from the API, but can't because it's on a different port (5001) with no CORS support. 1322 will put the API request I need on port 8080, so will solve my issue.
tilgovi has joined #ipfs
<tperson> ah
<harlan_> in the meantime, thought I, I could do everything through the API port, if it would serve up the HTML/css/js with their native content types. I think it won't, but thought it worth checking.
<tperson> I mean you can request /ipfs through the api port
<tperson> Which will return things with the correct mime type.
<tperson> Just start your daemon with the --unrestricted-api flag and you can request any file through it.
<tperson> You will then have full access to the api as well as correctly set content-types
<harlan_> aha, thx, will try
<harlan_> awesome, totally works, thx tperson :)
<tperson> sure thing!
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshr_ has joined #ipfs
inconshreveable has quit [Ping timeout: 256 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
thorax_ has joined #ipfs
lgierth has quit [Quit: Ex-Chat]
guest965 has quit [Read error: No route to host]
notduncansmith has joined #ipfs
pfraze has quit [Remote host closed the connection]
notduncansmith has quit [Read error: Connection reset by peer]
nessence has joined #ipfs
xelra has quit [Ping timeout: 276 seconds]
xelra has joined #ipfs
nessence has quit [Ping timeout: 250 seconds]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has quit [Ping timeout: 265 seconds]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshr_ has quit [Ping timeout: 256 seconds]
inconshreveable has joined #ipfs
nessence has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has quit [Ping timeout: 250 seconds]
sharky has quit [Ping timeout: 246 seconds]
Tv` has quit [Quit: Connection closed for inactivity]
sharky has joined #ipfs
patcon has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest9651 has joined #ipfs
guest965 has quit [Ping timeout: 245 seconds]
tilgovi has quit [Ping timeout: 252 seconds]
shurcooL has joined #ipfs
tilgovi has joined #ipfs
tilgovi has quit [Remote host closed the connection]
alexandria-devon has quit [Quit: alexandria-devon]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest9651 has quit [Ping timeout: 244 seconds]
guest449 has joined #ipfs
grncdr has joined #ipfs
guest965 has joined #ipfs
guest965 has quit [Ping timeout: 255 seconds]
guest965 has joined #ipfs
guest4491 has joined #ipfs
nessence has joined #ipfs
thorax_ has quit [Ping timeout: 265 seconds]
guest449 has quit [Ping timeout: 256 seconds]
nessence has quit [Ping timeout: 250 seconds]
grncdr has quit [Quit: Leaving.]
patcon has quit [Ping timeout: 246 seconds]
mildred has joined #ipfs
<krl> jbenet: i'm for explicit ordering, but for dangling records you might still want a seqnr
<krl> and for stackstream being the default object, i'm all for it
<krl> i've thougt about how to reconcile paths and huge fanouts
thorax_ has joined #ipfs
<krl> i want to be able to have /keyvaluestore/key resolve as a path
<krl> and obviously this does not map directly to mdag paths
<krl> so, there could be a concept of stackstream 'resolving' links
<krl> rather than having the links be explicitly defined
<krl> this applies to unixfs too
<krl> if we split up directories, we will also lose direct path->mdag mapping
<jbenet> Oh interesting
<jbenet> Well a fanout would still resolve, like a unionfs -- and can be clever about searching the fanout, but making it programmable is very cool
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has quit [Ping timeout: 245 seconds]
guest965 has joined #ipfs
<krl> jbenet: how would the fanout resolve in current model?
<krl> in a way this creates two different path layers
<jbenet> Would either have to use an index or just search the whole space in order. (Yeah it's a transparent traversal through links that don't show up in the user given path
<jbenet> (Kind of like ipfs cat with unixfs files)
<krl> mmh
<krl> but the general idea now is to use 'multicodec ?
zabirauf has joined #ipfs
<krl> brb
brab has joined #ipfs
thorax_ has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has joined #ipfs
[0__0] has quit [Ping timeout: 255 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has quit [Ping timeout: 264 seconds]
anshukla has joined #ipfs
zabirauf has quit [Read error: Connection reset by peer]
[0__0] has joined #ipfs
<harlan_> calling it… been having fun with dataviz today… check out a screenshot here: https://github.com/harlantwood/dataviz/blob/tree/webapps/tree-ltr/doc/ipfs-core.png
elima_ has joined #ipfs
<jbenet> harlan_ that looks really good!
<jbenet> cant wait to play with it
<harlan_> it's so cool, I love it already :)
<harlan_> coming soon, reading a hash from the URL like the examples
guest965 has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
<harlan_> also jbenet check out the latest in https://github.com/ipfs/go-ipfs/issues/1322 when you have a chance -- the TL;DR is in the last line or 2
<harlan_> for now at least, I'm parsing the API "refs" recursive output, works fine.
<jbenet> Will do
<harlan_> well, running locally with ipfs daemon --unrestricted-api anyway ;)
<harlan_> gnight ipfs
anshukla has quit [Remote host closed the connection]
harlan_ has quit [Quit: harlan_]
<jbenet> Night!!
atomotic has joined #ipfs
<brab> Hello. Is there a tutorial on how to publish web content to IPFS? I'm in particular interested in how to recursively publish linked pages and change the links in the initial page to IPFS hashes. (I'm of course assuming the pages form a DAG)
guest965 has quit [Read error: No route to host]
guest965 has joined #ipfs
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
anshukla has quit [Remote host closed the connection]
<jbenet> hey brab-- just make all the links relative
<jbenet> and then just `ipfs add -r <path>`
<jbenet> you can take a look at the ipfs website itself: https://github.com/ipfs/website
<brab> Ah, very nice. Thanks for the info.
anshukla has joined #ipfs
nessence has joined #ipfs
<rht__> jbenet: (ipfs get progressbar) https://travis-ci.org/ipfs/go-ipfs/jobs/65359722 nodeStat CumulativeSize is not accurate for very small files. there seems to be a minimum amount of data being transferred
<rht__> e.g. " ipfs get succeeds (directory)"
nessence has quit [Ping timeout: 252 seconds]
<rht__> (in general `ipfs get` should be as reliable as curl)
anshukla has quit [Remote host closed the connection]
<tperson> Are you talking about the 2159%? lol
<jbenet> rht__ hmm weird, not sure what's going on there.
<jbenet> rht__ what is the progressbar measuring from?
guest965 has quit [Ping timeout: 258 seconds]
<rht__> exactly that, CumulativeSize from nodeStat
guest965 has joined #ipfs
<jbenet> rht__ no i meant, what is the progress bar adding up?
saebekassebil has joined #ipfs
<rht__> if the output is not gzipped compressed, it is adding up from `res.Output().(io.Reader)`, like `ipfs cat`
<rht__> tperson: you can find a 9309.09 % from 'ipfs get -a succeeds'
<jbenet> rht__ i think that output is a bunch of json objects updating the old counter, not the actual data output.
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<rht__> but it is the output that usually shows by default when `ipfs get` finishes, isn't it?
<jbenet> rht__ ipfs get shows a counter going up, and that's it, because ipfs get outputs to a directory, not stdout
<rht__> from the other test: https://travis-ci.org/ipfs/go-ipfs/jobs/65178883, 'ipfs get -a succeeds' has 2.00 kb as its size
<rht__> (the other test from other PR)
<rht__> if what you suspect is true, then should 'ipfs get -a succeeds' has 22 B / 22 B as its size?
<jbenet> rht__ -a outputs a tar archive, which is likely closer correlated, and maybe a coincidence that it's 22/22?
<jbenet> not sure.
<rht__> then I can use the example without '-a'
<rht__> 'ipfs get succeeds'
<rht__> still the same problem
anshukla has joined #ipfs
anshukla has quit [Remote host closed the connection]
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has quit [Ping timeout: 264 seconds]
guest9651 has joined #ipfs
zabirauf has joined #ipfs
nessence has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has quit [Ping timeout: 258 seconds]
Bioblaze has quit [Ping timeout: 265 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest9651 has quit [Ping timeout: 255 seconds]
guest965 has joined #ipfs
<rht__> jbenet: what do you think of the comparison with {ipfs get, ipfs cat}, curl, and cat?
anshukla has quit [Remote host closed the connection]
anshukla has joined #ipfs
guest965 has quit [Read error: No route to host]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<rht__> curl ~ cat, wget ~ cp (ref: http://daniel.haxx.se/docs/curl-vs-wget.html), 'ipfs cat' ~ curl ~ cat, 'ipfs get' ~ wget ~ cp. where does the parallel break down?
<Luzifer> jbenet: My hoster accepted the statement and closed the ticket. \o/
<rht__> curl has this handy '--verbose' to show http header data. should this be in ipfs get/cat as well?
<rht__> (and 'git clone --verbose' as well)
inconshr_ has joined #ipfs
inconshr_ has quit [Remote host closed the connection]
<rht__> (git-clone ~ cp)
inconshr_ has joined #ipfs
anshukla has quit [Remote host closed the connection]
flugsio has joined #ipfs
inconshreveable has quit [Ping timeout: 256 seconds]
inconshr_ has quit [Ping timeout: 265 seconds]
nessence has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has quit [Ping timeout: 256 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
domanic has joined #ipfs
Wallacoloo has quit [Quit: Leaving.]
pfraze has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest449 has joined #ipfs
domanic has quit [Ping timeout: 246 seconds]
guest4491 has quit [Ping timeout: 276 seconds]
guest965 has quit [Read error: Connection reset by peer]
guest9652 has joined #ipfs
nessence has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest4491 has joined #ipfs
nessence has quit [Ping timeout: 245 seconds]
hellertime has joined #ipfs
guest449 has quit [Ping timeout: 255 seconds]
guest9652 has quit [Ping timeout: 250 seconds]
guest965 has joined #ipfs
Taek has quit [Quit: No Ping reply in 180 seconds.]
Taek has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
saebekassebil has quit [Quit: Textual IRC Client: www.textualapp.com]
nessence has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
nessence has quit [Ping timeout: 265 seconds]
heliumcraft has joined #ipfs
<heliumcraft> hello
<heliumcraft> is this project active?
guest965 has quit [Ping timeout: 272 seconds]
guest965 has joined #ipfs
lgierth has joined #ipfs
guest9651 has joined #ipfs
guest965 has quit [Read error: Connection reset by peer]
nessence has joined #ipfs
<Blame> yep. checkout the log file.
atomotic has quit [Quit: Textual IRC Client: www.textualapp.com]
notduncansmith has joined #ipfs
<Blame> I think you managed to find the sweet spot where the sleep schedules align.
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
nessence has quit [Ping timeout: 272 seconds]
<crest> Blame: not really
<crest> i'm in UTC+02:00 and he asked at 13:43 CEST
mildred has quit [Ping timeout: 276 seconds]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Ping timeout: 272 seconds]
pfraze has joined #ipfs
nessence has joined #ipfs
brab has left #ipfs ["ERC (IRC client for Emacs 24.5.1)"]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest9651 has quit [Ping timeout: 256 seconds]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
heliumcraft has quit [Quit: Be back later ...]
guest965 has quit [Read error: No route to host]
guest4491 has quit [Read error: Connection reset by peer]
guest449 has joined #ipfs
guest965 has joined #ipfs
guest965 has quit [Ping timeout: 255 seconds]
guest965 has joined #ipfs
tso has quit [Quit: Nettalk6 - www.ntalk.de]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has quit [Read error: No route to host]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has quit [Ping timeout: 256 seconds]
guest965 has joined #ipfs
patcon has joined #ipfs
williamcotton has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
heliumcraft has joined #ipfs
williamcotton has quit [Ping timeout: 245 seconds]
therealplato has quit [Ping timeout: 265 seconds]
Vendan has joined #ipfs
therealplato has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
heliumcraft has quit [Quit: Lingo: www.lingoirc.com]
williamcotton has joined #ipfs
sharky has quit [Ping timeout: 265 seconds]
sharky has joined #ipfs
guest965 has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
patcon has quit [Ping timeout: 255 seconds]
<whyrusleeping> gmornin ipfsers
<whyrusleeping> Luzifer: yay!
<krl> moins
<whyrusleeping> krl: how goes it?
<krl> yah, pretty fine. except i hurt my foot running
<whyrusleeping> aww... that sucks.
<krl> and you?
<whyrusleeping> doin alright, waking up
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> still need coffee
<krl> ah
<whyrusleeping> but i'm too tired to get off the couch and get some
<whyrusleeping> and watching videos of guitar pedals that i want...
<lgierth> morning
<whyrusleeping> lgierth: mornin!
guest965 has quit [Ping timeout: 264 seconds]
guest965 has joined #ipfs
guest4491 has joined #ipfs
guest449 has quit [Read error: Connection reset by peer]
guest965 has quit [Ping timeout: 265 seconds]
headbite has quit [Quit: Leaving.]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
guest449 has joined #ipfs
guest4491 has quit [Ping timeout: 240 seconds]
williamcotton has quit [Ping timeout: 272 seconds]
patcon has joined #ipfs
<whyrusleeping> the amount of google hate on hacker news is strong this morning
<whyrusleeping> three different articles are full of comments like "they force you to use their terrible gmail services, blah, blah ,blah"
alexandria-devon has joined #ipfs
pfraze has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
patcon has quit [Ping timeout: 276 seconds]
guest4491 has joined #ipfs
guest9651 has joined #ipfs
guest965 has quit [Read error: Connection reset by peer]
guest449 has quit [Ping timeout: 265 seconds]
Tv` has joined #ipfs
patcon has joined #ipfs
guest965 has joined #ipfs
guest9651 has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
therealplato has quit [Read error: Connection reset by peer]
therealplato has joined #ipfs
<Evermore> I wish I had my own email but I understand it's hard to get anyone to accept your mail
williamcotton has joined #ipfs
<whyrusleeping> Evermore: hmm?
<Evermore> whyrusleeping: I use gmail but I hate it
<whyrusleeping> ooooh, yeah
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> outing myself: I like Google Apps for Business and I'm paying for it.
guest965 has quit [Ping timeout: 265 seconds]
Bioblaze has joined #ipfs
<whyrusleeping> Luzifer: i use google apps as well :D
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
<Blame> Email is one of those things with desperate need for re-decentralization.
<Blame> But so far none of the "personal server for the masses" sort of projects seem to have taken off.
<whyrusleeping> could do email over ipfs
<whyrusleeping> would be a fun hack
<Blame> I can contrive ways to store messages on IPFS, and maybe pass them with IPNS. What mechanism do you have in mind?
<Evermore> problem is that email is like the biggest network effect ever
<Evermore> on par with SMS and gasoline engines
<Evermore> They have tor and i2p mail which will only ever work within tor and within i2p
guest965 has quit [Ping timeout: 272 seconds]
notduncansmith has joined #ipfs
<whyrusleeping> Blame: the only part missing is a notification mechanism
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> if nodes are not online, how will they get their messages when they come back online?
<Blame> I've got a solution for that which would also allow for optional levels of plausible deniability (masking of the recipient)
<Blame> but it involves putting pubsub platform on a DHT
<Blame> which I plan for UrDHT anyway
guest965 has joined #ipfs
<whyrusleeping> Blame: well, every message can just be encrypted with the recipients public key, no?
<Blame> Sure, but you still give away meta-information by what records you store and retrive
<emery> whyrusleeping, I've done some go and email stuff, shouldn't be to hard
<Blame> You can never hide origin. (an adversary watching the wire can allways know when you send new content)
<emery> (when you consider how haphazard and ancient the specs are)
<whyrusleeping> emery: the hard part is building it nicely upon ipfs
<whyrusleeping> Blame: good point
<Blame> But you can mask receipt with redundant recipients.
guest965 has quit [Ping timeout: 272 seconds]
<emery> yea, if the relay is going to pin each message, you need to send unpins out of band
<Blame> It is the basis of BitMessage. But all2all does not scale, thus the "optional levels"
guest965 has joined #ipfs
<whyrusleeping> Blame: once ipfs gets relays, you wont need to bother trying to hide destinations via all2all broadcasts
<Blame> relays?
<whyrusleeping> you can just build a random pathway of relays to send through
<Blame> I did not realize that was on teh feature list
<whyrusleeping> at some point we will be able to have nodes relay connections for other nodes
<whyrusleeping> yeap, a lot of the code is actually implemented
<lgierth> early sprint checking cause i won't be here at 9: cleaned up the gateway provisioning scripts, today looking into overloaded gateways. not really blocked anything now.
<whyrusleeping> its how we are going to beat NAT
<Blame> essentially the redundant recipients is better than relays.
<lgierth> 9 being 7pm utc
<whyrusleeping> lgierth: thanks for the update!
<Blame> it preserves security is every node in the network is compromised.
<lgierth> o/
guest449 has joined #ipfs
<whyrusleeping> Blame: it might be better, but its not very practical
<whyrusleeping> and certainly not perfect
<Blame> There is a way to make it practical
<Blame> essentially "pay to play" the laziest idea is to require a proof of work to send a multicast message. The greater the proof of work, the more redundant recipients.
<Blame> The issue is one of rate limiting
<Blame> you could replace "proof of work" with any rate limiter (economic or otherwise)
guest965 has quit [Ping timeout: 265 seconds]
williamcotton has quit [Read error: Connection reset by peer]
williamc_ has joined #ipfs
guest4491 has quit [Ping timeout: 258 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
heliumcraft has joined #ipfs
<heliumcraft> hello
<whyrusleeping> heliumcraft: hey there!
<heliumcraft> if I store a file in IPFS, does it get stored fully in someones machine(s), or does it get broken into blocks and distributed to many different machines?
<whyrusleeping> heliumcraft: if you add a file to ipfs, it stays on your machine until someone else requests it
<whyrusleeping> but files added to ipfs *do* get chunked into blocks, and turned into a merkledag
<heliumcraft> i c
<heliumcraft> when someone else requests it, it gets downloaded to their machine only, or does it get distributed to the network?
<heliumcraft> I thought the file would get distributed through the network, so even if you are offline, the file you added is still there
<whyrusleeping> when someone requests it, it goes to their machine, from whoever on the network has it
<heliumcraft> ok so, basically what I'm trying to determine is, if someone puts into ipfs something 'dodgy' (say, illegal material for e.g), it wouldn't get fully stored in other machine(s) in the network right? just blocks
<heliumcraft> except for the machines that requested it fully ofc
<whyrusleeping> if someone puts illicit content on the network, only that machine, and machines who request it will have the data on them
<whyrusleeping> aka, you dont have to worry about bad content being randomly stored on your hard drive
lgierth has quit [Quit: Ex-Chat]
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Blame> Its going to be interesting when people start writing more aggressive block trading strategies.
<Blame> And seek out the desired blocks of people who they want blocks from.
<grawity> freenet's excuse for that is plausible deniability provided by not knowing the full address required to actually decrypt the block
<grawity> (the addresses consist of routing key + encryption key)
guest965 has quit [Ping timeout: 255 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<heliumcraft> whyrusleeping: tks for the clarification
<whyrusleeping> heliumcraft: no problem!
Bioblazin has joined #ipfs
nessence has quit [Remote host closed the connection]
<JasonWoof> I run my own email server (postfix) on a linode. Works fine. I can send to google, yahoo, microsoft, no problem
nessence has joined #ipfs
Bioblaze has quit [Ping timeout: 276 seconds]
nessence has quit [Remote host closed the connection]
mildred has joined #ipfs
<mmuller_> whyrusleeping: Doesn't BitSwap define just such a concept? (obtaining blocks other nodes want in exhange for blocks from those nodes?)
<whyrusleeping> mmuller_: that would be implemented as a bitswap agent
<whyrusleeping> its not currently implemented, and would be something you opt into
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Ping timeout: 246 seconds]
<mmuller_> ah, ok. I thought that was intended to be part of the standard protocol.
[0__0] has quit [Remote host closed the connection]
[0__0] has joined #ipfs
guest965 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> jbenet: poke
<whyrusleeping> you awake yet?
grncdr has joined #ipfs
tilgovi has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<sprintbot> Sprint Checkin! [whyrusleeping jbenet cryptix wking lgierth krl]
<whyrusleeping> sprint checkin, reviewing the records spec and getting a feel for an implementation of it (sketching some code)
<whyrusleeping> also working on diagnosing the odd ping time issue
<wking> checkin: Still no progress on the Docker resistry storage backend :/. Mostly comments on various spec/architecture issues: specs#10, go-ipfs#964, go-ipfs#1186, go-ipfs#1187, and go-ipfs#1291
<whyrusleeping> waiting on jbenet for some feedback about what should be done next
<whyrusleeping> wking: anything blocking you on the docker registry?
<wking> a large enough block of free time ;)
<whyrusleeping> lol
<wking> we're late enough in the week that I should just stop commenting on spec issues until I get something working on the registry driver side
<whyrusleeping> i'm actually fairly certain that between the two of us, there is more text in comments than in the actual spec
<wking> that's a good thing
<wking> so long as the points get boiled down and recorded in commit messages or the spec itself
<whyrusleeping> yeah
<whyrusleeping> my other activity this morning has been sitting around and wishing that QUIC was done
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
www has joined #ipfs
<ipfsbot> [go-ipfs] whyrusleeping opened pull request #1333: Do not merge - protocol change discussion (master...proto-fix) http://git.io/vIUOA
heliumcraft has quit [Read error: Connection reset by peer]
heliumcraft has joined #ipfs
guest4491 has joined #ipfs
guest449 has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 256 seconds]
guest965 has quit [Ping timeout: 255 seconds]
domanic has joined #ipfs
hellertime has quit [Quit: Leaving.]
guest965 has joined #ipfs
heliumcraft has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
guest965 has quit [Ping timeout: 255 seconds]
notduncansmith has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
Encrypt has joined #ipfs
<Encrypt> Hi!
<Encrypt> I've just discovered your project
<Evermore> Encrypt: what do you think of it?
guest965 has quit [Ping timeout: 264 seconds]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Encrypt> Evermore, I've finished watching the alpha demo
<Encrypt> So, the way I understand IPFS is:
<Encrypt> "A mix between web-caching, Dropbox system and other stuff"
<Encrypt> :D
guest965 has joined #ipfs
<Evermore> I see it as one big torrent swarm with other stuff added
<Encrypt> It allows to send content easily without setting a web server
<whyrusleeping> Encrypt: yeap, sending content around without a central server
<Encrypt> In fact, I have an idea
<whyrusleeping> shoot.
Wallacoloo has joined #ipfs
<Encrypt> And I was looking if it didn't exist yet
<Encrypt> The idea would be to decentralize the internet
<Encrypt> With a system of P2P web caching
<Encrypt> When a web request would be made, it would look around if nobody already has the webpage
<Encrypt> And retrieve it from a peer if a peer has already loaded the page
<Encrypt> Just as explained in the beginning of the video " Why We Must Distribute The Web "
<whyrusleeping> well, thats what we do :)
<Encrypt> whyrusleeping, Where? :P
<whyrusleeping> and it actually works, you can try it out today
<Encrypt> That's not shown in the demo
<Encrypt> whyrusleeping, But in your case
<Encrypt> You have to explicitely know the other Peer "adddress" or "ID"
<Encrypt> Right?
<whyrusleeping> nope, you can just request content
<whyrusleeping> and the network locates who has the content and gets it from them
<Encrypt> Hum
<whyrusleeping> mars.i.ipfs.io is a node running ipfs as a 'gateway' so people can publicly make requests for content through it
<whyrusleeping> the object i'm asking it for is the hash 'QmXViZ1hB937SBFCwyjGmc6fd2AhyxPYbbAsrxKBWzUydY'
<Encrypt> Well, I meant
guest965 has quit [Ping timeout: 272 seconds]
<whyrusleeping> if it doesnt have that object locally (which it didnt)
<whyrusleeping> it will search the network for it
<whyrusleeping> it found the object on my laptop here
<Encrypt> Imagine...
mildred has quit [Quit: Leaving.]
<Encrypt> I have a website
<Encrypt> (And I really have a website, which should be re-done with Jekyll :P)
<Encrypt> A client lambda wants to access the index page
<Encrypt> So, in his browser, he or she types: "http://wwwywebsite.com/index.html"
<Encrypt> Arf
<Encrypt> In this case, the P2P system would look around if someone hasn't already this webpage
<Encrypt> If not, it would fetch it from the server
<whyrusleeping> thats what i just showed you
<Evermore> You can do this if the index is in IPFS and the server is an IPFS node
<Encrypt> whyrusleeping, You gave me the complete IPFS URL with the hash
<Encrypt> There's something I don't get then
guest965 has joined #ipfs
<whyrusleeping> syntactic sugar: http://gateway.ipfs.io/ipns/ipfs.git.sexy/
<Encrypt> Though, it might just be URL rewriting
<whyrusleeping> if browsers begin to understand ipfs, that wont be necessary
<Encrypt> Ok, I see
<whyrusleeping> and if youre running a daemon on your computer, 'gateway.ipfs.io' can be replaced with 'localhost:8080'
<whyrusleeping> or whatever port you have it running on
<Encrypt> I think I'm getting it... :D
<whyrusleeping> wooo!
<Encrypt> So, imagine I want to publish my website on IPFS
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Encrypt> I could simply create a A record
<Encrypt> Which would point "http://www.mywebsite.com" to "http://gateway.ipfs.io" + <something else>
<Encrypt> Am I right?
<whyrusleeping> thats one way, yes
<whyrusleeping> we have a couple clever dns tricks
<Encrypt> Ok, great :D
<Encrypt> That's awesome than \o/
<Encrypt> then*
<whyrusleeping> the 'most slick' one is pointing an A record to a gateway node, and having a TXT record containing the <something else> part (a hash)
<Encrypt> whyrusleeping, ANd I would have my webserver hosting the website too
guest965 has quit [Ping timeout: 240 seconds]
<whyrusleeping> we really need a page of "Ipfs for website hosters"
<whyrusleeping> to explain all of this stuff in good detail
ei-slackbot-ipfs has quit [Remote host closed the connection]
<Encrypt> Yep
ei-slackbot-ipfs has joined #ipfs
<Encrypt> Agreed
<Evermore> whyrusleeping: Yeah I was wondering the other day how I can run IPFS on my server acting as a gateway for whitelisted content
<Evermore> So my webite would be in IPFS but it wouldn't show just any random hash
guest965 has joined #ipfs
<Evermore> only things that are pinned
<whyrusleeping> Evermore: the whitelist is planned, and the only thing holding it back is developer time
<whyrusleeping> if you want it to happen sooner, file an issue pester us about it, or write it yourself ;)
<Evermore> I could learn Go but I'm supposed to be working on a game
<Encrypt> Unfortunately, I'm not familiar with go...
<Encrypt> :D
<Encrypt> I've been working on Tox, if you know that...
<Evermore> Encrypt: wanna learn Rust and make a Rust-ipfs?
<Encrypt> C-IPFS
<whyrusleeping> i'd work on one in C
<Encrypt> Because C language ftw
<Encrypt> Pointers for life <3
<Evermore> From what i know of C++, I don't want to use C
<whyrusleeping> Encrypt: go also has pointers :)
<whyrusleeping> i wrote C for 7 years before picking up go
<whyrusleeping> it was a very nice transition
<Encrypt> I should check go out...
<Encrypt> Everyone starts using it
<Encrypt> But I have been cheking out lots of things recently
<JasonWoof> Encrypt: C and C++ are quite different
<Encrypt> Bash, Javascript... :x
<JasonWoof> Encrypt: well, not as different as those two
<Encrypt> What I've studied at school (and what I'm comfortable with):
<Encrypt> C, Java, Bash (now...), SQL, Python
<JasonWoof> go should be easy then
<JasonWoof> I don't recall go being weird
<JasonWoof> I need a refresher. I'm lurking here to learn and see if I get sucked into developing
<Encrypt> I've done a bit of Flex & Bison (Lex & Yacc)
<Encrypt> That was fun
<Encrypt> A bit of Prolog too which was really great
<whyrusleeping> haha, Flex and Bison... its been a good while since ive had that unfortunate displeasure
<Encrypt> Finally, I've worked with PHP during the web-development class
<JasonWoof> sorry
<whyrusleeping> lol
<JasonWoof> I use PHP for work. Terrible language. I prefer to use languages that were created on purpose
nessence has joined #ipfs
<Encrypt> That's a shame that your project isn't that known
<whyrusleeping> JasonWoof: you mean you dont like building personal home pages?
<Encrypt> It looks really good
<whyrusleeping> Encrypt: talking about ipfs?
<Encrypt> I bumped into it by chance, searching for p2p web caching
<Encrypt> whyrusleeping, Yep
<JasonWoof> whyrusleeping: not particularly, but it pays the bills
<Encrypt> I should contact bloggers then
<JasonWoof> whyrusleeping: well, lately I've been making bigger sites, which more than pays the bills
<Encrypt> korben.info (for french users here)
guest9651 has joined #ipfs
<whyrusleeping> Encrypt: yeah, help spread the word. we just sling a lot of code
<Encrypt> By the way, another question
guest965 has quit [Ping timeout: 245 seconds]
<whyrusleeping> no more questions, your question alottment has been consumed
<whyrusleeping> :P
<Encrypt> IPFS will really work for static web?
<Encrypt> Because for dynamic website, content would change over time
<whyrusleeping> ipfs is content addressed, it works best with the static web
<Encrypt> Ok, that's what I udnerstood :)
<Encrypt> IPFS + Jekyll = <3
<Encrypt> I'm looking forward to test that then :D
* wking turns on the suck-JasonWoof-into-developing ray
<JasonWoof> I look forward to learning about ipns, pushpub ideas, etc
<Evermore> Encrypt: Is Jekyll one of those static site generators?
<Encrypt> Yes
<JasonWoof> wking: :) I gotta finish my mockup / "scribble on a screenshot" thing first
<Encrypt> You can do blogging in markdown \o/
<Evermore> ooh
<Encrypt> That sounds fun :D
<Evermore> Encrypt: I need to learn that. My site is a mess of static HTML and I only converte one page to a Lua script
<JasonWoof> early demo here http://crayon_mockup.jasonwoof.com/
<JasonWoof> maybe I can finish that up this weekend
<Evermore> Oh this is almost related: I would love to have IPFS-based image macros where the text is HTML rendered over a background image, so I don't have to keep downloading the same image for every new macro
guest9651 has quit [Read error: Connection reset by peer]
guest965 has joined #ipfs
<JasonWoof> Evermore: my thing creates SVG as you click
guest4491 has quit [Read error: Connection reset by peer]
<JasonWoof> Evermore: if you don't want editing, you can just do straight svg
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Evermore> JasonWoof: If I could put text boxes in here it would be the same thing
<JasonWoof> Evermore: my thing doesn't support text, but it probably will at some point
<JasonWoof> Evermore: I've got 2-3 different ideas for this thing, not sure if it'll do all of them, one of them, or what
<Evermore> I wonder if I could make that a little Lua script that prints out HTML that you can cat right into ipfs
<JasonWoof> Evermore: my thing shouldn't be too hard to port. Want me to ping you when it's more complete?
<JasonWoof> Evermore: the major feature I hope is coming soon is being able to edit the shapes by dragging the corners/ends around
<Evermore> JasonWoof: Sure but I'm starting to think I could do mine in a few hours since it's very specific
<JasonWoof> :)
<Evermore> Only thing is you wouldn't be able to save as an image in one click like with regular image macros
<Encrypt> Back to the web question...
<Encrypt> When a peer gets a page from my website
<Evermore> Unless I can do some clever canvas trick...
<Encrypt> Does he or she keeps the file?
<JasonWoof> Evermore: you want the image+text to be one network fetch? or you want the image separate so it's cached for every different caption?
<Evermore> JasonWoof: the latter
<Encrypt> So that the user can then serve the file to another peer?
<Evermore> Encrypt: If they pin it then yes
<Encrypt> And if they don't...
<whyrusleeping> Encrypt: it sticks around on their node until a garbage collection
<Encrypt> Ok
<whyrusleeping> so in the time between the request and the garbage collection, they can reserve it
<Encrypt> What would be its lifetime then?
<whyrusleeping> if they 'pin' the file, it wont be garbage collected
<Encrypt> or "TTL"? :P
<whyrusleeping> lifetime depends on how frequently garbage collection is run
lgierth has joined #ipfs
guest965 has quit [Ping timeout: 276 seconds]
<Encrypt> Ok
<JasonWoof> in the api or commandline, is there a way to request that a certain ipfs hash be downloaded and pinned? or do I have to wait to request pinning until it's downloaded?
<Encrypt> So a small website like mine won't really have a chance to remain in a cache somewhere around the world :P
<Encrypt> Anyway...
<Encrypt> In this case, the client <-> server paradigm is fine
<JasonWoof> Encrypt: I get the impression that, currently, if you want something to stay up, you should make sure there's at least one node online with the content
<Encrypt> As pointed out in the video, caching becomes important when a lot of requests are made on the same resource
<Encrypt> <JasonWoof> [...] at least one node online with the content // That is to say my server :)
<JasonWoof> right, it's CDN-like, in how it scales to meet (very) high demand
<Encrypt> Yep
<JasonWoof> Encrypt: yeah, if you have a server, that's an easy one
<Encrypt> IPFS sounds really cool :}
<JasonWoof> Encrypt: if you don't then it should work to have two always-on home computers that are not very geographically close to eachother
<JasonWoof> I have a server too
<Encrypt> And once IPFS is set on every machine
<Encrypt> Akamaid dies \o/
<Encrypt> Eh eh :D
<JasonWoof> I have several GB of storage on my server that are infrequent downloads (latency is not very important). It would be cool to have them on IPFS, and my server could proxy them from wherever they're stored
<Encrypt> Or google CDN's at least
<JasonWoof> this would save me some (expensive) storage space on my server
<Encrypt> :D
<Encrypt> There are 2 websites on there
<Encrypt> up there*
<JasonWoof> Encrypt: what's on the timer? the printer?
<Encrypt> JasonWoof, Eh eh :P
<Encrypt> You're not the first one to ask
guest965 has joined #ipfs
<Encrypt> JasonWoof, In fact, there's an aquarium above
<Encrypt> The timer is for the light
<JasonWoof> I keep toying with the idea of making a few little servers like that (tiny/cheap computer eg ip, usb HDD) and having friends plug them in at their houses. Then I can get distributed backups, and other neat stuff like ipfs
<whyrusleeping> uhhhh
<Encrypt> Meh :D
<whyrusleeping> they keep showing up in the mail
<Encrypt> whyrusleeping, Mine is one of the first Raspberry Pis, it's a model B
<Encrypt> I have 256MB of RAM
<Encrypt> :x
<whyrusleeping> yeah, the one in the case is an original model B
<whyrusleeping> note the yellow video out
<Encrypt> I'm able to run a web, mail, files and printer server though
<Encrypt> But I would like to add more stuff
<Encrypt> Such as an SIP server
<Encrypt> I'd love to connect a GSM shield so that I could send SMS from my computer
<Encrypt> And that would serve as a gateway when I will be at Plymouth University
<Encrypt> Without roaming costs...
<Encrypt> But I haven't enough RAM to add such services for now
<Encrypt> And I don't want to swap on my SD card
patcon has quit [Ping timeout: 246 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<JasonWoof> yeah, I didn't buy a pi because I didn't have a use for it immediately (I have a linode, and I keep my desktop on all the time)
<JasonWoof> and I figured by the time I could actually use something like that, there'd be something better
<JasonWoof> very cool to think how I could use ipfs as a CDN, on real-live-current websites
<JasonWoof> proxied through my server of course
<JasonWoof> eventually I should have two server
<JasonWoof> ipfs seems like a good way to not worry about which server has which big files, just let ipfs figure it out
<JasonWoof> grab from my home computer on the fly if needed
<Encrypt> How much resources is IPFS consuming by the way?
<Encrypt> Would that un on a resources-constrained RAspberry Pi?
<Encrypt> Just as NginX is currently doing?
<Encrypt> I believe IPFS will be heavier than NginX...
<whyrusleeping> i run ipfs on rPis
<Encrypt> whyrusleeping, And how much is it consuming?
<jbenet> Encrypt: today yes, not in the future. ipfs is actually a very small protocol
<whyrusleeping> Encrypt: 50-60MB ram, 3% cpu idle
www has quit [Ping timeout: 258 seconds]
<whyrusleeping> but thats mostly because we havent paid much attention to resource consumption yet
<Encrypt> Ok, great then
<whyrusleeping> we've been focusing on speed
<Encrypt> Yes, I see :)
www has joined #ipfs
guest965 has quit [Ping timeout: 264 seconds]
guest965 has joined #ipfs
<jbenet> lgierth: i manually rebooted the gateways cause they were choking (not resolving things)-- a way to test this is "curl http://gateway.ipfs.io/ipfs/`head /dev/random | ipfs add -q`" -- may also want to reboot the ipfs daemon beforehand too, so the gateway has to connect to you.
<Evermore> I find it weird that they stop working after a while
<lgierth> jbenet: cool thanks
<lgierth> i just got home and it's me and my keyboard
<jbenet> lgierth: oh here! sorry should've checked with you first. sorry didnt see you were here on my ircclient
<Encrypt> And also, if I have understood...
<Encrypt> IPFS includes a complete web server at its core
<lgierth> no worries i did my initial ansible solarnet -a 'df -h' just two minutes after you had deployed :)
<whyrusleeping> Encrypt: that is correct
<Encrypt> And other tools (P2P related) then
guest9651 has joined #ipfs
guest965 has quit [Read error: Connection reset by peer]
<Encrypt> It seems really light then
<Encrypt> <whyrusleeping> Encrypt: 50-60MB ram, 3% cpu idle // It's really fine
<Encrypt> But if it can be even lighter... good :]
<whyrusleeping> Encrypt: it will be lighter, for sure
mildred has joined #ipfs
<whyrusleeping> and later we will also put out builds that dont have certain parts, for places you dont need them
<whyrusleeping> to make it even lighter
<Encrypt> Great! :)
<Encrypt> I'm having a look at GO right now by the way
<Encrypt> It looks like Python
<Encrypt> Hum... the type is after the variable name
<Encrypt> Weird
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
sprintbot has quit [Remote host closed the connection]
sprintbot has joined #ipfs
guest9651 has quit [Ping timeout: 265 seconds]
EricJ2190 has joined #ipfs
<jbenet> whyrusleeping: my chrome is using quic ;) https://www.evernote.com/l/AMZIRw-5riJI8IYpQVJxsTQPeD4zXulmPQsB/image.png
<whyrusleeping> lol, at least, its trying to
guest965 has joined #ipfs
hellertime has joined #ipfs
<Encrypt> Why did you choose go language by the way?
guest965 has quit [Ping timeout: 272 seconds]
<whyrusleeping> Encrypt: because go is a very good language designed by the creators of C and Unix for building large scale systems
<whyrusleeping> its also very pleasant to write in
guest965 has joined #ipfs
<Encrypt> Oh, that was created by the creators of C and Unix?
<whyrusleeping> Ken Thompson, Russ Cox and Rob Pike
hellertime has quit [Client Quit]
<Encrypt> "Go is written in C using Yacc & Bison for syntaxical analysis"
<Encrypt> :D
<whyrusleeping> except that statement is now false, lol
<Xe> ^
<whyrusleeping> Go is written in Go
<Xe> Go's been ported to Go
<Encrypt> syntactic*
<Encrypt> Ok
<Encrypt> Wikipédia's statement is false :D
<jbenet> well this is new.
guest965 has quit [Ping timeout: 272 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Quit: Leaving.]
<whyrusleeping> !pin QmYeAiiK1UfB8MGLRefok1N7vBTyX8hGPuMXZ4Xq1DPyt7
<pinbot> now pinning QmYeAiiK1UfB8MGLRefok1N7vBTyX8hGPuMXZ4Xq1DPyt7
<pinbot> pin QmYeAiiK1UfB8MGLRefok1N7vBTyX8hGPuMXZ4Xq1DPyt7 successful!
<whyrusleeping> !botsnack
<jbenet> whyrusleeping: careful, that's how digital evolution starts
<jbenet> mappum's bot is going to kill us all eventually. :)
<whyrusleeping> lol
guest965 has joined #ipfs
<jbenet> does anyone need CR from me atm?
<Encrypt> Well, thanks a lot for your answers
<Encrypt> IPFS is what I was looking for :)
<Encrypt> I'll auto-join this channel on startup
<whyrusleeping> jbenet: i want to get the protocol update to happen soooooon
<Encrypt> And have a look at your code after I take my TOEFL exam :P
<whyrusleeping> Encrypt: cool, see you around :)
<Encrypt> Sleeping time now :)
<Encrypt> See you o/
<whyrusleeping> G'Bye
Encrypt has left #ipfs ["Quitte"]
<jbenet> whyrusleeping: yeah it can happen this week if we do the multistream stuff
<jbenet> + spdy
<jbenet> i think it should be all in one go
<jbenet> cause it's a protocol breaking change
<whyrusleeping> jbenet: cool, can you make a list of what you want done there? i'll get to it
guest965 has quit [Ping timeout: 264 seconds]
<jbenet> which requires updating
<whyrusleeping> also, i had a BUNCH of questions on the record spec
<jbenet> whyrusleeping: https://github.com/ipfs/node-ipfs/issues/13#issuecomment-108465705 all the go parts here
guest965 has joined #ipfs
<whyrusleeping> yeah, the multistream thing makes no sense to me
<jbenet> whyrusleeping sign yourself up for things by editing + adding your name? and maybe link to other issues as they are created
<jbenet> lol
<jbenet> ask questions about it?
<whyrusleeping> i read all of those
<whyrusleeping> still not quite sure what the goal is
<whyrusleeping> or rather, how you envision it actually working in ipfs
<jbenet> it's a replacement for the muxer
<jbenet> the muxer sort of does this already
<jbenet> but without multistream-select
<jbenet> and with a different header (c-string, not pascal-c-string)
<whyrusleeping> okay, so multistream just says "hey, this is what we're using" and then from then to the end of time, they use that
<jbenet> right, AFACIT there's no way to do EOF safely. need something like https://github.com/jbenet/multistream/tree/master/msg-stream or msgio for it
<whyrusleeping> multistream-select does the same thing, with some extra logic inside.
<jbenet> but here's how i'd see it working (and suggest a good place to write this down -- prob in the wire spec)
<jbenet> (suppose that there's no encryption for a sec, we can decide where to put it later, prob around the whole thing) i dial a multiaddr,
guest965 has quit [Ping timeout: 255 seconds]
alexandria-devon has quit [Quit: alexandria-devon]
guest965 has joined #ipfs
<jbenet> (this can all happen concurrently, there's no handshake waiting) i dial a multiaddr -> and get a multistream-select header -> i must also write a multistream header -> i can either write a multistream-select "ls message" to see what protocols are available (or if i think i already know i can skip that) -> i then write a multistream header for the protocol i
<jbenet> want
<jbenet> this enables me to dial + write a multistream header for multistream-select, then the multistream header for spdy, open a spdy stream and start writing messages without ever waiting for a response
<jbenet> (if your spdy impl lets you do that, that is. spdy may force you to wait to avoid dos-ing things, but usually can disable it. maybe this is what `.Wait()` is for in those stream impls)
<jbenet> i'll make a diagram with all the messages on the wire
<jbenet> it will help
<whyrusleeping> okay
<whyrusleeping> so, the only purpose multistream select serves is to list available protocols?
<whyrusleeping> otherwise its basically just the normal multistream thing?
<jbenet> and to let you select one
<jbenet> well, if you didnt have a multistream-select muxer, you'd need a muxer like the one we have now
<jbenet> so think of "go-ipfs's current stream header muxer thing ---promoted-to---> multistream-select"
<whyrusleeping> but multistream-select only ever lets you select a single protocol
<jbenet> yep, so you select spdy
notduncansmith has joined #ipfs
<whyrusleeping> okay, so why not just start out with multistream-select?
<jbenet> and then make the spdy stream handler feed into the same multistream-select muxer
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> why have the initial multistream thing there at all?
Bioblazin has quit [Remote host closed the connection]
<jbenet> you do-- `multistream` is only the protocol that dictates how the protocols should self-describe their streams
<whyrusleeping> the first string you send is for multistream-select
<jbenet> right
<whyrusleeping> why not have the first one be for spdy?
<jbenet> its a multistream protocol, it self-describes
<jbenet> self-description that's why. you can nc it and go "ohh multistream-select, cool, "ls\n"
<whyrusleeping> OH, it sends you that?
<jbenet> yeah
<whyrusleeping> k, that makes a little more sense
<whyrusleeping> so it sends you multistream-select
<whyrusleeping> then you send it SPDY
<jbenet> yeah
nemik has quit [Ping timeout: 265 seconds]
<whyrusleeping> might want to indicate that someone in the wire.md
<whyrusleeping> somehow*
grncdr has quit [Quit: Leaving.]
grncdr has joined #ipfs
<jbenet> and then you can talk spdy. when you open a spdy stream, we plop that stream into multistream-select again (with the same or a different set of listed protocols)
<jbenet> this allows you btw, to run a protocol without a stream muxeer
<jbenet> instead of SPDY you can say IPFS-DHT
<jbenet> if you _only_ want to talk dht.
* whyrusleeping doesnt want to think about how hellish that code would look
grncdr has quit [Client Quit]
<jbenet> ??
<jbenet> its basically what we have just tweaked
<whyrusleeping> noooooooo, youre making layers of the stack optional
<jbenet> we already do 80% of this
<whyrusleeping> that last 20% is scary
<jbenet> why is that bad?
guest965 has quit [Ping timeout: 276 seconds]
<jbenet> it allows you to debug a protocol with nc (+/- the encryption)
<whyrusleeping> i guess ive just had too many bad trips down the rabbit hole of our network stack
<jbenet> without having to deal with other stuff.
guest965 has joined #ipfs
<jbenet> it is an alice in wonderland type of scary place.
<whyrusleeping> very much so, i dont know if i have enough acid to visit frequently :P
Wallacoloo has quit [Quit: Leaving.]
<whyrusleeping> oh well, i'll get on writing multistream-select then
<kbala_> jbenet: hey! when would you like to talk today?
<jbenet> kbala_ im free after 17:00 PDT
<kbala_> i've read some papers and have some possible features and approaches for bitswap ml
<jbenet> great!
nemik has joined #ipfs
<kbala_> hangout at 17:30?
<jbenet> yep, SGTM
<kbala_> cool
guest965 has quit [Read error: Connection reset by peer]
guest9651 has joined #ipfs
elima_ has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> jbenet: so, does the multistream select actually send the length then the text?
<whyrusleeping> or is it just newline delimited?
<jbenet> it prefixes the length
<whyrusleeping> hrm... that feels kinda weird
<jbenet> it's way safer to do that because if you can allocate a buffer, and if you get a massive length, you close that stream.
alexandria-devon has joined #ipfs
<whyrusleeping> true
<jbenet> the newline is just there for nc prettyness
<whyrusleeping> but then when i netcat to it, i have to figure out how long the thing i'm typing it first
<jbenet> which is annoying, but not a huuuge deal for the safety we get instead
<jbenet> the other way-- newline delimited c-strings -- always get screwed up by implementors
<whyrusleeping> okay
<jbenet> tons of buffer overflows happen because people screw up. or they jut "readline". death.
<whyrusleeping> we could put a limit on the length of a protocol name
<whyrusleeping> 1024 byte max, etc
<whyrusleeping> but i guess people would still screw that up by just calling readline
<whyrusleeping> which brings up another point, even with our checking the length
<whyrusleeping> i can still send you 20,000,000,000
<whyrusleeping> and youll try and allocate a buffer that large
<whyrusleeping> so we need to limit it either way
<jbenet> well no you can set the max there too, but at the very least it forces programmers to think ... should i really be allocating a buffer from this number i just got from the network??
<jbenet> whereas the "read until newline" thing doesn't really surface this problem
<jbenet> (but agree that you can hang yourself either way)
<whyrusleeping> alright
guest9651 has quit [Ping timeout: 272 seconds]
<jbenet> one thing, the "ls\n" and "na\n" messages, i figured we didnt need to varint prefix them as they're "known messages" (which makes it nicer for nc)
guest965 has joined #ipfs
<whyrusleeping> uhhhhh
<jbenet> but i may be failing to consider something, so lmk if it seems odd.
<whyrusleeping> so i have to look for a varint or not?
<whyrusleeping> also, varint does not solve your problem
<whyrusleeping> varints dont have a max size
Luzifer_ has joined #ipfs
<whyrusleeping> if i call 'read varint'
<whyrusleeping> ill keep reading until the lead bit isnt set
<whyrusleeping> which could be forever
<jbenet> hmmmm yeah.
<whyrusleeping> also
<jbenet> how do we solve this elsewhere? i thought we did.
<whyrusleeping> how do i tell 'ls' from its ascii numbers as a varint
<jbenet> we may not be--
<wking> -1 to "special handling for deserializing known messages"
<wking> since you don't know it's a known message until you've read it in
<jbenet> true, it's annoying. am sure there's a way to make it work, but it is dirty.
edsu has quit [Ping timeout: 245 seconds]
<whyrusleeping> how do i tell "ls" AKA [108, 115] from a varint?
<jbenet> whyrusleeping do you want "no varint length" or "no length prefix at all (have a max)"?
<whyrusleeping> i want no length prefix, personally
<whyrusleeping> and cap the read size
edsu has joined #ipfs
substack has quit [Ping timeout: 245 seconds]
<whyrusleeping> even though people can shoot themselves
<whyrusleeping> it makes things so much nicer
substack has joined #ipfs
<jbenet> wyrusleeping you'd recognize [108, 115, 10] which is "ls\n"
<jbenet> (\n disallowed on multistream names).
Luzifer is now known as Luzifer__
Luzifer_ is now known as Luzifer
<whyrusleeping> then i cant send a message with the length whose varint prefix is [108, 115, 10]
<jbenet> true.
<jbenet> its dirty, ok kill it.
<jbenet> i worry about non-varint lengths because "2048 bytes surely must be enough for everyone" is likely to be wrong at some point.
<whyrusleeping> me too
<whyrusleeping> but
<whyrusleeping> heres what we can do
<jbenet> btw, the max in "ReadVarint" can be done by the varint reading impl. many varint readers have a way to set a max
<whyrusleeping> the implementor selects a relatively sane size at the time of writing, and if he reads more than that, he sends back "protocols with tags longer than X are not supported by this server"
<whyrusleeping> what we could do
<whyrusleeping> if you want to keep varints
<whyrusleeping> and also keep the ls without length
Luzifer__ has quit [Quit: Listen to VoxNoctem.com if you like dark music...]
<whyrusleeping> is, if youre sending a varint lengthed message, prefix is with a 0 byte
<whyrusleeping> that way you can tell between that, and an ascii command
<jbenet> these are hard to type unfortunately
<jbenet> but may be ok.
<whyrusleeping> oh yeah...
<whyrusleeping> you also wouldnt be able to type a varint
<jbenet> what i want to avoid is "ReadLine()" forever bugs.
<jbenet> this may all be obviated by a nc that understands `\0x##` or similar notation
<whyrusleeping> honestly, i think its okay... people may make that mistake
<whyrusleeping> but it will get fixed if they do
<whyrusleeping> its an easy one to catch
<whyrusleeping> especially using tools like fuzz
<jbenet> err `\x##`
<whyrusleeping> http has the same problem
<whyrusleeping> its newline delimited
<jbenet> right, but http2 killed that.
<whyrusleeping> and its done alright for itself over the years
<whyrusleeping> how does http2 work?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> there's a http1 compatibility, where you start with a regular http1 request, and set an "upgrade to http2" header
<whyrusleeping> interesting
<whyrusleeping> so you cant just nc to a server with http2
<jbenet> nope :/ -- think they're going to write http2 bin-to-text nc replacements
<jbenet> that allow you to write text and binarifies it. we could do this, too, but it's more work.
<whyrusleeping> sooooo, we have three choices as i see it
thorax_ has joined #ipfs
<whyrusleeping> we use only text mode, and go newline delimited
<whyrusleeping> we use only binary mode, where everything is length prefixed
<whyrusleeping> or, we try and do the mixed mode, and have extra logic to try and differentiate between a text command and a varint
www1 has joined #ipfs
<whyrusleeping> i like the idea of (1), it appears the world is moving towards (2)
<whyrusleeping> and i think (3) is likely a bad idea
<jbenet> yep, lets go binary mode but add the newlines for nc friendliness. then writing it just means prefixing every message and that can be done with a nc tool that does it for you.
<whyrusleeping> :/
www has quit [Ping timeout: 250 seconds]
<jbenet> it's (2) but can be netcated.
<jbenet> parsing is still fine.
<whyrusleeping> if we have to use an extra tool, we might as well have the tool parse out the newlines
<wking> ^ +1
<jbenet> no but it makes it not horribly suck to do it without the tool
reit has quit [Ping timeout: 245 seconds]
<jbenet> you can enter the numbers yourself if you have to
<whyrusleeping> how the heck am i going to type a varint?
<wking> "horribly sucks via bare nc" seems like a reasonable cost for the simplicity of (2).
<jbenet> copy pasting the binary output from a program, python can do this for you
<wking> just use the nc-wrapping tool
<jbenet> this _is_ (2), it just has a newline at the end of every line too.
<jbenet> wking: what if you cant get it.
<jbenet> or dont know about it.
<whyrusleeping> or what if you dont have python installed?
<jbenet> you can figure out a varint
<jbenet> it's not that hard, every number 0-127 is the same.
<jbenet> 127 * 8 = 1016, that's enough for most protocols you'll see.
<whyrusleeping> but typing the character is impossible without another program
<jbenet> but it doesnt _kill_ universality.
<whyrusleeping> (it would also be 127^8)
<wking> These seem like low-likelyhood risks, compared to the oddity of embedding a random character that only makes sense in the special case that you're sending/receiving the data with a particular tool
<wking> if you can get nc, you can get the nc-wrapping tool (just write it in Go and build it for the various arches?)
<jbenet> standard unix tools have this for you. print '\x61'
Wallacoloo has joined #ipfs
domanic has quit [Ping timeout: 256 seconds]
neoteo_31 has joined #ipfs
<Blame> jbenet: you offered code review earlier. Can I take advantage of it?
neoteo_31 has quit [Remote host closed the connection]
<jbenet> Blame yeah I can after 18:00 pdt
<Blame> thanks
tilgovi has joined #ipfs
Bioblaze has joined #ipfs
notduncansmith has joined #ipfs
<jbenet> whyrusleeping: varint prefix the ls/na, keep the \n (most nc tools use enter and send the newline along). I often debug protocols with nc and have recently seen many people having to copy paste things manually into nc. "Download my fancy tool x" can take care of the common case of not having to figure out varints yourself, but the protocol shouldn't hurt you
<jbenet> if for some reason you can't download a tool and _have to_ use nc
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> jbenet: got it, nearly have a prototype
lgierth_ has joined #ipfs
<jbenet> Yay
hellertime has joined #ipfs
lgierth has quit [Ping timeout: 264 seconds]
<whyrusleeping> !pin QmPVFuK8ZeC3Ba5XNnB52Jpc51j4pzaZ4K4jPkv3S2ncRU
<pinbot> now pinning QmPVFuK8ZeC3Ba5XNnB52Jpc51j4pzaZ4K4jPkv3S2ncRU
<pinbot> pin QmPVFuK8ZeC3Ba5XNnB52Jpc51j4pzaZ4K4jPkv3S2ncRU successful!
<whyrusleeping> !botsnack
* whyrusleeping nooooooo
<whyrusleeping> !botsnack
<pinbot> om nom nom
<whyrusleeping> :D
<jbenet> <3
<Evermore> !ping
<Evermore> !help
<Evermore> pinbot: ay
<Evermore> nvm
<whyrusleeping> Evermore: http://github.com/whyrusleeping/pinbot
<Luzifer> whyrusleeping: <3
<Luzifer> I'll grab some code from there for my gobuilder… looks really useful!
<Luzifer> (not for a bot but for the files into ipfs thing)
<whyrusleeping> oh, yeah. i'm using the shell api that i have here: http://github.com/whyrusleeping/ipfs-shell
compleatang has quit [Quit: Leaving.]
<wking> whyrusleeping: Can you add a patch-wrapper to ipfs-shell?
<Luzifer> yep. With that I only need to expose the ipfs write-api on the server and put a small control-container next to it... then I can get it to pin things remotely and everything is fine! :)
<whyrusleeping> sure thing
<wking> thanks
<Luzifer> (hm using irc in browser is strange. the irccloud interface too)
compleatang has joined #ipfs
<Luzifer> but now: good night. first meeting in 9h16m... :/
<whyrusleeping> Luzifer: try out weechat
<whyrusleeping> it has nice CLI interface as well as a pretty web interface for the same running client
<Luzifer> hm just went to irccloud in order to kill my bnc server
lgierth_ has quit [Quit: Ex-Chat]
<Luzifer> blowing up all the servers ;)
therealplato has quit [Ping timeout: 252 seconds]
<Luzifer> I'll get used to it…
equim has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
thorax_ has quit [Ping timeout: 276 seconds]
therealplato has joined #ipfs
lgierth has joined #ipfs
lgierth has quit [Client Quit]
<ipfsbot> [go-ipfs] whyrusleeping created patch/patch (+1 new commit): http://git.io/vITrh
<ipfsbot> go-ipfs/patch/patch 9a987b8 Jeromy: 'key' objects dont marshal to json well
<whyrusleeping> jbenet: wking whoops...
<ipfsbot> [go-ipfs] whyrusleeping opened pull request #1334: 'key' objects dont marshal to json well (master...patch/patch) http://git.io/vIToJ
* whyrusleeping goes back to his corner
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<wking> whyrusleeping: #1334 looks good to me, although I'd consider "Key" as the map key to match the key.Key type name (although I'd probably use hash in both places if I was starting from scratch ;)
<whyrusleeping> "Hash" is part of the Object object
<whyrusleeping> i was just reusing it to avoid making yet another type
<wking> ah, that makes sense then.
<wking> why do we have two types (Node and Object) in core/commands/object.go?
* whyrusleeping looks
<whyrusleeping> looks like they have slightly different purposes
<wking> Looks like that Object landed in go-ipfs@759437e (ls: introduce specific output types, 2015-03-10), but maybe it's just preserving an old type that cryptix turned into LsObject?
lgierth has joined #ipfs
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]