infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ipfs
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ipfs
infinity0 has quit [Remote host closed the connection]
asyncsec has quit [Quit: asyncsec]
infinity0 has joined #ipfs
infinity0 has quit [Remote host closed the connection]
droman has quit []
infinitesum has quit [Quit: infinitesum]
infinity0 has joined #ipfs
infinity0 has quit [Remote host closed the connection]
chris613 has quit [Quit: Leaving.]
djangod has joined #ipfs
<djangod>
I've heard that storing indexes in a blockchain, and assets on ipfs is a good idea if your project needs trusted db
<djangod>
but what does it actually mean to store asset indexes / hashes on a blockchain?
<djangod>
isnt it expensive to store hashes to a user in on a network, and how would you even query them?
<deltab>
djangod: when you make a transaction to be recorded in a blockchain, you can add some extra data (such as a hash) that does nothing in the transaction but gets written along with it into the blockchain
<deltab>
it's thereby permanently stored, at a particular time
<djangod>
deltab but storing a set of 5 meta data properties will be expensive right?
<djangod>
it increases gas quite a lot
<deltab>
well, the more you store, the more expensive it is
<deltab>
that's why a hash is useful: it verifies a large amount of data with a small amount
<djangod>
oh so maybe a hash linking to a relational db profile, which extrapolates from there. You're right
<djangod>
In the transactions thats to be recorded on the chain, what exactly are you transferring? If the hash is the meta data, what is the actual payload
<deltab>
well for bitcoin it's the signatures to prove ownership of the inputs, and the output addresses being paid
<deltab>
but you can also add instructions that say things like "store this data on the stack; then remove it"
<deltab>
because those transactions are bigger, fewer of them fit into a block, so miners want larger fees for them
zeroish has joined #ipfs
zeroish has quit [Ping timeout: 240 seconds]
<SchrodingersScat>
djangod: iirc some jerk was putting bible verses into the blockchain and they had to tell him to stop.
<deltab>
djangod: as for querying them, just point to the transaction in its block and you can say "see, this hash (and hence everything it was based on) existed back then, and it's in a transaction that has my signature."
<whyrusleeping>
SchrodingersScat: people cant stop you from putting anything in the blockchain
<whyrusleeping>
you have to pay transaction fees to get it mined into a block
<SchrodingersScat>
good point
<SchrodingersScat>
scary
* SchrodingersScat
puts the necronomicron in there
<whyrusleeping>
yeah, i may put hashes of encrypted ipfs backups in the ethereum blockchain >.>
<whyrusleeping>
or maybe i don't do that, you'll never know
<kythyria[m]>
Probably they weren't thinking about people who think that the GPL is evil for some reason
<libman>
GPLv3 protocol standards are swimming very much against the current.
<kythyria[m]>
What does that even mean for a protocol to be GPL
<kythyria[m]>
It doesn't have source code, it isn't even a program
<whyrusleeping>
i've not a damn clue
<libman>
Not the protocol itself, but the dominant implementation.
djangod has quit [Quit: Page closed]
<spikebike>
well many claim protected IP for API, ISA, even a virtual machine.
palkeo has quit [Ping timeout: 240 seconds]
<whyrusleeping>
libman: no, the protocol itself appears to be gpl
zuck05 has quit [Ping timeout: 240 seconds]
zuck05 has joined #ipfs
<libman>
No one really understands what those 13 pages of legalese actually mean, because interpretations are evolving...
<kythyria[m]>
GPLv2 isn't that unclear, though
<kythyria[m]>
And I should think whoever wrote it knows :)
<libman>
I don't mean to go on a philosophical anti-GPL rant here, but I'm just saying if it's possible to encourage them to re-license that would be good for everyone.
Jaycen has joined #ipfs
asyncsec has joined #ipfs
zeroish has joined #ipfs
leoserra[m] has joined #ipfs
shizy has joined #ipfs
dimitarvp has quit [Quit: Bye]
Jaycen has quit [Ping timeout: 260 seconds]
dignifiedquire has quit [Quit: Connection closed for inactivity]
zeroish has quit [Ping timeout: 255 seconds]
infinitesum has quit [Quit: infinitesum]
jaboja has quit [Ping timeout: 268 seconds]
shizy has quit [Ping timeout: 240 seconds]
<flyinglasanga[m]>
Let me tell you: I am the genius. I am creating a crypto called SmartSpank -- pay attention.
Akaibu has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #ipfs
galois_dmz has joined #ipfs
galois_d_ has quit [Ping timeout: 258 seconds]
jmill has joined #ipfs
mahloun has joined #ipfs
infinitesum has quit [Ping timeout: 260 seconds]
owlet has quit [Ping timeout: 240 seconds]
infinitesum has joined #ipfs
mahloun has quit [Ping timeout: 255 seconds]
jkilpatr has quit [Ping timeout: 258 seconds]
anewuser has joined #ipfs
jmill has quit [Ping timeout: 255 seconds]
jmill has joined #ipfs
Jesin has quit [Quit: Leaving]
jaboja has joined #ipfs
viktor has joined #ipfs
jkilpatr has joined #ipfs
Jesin has joined #ipfs
Nukien has quit [Ping timeout: 255 seconds]
jmill has quit [Ping timeout: 255 seconds]
jmill has joined #ipfs
richardlitt has quit [Quit: Connection closed for inactivity]
tantalum has quit [Quit: Leaving.]
ofdm has quit [Ping timeout: 246 seconds]
asyncsec has quit [Remote host closed the connection]
asyncsec has joined #ipfs
rendar has quit [Quit: std::lower_bound + std::less_equal *works* with a vector without duplicates!]
Encrypt has quit [Quit: Quit]
mahloun has joined #ipfs
ofdm has joined #ipfs
ilyaigpetrov has quit [Quit: Connection closed for inactivity]
stavros has joined #ipfs
<stavros>
hello
<stavros>
i'm trying to write an application for ipfs
<stavros>
i want my application to publish a file and get the ID back, how can i do that?
<stavros>
do i POST to the daemon? do i need the JS API for that?
<stavros>
i'm having trouble figuring out how to use the latter
<whyrusleeping>
stavros: what language are you writing this application in?
fps has joined #ipfs
<stavros>
whyrusleeping, JS
<whyrusleeping>
stavros: so in a browser? use js-ipfs-api
<stavros>
that's what i'm using, but i can't figure out how to pass my data to ipfs.files.add()
<stavros>
and i don't know if i need that whole thing just to publish a file
Pessimist has quit [Changing host]
Pessimist has joined #ipfs
Pessimist has joined #ipfs
<whyrusleeping>
hrm... i don't do javascript. But others in this channel do i know
<whyrusleeping>
but i think you need to pass it a buffer
<whyrusleeping>
and a callback
owlet has joined #ipfs
<stavros>
yeah, i'm not sure what a Buffer is, though
<stavros>
i'm not very current on JS
<stavros>
i was wondering if i could just POST to the daemon directly
<fps>
hi. i'm following the guix project.. and it looks like it's /gnu/store store of packages, could benefit from ipfs. but since i'm an ipfs noob, i might have some questions :)
<whyrusleeping>
fps: we're always here to answer questions :)
<fps>
so assume basic familiarity with merkle trees and kademlia (XOR metric etc), since i worked a little bit on morphis, when sam was still around..
<fps>
whyrusleeping: great :)
<stavros>
whyrusleeping, i have seen that, but it seems to me that it requires react or node, because Buffer doesn't exist in the browser. i'll look at it a bit better though, thanks
<whyrusleeping>
daviddias: you around?
<fps>
so, packages on guix live in /gnu/store/[long hash of package derivation inputs]-packagename-version/, e.g. /gnu/store/02426nwiy32cscm4h83729vn5ws1gs2i-bash-static-4.4.12/
Nukien has joined #ipfs
martin[m] has joined #ipfs
<fps>
and they are [mostly] reproducible. so i ponder how to distribute these packages via ipfs.. the package name is not completely determined by the inputs to the package (since some are not yet reproducible) and its name is not the hash of a merkle root
jmill has quit [Read error: Connection reset by peer]
<fps>
but the name is deterministic from the inputs to the package, so another user might want to get /gnu/store/02426nwiy32cscm4h83729vn5ws1gs2i-bash-static-4.4.12/. i suppose there needs to be a mapping from this name to the ipfs data structure represnenting this directory
* fps
just installed ipfs and only added a txt file, so he's pretty much ignorant about directory handling, mutable keys, etc..
<fps>
oops, correction: the package _content_ is not completely determined by the inputs to the package.. the name is though
<stavros>
this library seems to require node, can i not just do a POST to the daemon? :(
<fps>
so i guess the first question is: how to create a, e.g. textfile that has a constant hash/key, but of which i can change the content. this would be used to maintain a map of package names to hashes of the package content..
<Magik6k>
fps, you can think of IPFS as a decentralized git object storage. A hash can refer to a file or a directory, that is - when you add a directory IPFS creates tree structure that points at hashes of files/directories inside it.
<Magik6k>
fps, for the mutable key thing look at IPNS
<fps>
Magik6k: yeah, ok, i guess i can then just cd /; ipfs add /gnu/store/02426nwiy32cscm4h83729vn5ws1gs2i-bash-static-4.4.12/ to add the package's data
<Magik6k>
`ipfs name` command
<fps>
will look at ipns
<Anchakor>
fps: guix is like nix right? it also has for every package version different hash-name
<Magik6k>
stavros, You can use it in browser using broweserify/webpack
<fps>
Anchakor: yeah, it's very much inspired by nix, but using scheme as its derivation language :)
<M-hash>
Anchakor: there're very similar, iiuc they even still use the same build tool at the very bottom of the stack
zeroish has quit [Ping timeout: 268 seconds]
<fps>
yep, guix-daemon is a fork of nix-daemon
<Anchakor>
if so, for building a backend for it based on ifps you won't need ipns unless you want/need to replace the search/indexing engine too
infinitesum has quit [Quit: infinitesum]
<fps>
there needs to be a map: package-name -> ipfs tree hash
<fps>
as the content isn;t known before you have the package
zeroish has joined #ipfs
Caterpillar has quit [Quit: You were not made to live as brutes, but to follow virtue and knowledge.]
<fps>
what's the terminology for the hash of the root of the merkle tree representing the directory?
hoboprimate has joined #ipfs
espadrine has joined #ipfs
hoboprimate has left #ipfs [#ipfs]
<fps>
oh, ipfs add -r gnu/store/... stripped the gnu/store/ prefix from the directory tree it seems..
stavros has quit [Quit: Leaving]
krs93 has joined #ipfs
<fps>
eh, it doesn't matter though, because i know that QmNnujGD3k7aFnyVLumc27ugDm4G2TM3e4swpgj5SqY71A is /gnu/store/02426nwiy32cscm4h83729vn5ws1gs2i-bash-static-4.4.12/ ;)