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
<krl> with first-class bignums, you should rarely need it
<Blame> Id encode those as [length][sign][bytes]
<Blame> you cant really do complement math easily without a fixed base
<Blame> interestly if would be essentially impossible to decompile the code without interpeting it. You could even compress code to re-use substrings of code.
<whyrusleeping> what would you call a structure that manages sending out messages to a given peer
<whyrusleeping> there is one of these for each peer
<whyrusleeping> i'm terrible at naming things, and that only serves to make things more confusing for everything else
<Blame> That wont be confusing at all
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> hrm, i like it
<whyrusleeping> but i dont think its up to jbenets standards
<whyrusleeping> might confuse some people
williamc_ has quit [Ping timeout: 246 seconds]
ovef has left #ipfs [#ipfs]
<Blame> fine.. liaison then
<whyrusleeping> mmmm, thats a better word
<Blame> worst case: DecediatedMessagePasserForPeerClass
<whyrusleeping> Impl
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
williamcotton has joined #ipfs
domanic has joined #ipfs
Wallacoloo has joined #ipfs
<krl> jbenet: hmm, of course the hash is also a monoid of sorts
domanic has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
williamcotton has quit [Ping timeout: 255 seconds]
domanic has joined #ipfs
domanic has quit [Ping timeout: 240 seconds]
<niran> PeerMessenger
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
pfraze has quit [Remote host closed the connection]
pfraze has joined #ipfs
<whyrusleeping> PeerMessenger works too, probably better than MsgQueue
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 272 seconds]
tilgovi has joined #ipfs
Wallacoloo has quit [Ping timeout: 256 seconds]
tilgovi has quit [Ping timeout: 272 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has quit [Remote host closed the connection]
EricJ2190 has quit [Ping timeout: 272 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
flugsio has joined #ipfs
inconshreveable has joined #ipfs
sharky has quit [Ping timeout: 256 seconds]
inconshreveable has quit [Remote host closed the connection]
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
sharky has joined #ipfs
<ipfsbot> [webui] jbenet pushed 1 new commit to master: http://git.io/vUj42
<ipfsbot> webui/master 41ce487 Juan Batiz-Benet: Merge pull request #48 from ipfs/geoip-version-bump...
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has joined #ipfs
ues4f5jgvc has quit [Ping timeout: 258 seconds]
Tv` has quit [Quit: Connection closed for inactivity]
ues4f5jgvc has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 272 seconds]
inconshreveable has quit [Remote host closed the connection]
besenwesen has quit [Quit: ☠]
besenwesen has joined #ipfs
besenwesen has quit [Changing host]
besenwesen has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ues4f5jgvc has quit [Ping timeout: 265 seconds]
ues4f5jgvc has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 255 seconds]
ues4f5jgvc has quit [Ping timeout: 255 seconds]
hsvcr has joined #ipfs
tilgovi has joined #ipfs
hsvcr has quit [Quit: Leaving]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
tilgovi has quit [Ping timeout: 256 seconds]
hsvcr has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
hsvcr has quit [Quit: Leaving]
hsvcr has joined #ipfs
mildred has quit [Quit: Leaving.]
hsvcr has quit [Read error: Connection reset by peer]
u7654dec has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has joined #ipfs
inconshreveable has joined #ipfs
inconshreveable has quit [Remote host closed the connection]
inconshreveable has joined #ipfs
inconshreveable has quit [Read error: Connection reset by peer]
chriscool has joined #ipfs
u7654dec has quit [Quit: Leaving]
u7654dec has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
u7654dec has quit [Quit: Leaving]
u7654dec has joined #ipfs
inconshreveable has joined #ipfs
chriscool has quit [Ping timeout: 255 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has quit [Ping timeout: 265 seconds]
u7654dec has quit [Quit: Leaving]
u7654dec has joined #ipfs
mildred has quit [Quit: Leaving.]
alive_ has joined #ipfs
bmcorser has quit [Ping timeout: 256 seconds]
alive has quit [Ping timeout: 256 seconds]
bmcorser has joined #ipfs
u7654dec has quit [Read error: Connection reset by peer]
inconshreveable has joined #ipfs
u7654dec has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Aaron101- has joined #ipfs
chriscool has joined #ipfs
null_rad- has joined #ipfs
crest_ has joined #ipfs
neoteo has quit [*.net *.split]
ekarlso has quit [*.net *.split]
null_radix has quit [*.net *.split]
Vendan has quit [*.net *.split]
mitchty has quit [*.net *.split]
Xe has quit [*.net *.split]
crest has quit [*.net *.split]
Aaron1011 has quit [*.net *.split]
acoos has quit [*.net *.split]
joeyh has quit [*.net *.split]
machrider has quit [*.net *.split]
Aaron1011 has joined #ipfs
Aaron101- is now known as Aaron1011
Aaron1011 has quit [Changing host]
mitchty has joined #ipfs
neoteo has joined #ipfs
joeyh has joined #ipfs
Vendan has joined #ipfs
acoos has joined #ipfs
machrider has joined #ipfs
Xe has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
RzR has quit [Excess Flood]
inconshreveable has quit [Remote host closed the connection]
RzR has joined #ipfs
acous has joined #ipfs
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Xe has quit [*.net *.split]
Vendan has quit [*.net *.split]
acoos has quit [*.net *.split]
machrider has quit [*.net *.split]
ekarlso has joined #ipfs
Xe has joined #ipfs
Vendan has joined #ipfs
machrider has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
u7654dec has quit [Quit: Leaving]
ei-slackbot-ipfs has quit [Remote host closed the connection]
ei-slackbot-ipfs has joined #ipfs
Vendan_ has joined #ipfs
machrider_ has joined #ipfs
Vendan has quit [*.net *.split]
machrider has quit [*.net *.split]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<cryptix> gmorning ipfsss
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> ohai cryptix
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
flugsio has quit [Quit: WeeChat 1.1.1]
<Luzifer> cryptix: do you have any idea where in ipfs gateway 301 redirects can emerge? I get 301 redirects but only find code for 302...
<Luzifer> (and currently I'm hunting one 301 which causes trouble)
<cryptix> hrm
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<cryptix> Luzifer: is it a redirect from /path to /path/? that might be gorilla mux enforinc strict paths
<cryptix> ohwell
<cryptix> dnslink=/ipfs/QmczrnBpAgnhCo87rtZ8VbLfGU5v8g7cKr7Ef2fKRvYniA doesnt work?
<Luzifer> current master: nope, with the patch in that comment: yep
<cryptix> yea - r.URL.Path = "/ipfs/" + p.String() + r.URL.Path is definetly wrong
<Luzifer> thats the beast I'm currently searching: https://github.com/ipfs/go-ipfs/issues/1233#issuecomment-102618200
<Luzifer> but there is no freakin code producing 301 redirects... (at least I'm not able to find any)
<cryptix> sorry my plate is a bit full right now
<Luzifer> yeah no problem... could have been possible you know where to find 301s :D
<Luzifer> swagger documentation served from IPFS
chriscool has quit [Ping timeout: 264 seconds]
<cryptix> oh thats quite nice
<cryptix> id look in the gateway_handler
<cryptix> .go
<cryptix> maybe wking know more - he worked on the new path resolving stuff recently
<Blame> morning
<Luzifer> morning Blame
<Blame> Ever have that moment where you have a really bad idea and then everybody loves it?
<Luzifer> nah. I have just bad ideas nobody likes :(
<Luzifer> the other way round you could get rich :D
<Blame> :'( at least that keeps you out of trouble?
notduncansmith has joined #ipfs
<Luzifer> nah
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> --- SKIP: TestGatewayGet (0.00s) gateway_test.go:60: not sure whats going on here
<Luzifer> -_-
<Blame> I wish there was a formal definition of "Turing Tarpit"
lgierth has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
zen|merge_ has joined #ipfs
zen|merge has quit [Ping timeout: 272 seconds]
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
inconshreveable has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<ipfsbot> [go-ipfs] Luzifer opened pull request #1235: Fix: Using the `dnslink` feature led to infinite redirects (master...fix/dnslink-issues) http://git.io/vTejA
<Luzifer> yay. killed the beast! \o/
<Blame> a horrible horrible thing
<cryptix> Luzifer: congrats :) i'm triggering a rebuild of the one failed travis test - was unrelated
<Luzifer> cryptix: thx
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ehmry has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
zen|merge_ has quit [Ping timeout: 256 seconds]
EricJ2190 has joined #ipfs
zen|merge has joined #ipfs
zen|merge has joined #ipfs
notduncansmith has joined #ipfs
mildred has quit [Quit: Leaving.]
notduncansmith has quit [Read error: Connection reset by peer]
amiller- has joined #ipfs
manu has quit [Excess Flood]
amiller has quit [Read error: Connection reset by peer]
manu has joined #ipfs
pfraze has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
vonzipper has quit [Ping timeout: 265 seconds]
zrl has quit [Ping timeout: 265 seconds]
mquandalle has quit [Ping timeout: 265 seconds]
nsh has quit [Ping timeout: 265 seconds]
gozala has quit [Ping timeout: 265 seconds]
andyleap has quit [Ping timeout: 265 seconds]
sindresorhus has quit [Read error: Connection reset by peer]
bigbluehat has quit [Write error: Connection reset by peer]
mitchty has quit [Quit: No Ping reply in 180 seconds.]
mondkalbantrieb has quit [Quit: No Ping reply in 180 seconds.]
Taek has quit [Quit: No Ping reply in 180 seconds.]
mitchty has joined #ipfs
Taek has joined #ipfs
gozala has joined #ipfs
step21 has quit [Ping timeout: 265 seconds]
jj| has quit [Write error: Connection reset by peer]
andyleap has joined #ipfs
mondkalbantrieb has joined #ipfs
step21_ has joined #ipfs
nsh has joined #ipfs
step21_ is now known as step21
jj| has joined #ipfs
zrl has joined #ipfs
mquandalle has joined #ipfs
lgierth has quit [Quit: Ex-Chat]
vonzipper has joined #ipfs
sindresorhus has joined #ipfs
bigbluehat has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
chrisr_ has joined #ipfs
lidel has quit [Ping timeout: 246 seconds]
lidel has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
sharky has quit [Quit: Leaving]
sharky has joined #ipfs
sharky has quit [Read error: Connection reset by peer]
sharky has joined #ipfs
chrisr_ has quit [Ping timeout: 255 seconds]
williamcotton has joined #ipfs
Vendan_ is now known as Vendan
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mitchty has quit [Remote host closed the connection]
mitchty has joined #ipfs
Wallacoloo has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> Blame: love the Turing tarpit emerging
timgws has quit [Read error: Connection reset by peer]
<Luzifer> mornin jbenet
<jbenet> Luzifer good job tracking that down!
<Luzifer> thanks :)
timgws has joined #ipfs
<wking> Luzifer: I cleaned up the "/ipfs/" + p.String() bit in core/corehttp/ipns_hostname.go as part of the in-flight go-ipfs#1208
<wking> Grep turns up a few more instances of manual /ipfs/ prefixing, but I haven't looked over all of them. Hopefully I can get the current 1208 reroll pushed today
<jbenet> wking should we merge Luzifer's fix ahead or wait for yours?
<jbenet> And luzifer I think the ideal thing would be to make a test for this
<jbenet> We can add some DNS records to, say test.i.ipfs.io
<Luzifer> wking: hope that change does not interfer too much with your work... Haven't looked at other PRs but fixed the issue since I needed a fix now to get on with my documentation-in-ipfs-thing ;)
<wking> I've got some DNS tests too. Give me an hour to see if I can get the rerolled #1208 pushed, otherwise go ahead with whatever you need
<Luzifer> jbenet: yeah tests would be great. sadly the test is completely disabled(?) and I didn't took the time to see through that
<jbenet> I vaguely remember something not working with the A record approach, too. Cc whyrusleeping
<wking> A record approach?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<wking> Anyone more familiar with RFC 6763 want to chime in on whether multiple key/value pairs are allowed in one TXT entry?
<wking> From https://tools.ietf.org/html/rfc6763#section-6.6 , I'd say "yes, with any non-printable character acting as a separator"
<grawity> hmm, is that DNS-SD?
<grawity> yeah, 6.6 seems to say yes
<grawity> but that's not "any non-printable character"
<wking> But from https://tools.ietf.org/html/rfc6763#section-6.5 , I'd say now
<wking> *no
<grawity> that's actually three separate fields in a single TXT record
williamcotton has quit [Ping timeout: 240 seconds]
<grawity> as in `foo._bar.baz IN TXT "key=value" "paper=A4" "passreq"` in zonefile
<wking> But from 6.5: ...then everything after the first '=' to the end of the string is the value. The value can contain any eight-bit values including '='.
<grawity> right, so you have multiple strings if you want multiple keys.
<wking> ok, so no space-splitting when looking for dnslinks
mitchty has quit [Ping timeout: 265 seconds]
u7654dec has joined #ipfs
notduncansmith has joined #ipfs
<Luzifer> wow. my pull-request is finally green... O.O
notduncansmith has quit [Read error: Connection reset by peer]
<cryptix> Luzifer: lol yea - travis really disliked thatone.. restarted it ~5 times
<cryptix> but crashes were all unrelated weirdnesses
patcon has joined #ipfs
mitchty has joined #ipfs
u7654dec has quit [Quit: Leaving]
<jbenet> wking grawity I think it's common practice to have multiple values in one txt record. We should encourage people to follow the spec but be liberal in accepting, so we can space split to _find_ them but our examples,docs, and directions should do the right thing
chriscool has joined #ipfs
tilgovi has joined #ipfs
inconshreveable has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<wking> jbenet: but if we split on spaces (using strings.Fields), we'll break people who want to have spaces in their DNS-linked target.
<jbenet> Yep fair. Can probably scan. Spaces are a problem in names :(
<wking> Adding separate TXT entries (like grawity showed) isn't hard, so I'm fine sticking to one key/value per entry (that's how we parse it now)
u7654dec has joined #ipfs
<wking> And I just pushed the reroll with DNS-resolution tests and your text fixes. Still working on the change back to implicit depth. Do we want getters/setters in the Resolver interface to interact with a struct-side depth limit?
pfraze has quit [Remote host closed the connection]
<jbenet> Ok sgtm
<grawity> jbenet: well this is specifically about DNS-SD, not general random TXT-inDNS
<grawity> jbenet: unless I misunderstood the scrollback
<jbenet> wking: I think just having two functions and encouraging the default will make 90% of users use the default. -- yeah can use setter/getter on the resolver to change the default if you like
<jbenet> grawity: ah I took it as TXT in DNS
<wking> grawity: the dnslink=... stuff seemed closest to DNS-SD, so that's what I'm using to clarify the spec for our dnslink parser
<jbenet> bbiab
<grawity> for various other TXT uses, it's common to have a single string like "v=spf1 foo=bar baz=quux" or "v=pka1;this=that;abc=def"
<wking> grawity: I'm happy to use syntax like that too, just point me at the RFC so I know how the escaping is supposed to work.
<grawity> escaping where?
<wking> if the value for the foo key was supposed to be 'b r'
<grawity> there's no RFC for that; each app defines its own syntax
<wking> yeah, so I think it's best to use RFC 6763 and a standard syntax
<grawity> hmm
<wking> We don't have a reason at the moment to have more than a single dnslink key in the TXT records
<wking> so picking a nonstandard syntax that allows that seems silly (what other standard would we be trying to interop with?)
<grawity> interop? you're the ones who are *creating* the 'standard' in this case
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<wking> well, someone could use a single TXT record to set a dnslink for us, and set the foo key for their bar app at the same time
<grawity> generally, different apps would use separate TXT records, no?
<grawity> (btw, for dnslink=, if you ever need spaces I'd say the url-like %20 escaping would be a good fit here)
<Luzifer> wking: I added a comment with my results to your #1208. If you're going to implement that my PR is waste and can be closed
<wking> grawity: that's what I'd use if I was writing a multi-key TXT record RFC, but in the absense of such I think RFC 6763 is enough for us
ur5edgb has joined #ipfs
<grawity> I'd suggest adding "v=ipfs1" as the first item though
<wking> grawity: hmm. versioning is good, but I'm not sure what we'd put into a dnslink entry besides a path string... Will have to think about that
<grawity> doesn't matter if it's just a single key
u7654dec has quit [Ping timeout: 258 seconds]
<grawity> the point is to distinguish a TXT record used by ipfs from TXT records used by ... other stuff that you mentioned.
<wking> Luzifer: thanks. I'm trying to wrap my head around why the trialing slash is leading to nested paths...
<grawity> even if it stays at v1 forever
<grawity> example.com TXT "v=spf1 a mx ~all", example.com TXT "v=ipfs1 dnslink=asdfghjkl", example.com TXT "keybase-site-verification=qwertyuio"
<wking> right. currenltly we're just hoping 'dnslink' is a sufficiently unique key, or that others using dnslink will use the same semantics for the value
<Luzifer> wking: simple, it has two trailing slashes currently, mux redirects to one, that is appended to the dnslink portion (2x now), it has two trailing slashes, <goto begin>
<grawity> yeah, 'dnslink' sounds a bit too generic/vague for that to be a good idea though.
<wking> grawity: well, jbenet was hoping it would be generic ;)
<wking> and that other folks would just agree on the syntax
ehmry has quit [Quit: Leaving]
<wking> and semantics
ur5edgb has quit [Max SendQ exceeded]
<wking> Luzifer: it seems like the right solution is to ignore any IPNS-hostname content if we have a path, or to treat the path as a relative extension to the IPNS-hostname content.
ehmry has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> wking: see last comment in #1208 x
<Luzifer> xD
<Luzifer> (sorry I'm just trying to solve 2 issues I currently have with that hostname-dnslink-stuff)
<Luzifer> and maybe the /ipns/ solution is the more straigt forward?
ei-slackbot-ipfs has quit [Remote host closed the connection]
ei-slackbot-ipfs has joined #ipfs
headbite has quit [Quit: Leaving.]
<ipfsbot> [webui] krl opened pull request #51: Remove polling interval from files view (master...files-performance) http://git.io/vTf82
null_rad- is now known as null_radix
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<ipfsbot> [webui] jbenet closed pull request #51: Remove polling interval from files view (master...files-performance) http://git.io/vTf82
u7654dec has joined #ipfs
flugsio has joined #ipfs
williamcotton has joined #ipfs
<whyrusleeping> well, i managed to get nodes to not send the same block to the same peer twice
<whyrusleeping> which was surprisingly obnoxious
<whyrusleeping> but i'm still getting a weird issue where occasionally, a wantlist message gets dropped or missed somehow
<whyrusleeping> which isnt the end of the world because of the rebroadcaster
<whyrusleeping> but it still sucks...
<jbenet> yeah that's what causes the waiting.
<whyrusleeping> yeap
<whyrusleeping> its frustrating, its some sort of weird race condition
<whyrusleeping> but on my branch, ive got nearly everything synchronized down
<whyrusleeping> i want to own a coffee shop and it will be designed for people to come program in
<whyrusleeping> and then ill make someone else manage it
<whyrusleeping> so i can program in it
<whyrusleeping> and get free coffee
ehmry has quit [Quit: Leaving]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ur5edgb has joined #ipfs
ur5edgb has quit [Client Quit]
williamcotton has quit [Ping timeout: 256 seconds]
u7654dec has quit [Ping timeout: 244 seconds]
<whyrusleeping> jbenet: this is really weird... i'm sending out a message saying WANT(X)
<whyrusleeping> and on the other side, somehow, its being received as CANCEL(X)
<whyrusleeping> i'm so incredibly confused
u7654dec has joined #ipfs
chrisr_ has joined #ipfs
chrisr_ has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<ipfsbot> [webui] krl closed pull request #39: Show files in recursively pinned directories, wrap additions (master...show-recursive-pinned-files) http://git.io/vJU7T
<jbenet> whyrusleeping that sounds annoying-- can i take a look at the code?
<whyrusleeping> yeah, ill push to a WIP branch
<whyrusleeping> im 99.999% certain this happens on master right now too
<whyrusleeping> but ive only got a good way to observe it down on my branch
<jbenet> that would explain... everything.
<whyrusleeping> pretty much, yeah
<ipfsbot> [go-ipfs] whyrusleeping created wip-bitswap (+1 new commit): http://git.io/vTfAB
<ipfsbot> go-ipfs/wip-bitswap 17c0457 Jeromy: WIP: super awesome bitswap cleanup fixtime
pfraze has joined #ipfs
williamcotton has joined #ipfs
Tv` has joined #ipfs
<whyrusleeping> also, running the daemon with the race detector on, i cant connect to any other peers
williamc_ has joined #ipfs
williamcotton has quit [Read error: Connection reset by peer]
u7654dec has quit [Remote host closed the connection]
u7654dec has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> oh nvm, i'm just dumb and wrote the wrong bootstrap addresses
<whyrusleeping> #whyrusleepingproblems
cjdmax has quit [Remote host closed the connection]
<jbenet> whyrusleeping: have you confirmed whether the raw protobuf says the right thing?
cjdmax has joined #ipfs
<jbenet> I.e. On sending out and receiving a bitswap message protobuf print out the raw bytes and the unmarshaled bytes
<jbenet> This will tell us which side is at fault and bisect the problem
<whyrusleeping> mmmm, good question
<whyrusleeping> i'll check that
williamc_ has quit [Read error: Connection reset by peer]
williamcotton has joined #ipfs
<whyrusleeping> we wrap our streams in that protobuf delimited reader thing
<whyrusleeping> this became less easy
<whyrusleeping> well, can we assume the protobuf marshaler is correct?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> Probably :)
<whyrusleeping> added in more instrumentation, and having difficulties getting a repro :(
<whyrusleeping> there we go, got one
<whyrusleeping> yeap, the protobufs we receive have the cancel bool set
williamcotton has quit [Ping timeout: 252 seconds]
<jbenet> Ok good to know.
<whyrusleeping> yeap, now for the sending side
krl has quit [Quit: WeeChat 0.3.8]
ipfs-gitter-bot has quit [Remote host closed the connection]
<jbenet> maybe do `proto.Bool(-)`
<jbenet> i've low confidence that's it because it is supposed to be an address https://github.com/ipfs/go-ipfs/blob/master/exchange/bitswap/message/internal/pb/message.pb.go#L74
<whyrusleeping> that looks really sketchy
<jbenet> still-- it's sharing memory in a very sketchy way.
<jbenet> yeah
<whyrusleeping> ill make the change
<Luzifer> wow. thats ugly. but works. https://gist.github.com/Luzifer/ca7eae76a85bca90c83a :( sometimes go seems to have no nice way to do things...
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping> 4/4 no repro, jbenet you may have fixed it
<jbenet> whyrusleeping: try 30 with a script.
<jbenet> whyrusleeping some network bugs were ~1/50 to repr
<whyrusleeping> yeah
<jbenet> wking luzifer: what do we want to do about resolve-- wking's PR looks ready to go, but i think luzifer's concern isn't addressed.
<jbenet> luzifer: what if we merge wking's -- you rebase on top?
<jbenet> cause wking's is much larger.
<Luzifer> jbenet: the question is: using the ipns solution or the string trimming?
<Luzifer> it's not a problem to rebase
<jbenet> oh point me to the difference?
<Luzifer> I'd prefer the /ipns rewrite because it fixes 1234 and 1233...
<Luzifer> the first solution only fixes 1233, the second will fix 1233 and 1234
patcon has quit [Ping timeout: 246 seconds]
<jbenet> luzifer: yeah i like that better too.
<jbenet> but i don't know the full implications.
<jbenet> right now
<wking> I haven't responded to that comment yet, but I'm worried about both approaches
<jbenet> wking: thoughts on that?
<jbenet> want to add your thoughts there and ping us?
flugsio has quit [Quit: WeeChat 1.1.1]
<wking> Distinguishing between "here's additional relative path to append to a DNS-resolved hostname" and "here's an absolute path, please ignore the hostname" seems important
<wking> will respond in more detail once I get my daughter down for her afternoon nap ;)
<wking> with both of us typing at the same time, things are going to get confusing for everyone ;)
<Luzifer> hm the hostname is passed into the path and later resolved by /ipns/ routing
<jbenet> sounds good! (awww! :) )
<jbenet> yeah i dont have enough context atm to make meaningful statements. i can read up and page it in if needed.
<Luzifer> tbh: I have no clue if this might have side-effects. while testing (manual testing) I saw no changes but IPFS is so damn complex I'm just not able to see over this
krl has joined #ipfs
<Luzifer> I had more insights today than any other day while hunting the 1233 bug :D
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
patcon has joined #ipfs
williamcotton has joined #ipfs
nausea is now known as neofreak
<whyrusleeping> jbenet: dangit, that wasnt it
<whyrusleeping> gonna go get food...
<whyrusleeping> oh wait, i forgot i undid that change to try something else
chrisr_ has quit [Ping timeout: 258 seconds]
cjdmax has quit [Remote host closed the connection]
u7654dec has quit [Read error: Connection reset by peer]
chriscool has quit [Ping timeout: 252 seconds]
<whyrusleeping> 20 tries in, no repro
<whyrusleeping> before, it was 2/3 reprod
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
u7654dec has joined #ipfs
ehmry has joined #ipfs
chrisr_ has joined #ipfs
pfraze has quit [Remote host closed the connection]
<jbenet> whyrusleeping: yay :)
<jbenet> whyrusleeping could you write a test case for it? -- part of why all these bugs and perf regressions plague us is that we don't have enough tests.
u7654dec has quit [Quit: Leaving]
<whyrusleeping> jbenet: the TestLargeSwarm reproed pretty much every time
<whyrusleeping> but i wasnt using that to test because it takes a minute and a half to run
<jbenet> whyrusleeping: lol.
<whyrusleeping> when i can repro manually in 8 seconds
<jbenet> whyrusleeping: yeah we dont run it in travis because of that.
therealplato has quit [Read error: Connection reset by peer]
<jbenet> i _just_ learned about docs.travis-ci.com/user/build-configuration/#The-Build-Matrix
<jbenet> it sounds to me like we can use that to divide up the runs nicely, so we could have that run in parallel: http://docs.travis-ci.com/user/speeding-up-the-build/
therealplato has joined #ipfs
<jbenet> you fix my transport bugs, i fix your bitswap bugs :)
<whyrusleeping> lol
<whyrusleeping> its easier to find other peoples bugs
<jbenet> yeah.
<jbenet> close to zero assumptions
u7654dec has joined #ipfs
ei-slackbot-ipfs has quit [Remote host closed the connection]
ei-slackbot-ipfs has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<ipfsbot> [go-ipfs] whyrusleeping pushed 1 new commit to refactor/bitswap: http://git.io/vTJ07
<ipfsbot> go-ipfs/refactor/bitswap 1cd7666 Jeromy: fix race bugs
xelra has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> meh
<jbenet> Luzifer ?
<jbenet> wking: i dont understand why there's a loop in a second redirect
<Luzifer> feeling like I'm repeating myself
<jbenet> wking: ah yes
<jbenet> i get it now
<jbenet> Luzifer: do you see the issue with the hostname resolution happening twice?
<Luzifer> nope.
<Luzifer> just trying to explain
<Luzifer> I hope anyone can understand my thoughts in there
<jbenet> Luzifer: i think i understand your thoughts-- are you talking about the 30X redirect being annoying? we get that and we wont redirect for the use case where you want the pretty urls.
<jbenet> when browsers request assets in a page, i _think_ that a special header is set, so we could detect it and chose whether to redirect or not based on that.
<Luzifer> why?
<Luzifer> everything works fine as soon as we assure we dont have // inside the rewritten links
<jbenet> meaning: if (request has no indication that the URL is hidden) { serve pretty url } else { redirect }
<jbenet> Luzifer: because caching massive files
<jbenet> Luzifer: because part of the point of IPFS is to get the network to cache content forever.
<jbenet> your approach of always treating it as mutable obviates that entirely.
<jbenet> (where "forever" is the accepted http maximum in the case of HTTP gateways)
<Luzifer> I don't want to change IPFS caching. never said that.
<Luzifer> just for hosted sites switch to ipns handling (which is no-cache)
<jbenet> ??
<jbenet> ohh i see what you mean
<Luzifer> the easiest way is to literally use /ipns/{hostname}{path}
<Luzifer> instead of /ipfs/{resolvedhash}{path}
<Luzifer> and the redirect-problem is gone as soon as we don't deliver // anymore. this has nothing to do with caching
<Luzifer> those two solves 1234 and 1233
<jbenet> Luzifer: ah i think you're right
<Luzifer> 1233: just remove // and you're done
<jbenet> wking do you see the same thing?
<Luzifer> 1234: handle hosted sites as ipns entries and youre done
<Luzifer> with the ipns-change for 1234 swagger.luzifer.io would just exactly behave like http://ipfs.hub.luzifer.io/ipns/swagger.luzifer.io/
<Luzifer> (which is a bit ugly but working perfectly)
<jbenet> yes i think you're right. i think this avoid's wking's problem. maybe he hasn't grokked your solution. let's wait till he answers.
notduncansmith has joined #ipfs
<Luzifer> I think there were too many debugging-comments in 1233 xD
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> leading to confusion
<jbenet> hahaha yeah. thanks though-- for diving through that
<Luzifer> yeah that mux-thing was hard... the other part quite easy
lgierth has joined #ipfs
<jbenet> here-- let's merge 1208 first, then rebase and pick up this on top. i'll do one last look through and merge
<Luzifer> yeah the current state of 1208 works fine as long as the dnslink does not have a trailing slash
<Luzifer> (just focussed on my 2 issues)
<Luzifer> with a trailing slash we're in the mux-redirect-loop very early before our own code intercepts
patcon has quit [Ping timeout: 246 seconds]
<jbenet> github should let me push changes to a PR. sigh.
<Luzifer> only if you're admin of the source-repo (fork)
<Luzifer> s/admin/contributor/
<jbenet> yeah i know--
<Luzifer> u got mail :P
<Luzifer> u're now a contributor to Luzifer/go-ipfs :D
<jbenet> haha thanks
<jbenet> i didnt mean yours
<Luzifer> I know :D
<jbenet> i meant wking's -- i want to fix the Resolve() ResolveN() problem myself so i can merge this now
<Luzifer> WOAH! go-yaml counts line numbers from 0 and not from 1 as usual...
<wking> jbenet: Want me to push my WIP ResolveOnce / Resolve stuff for you?
<wking> ...to pick up?
chriscool has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> wking: what's ResolveOnce? just ResolveWithDepth(ctx, name, 1) so users can loop themselves if they really want to?
<jbenet> ok
<jbenet> either way.
Tv` has quit [Quit: Connection closed for inactivity]
chriscool has quit [Ping timeout: 255 seconds]
<Luzifer> "vim-go: [build] SUCCESS" - wow I should more often write code in my current brain state....
<wking> jbenet: pushed
chrisr_ has quit [Ping timeout: 265 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
ehmry has quit [Quit: Leaving]
<jbenet> wking: oh! i remember why canResolve is useful
<jbenet> well it's the same thing as long as the resolvers are careful.
<jbenet> i.e. a resolver doesn't go and try to resolve something that is obviously incorrect
<jbenet> e.g. DNS resolving binary. or proquint resolving binary or dht hash resolving a domain
<wking> jbenet: having an internal function for canResolve is fine. Resolvers can use it inside their ResolveOnce
<jbenet> yeah exactly
<wking> no need for an external interface for it
<jbenet> wking: btw -- any reason to unexport NewDNSResolver ?
<jbenet> (i like small interfaces too, but i also dislike running into artificial barriers in some cases -- e.g. the _fun_ https://github.com/jbenet/go-fd-mutex story)
<jbenet> (usually i find moving things into subpackages is a good middle road)
<jbenet> ((dont care much here))
<wking> jbenet: the newDNSResolver returned a resolver interface with canResolve. We don't need it anymore now that ResolveOnce is part of Resolver
<wking> I just hadn't gotten around to pulling it out there yet
<jbenet> oh i see
<jbenet> got it
lgierth_ has joined #ipfs
lgierth has quit [Ping timeout: 264 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Tv` has joined #ipfs
<Luzifer> jbenet: regarding your latest comment: what do you want to do with that?
<Luzifer> so: why?
<Luzifer> (comment regarding (c) in 1208)
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<Luzifer> okay I'm out for yesterday... going to fetch some sleep... gn8 everyone!
<whyrusleeping> git fetch sleep
<whyrusleeping> gnite Luzifer!
zen|merge_ has joined #ipfs
<Luzifer> fatal: 'sleep' does not appear to be a git repository -- Please make sure you have the correct access rights and the repository exists.
<Luzifer> :D
zen|merge has quit [Ping timeout: 258 seconds]
williamcotton has quit [Ping timeout: 246 seconds]
<ipfsbot> [go-ipfs] jbenet created jbenet-dns-resolver-wip (+11 new commits): http://git.io/vTJxv
<ipfsbot> go-ipfs/jbenet-dns-resolver-wip 2832380 W. Trevor King: namesys/publisher: Drop the 'namesys: ' prefix for the Publish log...
<ipfsbot> go-ipfs/jbenet-dns-resolver-wip d3a2797 W. Trevor King: namesys: Add recursive resolution...
<ipfsbot> go-ipfs/jbenet-dns-resolver-wip d541bf8 W. Trevor King: core/commands/resolve: Add a -r / --recursive option...
<jbenet> wking: making this change your way is not simple -- it changes several things, includng how the resolver muxer (mpns) selects a sub-resolver. I decided to punt on Depth/SetDepth -- i dont think anyone actually needs them -- and just expose CanResolve again -- which i maintain is important to guide implementors to _make sure beforehand that they can indeed
<jbenet> resolve a name before they try_ (never count on people remembering that it is a good idea to do certain things-- you have to make them remember).
<whyrusleeping> jbenet: i leave to go to the store, come back, and my tests dont pass....
<ipfsbot> [go-ipfs] jbenet force-pushed jbenet-dns-resolver-wip from 7c8feff to 4b69cd3: http://git.io/vTJx0
<ipfsbot> go-ipfs/jbenet-dns-resolver-wip 4b69cd3 Juan Batiz-Benet: remove depth in favor of exposing ResolveOnce (WIP)...
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet> wking: anyway, now tests fail: https://gist.github.com/jbenet/ed111642b3940175e09d
<whyrusleeping> wooo! failing tests!
<jbenet> not sure why-- don't think this is useful now, and i don't have time for it-- i've higher priority things. if you can see the problem and lmk, i can try to fix it, or if you can fix it go for it. but otherwise not sure this can go in yet.
domanic has joined #ipfs
<whyrusleeping> jbenet: so, interestingly, now that ive fixed bitswap
<whyrusleeping> the tests became a LOT slower
<jbenet> whyrusleeping that's not promising.
<jbenet> what even.
<whyrusleeping> because now as soon as a node receives a block, it will immediately send it to everyone on its wantlist, before it can receive their cancelation
<whyrusleeping> so in the tests, every one of N nodes gets each block N-1 times
lgierth_ has quit [Quit: Ex-Chat]