amylopsin has quit [Remote host closed the connection]
Eudaimonstro has quit [Ping timeout: 264 seconds]
<jbenet>
basically want two things: a dynamic MultiWriter that can add writers and remove dead ones, and a BufWriter which writes in a separate goroutine and dies if its buffer gets too large.
<jbenet>
i think right now the convolution of both is making it trickty.
<ion>
ok github.com/ipfs/go-ipfs/core/corehttp 0.073s
<ion>
Progress!
<cryptix>
ion: what are you up too? :)
<jbenet>
hey ion -- i still need to CR your PR, but i'm overall -1 on returning the TTL on every Resolve call. i think that should be a separate function call.
<jbenet>
most uses of Resolve do not care.
<jbenet>
and its important to keep the interface as clean as we can possible have it.
<cryptix>
jbenet: tests are green - im around for half an hour if i missed something
nessence has quit [Ping timeout: 240 seconds]
f[x] has quit [Ping timeout: 260 seconds]
Oatmeal has quit [Ping timeout: 240 seconds]
vanila has quit [Remote host closed the connection]
<ipfsbot>
[go-ipfs] whyrusleeping created version-bump-0.3.9 (+1 new commit): http://git.io/vl36I
<ipfsbot>
go-ipfs/version-bump-0.3.9 7b93e8c Jeromy: Ipfs version 0.3.9...
<ipfsbot>
[go-ipfs] whyrusleeping pushed 1 new commit to version-bump-0.3.9: http://git.io/vl363
<ipfsbot>
go-ipfs/version-bump-0.3.9 4d54469 Jeromy: bump development version to 0.3.10-dev...
<ipfsbot>
[go-ipfs] whyrusleeping opened pull request #1918: Version bump 0.3.9 (master...version-bump-0.3.9) http://git.io/vl36a
<ion>
whyrusleeping: ”nsjon format”
Oatmeal has joined #ipfs
Guest73396 has joined #ipfs
<achin>
is there anyway to to get the /api/v0/object/get endpoint to return base64 coded data for the "Data" field?
reit has quit [Ping timeout: 240 seconds]
cryptotec has joined #ipfs
cryptotec has quit [Ping timeout: 240 seconds]
reit has joined #ipfs
tilgovi has quit [Ping timeout: 250 seconds]
<ipfsbot>
[go-ipfs] rht opened pull request #1919: Allow `ipfs cat` on ipns path (master...cat-ipns) http://git.io/vl3bT
<stoopkid>
ah so that's why ipfs cat didn't work on ipns paths
Guest73396 has quit [Ping timeout: 246 seconds]
<locusf>
so gateway now has put?
anticore has quit [Ping timeout: 268 seconds]
amstocker has quit [Ping timeout: 265 seconds]
eemas has joined #ipfs
<eemas>
i am unable to decode these messages using the proto schema's on ipfs github. http://pastie.org/private/ghper845ncqoxkbopeovw i'm assuming they are encapsulated in some other type? somebody please help :)
amstocker has joined #ipfs
<achin>
where did you get those? they look like hex-encoded binary data
cryptotec has joined #ipfs
<eemas>
yes, i encoded the data to hex
<eemas>
so that i could paste it
<achin>
where did the data come from?
<eemas>
off of the wire. each chunk was following the protocol header
<achin>
and you tried to decode the first blob of data as either a dbt.pb.Message?
<achin>
hmm, well you're trying everything that i'd try
<achin>
i'm not sure if, on the wire, there is any framing. maybe it's length-prefixed? protobuf encoded messages aren't self-delimiting
<eemas>
yeah it is, i'm taking that in to consideration. last paste you see the 0x28 which is the same length as the buffer being decoded
<eemas>
it seems to be a valid protobuf message, but i think it's wrapped with something because something hits the field ID 2 and everything jams up in to the "key" field. but I cannot figure out what is wrapping it. i've tried various frame encapsulation schemas i could find such as Integrity, Nonce, etc
<achin>
not that i doubted you, but i can't decode it as a dht message either
<achin>
i'm off to bed, but hang around. experts out around somewhere!
<eemas>
cheers, g'night
<amstocker>
does anyone know what the alphabet ipfs uses for base58 is?
<amstocker>
is it the bitcoin one?
slothbag has joined #ipfs
<jbenet>
amstocker yep
<amstocker>
thanks jbenet
<amstocker>
jbenet: seems like a few people are interested in a full impl of ipfs in python, what are your thoughts?
<jbenet>
amstocker: all sounds good. but it won't be easy-- in particular libp2p will be hard. luckily, daviddias and i have now done this twice.
<jbenet>
and the second time has gotten much easier.
<amstocker>
jbenet: that is an apt gif :) . Yeah I'm not too experienced with any p2p programming but I would definitely be interested in contributing and learning this stuff inside and out
<amstocker>
I hope we can get a hangout going soon
<jbenet>
(yeah-- specs on the board and all ;) )
<amstocker>
also it will be nice to have the two existing implementations to reference
<ion>
amstocker: I would say it would be the most useful to do a full implementation in C because everything has C FFI and that would benefit Python users as well as everyone else.
<ion>
I hope I’ll manage to write some code for a C implementation of libp2p.
<amstocker>
ion: I definitely agree but I won't be the one to spearhead that effort :P
<amstocker>
so libp2p is the network stack of ipfs that was refactored into its own thing?
<ion>
will be refactored
<jbenet>
ion: be wary-- it is indeed a lot.
<ipfsbot>
[go-ipfs] jbenet created webui-update from master (+0 new commits): http://git.io/vlsZD
<ion>
jbenet: I can believe that. :-P But just getting a project structure up would be nice, perhaps there are more people to take on the workload.
<ipfsbot>
[go-ipfs] jbenet pushed 1 new commit to webui-update: http://git.io/vlsn5
<ipfsbot>
go-ipfs/webui-update b675bfc Juan Batiz-Benet: webui updated to disable logs...
<jbenet>
ion: indeed! just be wary because getting all that io stuff to be truly secure in C is going to be way harder than in go. definitely worth pursuing
<ion>
jbenet: Yeah, getting security right in C is hard and scary. :-\
voxelot has joined #ipfs
cryptotec has joined #ipfs
amstocker has quit [Ping timeout: 255 seconds]
amstocker has joined #ipfs
Tv` has quit [Quit: Connection closed for inactivity]
cryptotec has quit [Ping timeout: 260 seconds]
<amstocker>
but we cannot be scared because we are intrepid adventurers :)
<amstocker>
out of curiosity tho, what makes io in C so much less secure than with any other language?
<amstocker>
do you mean safety as in memory allocation or safety as in preventing attacks?
SDr_ is now known as SDr
SDr has quit [Changing host]
SDr has joined #ipfs
<ion>
You have to do your own memory management; the type system isn’t very powerful so you have to do stuff like unchecked type coercions etc; thing like out-of-bounds memory accesses are not checked automatically etc. etc.
<amstocker>
ah ok
<jbenet>
i suggest getting well versed in djb's style for C.
<ion>
M-davidar: And code that doesn’t depend on an extra runtime.
pfraze has joined #ipfs
<ipfsbot>
[go-ipfs] jbenet pushed 3 new commits to master: http://git.io/vlsw6
<ipfsbot>
go-ipfs/master 220d6b1 Jeromy: Ipfs version 0.3.9...
<ipfsbot>
go-ipfs/master 6d3398e Juan Benet: Merge pull request #1918 from ipfs/version-bump-0.3.9...
<ipfsbot>
go-ipfs/master 147edb3 Jeromy: bump development version to 0.3.10-dev...
mvr_ has quit [Ping timeout: 264 seconds]
reit has joined #ipfs
pfraze has quit [Ping timeout: 256 seconds]
<jbenet>
yeah, it's the runtime + debugging that kills.
<jbenet>
daviddias: please fix npm. im so tired of "npm install" taking a million years to check stuff i already have.
mvr_ has joined #ipfs
<Xe>
jbenet: wanna know a simple solution?
<jbenet>
Xe: sure.
<Xe>
don't use node.js! </sarcasm>
<Xe>
but yeah
<Xe>
NPM is its own level of heell
<Xe>
hell*
<jbenet>
i'm sick of the language hating in this room. because our community is so diverse, we have a lot of languages represented. i'm probably going to have to add a "dont diss languages" clause to our code.
<jbenet>
and Xe, npm is _still_ the best package manager out there. it is the only sane dependency model. surprising, given there's been many languages with package managers since. and many by "smart people" who like to deride javascript can't even get it half as right.
<Xe>
is it the fact that it can handle different versions of dependencies?
<Rylee>
npm is cool but it's also quite slow
<Xe>
i mean, i try to avoid node.js stuff if only because npm makes my spinny disk hosts lag while it resolves some of the worst multi-layered dependency stacking
<jbenet>
it's that it cleanly abstracts out the dependency tree, and yet, by result can handle different versions of deps.
<Rylee>
the dep model is A++++ yes good job
<jbenet>
Xe: and we're going to fix that.
<Xe>
jbenet: that'd be welcome, the fractal of dependency versions is kind of annoying
<jbenet>
the fractal is fine when it is a dag and not a tree.
<Xe>
i think the deepest I have in one project is 9 levels of node_modules
<jbenet>
(a hash dag)
<Xe>
and it just makes ext4 bleed
<Xe>
however once stuff is warm in the cache it's fine
<Xe>
it just makes start time on my main apps server really slow
<Xe>
and watching the system load creep up to about 5 is kind of unnerving
<Xe>
ya know?
cryptotec has quit [Remote host closed the connection]
<jbenet>
anyone here run the js-ipfs-api tests?
voxelot has quit [Ping timeout: 240 seconds]
<M-davidar>
jbenet (IRC): I'm still a bit confused as to how npm dependencies are better than any other package manager? :/
<Xe>
M-davidar: it's because node.js has package imports as a local and not an interpreter global
<Xe>
which means that you can have multiple versions of $package at use in the same project
<Xe>
whether or not this is a good idea is another discussion, but it does help work around dependency hell by allowing your dependencies to opt-out of it
<slothbag>
I hate npm package management.. i've not once had a npm install run without crashing
<M-davidar>
Nix does that too, and I think cabal does to a certain extent
<Xe>
M-davidar: imagine if cabal let you have two versions of base or transformers in one executable
<Xe>
that's effectively what node.js is doing in this case
<M-davidar>
OK, that leaves nix then
<Xe>
I think it's a less than ideal way to do things as it can end up putting a lot of strange usage patterns on the disk
<jbenet>
its not about disks-- its about code reuse, repeatability and hermetic code shipping
<jbenet>
it's about code. the disk stuff can and is being optimized.
<Xe>
i'd also like it if node was a it more type-safe
<Xe>
but you can only do so much when having to maintain javascript's quirks
<slothbag>
have you tried npm on windows? you quickly max out the directory size limit and cant delete the thousands of files/folders without some CLI hackery
<M-davidar>
Xe (IRC): don't worry, js is gradually dropping the "script" from its name anyway
<Xe>
slothbag: i remember there is a hack you can do that puts all the node dependencies into one flat structure
<slothbag>
Xe: makes sense... its pretty much unusable otherwise
<Xe>
after this bit me i started moving away from windows a bit more quickly
<Xe>
apparently npm 3.0 fixed this?
svetter has quit [Ping timeout: 264 seconds]
<Xe>
idk
<slothbag>
I agree, pretty poor form on Microsofts part to have such a restriction and subsequent bug.. but it also highlights the inefficiencies of npm when it has to create such a large mess of files/folders
<Xe>
yeah
svetter has joined #ipfs
<jbenet>
slothbag it's clear you don't understand _why_ it has to. nix does the same exact thing. it's the right model.
<jbenet>
slothbag it's like saying "it's a shame git stores so many versions!"
<jbenet>
M-davidar: yes nix is the best package manager, but nix isn't really a language specific PM so i wasn't considering it in the running against npm, as the competitors are things like pypi cabal cargo gems ... go get ...
captain_morgan has joined #ipfs
<jbenet>
though i'm fully aware you CAN and should use nix that way :)
<M-davidar>
I vote we replace all the language specific package managers with nix
<jbenet>
i'd be ok with that.
<M-davidar>
jbenet (IRC): is anyone working on integrating nix with ipfs yet?
<M-davidar>
Hydra specifically I suppose
<slothbag>
jbenet: I understand the _why_ perhaps the implementation needs improvment
<M-davidar>
It would be really cool to mount my /nix/store over ipfs and have every package "installed" in my system :)
<ipfsbot>
[js-ipfs-api] jbenet created test-version (+1 new commit): http://git.io/vls91
<ipfsbot>
js-ipfs-api/test-version 9ad01a0 Juan Batiz-Benet: test: check + print version
<slothbag>
must say, I haven't heard of nix though, sounds interesting
<M-davidar>
With things being lazily liked from the network as they're actually used
<M-davidar>
s/liked/pulled
<ipfsbot>
[js-ipfs-api] jbenet opened pull request #95: test: check + print version (master...test-version) http://git.io/vlsHF
M-davidar has quit [Quit: node-irc says goodbye]
M-davidar has joined #ipfs
<M-davidar>
slothbag (IRC): yeah, it's pretty neat, has a similar philosophy to ipfs
mildred has joined #ipfs
rendar has joined #ipfs
sonatagreen has quit [Ping timeout: 246 seconds]
<victorbjelkholm>
Xe, regarding nested node_modules, you should really be on npm^3 by now, that fixes that, everything is flat in your root node_modules now
slothbag has quit [Quit: Leaving.]
<daviddias>
jbenet: I will Juan, I will. When it gets released, I sign the tag with 'for Juan' :D
<jbenet>
Luzifer: interesting! i tried both earlier, and neither worked. and i tried putting github.com/ipfs/go-ipfs into the form in the homepage and it did not work (errored)
<jbenet>
Luzifer: you may want to strip slashes if you wont recognize them. (i'm all for not recognizing them)
<jbenet>
but it seems to have worked _now_ which is likely magical behavior, as you prob havent touched the infra at all.
<Luzifer>
last build of the docker containers was 2d ago… and nope, I just woke up to this messages… didn't touch anything
<jbenet>
anyway, just so you know Luzifer, many people have been having severe issues building go-ipfs with 1.4, which _somehow works_ despite whyrusleeping's apparent use of go1.5 restricted things (may not actually be). hence why we made the really annoying compiler message. thanks for merging the flag support, but this is why these things got changed
<jbenet>
Luzifer: ahh sorry, did not mean to wake you at all! (irc notifs -> waking may not be ideal. i'll keep it in mind, but remember that spammers do show up, etc)
<Luzifer>
it does but only if they are attached to the commit to be built
cow_2001 has quit [Quit: ASCII Muhammad - @o<-<]
<Luzifer>
there is a big red banner: " Last build was aborted because of following reason: In the directory used to build are no *.go files present"
<Luzifer>
github.com/ipfs/go-ipfs is not buildable as it does not have .go files in it. I was forced to implement this as people were trying to build ruby repos in gobuilder
cryptotec has joined #ipfs
<jbenet>
Luzifer: so... the webhook won't crawl over to github.com/ipfs/go-ipfs/cmd/ipfs ?
<Luzifer>
nope… it takes the repo name as github reports it… I'm just thinking how to work around this
NeoTeo has joined #ipfs
<jbenet>
daviddias: how do you show all versions in npm?
<jbenet>
for a package
<daviddias>
Hm.. I was just going through the docs and it looks there isn't any way to check that through the CLI
<jbenet>
daviddias: on the website either?
elima_ has quit [Ping timeout: 250 seconds]
<daviddias>
there is a lot of tooling to check versions currently installed
<daviddias>
and lock them down
anticore has joined #ipfs
pfraze has joined #ipfs
Guest73396 has quit [Ping timeout: 250 seconds]
alterego has joined #ipfs
slothbag has quit [Remote host closed the connection]
master8787 has joined #ipfs
<ion>
jbenet, whyrusleeping: Can I make a PR when I have worked on top of another PR that is yet to be merged or should I wait?
<jbenet>
ion: yeah for sure. just rebase it on master once the first one merges
<ion>
Alright
<victorbjelkholm>
npm scripts is always a bitch... Someone said it was 100% safe to assume npm will set the path. Now I'm running into path issues on circleci...
dignifiedquire has joined #ipfs
pfraze has quit [Remote host closed the connection]
<cryptix>
yey!
<cryptix>
gmorning ppl
<cryptix>
did anybody try --writable yet? :)
<victorbjelkholm>
Good morning!
<alu>
ghappy halloween
<victorbjelkholm>
cryptix, is live on the public gateway?
<jbenet>
not yet
* whyrusleeping
untz untz untz untz
<jbenet>
whyrunotsleeping?
<whyrusleeping>
i should be
<whyrusleeping>
but pullman is the halloween party capitol of the entire pacific northwest
<whyrusleeping>
the town doesnt sleep until monday
<whyrusleeping>
right now it doesnt cache anything
<alterego>
Thanks :)
<jbenet>
ah dang, could've put that into 0.3.9
<jbenet>
i blame jbenet
Guest73396_r has joined #ipfs
cboddy has joined #ipfs
Guest73396 has quit [Ping timeout: 272 seconds]
<alterego>
Also, a random question. If I have a file, like say an ubuntu iso image, and I add it to ipfs. And someone on the other side of the world does the same. These two different hashed locations will never corrolate. Is there any planned way of supporting something like that?
<jbenet>
alterego what do you mean? ipfs is location independent for hashing
<alterego>
I thought the hashes were based on the nodes public key?
<jbenet>
alterego if you really have the same image the graph will be the same.
<jbenet>
alterego ipns hashes yes, not ipfs (data) hashes
<alterego>
Oh, I must have missunderstood then :)
<victorbjelkholm>
alterego, huge benefit of ipfs = same content, same hash
<alterego>
That's great. So basically you could add loads of files to ipfs and if other people have added the same content. We're all good :)
<alterego>
I was thinking to myself, why isn't it like that. Okay, so turns out it is like that :D
<alterego>
So, is there a way to use API to find out how many nodes have that data?
<alterego>
I guess kind of akin to something like bittorrent health.
<mikee>
any thoughts on it? it will be a similiar thing to ipfs and the others isn't it?
HoboPrimate has joined #ipfs
<cryptix>
Mega as in kimdotcom-Mega?
<ion>
The most important question is: will it be open-source and friendly to alternative implementations?
s_kunk has quit [Ping timeout: 250 seconds]
<ion>
That is, preferably a protocol first and an implementation second.
Guest73396 has joined #ipfs
<ion>
If it's “based on a blockchain”, it's something that could be implemented on top of IPFS.
<Guest73396>
That would be interesting to see
<alterego>
Sounds like it's got an aspect of mesh networking too.
<alterego>
I take it ipfs cli doesn't currently have any built in support for encrypting objects yet?
dignifiedquire has quit [Quit: dignifiedquire]
nessence has joined #ipfs
Encrypt has joined #ipfs
s_kunk has joined #ipfs
elima_ has quit [Ping timeout: 240 seconds]
<ion>
That's right. It probably needs to gain key management first.
<alterego>
It's a shame there isn't a community projects wiki page or something where people can publish links to their projects. It's hard to know what people have been working on.
<alterego>
I'm thinking of implementing a "git" revision control system ontop of ipfs, but would have thought someone has already been working on something like it.
<alterego>
locusf: neat, I'm currently playing with creating linked lists of objects which are basically revisions of a directory structure.
<locusf>
20 onwards
<locusf>
just thinks letters as digits
<alterego>
20 seconds or minutes? :P
<locusf>
minute
<locusf>
err 17 minutes
<alterego>
:)
cryptotec has quit [Ping timeout: 256 seconds]
Guest73396 has quit [Ping timeout: 255 seconds]
Guest73396_o has joined #ipfs
<alterego>
So you're storing a seed in blocks?
zz_r04r is now known as r04r
mildred has quit [Ping timeout: 268 seconds]
cryptotec has joined #ipfs
Guest73396 has joined #ipfs
Guest73396_o has quit [Ping timeout: 272 seconds]
cemerick has joined #ipfs
master8787 has quit [Quit: Leaving]
sonatagreen has joined #ipfs
mildred has joined #ipfs
fingertoe has joined #ipfs
paratomial has quit [Ping timeout: 240 seconds]
<ion>
alterego: Yeah, VCS on top of IPFS will be great. I hope someone will manage to implement a more user-friendly UI than Git has. I love Git and I'm the “friend of mine” in the title text of https://xkcd.com/1597/ but it could be so much better. Relevant: https://github.com/ipfs/notes/issues/23
<ion>
alterego: A future version of go-ipfs will support multiple keys but it's not implemented yet.
<ion>
alterego: As a workaround, you could have a single object link to all your blockchains and make IPNS point to that object.
<alterego>
Ah, that's a good idea.
<alterego>
I was thinking something else, maintaining a manifest and just updating the IPNS with each chain update.
<alterego>
Erm, I mean, thinking something similar, jeez, just not waking up today.
<ion>
alterego: Does/will the directory versioning thing you're working on have merges or a linear history?
<alterego>
Well, git has a linear history, it just depends on which branch you're looking.
<alterego>
:)
<ion>
Nah, any Git commit object can have more than one parent.
<alterego>
Just like an ipfs object.
<alterego>
I'm really just playing with ipfs links.
<alterego>
To maintain a history of a directory where I'm going to host some static webpages.
<ion>
alterego: The reason I was asking, here's an algorithm that lets you traverse from any object to any previous object in O(log n) steps (as opposed to O(n) in a linked list) with little overhead, but it doesn't support merges as is. https://ipfs.io/ipfs/QmTtqKeVpgQ73KbeoaaomvLoYMP7XKemhTgPNjasWjfh9b/
<alterego>
Ooo, that's neat.
<alterego>
But we're all ipfs'rs here, you could have just given' me the /ipfs/<HASH> path :P
buckle has joined #ipfs
<ion>
Sure, let me just paste that from my Android IPFS GUI.
<alterego>
Gonna mess with encoding IPFS paths into QR codes too.
ilyaigpetrov has joined #ipfs
zen|merge has quit [Ping timeout: 260 seconds]
<ion>
Probably best to use the to-be-decided URL scheme for that. “fs” seems to be one of the more popular suggestions, but I haven't seen a final decision. Existing QR code readers are more likely to recognize URLs than pure IPFS paths. fs:/ipfs/Qmblah
<alterego>
Well, existing QR code readers would need the http gateway to work really, unless it's possible to implement URI handlers in android/iOS/etc easily. But then you're adding more dependency for random end users.
zen|merge has joined #ipfs
voxelot has joined #ipfs
fingertoe has quit [Ping timeout: 246 seconds]
Guest73396 has quit [Ping timeout: 272 seconds]
cemerick has quit [Ping timeout: 265 seconds]
dignifiedquire has joined #ipfs
ekaron has joined #ipfs
nessence has quit [Remote host closed the connection]
<daviddias>
victorbjelkholm: you wanted to come to Lisbon for some IPFS hacking and meetuping, would Nov 11 sound good for you?
<dignifiedquire>
daviddias: what do you want that return to do?
<daviddias>
to return to the outside function
<ion>
alterego: Which version are you running?
<dignifiedquire>
right, but you can’t return values from a callback
<daviddias>
if I understand correctly, nodeify would catch the awesomeAPI function return and call the callback if a callback was passed and call the promise .then() if no callback was passed
<daviddias>
right, that is why I'm thinking nodeify won't work
<daviddias>
because if there is any async call within the nodeify'ed thing, it won't behave as expected
<dignifiedquire>
sorry I’m still confused, is that an example of someone using the api or of how the api is implemented ?
<alterego>
ion: latest
<alterego>
0.3.9
<alterego>
ion: it doesn't hang per se. It's just webui doesn't load any information.
<alterego>
I think I can reproduce now, just checking.
<daviddias>
so, it propagates the callback or no callback to the functions that are called below??
<dignifiedquire>
I’m writing up how it will work, give me a couple of minutes, but the gist is we do not nodify requestAPI, we make that fully promise based, but we nodify the id method before exporting it
NginUS has joined #ipfs
<dignifiedquire>
I’m just trying to find the best way to make sure we don’t get any issues with the optional parameters
<daviddias>
thank you :)
amstocker has quit [Ping timeout: 244 seconds]
<NginUS>
Would someone kindly refer me to a detailed how-to for Windows, if there is such a thing? Or should I install it to a Linux VM instead?
<daviddias>
so in order to expose a promise API, we need to make the whole code around promises?
anticore has quit [Client Quit]
<dignifiedquire>
as far as I understand it atm yes, because of how the api method calls are structured
<dignifiedquire>
but it’s really only one method internally, the requestAPI method that we have to make promise based
<dignifiedquire>
the rest is just api surface
wking has quit [Read error: Connection reset by peer]
<dignifiedquire>
alright gotta shoot now, will be around later
<daviddias>
I'm going around and around what are the implications of this
<daviddias>
I'm a fan of the idea of using similar coding patterns across all the JS modules
<daviddias>
I will post my full answer in the issue
<daviddias>
thank you for illustrating it well
<dignifiedquire>
totally agree, the thing is for the frontend stuff using react, all the things are going to be promise based, because it just makes more sense and most libraries work that way
<daviddias>
and then, in the other hand, Node.js is more callbacks
<daviddias>
so I guess in the end we will walk into a compromise and have two styles
<daviddias>
but that is a big decision
Matoro has joined #ipfs
<dignifiedquire>
agreed, if you are around we can have hangout later might make it easier to discuss some details
<daviddias>
I'll be around :)
<daviddias>
we could also go full es7 with async/await and write code that looks like go so that whyrusleeping loves us again :D
<dignifiedquire>
that’s my end goal
<dignifiedquire>
:P
autofsckk has joined #ipfs
<dignifiedquire>
but that means adding a transpilation step everyhwere (which I don’t mind, but some people are a bit touchy about, all the compiled languages need to have it)
<daviddias>
I would be ok with transpilation
<daviddias>
I even considered, although I haven't done the full math, of moving to typescript and have all of the nice features of typescript (interfaces! and types! :D), but I guess that will be another story :)
nessence has quit [Remote host closed the connection]
<jbenet>
alterego: consider that a "repo" is really just a "tree" in disguise, so really can have an IPNS point to a "tree" of branches + other metadata ("repo"), which point to commits.
<jbenet>
revolve: yes very much, you dont need to mount fuse at all. go-ipfs daemon starts a server at localhost:8080 to serve to the web. (your own local gateway). later on this will be cleaner to browsers.
<jbenet>
alterego: ion: locking? like deadlocking? permanently? oh uh. yes a repro would be awesome. particularly if we can turn it into a test case.
<jbenet>
NginUS: i would suggest linux vm for now, windows support is a bit wonky still. search for windows issues in go-ipfs/issues.
<jbenet>
daviddias: dignifiedquire: i'll probably stay out of that debate as much as i can :) ogd convinced me a year ago that callbacks was the one true way. maybe can ask him for his opinion today, given ES6/ES7.
<jbenet>
and, typescript in general is a great idea, the sad part is it makes working with modules very hard for other people. the great thing about js/node/npm is the amazing reusability and hackability of the entire ecosystem. it's really magically good. and typescript pushes people away from contributing and makes debugging harder. I really wish ES6/7/8 was just
<jbenet>
typescript :) but that wont happen.
<NginUS>
jbenet: k ty
voxelot has quit [Ping timeout: 265 seconds]
<ogd>
jbenet: I still see very little benefit to using new syntax. mostly because I dont care about syntax, it has no perf benefits, and the downsides make it really annoying (transpilation tooling etc)
colddrip has quit [Remote host closed the connection]
<daviddias>
I still remember well watching Mikeal at LXJS 2012 describing how callbacks and the callback pattern were two of the key factors for so fast Node growth :)
<jbenet>
ogd: thanks for weighing in. (fwiw i'm still very much on the callbacks side-- there's a discussion emerging with several contributors who point out many of the frontend tooling is moving to promises given ES6/7) curious, do you see promises growing in adoption in node? or is this mostly in frontend land still?
wking has joined #ipfs
<ogd>
jbenet: not sure, my anecdotal experience is that sindresorhus is the only person who uses them
<jbenet>
ogd: i loled
<sindresorhus>
lol
<daviddias>
:D
<whyrusleeping>
do promises really make is look like go?
<daviddias>
whyrusleeping: not promises, async/await does look closer to go
<daviddias>
async/await + destructors
<sindresorhus>
promises are the async glue, async functions are what i actually like.
<NginUS>
But when I do 'ipfs version' I get 'command not found'
<jbenet>
NginUS: did you download a package? or build from source?
<alterego>
Then ipfs isn't in your $PATH
<NginUS>
I downloaded & extracted a tar
<revolve>
jbenet: ok I think I'm starting to get it from the wikipedia entry
<NginUS>
I did this go get -u github.com/ipfs/go-ipfs/cmd/ipfs
<NginUS>
how do i add it to my path?
<revolve>
merkledag sounds cool. makes sense that they're acyclical
<revolve>
lemme get this straight though; you need the entire history of a thing to compute its current merkle tree?
<dignifiedquire>
daviddias: I’m free in 5
<HoboPrimate>
the webui isn't working in ipfs 0.3.10-dev , i.e., doesn't show node information or connections
<alterego>
NginUS: that depends on the go installation I suppose, I'm not sure as I just downloaded the static binaries.
<revolve>
anyone?
<achin>
revolve: yes, basicly. but in practice, you don't need the entire *data*
<alterego>
revolve: ipfs doesn't really care about history.
<NginUS>
alterego: I'm running a search for 'ipfs' through filezilla starting from /
<revolve>
achin: that's awesome. how do you get around needing the entire data?
<alterego>
NginUS: I'm sure there's an easier way than that :D
<revolve>
do you just trust some number of most recent hashes and use their data?
<NginUS>
when I tested go with the he;llo world method online it worked so I think its in path right.
<achin>
if you want to create a directory A that contains directory B, you don't actually need the entire directory B. you can construct A if you only know the hash of merkletree B
<NginUS>
I dunno where that command installed it to, there was no output
<alterego>
revolve: There is no history of a file, every file is a new object in the tree.
<daviddias>
HoboPrimate: do you have connections? (check with ipfs swarm peers)
<alterego>
revolve: or it's own tree in the dag
<revolve>
hm, what is this dag structure being put to use for in ipfs?
<HoboPrimate>
daviddias: yep, can even add and get objects
<alterego>
revolve: when you update a file, and add it again, it creates and entirely new object. That object's path is it's hash.
<revolve>
right
<revolve>
so why use a merkle tree for anything at all?
<daviddias>
HoboPrimate: is this the webui hash for you QmS2HL9v5YeKgQkkWMvs1EMnFtUowTEdFfSSeMT4pos1e6 ?
<alterego>
So there's nothing linking your updated data to the old data.
<daviddias>
go localhost:8080/webui and it will redirect to the current webui hash
<revolve>
achin: ok thanks for that; but what are they used for?
<achin>
revolve: do you see how the contents of PBNode is made up of some data, plus the hashes of the things it links to?
<revolve>
yep
<achin>
revolve: so when you compute the hash of a PBNode, you are including the hash of the things it links to
<HoboPrimate>
daviddias: localhost:8080/webui directs me to QmR9MzChjp1MdFWik7NjEjqKQMzVmBkdK3dz14A6B5Cupm
<revolve>
to give some form of validity to historical data?
<daviddias>
whyrusleeping: when you have a min, could you clarify https://github.com/ipfs/go-ipfs/issues/1923, wanna fix js-ipfs-api test and move forward with the rest of stuff
<revolve>
so that data becomes tamperproof?
<HoboPrimate>
daviddias: and the one you gave me also doesn't work
<achin>
revolve: yes. if i tell you the hash of a PBNode if QmFoo123, then if you download this node, you can compute its hash yourself to check that you received the thing correctly
<revolve>
excellent. tyvm
<daviddias>
oh, right, go with 5001
<jbenet>
HoboPrimate: we should update the quickstart page to not show the hash or something, so people always go to localhost:5001/webui
<alterego>
jbenet: do you plan on having different filesystem backends? Like say storing in sqlite3, mysql, etc. When say there are many, many tiny objects?
<jbenet>
errr sorry i meant: /ipfs/QmR9MzChjp1MdFWik7NjEjqKQMzVmBkdK3dz14A6B5Cupm
<jbenet>
(but daviddias is right the others should work too)
<alterego>
jbenet: or at least having an ipfs filestore format of some kind.
<HoboPrimate>
none work for me :/
<HoboPrimate>
but 'ipfs swarm peers' shows connections.
<jbenet>
btw, we should make the "localhost:5001/webui" a _temporary_ redirect, not permanent, because my chrome seems to have cached the old value
<HoboPrimate>
I just downloaded the new version of the site
<HoboPrimate>
off
<jbenet>
HoboPrimate: does the console have any errors?
<HoboPrimate>
jbenet: from 'ipfs daemon'? no
<HoboPrimate>
jbenet: and log seems to just show dht messages, etc., normal stuff
cryptotec has quit [Remote host closed the connection]
<NginUS>
When installing the prebuilt binaries, it says move ipfs to your path (install.sh can do it for you) but it didn't work- still get command nt found
cryptotec has joined #ipfs
<achin>
maybe run "hash -r" and try again?
rendar has quit [Ping timeout: 240 seconds]
<NginUS>
I added this export PATH=$PATH:/usr/local/go/bin to /etc/profile but it still gives me 'command not found'
<achin>
did you then start a new shell?
<NginUS>
closed & reopened putty
<achin>
run "echo $PATH" co confirm that it's set correctly
<achin>
by default the daemon only listens on localhost (127.0.01)
<alterego>
Did you run: "ipfs daemon"?
<alterego>
Ah, that too.
<NginUS>
yes, its running & i see peers
<achin>
so by default you can only access the daemon from the machine running the daemon
<NginUS>
Where's the config file to change that?
<alterego>
~/.ipfs/config
<NginUS>
thx
<ion>
You probably shouldn't modify the file directly. Use the ipfs config command instead.
<NginUS>
oh!
<NginUS>
ok
<ion>
Or you could use ssh port forwarding to access a service listening on the server at localhost.
<NginUS>
is it 'ipfs config edit' to open it up to the local network?
<alterego>
I'd seriously think about what you're about to do. :/
<NginUS>
really? that bad... ok
<NginUS>
I dunno how to forward over ssh
<alterego>
Well, does your network use DHCP?
<NginUS>
no
<NginUS>
part of it does
<NginUS>
i have 2 eths
<NginUS>
on the vm
<alterego>
Ah, a VM, okay.
<NginUS>
public nat'd + hostonly local
<alterego>
Basically, unless you're positive you want the webui accessible by anyone on your network, or if you're on a laptop, any network you conenct to. You should think about what you're doing a little.
<alterego>
I'd use the host only local address then.
<NginUS>
thats the plan... thats safe enough, yes?
<ion>
NginUS: What ssh client are you using?
<NginUS>
putty
<alterego>
NginUS: yes, that should be safe enough.
<NginUS>
IDK why I can manually start it w the same command i put in rc.local
<NginUS>
looking ty
<ion>
NginUS: Use that example but with ExecStart=/home/…/go/bin/ipfs daemon
<ion>
And note that things you put into rc.local would be started as root.
<ion>
Also note that your login environment from .profile affects neither systemd units not rc.local. But you don't need that environment for the systemd unit, just use the full path.
<NginUS>
I get Failed to get D-Bus connection: Connection refused when I try to add it to systemctl\
wtbrk has quit [Quit: Leaving]
cryptotec has joined #ipfs
<ion>
What was the exact command you ran and the exact output, and what does the following command print? apt-cache policy dbus
<NginUS>
Then do I have to have putty running to access the webui?
<ion>
PuTTY needs to run for the forwarding to work, yeah.
<NginUS>
ok, I'll set the LAN somehow- googling
cryptotec has joined #ipfs
reit has joined #ipfs
Oatmeal has quit [Ping timeout: 250 seconds]
Encrypt_ is now known as Encrypt
<NginUS>
I keep getting chris@Brooklyn:~$ ipfs config edit
<NginUS>
Error: ENV variable $EDITOR not set
<NginUS>
I set it in .bashrc
<NginUS>
I set it in .profile too
<NginUS>
still erroring
<ion>
That's a bug: ipfs config edit issues that command to the daemon which has its own environment and no terminal. A workaround is to stop the daemon first, or use the other subcommands that do not start an editor.
Oatmeal has joined #ipfs
<NginUS>
ok thx
<NginUS>
how would it work with other commands?
<ion>
Does ipfs config --help give any examples?
<NginUS>
not much useful there
cryptotec has quit [Ping timeout: 260 seconds]
<NginUS>
config show says alot but I dont see how to change specifics, which one would even need to change
<NginUS>
Can I just edit the config file?
<NginUS>
or would my changes get overwritten soomehow?
<NginUS>
I need to change the default storage path & allow access to webui via LAN
f[x] has quit [Ping timeout: 250 seconds]
<ion>
The daemon probably will not notice your config changes and may also overwrite the file, also manual edits are not checked for validity before writing.
infinity0 has quit [Remote host closed the connection]
<NginUS>
k, then what commands do i need to do, being that the editor wont launch?
<NginUS>
Can I create a copy of the config file then use ipfs config replace /path/to/new/config/file?
<NginUS>
o wait i see
<NginUS>
I can change specifics in the config file by defining section headers
<NginUS>
What part of the config needs to changeto allow LAN access?
<NginUS>
gateway?
<ion>
The help seems to have an example of modifying a setting at the very end: “ipfs config datastore.path ~/.go-ipfs/datastore”. Or systemctl --user stop ipfs and then run the edit command.
<NginUS>
k will stop it then
infinity0 has joined #ipfs
<NginUS>
what part do i change to allow lan access??
<ion>
I haven't done that and I don't have easy access to an IPFS daemon at the moment. Perhaps someone else can recommend the report settings.
<NginUS>
The line referencing port 5001 is called api
ygrek has joined #ipfs
<NginUS>
the webui pages dont load all the way
<NginUS>
or at all
tilgovi has joined #ipfs
<NginUS>
What should 'gateway' be set to?
<NginUS>
the webui has no data to display
<NginUS>
i do ipfs swarm peers & see connections in the cli, but the webui has no data
<NginUS>
empty values in the home tab too
<achin>
there are several known issues with teh webui, many of them are being actively worked on
<NginUS>
doesnt load on chroome, but does on firefox
<NginUS>
hmm, how will I use it then? is there another interface?
<achin>
my webui works on chrome, but i admit it's not very useful. i almost never use it
<NginUS>
my data dir is empty, how can i check that my config is right?
<achin>
for adding and fetching files, i use the command line "ipfs" tool. for viewing content, i use either the public ipfs gateway or my local gateway
<NginUS>
what address should my 'gateway' value be set to in the config?
<achin>
if you've never added or downloaded naything from ipfs, your node won't have any content
<NginUS>
i thought it stores others' files- and that when i upload files they get distributed across the p2p network, rather than staying locally
<achin>
your local ipfs node will only store files that you request from the network, or that you added yourself
<NginUS>
when i add files do they get distributed so they can be accesssed when my node is down?
<achin>
only if others request them
<NginUS>
i guess my fundamental understanding is flawed
<achin>
there is a realted project called filecoin.io that is closer to what you're thinking, but it's not up and running yet
<NginUS>
so i upload a static website asset, & when i access them do they come from my node if its up, but elsewhere if its down?
<achin>
even if your node is up, it might not come from your node, if others have the content too
<NginUS>
i wouldnt expect anyone to request them
<NginUS>
how do i get the files to be redundant?
<achin>
if its your own content, you'll have to ask friends to pin the files for you
<NginUS>
oh i see
<achin>
if you want to help make other files redundant, you can pin them on your own node
<NginUS>
ok i completely misunderstood it.
<NginUS>
thx
<achin>
this is a common misunderstanding
Matoro has joined #ipfs
amade has quit [Quit: leaving]
<NginUS>
I'm totally bummed that it doesn't work like I thought originally.
<NginUS>
Storj isn't mature enough to use yet either, although I have 777GB allocated to it.
<achin>
what were you trying to do with ipfs? maybe we can get close
NeoTeo has quit [Quit: ZZZzzz…]
<NginUS>
I wanted immutable redundant file storage, for personal backups for one, and static website content as well.
<NginUS>
I'm in 222nd place on Storj w/ 777GB storage
<NginUS>
But their file management UI isn't done
<achin>
if you have the distributed diskspace, ipfs could be used for personal backups, but i wouldn't call this a core use-case
<achin>
but websites kinda is
Matoro has quit [Ping timeout: 255 seconds]
reit has quit [Ping timeout: 260 seconds]
<NginUS>
yeah- not quite it
<NginUS>
Maidsafe seems the most promising, but again, immature
cryptotec has joined #ipfs
<achin>
yeah, there are a lot of young projects in this area
<achin>
it's kinda an exciting time. lots of really great stuff in the next few years
<NginUS>
yeah i know :)
Encrypt has quit [Quit: Sleeping time!]
cryptotec has quit [Ping timeout: 240 seconds]
tilgovi has quit [Ping timeout: 240 seconds]
<NginUS>
Its real frustrating that none of it works yet
<NginUS>
Seems Storj is closest to being done, Maidsafe has setback after setback- I recall when 'done by New Year's' was feasible