<ipfsbot>
[go-ipfs] lgierth created dockerfile-fast (+1 new commit): https://git.io/vrhNF
<ipfsbot>
go-ipfs/dockerfile-fast 00ae31c Lars Gierth: docker: make dockerfile differences more obvious...
<ipfsbot>
[go-ipfs] lgierth opened pull request #2796: docker: make dockerfile differences more obvious (master...dockerfile-fast) https://git.io/vrhNx
rmi7 has joined #ipfs
niekie has quit [Ping timeout: 258 seconds]
ruby32 has quit [Ping timeout: 246 seconds]
sahib has quit [Ping timeout: 244 seconds]
Kane` has joined #ipfs
reit has joined #ipfs
apiarian has quit [Quit: zoom]
Oatmeal has quit [Ping timeout: 260 seconds]
slothbag has joined #ipfs
ashark has joined #ipfs
niekie has joined #ipfs
Oatmeal has joined #ipfs
Stebalien has quit [Ping timeout: 258 seconds]
ashark has quit [Ping timeout: 260 seconds]
ashark has joined #ipfs
jaboja has quit [Remote host closed the connection]
pfraze has joined #ipfs
asbjornenge has joined #ipfs
stoogenmeyer has quit [Ping timeout: 272 seconds]
apiarian has joined #ipfs
Zasthete has joined #ipfs
Zasthete has quit [Read error: Connection reset by peer]
jedahan has joined #ipfs
herzmeister has quit [Quit: Leaving]
herzmeister has joined #ipfs
<ipfsbot>
[go-ipfs] rht closed pull request #2205: Make gateway POST handle multipart file & pin flag (master...gateway-multipart-add) https://git.io/vrjv9
<ipfsbot>
[go-ipfs] rht closed pull request #2233: Change all mfs references to unixfs (master...patch-2) https://git.io/vzwS8
<ipfsbot>
[go-ipfs] rht closed pull request #2240: Reduce the number of process zombies on daemon shutdown (master...no-p-zombies) https://git.io/vzo2j
<ipfsbot>
[go-ipfs] rht closed pull request #2268: ipfs get: set correct content-type on resp (master...get-resp-header-2) https://git.io/vzpvM
<ipfsbot>
[go-ipfs] rht closed pull request #2290: Use binary search to get node link (master...perf/dagnode-search) https://git.io/vgYKG
redfish has quit [Quit: WeeChat 1.5]
jaboja has joined #ipfs
ashark has quit [Ping timeout: 246 seconds]
rabbitface has quit [Quit: Connection closed for inactivity]
ashark has joined #ipfs
cketti has quit [Ping timeout: 244 seconds]
Jupely has joined #ipfs
Jupely has quit [Ping timeout: 260 seconds]
apiarian has quit [Ping timeout: 240 seconds]
apiarian has joined #ipfs
dignifiedquire has quit [Quit: Connection closed for inactivity]
Jupely has joined #ipfs
em-ly has quit [Quit: Connection closed for inactivity]
metaf5 has quit [Quit: WeeChat 1.4]
metaf5 has joined #ipfs
A124 has joined #ipfs
<ipfsbot>
[go-ipfs] whyrusleeping created fix/goro-leak (+1 new commit): https://git.io/vrjTd
<ipfsbot>
go-ipfs/fix/goro-leak 0698dd9 Jeromy: fix goroutine leak in routing resolve...
jaboja has quit [Remote host closed the connection]
ashark has quit [Ping timeout: 258 seconds]
<Jupely>
hi
ashark has joined #ipfs
ashark has quit [Ping timeout: 240 seconds]
gmcquillan has quit [Quit: gmcquillan]
gmcquillan has joined #ipfs
em-ly has joined #ipfs
fredthomsen has joined #ipfs
<achin>
hello
<Jupely>
I'm just wondering, how complete is the current version of ipfs?
<Jupely>
Does it support chat? Does it have a convenient way to connect to a central hub of sorts?
HastaJun has quit [Ping timeout: 272 seconds]
<achin>
on the second part, have no central hub is a pretty important design goal of ipfs (assuming i understand what you mean by 'central hub')
devbug has joined #ipfs
<Jupely>
can you chat with other people randomly?
<achin>
no, i don't think there has been a full-featured chat app (only some experiments). there is some more info here https://github.com/ipfs/apps/issues/10
<Jupely>
interesting. so is ipfs more usable than zeronet?
<slothbag>
its also my first fully fledged GO app.. so be gentle. lol
<ipfsbot>
[go-ipfs] whyrusleeping created feat/smarter-bitswap (+1 new commit): https://git.io/vrjYo
<ipfsbot>
go-ipfs/feat/smarter-bitswap 818be6d Jeromy: Make bitswap better...
pfraze has quit [Remote host closed the connection]
<ipfsbot>
[go-ipfs] whyrusleeping opened pull request #2798: Make bitswap better (master...feat/smarter-bitswap) https://git.io/vrjYQ
<A124>
So gotta ask. What is the current state of UDP and NAT in IPFS now? Concerned about two reasons, or more. IPFS, IPFS integration, and DIY make-and-learn thing.
<A124>
A short summary what protocols/libs, in what lang are currently used/planned would help a lot. Did read some issues, might try to find change log.
<A124>
Interesting, have to read up on that thanks. .. I have no idea what to read or subscribe to to keep pace when you are single man show, haha.
<deltab>
yeah, I'm overwhelmed by it too
reit has joined #ipfs
<A124>
Data is the problem that is here already about a decade, which I predicted before it started, tried to work on stuff then health stuff came .. and ..
pfraze has joined #ipfs
<A124>
I did read up more on BTRFS, it does CRC32 checksumming on COW, and can have up to 256 bits which would mean IPFS combatible. That stuff is stores in different btree apart from the data.
gigq has joined #ipfs
<ipfsbot>
[go-ipfs] whyrusleeping pushed 1 new commit to master: https://git.io/vrj3m
<A124>
Which was my idea of designing a new kind of filesystem (yes, not even IPFS does what I need/want). BTRFS+IPFS(modified)+Security layer could do.
<multivac>
[REDDIT] [PSA] TeamViewer has been hacked. They are denying everything and pointing fingers at the users. (self.pcgaming) | 1071 points (94.0%) | 123 comments | Posted by sterob | Created at 2016-06-03 - 00:17:28
<jonnor>
Don't know if I will have time to work on it anytime soon, but at least it has a decent description in public now
mpi has joined #ipfs
computerfreak has quit [Remote host closed the connection]
<Kubuxu>
jonnor: where do you accept comments, I can give few right away.
<jonnor>
Kubuxu, PR? or we can discuss right here and now
<Kubuxu>
Ok, so here it goes:
jaboja has joined #ipfs
<Kubuxu>
Storageof links to roots of tile lists on the top level would be the best IMO, it allows for better deduplication (when for example metadata changes).
<richardlitt>
haad: how does Orbit do resolution?
<richardlitt>
Isn't it just one hash that keeps updating?
<Kubuxu>
PNG would be good choice, but I would define in format that tiles HAVE TO be losslessly compressed using given alg (for convergence)
<Kubuxu>
In case of not squere images, there could be a "default" tile defined.
<jonnor>
Kubuxu, good point. Do you think one link per level, or one link to to the entire pyramid would make most sense? to make sense the whole pyramid would need to change at same time, since the data are derived from eachother
<Kubuxu>
not rectangular **
<Kubuxu>
That would be used if there is no tile was assigned to that spot.
<Kubuxu>
re mipmaps links: one link to list of links that point to whole mipmaps
<jonnor>
specifyable default tile makes makes sense, much more than trying to encode 'valid options'
<jonnor>
Kubuxu, ok. Can't a lot of indirection become a potential perf issue?
<Kubuxu>
bitswap is supposed to made smart enough to do something like that: you ask me about hash A, people who ask me about hash A return almost always asking about hash B and C, so I send you A B and C right away.
<jonnor>
cool
<Kubuxu>
I would define that tile always has to fit in one block (sub 256KB - ~2K).
<jonnor>
regarding lossless/lossy. I agree that lossless makes sense for vast majority, and PNG will likely do great. The idea of allowing lossy would be for serving a JPEG/WebP directly to browsers
<jonnor>
by concatinating a selected set of tiles (at a given mipmap level)
<Kubuxu>
Problem with lossy compression is that it will always have problems: either you compress whole image and you will almost never be able to dedup tiles or you comress tiles then the compression is much worst/it looks even worst.
<Kubuxu>
With lossless compression on tile level you have dedupable tiles, compression ratios might be a bit worst but tiles are reusable and look as they should.
mpi_ has joined #ipfs
sunya has quit [Quit: ChatZilla 0.9.92 [Firefox 46.0.1/20160502172042]]
mpi has quit [Read error: No route to host]
<jonnor>
yep. But lossy images can be so much smaller compared to lossless...
jokoon has quit [Quit: Leaving]
<Kubuxu>
Then we should at least have flag that image is already lossy compressed, so we don't have the JPEG effect.
<jonnor>
yes, it could be treated as an 'output only' type/variant
<jonnor>
which should probably have a 'derivative of' link
<Kubuxu>
hmm, and it could also like to the original, wow, that would be awesome
<jonnor>
back to the lossless structure
<Kubuxu>
Storage of all mipmaps (up to 1x1 or 1xN) requires only 33% on average more space.
<Kubuxu>
So I would say it is really worth it.
<jonnor>
aside: in imgflo, which is the image processing server we use for these things now, we also do effects/filtering/whatever processing. And this is described as a mapping between the input image, and algorithm, and a set of parameters
<jonnor>
so then it would be possible to express also a processed image with backlinks to the original
<jonnor>
in IPLD
<Kubuxu>
Especially that you could load images in /8 screen resolution at first (as preview) which requires 1/64 bandwidth.
jedahan has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<jonnor>
do you think a generic 'derivedFrom' backlink would be useful
jedahan has joined #ipfs
<Kubuxu>
I think yes, if people were using it, it would be awesome.
<jonnor>
with that one one will not neccesarily know how this thing was derived (what algorithm etc), but at least know that there is another previous version, and which one it was
<Kubuxu>
Also format you proposed has no downsides to including higher resolutions with the image itself, which is awesome.
<Kubuxu>
You might also think about allowing lower resolution alternatives, apart from the mipmaps.
<Kubuxu>
Like imagine wallpaper, 4k version, 1080 version and 720 version. Our computer will download and use whichever first the best.
<Kubuxu>
Problem is that it would require some changes who we view images (as you might want to say how big you want it before starting download).
<jonnor>
that can be done by the client?
ola has joined #ipfs
<Kubuxu>
What I think: Browser knows how big is space for the image it will be downloading, if that information was passed along, you could download the best match.
<jonnor>
by space, do you mean the space it will take on-screen (in that particular layout)?
<Kubuxu>
yup
<jonnor>
I don't think browsers will be IPFS aware anytime soon... unfortunately
<Kubuxu>
But JS inside the browser can be.
<Kubuxu>
Like imagine js code like that: There is local IPFS node running -> I have picture to load that is also available on IPFS -> I have on screen size of that picture -> Use local IPFS node, download needed size.
<jonnor>
I think one should generate picture elements (and use media-query) with different URLs, each being an IPFS hash/path
<jonnor>
and maybe add some JS to do even better than that, like progressive load
<jonnor>
I'm _hoping_, based on chat today with jbenet, that we can use an IPLD path expression to say "construct an image file" from this ipfs object, at a certain mipmap level (and thus resolution)
jedahan has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
sahib has quit [Ping timeout: 260 seconds]
jaboja has quit [Ping timeout: 260 seconds]
jonnor has quit [Ping timeout: 240 seconds]
<jbenet>
Guys would be great to capture this discussion on github.com/ipfs/notes for others.
jonnor has joined #ipfs
<jonnor>
lost connection, last I saw was my "I'm hoping"...
<Kubuxu>
We said nothing, just jbenet noted that we should save this conversation somewhere (possibly ipfs/notes) but it could be my repo.
<Kubuxu>
s/my/your
<Kubuxu>
jonnor: do you want me to post those logs over there?
mpi_ has quit [Ping timeout: 260 seconds]
<jonnor>
Kubuxu, that would be great
<jonnor>
I'm making changes to the dataformat to reflect your comments
<ligi>
progress false does not seem to help for this command
<Kubuxu>
ligi: what is the current behaviour?
<Kubuxu>
Sorry. Miss read that.
<ligi>
like in the gist - multiple jsons as response
<Kubuxu>
Yeah, as it is streaming.
<Kubuxu>
Something like NDJSON
<whyrusleeping>
ligi: yeah, thats correct for ping
<ligi>
for add I could supress this via progress=false
<ligi>
whyrusleeping: k
<Kubuxu>
But isn't progress.
<whyrusleeping>
its correct, but it might not be the best output we could be returning
<whyrusleeping>
if you have suggestions, please let us know
<ligi>
mainly just wanting to know - that just means I have to do more by hand and cannot use rest-libs
<Kubuxu>
Is it sent all at once or is it streaming?
<ligi>
it is streaming
<ligi>
also this Success":false at beginning and end is strange
<Kubuxu>
It is like that because it wasn't probably designed as http API but just for the CLI.
<ligi>
looks like it
matoro has joined #ipfs
mpi_ has quit [Remote host closed the connection]
rgrinberg has joined #ipfs
disgusting_wall has quit [Quit: Connection closed for inactivity]
<whyrusleeping>
dignifiedquire: ping
Encrypt has quit [Quit: Quitte]
<dignifiedquire>
whyrusleeping: poing
Cristina has quit [Remote host closed the connection]
rgrinberg has quit [Quit: WeeChat 1.5]
<dignifiedquire>
whyrusleeping: how far out is 0.4.3? I would like to upgrade our node integrations but can't because of the 0.4.2 bug with stdin, which is fixed on master but not released yet
jedahan has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<whyrusleeping>
dignifiedquire: current plan is feature freeze on the 22nd, release on the week of the 27th
<dignifiedquire>
oh :/
<whyrusleeping>
what node integrations?
<dignifiedquire>
ipfsd-ctl
<whyrusleeping>
whats wrong with it?
<dignifiedquire>
because of the way we fork the process it doesn't get a stdin from the parent process, which results in "ipfs init" hanging and never doing anything
<dignifiedquire>
(and in result all our js modules integrating with go-ipfs can not be upgraded to 0.4.2)
<dignifiedquire>
does this ensure the forked process is ALWAYS closed when the forking process dies?
<dignifiedquire>
also looking at the issues it doesn't look like I can use it with current node
<whyrusleeping>
i'm not sure, but i do know that it will likely solve the init issue, since it allocates a pseudo terminal for the stdio of the child
<whyrusleeping>
ah, lame
<dignifiedquire>
it's pretty badly maintained
<dignifiedquire>
I used it at my previous job for terminal integration, but there are effectively no fixes anymore happening
<whyrusleeping>
and you cant set the tty to 'inherit' on the init command?
<whyrusleeping>
stdio: 'inherit'
<dignifiedquire>
well the point is that the forking process might be using stdio for something else, so we really don't want the process to inherit anything of that
_chad_ has joined #ipfs
_chad_ is now known as chad
<dignifiedquire>
I need full programmatic control about stdio, which I don't get when using 'inherit' in node
jedahan has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rhalff has joined #ipfs
ugjka has left #ipfs ["Konversation terminated!"]
<dignifiedquire>
whyrusleeping: what did you ping me about?
<Kubuxu>
dignifiedquire: you could also try inputting '{}' to the stdin, it might work.
<dignifiedquire>
but wouldn't that result in an empty config? or is that just merged with the default?
<Kubuxu>
I think it might be merged with default.
<dignifiedquire>
nope, just tested results in empty config :/
<dignifiedquire>
but it does fix the hanging, so if I can find sth to write without changing the default config that would be great
<whyrusleeping>
dignifiedquire: trying to remember...
<whyrusleeping>
ooooh, i remember now.
<whyrusleeping>
I remember at CCC we talked about the 'option type' method of error handling
<dignifiedquire>
:)
<dignifiedquire>
yes we did
<whyrusleeping>
and how it compares to go, where go explicitly checks the error, and $FUNCTIONAL_LANG explicitly unwraps the error
<whyrusleeping>
i've found myself writing option types with errors more often in go lately, not for that same reason
<whyrusleeping>
but because it makes reasoning about concurrency much easier
<dignifiedquire>
interesting, how so?
<whyrusleeping>
so, if i have two separate values, a VAL and an ERR
<whyrusleeping>
and i'm returning either one, but in a concurrent situation
<whyrusleeping>
you have to have two channels for that
<whyrusleeping>
one for the values, one for the errors
<dignifiedquire>
and then figure out a way how to match them
<whyrusleeping>
well, you generally get one or the other
<whyrusleeping>
if you get a val, you don't get an err
<whyrusleeping>
and visaversa
<whyrusleeping>
but the issue is managing exiting loops like that
<dignifiedquire>
correct, but if you get 20 vals, 10 errs from 30 parallel calls you need to match?
<whyrusleeping>
yeah
<whyrusleeping>
and how do you know when to be done?
<dignifiedquire>
keep ugly counters?
<whyrusleeping>
yeah, theres a bunch of ugly ways to do it
<whyrusleeping>
none of which are easy to reason about
<dignifiedquire>
but I can see how with an option type it gets much nicer
<whyrusleeping>
yeaaaaaaap
<whyrusleeping>
its way simpler
<dignifiedquire>
because for 30 calls you get 30 vals and you can just unwrap them
devbug has joined #ipfs
<whyrusleeping>
and when that one channel gets closed, you know youre done
<dignifiedquire>
yep
<whyrusleeping>
and on the side of the worker, theres only one potential place to return
<dignifiedquire>
<Kubuxu>
whyrusleeping: this is how scala does it in a big part, Option type is there everywhere.
<Kubuxu>
You get value from map, you get an option and so on.
<dignifiedquire>
who would have guessed you'd come around by yourself :D
ruby32 has quit [Read error: Connection reset by peer]
ruby32 has joined #ipfs
jedahan has quit [Client Quit]
<A124>
... Umm how do you claim ipns name that is different from the user hash?
<A124>
user hash = peer ID
chad has quit [Remote host closed the connection]
mildred1 has joined #ipfs
<ruby32>
hey all, is there any implementation of the Peer-to-Peer Streaming Peer Protocol (RFC 7574) available yet? or any IPFS p2p streaming library in development?
<A124>
Ohh. Thank you. You can point to any object I guess, not just your peer ID, correct if wrong. This did really help, could not find it on net. Thinking about doing some summaries and stuff and want to publish on IPFS.
Boomerang has quit [Quit: Leaving]
<A124>
Now trying to figure out how would one make markdown editor online, hosted on IPFS, that can publish/edit-and-publish to ipfs.
<whyrusleeping>
ruby32: we have a pubsub implementation in progress that can be used to do streaming
<pfista>
when trying to make sharness go build multihash fails becuase it can't load a bunch of packages. any ideas?
<whyrusleeping>
pfista: did you run make deps first?
<ruby32>
i was thinking about making a decentralized version of twitch.tv, the biggest problem is upload bandwidth, this could be solved by having users opt-in to provide their own bandwidth in exchange for rewards (much like donating $5 to a twitch channel allows you to have special benefits in that channel)
<ruby32>
by users i mean viewers
rgrinberg has quit [Ping timeout: 272 seconds]
<ruby32>
alternatively the business model could be provide upload bandwidth for a fixed cost, rather than revenue sharing with ads (current model)
<whyrusleeping>
ruby32: yeah, the pubsub code i have set up relies on subscribers to 'donate' their bandwidth
<ruby32>
i see (didn't read through it yet)
<pfista>
whyrusleeping: yes that fails
<ruby32>
current problems with twitch.tv are all solved via decentralization, but i'm not sure if the demand is high enough for an exodus (youtube is nearing that point imo)
<whyrusleeping>
pfista: make deps fails? with what message?
<richardlitt>
pfista: looks good to me, will have to wait on jbenet though!
cketti has quit [Ping timeout: 258 seconds]
cketti has joined #ipfs
zorglub27 has quit [Ping timeout: 260 seconds]
chungy has quit [Ping timeout: 250 seconds]
chungy has joined #ipfs
rgrinberg has quit [Ping timeout: 244 seconds]
rgrinberg has joined #ipfs
Senji has quit [Ping timeout: 250 seconds]
* A124
... Still having problems about high context switching and interrupts. There must be a way to deliberately lower that.
jonnor has joined #ipfs
pfista has joined #ipfs
apiarian has quit [Quit: zoom]
<A124>
a) many context switches. (the ipfs daemon, unless it does, should finish processing a packet before switching to another. But if it is driven as multiprocess, and you have single core or more processes then cores, and when it does switch context upon receiving a packet, the other process is cut in between processing the previous packed, needing to switch back, and so on)
<A124>
b) repetitive large spikes (which likely correlates to repetitive state keeping and exchange of network packets, and is amplified by 'a)')
<A124>
This is problem a) wasting cpu, amplifying context switching for other processes, b) jitter, it does introduce up to 10ms of jitter which is untolerable for realtime hosting machines, or just about anything.
<A124>
b) could be solved by making the upkeeping spread out, a) as discussed before would be problem of go net, routines or the way they are used. Absolutely not proficient in go, but slowly trying to figure stuff.
rgrinberg has quit [Ping timeout: 264 seconds]
zorglub27 has joined #ipfs
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ipfs
jonnor has quit [Ping timeout: 260 seconds]
apiarian has joined #ipfs
Peer3Peer has quit [Quit: Peer3Peer]
gmcquillan_ has joined #ipfs
gmcquillan_ has quit [Remote host closed the connection]
pfista has quit [Ping timeout: 250 seconds]
gmcquillan has quit [Ping timeout: 276 seconds]
herzmeister has quit [Quit: Leaving]
herzmeister has joined #ipfs
<elasticdog>
how does ipfs deal with changing network addresses, for instance if I take my laptop to a coffee shop? do I need to restart the daemon?
<elasticdog>
(couldn't find the answer in the docs/faq)
matoro has quit [Ping timeout: 264 seconds]
<whyrusleeping>
elasticdog: it *should* (and does in most cases) detect the new address it has and reconnect
<elasticdog>
whyrusleeping: thanks, I'll keep an eye on it next time I head out
<whyrusleeping>
you don't need to restart your daemon
<whyrusleeping>
and if it doesnt reconnect correctly, then thats a bug that i've been trying to reproduce for a week
<elasticdog>
:-)
matoro has joined #ipfs
ashark has joined #ipfs
rendar has quit [Quit: std::lower_bound + std::less_equal *works* with a vector without duplicates!]
mpi has joined #ipfs
fredthomsen has quit [Ping timeout: 276 seconds]
reit has quit [Ping timeout: 240 seconds]
<apiarian>
whyrusleeping: how can i give you useful data to work with on this problem? my daemon sometimes does reconnect on wifi network switch and sometimes doesn't (os x, 0.4.2)
<whyrusleeping>
apiarian: when that happens, could you give me a goroutine dump ( from http://localhost:5001/debug/pprof/goroutine\?debug=2 ) and the output of maybe ten seconds of `ipfs log tail`
mpi has quit [Remote host closed the connection]
<apiarian>
so, run ipfs log tail > file; wait 10 seconds; jump network; wait 10 seconds; goroutine dump?
<whyrusleeping>
log tail after the failure
<whyrusleeping>
it will contain error messages for failed dials
<apiarian>
cool
<whyrusleeping>
jump network -> observe ipfs not being happy -> goroutine dump && ipfs log tail > file
fredthomsen has joined #ipfs
<apiarian>
will do
<apiarian>
is there an issue i can drop the gist when this happens?
<whyrusleeping>
mmm... i don't think there is one
<apiarian>
alright, i'll just ping you here then
<whyrusleeping>
apiarian: if i'm not around please do open a new issue
<apiarian>
o7
ruby32 has quit [Remote host closed the connection]
Aeon is now known as Aeonwaves
matoro has quit [Ping timeout: 258 seconds]
matoro has joined #ipfs
londoneye has joined #ipfs
zorglub27 has quit [Quit: zorglub27]
londoneye has quit [Quit: Saliendo]
tlevine has quit [Ping timeout: 264 seconds]
tlevine has joined #ipfs
<apiarian>
if i publish something on my node A to its /ipns namespace, will queries to my node A always return the latest value on resolve? that is, is it possible for my node to return an older version of its ipns value pulled from the network rather than the latest value that it knows about? (is this a silly question?)