<jbenet>
substack: forgive some lack of links. any feedback + simplification would be great.
<substack>
yep!
<whyrusleeping>
jbenet: yeap, we wont hit any of those errors. i guarantee it
<whyrusleeping>
unless someone changes the protobuf marshaler code to fail on a perfectly valid struct that we are creating in that function, its going to be fine
<whyrusleeping>
its basically doing a string concatenation
<whyrusleeping>
its doing [proto header] + "string you passed in" + [proto stuff]
<whyrusleeping>
i could change it to actually do that too if we want
notduncansmith has quit [Read error: Connection reset by peer]
<ianopolous>
Are you guys saying that a Go program that runs out of memory won't throw an out of memory error, but just crash?
<jbenet>
code gets very, very, very weird. someone might edit that proto and add a Marshal() method or compile it with something else that returns an error on some weird condition. this isn't an array out of bounds thing, this is complex code that varies by proto compiler that i have not read in detail that i do not understand. i do not feel even remotely sure that
<jbenet>
there are not bugs that will return weird errors and do things the API promises will not happen.
<jbenet>
ianopolous: apparently. was news to me. tbh i hadn't considered it.
<jbenet>
Tv` on that, i expected something c-like, with the stack running into the heap and crashing. but not crash on heap alloc fail
<whyrusleeping>
jbenet: if that code changes, we want things to fail. thats programmer error
<whyrusleeping>
if one of us changes something that causes our base assumptions about the structure of data to fail. then we probably dont want to continue
<jbenet>
whyrusleeping: i'm protecting code that other people will edit. it's really annoying to have to fight to get things like safe error handling and test coverage. to get the famously error-free qmail and djbdns djb restructured his programming to catch more errors and be less prone to code mutation introducing errors inadvertedly.
<whyrusleeping>
example: if u.Hash() were to change, would we want to continue on erroneously? or would we want to halt immediately?
<Tv`>
jbenet: a deterministic panic is way better
simonv3 has quit [Quit: Connection closed for inactivity]
<Tv`>
Than running out of stack, that is
hellertime has quit [Quit: Leaving.]
<jbenet>
whyrusleeping: this is totally different, this is an error case that we will not run into in our test suites (or we would fix), this is a weird edge case that might mysteriously be introduced and appear with very low probability, which users would encounter -- maybe end users who are using ipfs as bundled by someone else's application. who may not even know
<jbenet>
how to open a terminal.
<jbenet>
this isn't erlang, a crash is final here. and for an end user, may be terminal and fail some other application.
<jbenet>
ipfs daemon is meant to be a very long running process, which should have robust error handling. this is not a panic-worthy error because the case of an error is not likley to be one we would even find. i would it expect it to arise with minuscule probability and only show up after thousands of runs.
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
btw, whyrusleeping and Tv`: talked to many users today wanting to store >10TB in ipfs nodes (one wanting 10TB/day, on a cluster of ~10 machines). that hits harsh bottlenecks atm. mostly add slowness (concurrency PR? sync?) but might also benefit from arena storage later.
<jbenet>
(and ofc, davidar has been hitting bottlenecks already adding the massive archives)
<whyrusleeping>
jbenet: if you turn off the sync calls in flatfs you hit the speed of the hash
<whyrusleeping>
(or your drive, whichever comes first)
<jbenet>
whyrusleeping: these are users who would not recompile.
<jbenet>
whyrusleeping: these are users who use terminals but would not want to jump into that.
<whyrusleeping>
right
<whyrusleeping>
i dont expect any users to recompile
<jbenet>
the one 10TB/day person is dealing with financial data of critical importance. we're talking a bank.
<jbenet>
(so that's cool :) )
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]
anshukla has joined #ipfs
lilsheep has joined #ipfs
<whyrusleeping>
jbenet: re: mfs stuff.
<whyrusleeping>
i've got a compromise between our discussion last night
<whyrusleeping>
it will be a single root for the filesystem
<jbenet>
(we could really do both, i'm not opposed to trying them both out and seeing which one people like more)
<whyrusleeping>
nah, i thought it out and i think i've got a nice compromise
<jbenet>
ok?
<whyrusleeping>
multiple roots can exist like things in /dev/
<whyrusleeping>
and they can be mounted onto the single filesystem however you like
<whyrusleeping>
so instead of 'multiple filesystems' think of it like 'multiple devices'
<whyrusleeping>
so ipns-fs stuff creates a root (device) that gets mounted on the fs
<jbenet>
sounds like just rebranding :) ok se here's a discrepancy, you're seeing this as mounting other things into a non-merkledag fs. i'm seeing this all as a merkle dag.
<whyrusleeping>
i think thats orthogonal
<whyrusleeping>
we can come up with some sort of merkledag 'mount descriptors' that lets us have some immutable reference to the state of the filesystem
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
also, all the commands you outlined last night work within this. sooo i thought we would be in agreement... >.>
<jbenet>
hm i like the idea of mount descriptors
<jbenet>
that are objects themselves, etc. but get transparently mounted. + resolved through
<jbenet>
that's nice, and could work beyond ipns.
<whyrusleeping>
yeap
<whyrusleeping>
the 'ipfs create --pub-cmd=/bin/publish-thing' i was talking about last night
<jbenet>
ok here's a new way to think about this. (1) i'm thinking about "ipfs files", a merkledag-only thing where everything adds up to a mutable root, to which there's a name pointed to in the node's internal state. no other stuff in the middle-- all straight merkledag. i think that's very useful to have.
<jbenet>
(2) but i do see the need to have one fs where some paths are IPNS names, or even DNS names, or other protocols, that get republished to. (as it works in the `/ipns/` space). which actually sounds more like the proper root `/`
<jbenet>
like the `/` in `/ipfs/...` and `/ipns/...`
<whyrusleeping>
(there are two '/' in '/ipfs/' :P )
<jbenet>
youuuuu know what i meanttttt
<jbenet>
ttttt
steve__ has joined #ipfs
<whyrusleeping>
i have no idea what youre talking about
<jbenet>
(caaandy mountain)
<jbenet>
the first "/" in `/ipfs/...`
<jbenet>
like the "global root".
<jbenet>
of everything.
<whyrusleeping>
lol
<jbenet>
where `/ipfs` is a mount point that resolves the first path component name as a hash in the merkledag.
steve__ has quit [Remote host closed the connection]
<whyrusleeping>
alright, so i remove all notion of mounting from mfs
<jbenet>
where `/ipns` is a mount point that resolves all names known about, and `/ipfs/local` as a shortcut to the node' internal name. (or `/ipfs/keys`)
<whyrusleeping>
and make the pubcmd thing go away
<whyrusleeping>
and make ipns fuse stuff a separate thing
Eudaimonstro has quit [Ping timeout: 246 seconds]
<jbenet>
wehre `/dns` could be a mount point that republished to a dns server.
<jbenet>
yeah i think so? one thing that bothers me right now is `/files/` is not rooted in the global root, it's really rooted in `$repo_state/files`
ygrek has quit [Ping timeout: 255 seconds]
<whyrusleeping>
huh?
<jbenet>
like the mfs `/files` or `/mfs` or `/` mfs root, i would love to have a pointer to it in the repo state
<jbenet>
so that if you have $repostate = merledag hash of the ipfs node's state, $repostate/files would be the current mfs root
<whyrusleeping>
oh
<jbenet>
but idk how to get to $repostate from global root.
<jbenet>
i dont want to do `/repo/` because its supposed to be a global identifier.
<jbenet>
maybe this is a special path like `/ipns/local`
<jbenet>
`/ipfs/repo` gives you the local repo? kinda nasty because things under `/ipfs` are supposed to be immutable.
<whyrusleeping>
how about thats a thing thats not the thing i'm working on
<jbenet>
hahahahahhaha
simonv3 has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
kord_ has quit [Quit: Leaving...]
kord has joined #ipfs
compleatang has quit [Quit: Leaving.]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
voxelot has joined #ipfs
<gendale_>
so am I right in saying the web gateways are literally just setting up an ipfs mount point inside the nginx serve?
lilsheep has quit [Quit: This computer has gone to sleep]
<jbenet>
gendale_ not even, gateways run on go-ipfs daemons, so nginx just proxy-passes.
<jbenet>
dont even have to mount
<gendale_>
oh wow
<gendale_>
haha what a software
fiatjaf has left #ipfs ["undefined"]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<gendale_>
how do you access the web interface?
<gendale_>
i'm not super familiar with ipfs and i'm not sure how to proxy forward
thomasreggi has joined #ipfs
thomasreggi has quit [Remote host closed the connection]
<jbenet>
gendale_ you can change the ports in the config
<gendale_>
so to set up a web gateway, i can just redirect nginx to hit port 8080, correct?
<jbenet>
gendale_ yep!
warptangent has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
warptangent has joined #ipfs
lilsheep has joined #ipfs
pfraze has quit [Remote host closed the connection]
domanic has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
whyrusleeping: opinion requested: on creating "completely private networks", a thought was to base it on a key-- peers would share a key with each other and use it to encrypt the transport (or at least to be verified on handshake)
<jbenet>
dead simple way to ensure only connect to nodes with secret
<jbenet>
(could even be a daemon option --private-network-secret=<key-in-base58>
anshukla has quit [Remote host closed the connection]
<whyrusleeping>
jbenet: i like that, was discussing it with zignig earlier
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
whyrusleeping yep, i think we can add it with a config key. it's a much requested feature.
<whyrusleeping>
jbenet: want me to write that up tomorrow?
<whyrusleeping>
shouldnt take long
<jbenet>
sgtm!
<jbenet>
maybe encrypt _all connections_ with an AES key derived from the given secret (hash it beforehand)
<jbenet>
so this isn't the secureConn, but a different conn that wraps everything at the very edge-- so you wouldnt even see the handshake
<jbenet>
(that's the safest way to do it, that way all traffic is encrypted without revealing ipfs node or identities)
<whyrusleeping>
i was thinking of just exchanging nonce-hashed shared keys in the handshake
<whyrusleeping>
but that works too
<jbenet>
and then config value + daemon --opt.
sharky has quit [Ping timeout: 272 seconds]
<whyrusleeping>
me: "oh look, an easy thing i can do", jbenet: "no, here, it needs to be harder and more complicated"
notduncansmith has joined #ipfs
<whyrusleeping>
me: " :( "
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
"it needs to be correct and secure". "exchanging nonce-hashed shared keys"? what do you mean by that?
<whyrusleeping>
we each have K, and on handshake, we send eachother a random nonce
<whyrusleeping>
the other person appends the nonce to the key, and hashes that and sends the hash back
<whyrusleeping>
if both peoples hashes are correct, you can talk
<jbenet>
yeah and then what, you just terminate the connection?
<whyrusleeping>
no, do normal secio stuff
<jbenet>
(aside from revealing identity, protocol version, possibly more in the connection, and that there is a secret in play, that you now may want to go search for
sharky has joined #ipfs
<jbenet>
totally encrypted traffic allows me to bind a port at 443, and pretend it's TLS.
<jbenet>
it may not fool firewalls that look for patterns, but it might go through many holes.
<jbenet>
" yeah and then what, you just terminate the connection?" if it's wrong.
<whyrusleeping>
oh, probably
inconshreveable has joined #ipfs
mildred has joined #ipfs
notduncansmith has joined #ipfs
<ipfsbot>
[go-ipfs] jbenet deleted p2p-filter-race at a8ca3bc: http://git.io/vGK5l
domanic has quit [Ping timeout: 250 seconds]
notduncansmith has quit [Ping timeout: 252 seconds]
mildred has quit [Ping timeout: 246 seconds]
amstocker has joined #ipfs
<davidar>
jbenet: if that were your motivation, why not actually use tls?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has joined #ipfs
amstocker_ has joined #ipfs
amstocker has quit [Ping timeout: 246 seconds]
voxelot has quit [Ping timeout: 265 seconds]
mildred has quit [Quit: Leaving.]
mildred has joined #ipfs
simonv3 has quit [Quit: Connection closed for inactivity]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Ping timeout: 240 seconds]
Eudaimonstro has joined #ipfs
mildred has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred1 has joined #ipfs
lilsheep has quit [Quit: This computer has gone to sleep]
Eudaimonstro has quit [Read error: No route to host]
Eudaimonstro has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
mildred has quit [Remote host closed the connection]
mildred has joined #ipfs
xelra has quit [Ping timeout: 268 seconds]
amstocker_ has quit [Ping timeout: 246 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
amstocker has joined #ipfs
xelra has joined #ipfs
atomotic has joined #ipfs
marianoguerra has joined #ipfs
Eudaimonstro has quit [Ping timeout: 256 seconds]
Eudaimonstro has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Tv` has quit [Quit: Connection closed for inactivity]
Eudaimonstro has quit [Remote host closed the connection]
chriscool has joined #ipfs
Poefke has quit [Remote host closed the connection]
chriscool has quit [Ping timeout: 264 seconds]
thomasreggi has quit []
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<ianopolous>
jbenet, whyareyousleeping: what exactly is the threat model you are trying to counter with the encrypted traffic? I would avoid inventing your own crypto scheme, just use tls if all you care about is obscuring internode traffic. If you also care about whitelisting network members then combine that with a membership scheme. e.g. make your own CA.
<davidar>
and i imagine traffic analysis of ipfs over tls would look a lot like websocket over tls
<cryptix>
hey ppl
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<davidar>
hey cryptix
<cryptix>
hello :)
<davidar>
hows things?
<cryptix>
things are moving again, so good for a change :)
amstocker has quit [Ping timeout: 246 seconds]
dignifiedquire has joined #ipfs
compleatang has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<dignifiedquire>
jbenet: if you are around, what were your initial thoughts when you created the logo, i.e. what were you trying to visualize and what feelings did you want to bring across?
dignifiedquire has quit [Quit: dignifiedquire]
notduncansmith has joined #ipfs
dignifiedquire 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]
Encrypt has joined #ipfs
inconshreveable has quit [Remote host closed the connection]
M-prosodyContext has quit [Ping timeout: 250 seconds]
reit has quit [Ping timeout: 250 seconds]
davidar has quit [Ping timeout: 250 seconds]
davidar_ is now known as davidar
infinity0 has quit [Ping timeout: 264 seconds]
M-prosodyContext has joined #ipfs
M-davidar has joined #ipfs
thelinuxkid has quit [Ping timeout: 250 seconds]
infinity0 has joined #ipfs
reit has joined #ipfs
thelinuxkid has joined #ipfs
<cryptix>
sigh.. anybody good at guessing encoding/marshalling formats here? need to know what this is: /ipfs/Qmb2J34b3WU5agp7s4Hx5pgoocMDs68UgYUFF256fFQdFY
Poefke has quit [Remote host closed the connection]
Poefke has joined #ipfs
slothbag has quit [Quit: Leaving.]
<M-davidar>
cryptix: something to do with google play services?
<cryptix>
yup
<cryptix>
i fear java serializable but hope for protobufs but the .proto files i found didnt work to decode it
pfraze has joined #ipfs
<M-davidar>
yeah, can't even see anything that looks like a magic number
nessence has quit [Remote host closed the connection]
<M-davidar>
ugh, can everyone stop using html+js for everything
<M-davidar>
A simple desktop app shouldn't consume multiple gigabytes just to startup...
<M-davidar>
use qml, ffs
<M-davidar>
I'm looking at you, atom and mapbox studio
<rschulman>
atom is so sluggish I went back to vim
<M-davidar>
rschulman: yeah, same (although have also been using sublime text recently)
<M-davidar>
it's a pity limetext seems to be dead, looked like a good compromise between sublime and atom
<M-davidar>
perhaps even vim for that matter, with the termbox frontend and some key bindings
<cryptix>
neovim! ;)
<rschulman>
cryptix: I haven't tried neovim yet. Does it have features that vim doesn't or is it just a codebase cleanup?
<cryptix>
yea, the latter
<M-davidar>
No emacs people around apparently
pfraze has quit [Remote host closed the connection]
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ipfs
dignifiedquire has quit [Quit: dignifiedquire]
dignifiedquire has joined #ipfs
<dignifiedquire>
M-davidar: I missed the conversation, damn… EMAAAAAACS ;)
keroberos has quit [Ping timeout: 240 seconds]
vijayee_ has joined #ipfs
vijayee_ has quit [Client Quit]
_whitelogger has joined #ipfs
keroberos has joined #ipfs
<clever>
cryptix: the protobuf format is fairly simple, every field is tagged with its type/size and field#
<clever>
about the only thing your missing is the field# to name mappings
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
pfraze has joined #ipfs
Eudaimonstro has joined #ipfs
mkarrer has joined #ipfs
mkarrer_ has quit [Ping timeout: 264 seconds]
<daviddias>
cryptix: neovim looks interesting
<daviddias>
does it break compatibility with vim plugins?
<jbenet>
dignifiedquire: thanks for asking. p2p, mesh. distributed systems. nodes. compatibility. building block. a cube. a box. storage. it certainly needs improvement to get there.
<jbenet>
dignifiedquire: though before you spend any time on it -- the logo is not up for a fundamental redesign. we can certainly have real designers fix it, but the basic idea is set: it's a cube, whose vertices are dots, as in nodes in a p2p network. the edges of the logo end flush with the hex, to fit with all the node (and other standard hex logos). two colors,
<jbenet>
well, same color, different shades. minimalist, basic, building block. box/storage.)
<jbenet>
that said, all for creating all sorts of cool imagery to supplement + improve the story / site / etc. (e.g. we'll be getting a mascot at some point) )
<jbenet>
(just managing expectations, so you dont get disappointed if you want
<jbenet>
it was a hard question that we spent a lot of time deciding, a lot of time ago.
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<daviddias>
jbenet: any key benefits of having the signature of a record as a separate MerkleDAG object? It can definitely be done, but adds more complexity through indirection in the code
therealplato1 has joined #ipfs
<cryptix>
Clever: thanks for that insight -everything makes sense now :) also found the .proto in chromiums src tree
<jbenet>
daviddias: short answer: uniform cryptographic artifacts. a signature is just a merkle object, pointing to the public key, the object being signed, and the sig data (which is a signature over the object's hash).
mildred has quit [Quit: Leaving.]
<jbenet>
daviddias: that way we write the signing tooling _once_ and everything can do signatures. it's ok if we link to "Object" twice or whatever. also i do realize it's tricky to have a signature over a record, ... linked to from the record. that doesnt work, so the sig has to be around it. i thought i implemented that somewhere correctly (the reference was to a
<jbenet>
SignedObject, which transparently dereferenced the Object
<daviddias>
Oh, I think I hadn't glanced through this, making more sense now
<daviddias>
so, when we `provide` a record, we sent to a given Peer, the 'Record', the 'Signature' and the 'PubKey'
<jbenet>
daviddias: that was Pre-LD Era
mildred1 has quit [Ping timeout: 246 seconds]
<jbenet>
need to update it
<jbenet>
daviddias: well, sort of. IF in a context where they can resolve ipfs links, we can just send them the "Signature", they can get the Key from it, and the Record. (Signature.Object)
<jbenet>
but IF they cannot resolve (core DRS, chicken egg problem), yes, you stream "Signature/**/*" (i.e. Signature and all children)
<daviddias>
cool, that is where my head was getting at
<daviddias>
so, but that means that Public Key MerkleDAG Objs
<daviddias>
will have to be replicated in the DRS context
<daviddias>
and bitswap context
<daviddias>
unless bitswap can tap also into the MerkleDAG obj store DRS has and retrieve things from there two (writing this is making me realize that probably this is what you had in mind)
<jbenet>
yeah the MerkleDAG obj store DRS uses, and bitswap uses, is the same one: the local repo's mdag store.
<jbenet>
of course, they could be different, but in a standard/basic IPFS node they'd be the same
<daviddias>
got it :) thanks jbenet !
<daviddias>
(so many dependencies)
<jbenet>
yeah ffs.
<jbenet>
you could do away with a lot of them if you assume an altruistic world
<jbenet>
i.e. dont need bitswap, providers, etc. which are the main things that make the dependency graph weird.
simonv3 has joined #ipfs
voxelot has joined #ipfs
<cryptix>
daviddias: re neovim: i use vim-go, ctrlp, nerdtree, tagbar.. they all work
<rschulman>
cryptix: that's pretty impressive as it is.
<daviddias>
cryptix: have to check it out :)
<whyrusleeping>
jbenet: when can we get a mascot! i want a jellyfish
<whyrusleeping>
cryptix: neovim is great, theyre doing an awesome job
<Tv`>
fwiw cuttlefish as mascot might get you confused with Ceph
marianoguerra has quit [Ping timeout: 244 seconds]
<dignifiedquire>
jbenet: thanks for the clarification, not looking to change the actual logo form (hex shape, nodes, etc) just looking for ways to improve it and the way it’s displayed
<jbenet>
dignifiedquire: then go for it :D -- just didnt want to disappoint you _after_ doing lots of work
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
hahaha
<dignifiedquire>
jbenet: one more question, which general style would you prefer (not restricted to the logo): 1. cool or warm 2. in your face or subtle 3. handmade or industrial grade
<jbenet>
Cool, direct but not in your face, industrial.
<dignifiedquire>
jbenet: thanks :)
<dignifiedquire>
jbenet: that will help a lot in the not wasting my time area
atomotic has joined #ipfs
anshukla has joined #ipfs
<voxelot>
daviddias O/
<daviddias>
voxelot: hey
<voxelot>
any section on the node ipfs roadmap that needs work next or should be started on? looking to help out
<daviddias>
for sure
<daviddias>
I've listed the current pieces (and the missing ones) for libp2p
<daviddias>
I'm focused on the DRS (distributed record store)
therealplato has joined #ipfs
<daviddias>
and it's dependencies (IPLD, IPRS, MerkleDAG Store and so on)
<voxelot>
so how about i work on random-walk?
<daviddias>
that was what I was going to suggest :)
<voxelot>
haha cool
<daviddias>
random-walk is doing random searches on the kad-router, and adding the peers we connect to as candidates to our kbuckets
therealplato1 has quit [Ping timeout: 244 seconds]
<daviddias>
are you familiar with our DHT? or the code we have written?
<daviddias>
I would say also that a great way to help is continuously improving code coverage, it is a great way to learn what the code is doing, detecting anything that might be wrong or simply making the right questions that will help improve the docs
<voxelot>
yeah i'm familiar with DHT, S/Kad and Coral being used here right?
<daviddias>
we are using kad-router is just Kademlia
<daviddias>
we are using just Kademlia for the kad-router *
<daviddias>
but yes, the idea is in the future to have something like Coral
<voxelot>
ohh i see, S/Kad for identity
<voxelot>
i'm going to look at the go code and get a feel for how it works
<daviddias>
somethings might differ from the Go code
<daviddias>
as we have been improving how things are connected internally
<daviddias>
let me know of any question that pops up
<voxelot>
yeah will do! thanks
marianoguerra has quit [Ping timeout: 255 seconds]
<adamprocter>
Hi very new user, have managed to get ipfs working on 2 macs with go get after unzip and mv did not work (command not found) - tried same on CENT OS vps but signal: killed so i was advised by IPFS twitter likely go comile memory hog, but same error on copy, unzip, move - command not found
<adamprocter>
and echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python27/bin:/usr/local/go/bin:/root/gotest/bin
<jbenet>
adamprocter: where did you move it?
<adamprocter>
mv ipfs /usr/local/bin/ipfs
<jbenet>
ok, stat /usr/local/bin/ipfs
<adamprocter>
i just download, unzip , move is that it
<adamprocter>
/usr/bin/which: no ipfs in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python27/bin:/usr/local/go/bin:/root/gotest/bin)
<adamprocter>
so I add file from Macbook and I want Cent OS to get it and place into a specific folder say /root/gotest/blogengine/files/
<jbenet>
And another one, and another one, and another process race
<whyrusleeping>
ipfs get <hash> -o /root/gotest/blogengine/files/filename
<whyrusleeping>
jbenet: its my favorite type of race at this point :P
<jbenet>
:c
<whyrusleeping>
kinda like a stockholm syndrome type of thing
<whyrusleeping>
you know?
<adamprocter>
:D
<jbenet>
Hahahahah
<adamprocter>
and do i run a cron job to check or can IPFS on Cent OS be getting at intervals ? (sync)
<jbenet>
whyrusleeping: push and hooks
<jbenet>
We need those
<jbenet>
Hooks will be complex. Maybe chriscool can help figure that out
<adamprocter>
thanks so much I will try and move one file manually and then dinner :D but I could Cron overnight for now ?
<whyrusleeping>
jbenet: push will be fun
anshukla has joined #ipfs
Eudaimonstro has joined #ipfs
pfraze has joined #ipfs
<adamprocter>
the hash is per file or per device ?
<ipfsbot>
[go-ipfs] whyrusleeping opened pull request #1636: recover and print panics that happen in API server (master...fix/panic-ignore) http://git.io/vG1xr
<whyrusleeping>
adamprocter: its per file
gendale__ has joined #ipfs
<whyrusleeping>
its the hash of the merkledag root of the file
<adamprocter>
cool, plenty to think about now :D
gendale_ has quit [Ping timeout: 244 seconds]
<whyrusleeping>
jbenet: i really wish i better understood what this implied: 'swarm_test.go:82: error swarm dialing to peer dial attempt failed: misdial to <peer.ID aySUDn> through /ip4/127.0.0.1/tcp/33217 (got <peer.ID >)'
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
oh maybe tried to dial itself?
thomasreggi has quit [Remote host closed the connection]
<whyrusleeping>
maybe?
<whyrusleeping>
i'm not sure why the 'got peer' part is a blank peer
<adamprocter>
ok i added and got a hash but get just hangs
<adamprocter>
ipfs get QmQHK5KffG5gojkJJQyfDWetag2X6vYxbGRZT1qfHEjjeh -o /gotest/src/github.com/adamprocter/staging/ipfs_file.md
<adamprocter>
all running ipfs an via terminal on mac 2 I put: ipfs get QmUZWQxExtBHVD3Z5XRAxEiwHCegqpbUZz25uSNm5SuiNv -o /Users/adamprocter/Desktop/ipfs_file.md - does not go back to command prompt and nothing on desktop
mquandalle has joined #ipfs
chriscool has joined #ipfs
<whyrusleeping>
adamprocter: do you have the daemon running on both machines?
<adamprocter>
yep
<adamprocter>
dont worry quit terminal restarted daemon got it :D
<adamprocter>
woot
<whyrusleeping>
lol, weird
<whyrusleeping>
resolution issues
<adamprocter>
gonna try once more same with CENT then I am gonna skip around my office and go home :D
ygrek has joined #ipfs
<adamprocter>
oh it went through the process (good) but said no such file or directory
<adamprocter>
<adamprocter>
dont answer that
<adamprocter>
no slash needed before gotest - yes!!! it worked
<adamprocter>
thanks so much this is a great start for me :D
<whyrusleeping>
adamprocter: awesome :)
<adamprocter>
I will likely return with more stupid questions - thanks again for you time. have a good evening/ day
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
okket_ has quit [Remote host closed the connection]
okket has joined #ipfs
amstocker has quit [Ping timeout: 246 seconds]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<dignifiedquire>
jbenet: did you realize that the logo shape is nearly identical to the one from sudoroom? https://sudoroom.org/
<jbenet>
yeahhhhhhh-- there's only so many ways to do a hex-inspired-cube-mesh-of-nodes. its similar components, but looks very very different thanks to color diff. when i realized, i tested this out with people, and you're the first person to point it out.
<jbenet>
(unprompted)
<dignifiedquire>
okay :) just wanted to put it out there
<jbenet>
the ratios, the cut off edges, and the colors really distinguish them. i dont think it's confusing. do you?
<whyrusleeping>
jbenet: lets use a jellyfish as our logo
<whyrusleeping>
i like jellyfish
<dignifiedquire>
whyrusleeping: I’m totally down for that :) abstract jellyfish would be awesome :P
<dignifiedquire>
s/abstract/stylized/
<jbenet>
logos need to be very simple. to trivially drawable, and highly recognizable. there's a difference between a logo and a mascot.
<ansuz>
"Through asexual reproduction, the resulting polyp colony can spawn hundreds of genetically identical jellyfish—near perfect copies of the original adult."
<dignifiedquire>
sounds like the dream ;)
* ansuz
drops their DNA into a merkle tree
<dignifiedquire>
they could be abstracted in a nice way, so they are easier to recognize and draw for logo and branding purposes
<ipfsbot>
[go-ipfs] whyrusleeping pushed 1 new commit to feat/symlinks: http://git.io/vGMgk
<ipfsbot>
go-ipfs/feat/symlinks 5ba7d61 Jeromy: symlink handling in files ls...
<ipfsbot>
[go-ipfs] whyrusleeping pushed 1 new commit to feat/symlinks: http://git.io/vGMg7
<ipfsbot>
go-ipfs/feat/symlinks a4e7287 Jeromy: add tests for symlinks...
sasha has quit [Ping timeout: 240 seconds]
zorun has quit [Ping timeout: 252 seconds]
zorun has joined #ipfs
sasha has joined #ipfs
sasha is now known as Guest41313
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
thomasreggi has quit [Remote host closed the connection]
dignifiedquire has quit [Quit: dignifiedquire]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
amstocker has joined #ipfs
<whyrusleeping>
jbenet: if you have time, could you go over 1627 again?
<jbenet>
sure
<voxelot>
also, is there a random walk already implemented in go peer discovery or is this a new feature for node?
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
tlts
<whyrusleeping>
lgierth: lol, nice
mkarrer has quit []
nessence has joined #ipfs
<whyrusleeping>
jbenet: if i'm using a process, do i need to select over process.Closed() AND process.Closing() ?
<jbenet>
no
<jbenet>
dont even need to select on them at all. it's for convenience.
<jbenet>
the semantics are: Closing() happens after it starts closing, but may be before fully closed. Closed() means it's done.
<Luzifer>
cryptix: lets talk tomorrow… I'll ping you after lunch… Just came back from service at the fire dept…
mkarrer has joined #ipfs
<whyrusleeping>
jbenet: is there an error for goprocess that we can return like 'error: process closed'
<jbenet>
important distinction, for example, suppose you spawn long running proc A like proc.Go(func(p) { for { doStuff(p) } } and it has a work loop inside. you then want it to end, so you call "a.Close()". a immediately enters closing state (so <-a.Closing() would not block, but <-a.Closed() would still block). the inside work loop must exit before the process can
<jbenet>
be torn down. so inside work loop can check its proc and see whether <-p.Closing(), and if so exit. both are for convenience.
<jbenet>
whyrusleeping: whats the case? avoiding the panic? (yeah maybe that's the right thing to do. will make the interface nastier.
<jbenet>
but will avoid disaster.
<jbenet>
alterntively, we can find a better interface there
<whyrusleeping>
so, i'm in bitswap, and i wanted to select on bitswaps context and sending on a channel
<whyrusleeping>
so if bitswap was closed, i would return ctx.Err()
<whyrusleeping>
but process doesnt really have an equivalent
<whyrusleeping>
ill take a look at that next if you want
<jbenet>
ah interesting.
chriscool has quit [Ping timeout: 255 seconds]
<jbenet>
so, : select { case <-p.Closed(): return nil, proc.ErrClosed; ... } ?
<jbenet>
btw, the thing is that shutdown may fail, and if so, the error will be returned on p.Close()
<jbenet>
that's the real, ctx.Done()
<jbenet>
but it only happens _after_ p has closed.
<jbenet>
so really: select { case <-p.Closed(): return nil, p.Close(); ... } -- may want to just add a p.Err() that blocks on <-p.Closed() and returns the err after.
<jbenet>
so: select { case <-p.Closed(): return nil, p.Err(); ... }
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
would that return the result of p.Close()?
<Bat`O>
whyrusleeping: does a block size can tell me if it's a terminal block or an "aggregator" block ?
<jbenet>
whyrusleeping: yeah the error is saved on the proc, so that every call to p.Close() gets it
<jbenet>
(p.Close() may be called in many places)
<Bat`O>
i'm asking this because 'ipfs object links" list the direct block child of a file, but i can't tell, appart from the size if there is indirect child
<whyrusleeping>
jbenet: so i could do { case <-p.Closed(): return p.Close() ...
<whyrusleeping>
right?
<jbenet>
no select, always block i think
<jbenet>
Oh
<jbenet>
you mean in calling code
<jbenet>
yes
<whyrusleeping>
okay
<whyrusleeping>
cool
<jbenet>
i meant, can add: func (p *Process) Err() error { <-p.Closed(); return p.closeErr }
<whyrusleeping>
alright, ill PR that
nessence has quit [Read error: Connection reset by peer]
<voxelot>
is there a way to traverse the data stored on a node by the peer id alone?
Guest41313 is now known as Sasha
<whyrusleeping>
voxelot: programmatically? or through the API?
<whyrusleeping>
oh wait, i misread
<whyrusleeping>
no
<voxelot>
right, thinking in the direction of building a search engine in the future
<whyrusleeping>
voxelot: my thoughts on the search engine, were to index content by listening to the dht
<voxelot>
yup, i was thinking of a more proactive approach like making a crawler, without too much dht spamming
<whyrusleeping>
you dont need any dht spamming
<whyrusleeping>
just make a bunch of nodes that record all provide messages
<whyrusleeping>
and provider request message
<whyrusleeping>
s
<voxelot>
ohh true, although it would be expensive to get a large amount of nodes out with S/Kademlia with anyti-sybil right
<voxelot>
not sure how many listeners would be needed to index enough for a search engine
<whyrusleeping>
voxelot: not entirely, S/Kademlia does good at anti-sybyl, but that doesnt mean you need to perform a sybil attack to list to most requests
nessence_ has quit [Remote host closed the connection]
<whyrusleeping>
kademlias strength comes from the number of requests it makes
<whyrusleeping>
all you have to do is receive one of those
<voxelot>
interesting
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
JasonWoof has joined #ipfs
nessence has joined #ipfs
pfraze has quit [Remote host closed the connection]
<lgierth>
whyrusleeping: but don't you have to serve tons of bytes in order to get all that stuff, given your indexing node is in competition with other nodes leeching the same stuff?
<lgierth>
that probably isn't a problem if you want to index the less popular stuff
<whyrusleeping>
lgierth: potentially yeah
<whyrusleeping>
which means, that to efficiently index it all, you have to make the network better :D
<lgierth>
:):)
<lgierth>
and actually provide the stuff you nidex
<lgierth>
which is in your own interest of course
<voxelot>
like google working with spacex to get satelites up, sybiotic relationships
anshukla has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
Encrypt has quit [Quit: Sleeping time!]
Eudaimonstro has quit [Remote host closed the connection]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
patcon has quit [Ping timeout: 255 seconds]
amstocker has quit [Ping timeout: 246 seconds]
P104 has joined #ipfs
pfraze has joined #ipfs
akhavr has joined #ipfs
anshukla has quit [Remote host closed the connection]
thomasreggi has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
danslo has quit [Quit: Leaving.]
P104 is now known as uuidgen
uuidgen has quit []
P104 has joined #ipfs
P104 has quit [Client Quit]
uuidgen has joined #ipfs
uuidgen has quit []
uuidgen has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]