<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
<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
<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?
<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...
<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]
<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
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
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>
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