<dennismckinnon>
hey whyrusleeping Are you around?
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
bedeho has quit [Ping timeout: 244 seconds]
<dennismckinnon>
I was wondering about the ipfs hashes. I could have sworn they were presented in base64 with the Qm being some kind of hash-type specifier but when I try converting it I am getting 33 byte length (after striping the Qm) what am I doing wrong?
tilgovi has quit [Remote host closed the connection]
Leer10 has joined #ipfs
<dennismckinnon>
is there a checksum byte or something thats being added?
<dennismckinnon>
(I remember the hashes being 32 bytes long)
<lgierth>
yeah the first byte signifies the hash function, and length of the following hash#
<dennismckinnon>
ah! thats the link i was looking for. but things must have gotten moved around since i last looked
<dennismckinnon>
oh! ita also being encoded in base 58 not 64
<lgierth>
ah! oh! ah!
<lgierth>
:)
<lgierth>
ipfs is full of pleasant surprises
<dennismckinnon>
indeed. Though base 64 returns from the nodeapi would have probably been easier to deal with
<dennismckinnon>
I need to get it down to 32 bytes (strip the front off) so it will fit in the contract storage
<dennismckinnon>
32 byte hex string*
<lgierth>
better strip the end off then, no?
<lgierth>
then you still retain the hash+size
<dennismckinnon>
i know the hash and size
<dennismckinnon>
i can just assume the 0x1220
<dennismckinnon>
if i lose the last two bytes how will I be able to fetch the object from ipfs again?
<lgierth>
ah.
<lgierth>
gotcha
<lgierth>
also assume that the hash functions are going to change
<lgierth>
probably not in the shortterm, but multihash's very purpose is swapping out hash functions without breaking stuff
<lgierth>
git for example will get problems when they switch to a different hash function
<dennismckinnon>
Yeah I understand that. Sadly the EVM is very particular about its 32 bytes stuff. So until solidity string types are working properly I will have to hack off the front
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<lgierth>
yep, sounds like a good trade-off
<dennismckinnon>
thanks for the help
dennismckinnon has quit [Quit: Leaving]
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<whyrusleeping>
rschulman__: just for sanitys sake, you are running a fairly recent master, right?
<rschulman__>
hm
<rschulman__>
I’m running one of the prebuilt packages, I believe.
<rschulman__>
0.3.5
<whyrusleeping>
i dont think anything has changed since then...
<whyrusleeping>
once i finish this http stuff, i'll try and fix my fuse install
<whyrusleeping>
or alternatively, reboot into ox
<whyrusleeping>
osx*
<rschulman__>
cool
<woahbot>
w0ah!
<rschulman__>
huh, thanks whoabot
<whyrusleeping>
woahbot: watch yourself, i have quite the itchy banhammer
<pguth2>
neat, so deep woahbot.
<pguth2>
^^
<pguth2>
you could give him quite a w0ah-moment with that whyrusleeping x)
<whyrusleeping>
lol
Encrypt has joined #ipfs
simonv3 has joined #ipfs
<voxelot>
has anyone thought about a way to build a search functions on ipfs, like how a sql database would be searched
<whyrusleeping>
voxelot: yeah, we've put some thought into it
<whyrusleeping>
at its core, ipfs can be looked at as a big tree
<whyrusleeping>
so any methods you would use to search efficiently through a tree, will work on ipfs
<voxelot>
im hearing log(n) :)
notduncansmith has joined #ipfs
<whyrusleeping>
yeah, log(n), with a decently large base
notduncansmith has quit [Read error: Connection reset by peer]
<voxelot>
and i'm thinking of a way to section of ipfs and only search on that area so to speak
<voxelot>
or branch
<whyrusleeping>
voxelot: whats your use case?
<voxelot>
social platform
<voxelot>
user controlled database
<voxelot>
so like i want to search for all Jim's on our branch
<voxelot>
basically just want to create a front end that pulls data directly from the users to populate the pages
rschulman__ has quit [Quit: rschulman__]
<whyrusleeping>
voxelot: thats fairly simple to do, depending on scale, by just using each individuals ipns directory and looking for certain links under there
<voxelot>
yeah thats the direction i was thinking
<voxelot>
and when we work out an encryption we could allow users to say what data is searchable or veiwable by others
<whyrusleeping>
voxelot: yeah, i'm planning on building out encryption stuff for ipfs in the nearish future
<whyrusleeping>
that and ipns are what i'm really excited about
Tv` has joined #ipfs
<voxelot>
hell yeah! maybe i can help you out :)
<voxelot>
still a noob to your system though
rschulman__ has joined #ipfs
<voxelot>
but for right now i can use the API and curl to do front end stuff with ipfs right?
atrapado has joined #ipfs
<whyrusleeping>
yeap, depending on what language youre using, there might be better ways than curl
<whyrusleeping>
if youre using go, you can use my 'ipfs-shell'
<whyrusleeping>
if javascript, there is a library for that too
<whyrusleeping>
and i think a few other languages have bindings as well
<voxelot>
javascript preferably but i'll look into your shell, just not familiar with go
<rschulman__>
yes, the whole link was in crazy utf-16 code points
woahbot was kicked from #ipfs by whyrusleeping [woahbot]
<rschulman__>
you can’t see it.
<rschulman__>
(thank you whyrusleeping(
<whyrusleeping>
yeah
<jbenet>
ok ready?
<jbenet>
start with whyrusleeping?
<whyrusleeping>
just about
<whyrusleeping>
sure
<whyrusleeping>
This past week I got the docker registry code up and running, but while doing that, I hit more api failures than I wanted to shake a stick at, so I spent some time on fixing that.
<whyrusleeping>
I implemented a global timeout flag that will allow you to get a timeout'ed context from a commands request.
<whyrusleeping>
I fixed the notifications test failure that has been plaguing us for quite some time, i made our CI detection aware of circleCI which reduces even more random test failures.
<whyrusleeping>
windows builds now work again, and binaries are available through gobuilder once more.
<whyrusleeping>
I added a --create option to object patch that is still in CR.
<whyrusleeping>
And I am working on a PR that adds errors through http trailers to fix silent API failures.
<jbenet>
yay on windows builds
<jbenet>
the PRs have CR, right? (i think im still to comment on a few out there, but got most of yours)
<whyrusleeping>
i also dont trust our log messages at all
<jbenet>
"dont trust our log messages" ?? (let's discuss this after planning)
<whyrusleeping>
and i've responded to the CR, need another round
<whyrusleeping>
re log messages: yeah
<jbenet>
ok
<jbenet>
let's land all of our bugfixes in next few days (i've some in flight too)
<jbenet>
whyrusleeping: anything else?
<whyrusleeping>
jbenet: not off the top of my head
<jbenet>
ok, next, @daviddias ?
<daviddias>
just finishing up my write up
<daviddias>
need couple more minutes. sorry
<jbenet>
ok, can come back. (no worries)
<jbenet>
lgierth ?
<lgierth>
yep
<lgierth>
very short update from myself:
<lgierth>
- started working on cjdns-in-ipfs (codename interplanetary express), read *a lot* of cjdns code, and getting better with golang. it's generally good to go forward, but i need a bit of direction feedback
<lgierth>
- neptune is being rebuilt tonight
<lgierth>
- a few more battlemesh preparations
<lgierth>
eof
<jbenet>
sounds good. cjdns will be useful. -- i've still a ton of notifs to get through, but drop links here and i'll get to them faster (for feedback)
<lgierth>
yup
<jbenet>
lgierth: so discover peers from cjdns still in progress, right?
<lgierth>
mhyeap. i should probably have taken that first since it's already started
<jbenet>
no worries, it will take a bunch of work to wrap our heads around all the cjdns code and align the interfaces with ours, etc.
<jbenet>
and "have repo config managed by ansible ipfs/infrastructure#39" still wip, right?
<lgierth>
heh indeed -- i think i've groked it now, so i'm a better help there
<lgierth>
yeah it's part of the neptune deploy tonight
<lgierth>
s/deploy/rebuild/
<jbenet>
sounds good!
<lgierth>
so i might have that checked before 0300Z
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
next up, krl ?
<krl>
sure!
<krl>
finished ipfs-web-app, modularized the webui using this, still needs to be made a release.
<krl>
wrote a wrapper to run the node-ipfs-api tests in node and browser (phantomjs)
<krl>
worked on append-only log with text-search, almost done.
<krl>
this week i'll build and publish a new version of webui and finish the log proof of concept, build it out to a demo.
* daviddias
is ready
<krl>
that's it more or less
<jbenet>
krl: sounds good!
<jbenet>
krl: should fix the node-ipfs-api add bug soon, as it's been broken for a long time on published package.
<jbenet>
(i can help discuss the last parts of that, as I found some more bugs while hacking on fed wiki)
<krl>
sounds good
<krl>
i guess browserify tests should help in this
<jbenet>
krl: yeah
<jbenet>
let's discuss more later
<jbenet>
next up, daviddias
<daviddias>
there you go:
<daviddias>
- [x] - Meetup extravaganza
<daviddias>
- [x] - Update the Network Layer (libp2p) spec with new understanding of how Peer Routing, Discovery integrates it (still a work in progress, but the code has moved towards the libp2p direction two with better standardise interfaces and expectations)
<daviddias>
- [ ] - network-layer || libp2p
<daviddias>
- [x] Implement PING proto
<daviddias>
- [x] - Add READMEs, open issues to make it more friendly for others to contribute
<daviddias>
- [x] standardise the interface
<daviddias>
- [x] discovery
<daviddias>
- [x] make mDNS a separate module and conform with the interface + ability for the peer to announce itself and also to verify if it can indeed open a connection https://github.com/diasdavid/node-ipfs-mdns
<daviddias>
pretty excited about the libp2p stuff because essentially (and after some drawings) I finally know (at least think) how I can connect the pieces together without making a massive spaghetti
<lgierth>
jbenet: yup done
<jbenet>
lgierth: thx!
<daviddias>
jbenet have to try that, need to sync up with whyrusleeping on how is the best way for me to test stuff now, since node-ipfs already does the spdy+ multi stream without sec.io
<whyrusleeping>
daviddias: we have a flag to turn off secio
<jbenet>
daviddias: i made a flag for testing with node: "ipfs daemon --disable-transport-encryption"
<daviddias>
nice! Missed that
<jbenet>
daviddias you'll have to manually "ipfs swarm connect <multiaddr>" because the bootstrap peers will reject unencrypted connections. (protocol wont work with them)
<krl>
jbenet: done
<jbenet>
ok, thanks daviddias, exciting stuff :)
<daviddias>
I see :). Thank you!
<jbenet>
daviddias: +1 to https://github.com/diasdavid/node-ipfs-railing btw. maybe can call it the same in go-ipfs later on. (right now it's not a good module yet, we'll want a "Discovery" interface, etc)
<mappum>
The React interface isn't implemented yet, but that should be deferred until we have the design from the designer (some layout+UX will likely change).
<mappum>
Started on the CLI client, not much more needs to be done specifically for that, because most of the work is in the Cube client module.
<mappum>
Made progress on the Cube server, it talks to the daemon to add/pin/unpin files, and I set up the Stripe payments stuff. Just need to do the rest of the API, make it GC files that run out of money, and write tests.
<mappum>
EOF
<daviddias>
jbenet right now my "Discovery Interface" is a module should have a way to 'emit peers' as they are found and if an {verify: true} is passed as options argument, then the discovery must first try to open a swarm connection to that peer, before emiting that it found a new peer (so then the Kad-Router can consider it for the KBuckets safely)
<whyrusleeping>
mappum: looks awesome :D
<jbenet>
awesome, sgtm!
bedeho2 has quit [Ping timeout: 244 seconds]
<jbenet>
will send feedback for all that soon.
www has quit [Ping timeout: 252 seconds]
<jbenet>
ok, i'll go next
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
- I had a pretty unproductive week -- burned tons of time in coordinating logistics for PDX travel, including surprise re-booking places :(, traveling, and meetup things.
<jbenet>
- I did find _lots_ of bugs while demoing / hacking with people, which we're in the process fixing.
<jbenet>
- Anyway, talks for meetups + coordinating meetups done.
<jbenet>
- Lots of CR + issues
<jbenet>
- ipfsld draft is over at https://github.com/ipfs/go-ipfsld -- this now just needs a cleanup of the dag.Node/Link part, and the marshal/unmarshal, but i think we have a pretty good API now.
<jbenet>
- land requests -- apparently i'm physically incapable of landing this. i'll push what i have now and we can clean it when ipfsld lands
<jbenet>
- fix go-ipfs get problem -- worked with @whyrusleeping on this, looks close to done
<jbenet>
- gix go-ipfs CORS problems -- still WIP. hope to have a PR ready next couple of days. (though anyone can pick this up from me)
<jbenet>
- hacking on federated wiki: added support for adding images. (need to cleanup + fix CORS problem)
<jbenet>
- node-ipfs-api -- figured out the vinyl files stream problem. it's still broken though
<jbenet>
- worked with @daviddias on formulating the interfaces for "the network" components / libp2p
<jbenet>
ok, anyone else want to go?
<jbenet>
maybe rht- ?
<whyrusleeping>
echo coffeeCup.Empty()
<whyrusleeping>
true
<lgierth>
pizza.Ready() => false
<lgierth>
11 am over there eh?
<whyrusleeping>
yeap
<whyrusleeping>
8 pm and no pizza yet?
<whyrusleeping>
:(
<lgierth>
needs a couple more minutes
<jbenet>
ok, looks like we're done in this part. see you at discussions!
www has joined #ipfs
rschulman___ has joined #ipfs
rschulman__ has quit [Ping timeout: 244 seconds]
rschulman___ is now known as rschulman__
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<daviddias>
I'm on the bus down. Do you want me to get you some coffee whyrusleeping ?
<whyrusleeping>
daviddias: which coffee shop?
<daviddias>
I was thinking of zeitgeist
<whyrusleeping>
okay, i might just meet you there
<whyrusleeping>
got a rough ETA?
<voxelot>
you guys are in SF?
<voxelot>
my buddy works at zeit sf
<daviddias>
~10 minutes
<voxelot>
i'm down in LA working on crypto projects, would lvoe to meet some tme
<daviddias>
voxelot: we are in Seattle right now. But jbenet might be sometime in the next months in Palo Alto :)
<voxelot>
noice, SF is over rated imho.. at least over priced =/
<daviddias>
whyrusleeping: walking there 2mins
<whyrusleeping>
okay
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<rschulman__>
east coast 4 lyfe guys
<voxelot>
pfffff :p
<rschulman__>
:P
<rschulman__>
I own a 4 bedroom house in DC that would be like 12 times as much in SF
<voxelot>
yeah i'd never move to palo, they have a term here in LA calling Santa Monica silicon beach
<voxelot>
a lot of tech moving out cus of prices
<voxelot>
but santa monica is expensive too lol
<lgierth>
daviddias: jbenet: damn i'd really like to be with your for network/p2p
<lgierth>
nothing beats a few whiteboard scribbles
<jbenet>
lgierth: maybe we can try online later today, or worst case we'll be together next week to iron out other things
<lgierth>
yeah i'm looking forward to that *a lot*
<lgierth>
cjd and ehmry will join us in berlin after battlemesh
<ehmry>
yep
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<lgierth>
daviddias: is that econnreset from the api?
<lgierth>
that bug's haunting whyrusleeping
<jbenet>
daviddias whyrusleeping: if you want to talk about node-ipfs now, we can jump on +hangout, or if you prefer in person, maybe you go grab lunch and i can meet you at impact hub in ~40?
<daviddias>
I would prefer in person, since we are all in the same city and all :)
<daviddias>
we just had some pie, when will you arrive to IH?
<jbenet>
daviddias: i can be over in ~40. i'll do that.
* jbenet
sucks at time.
<daviddias>
It's ok ⏰
<daviddias>
40 minutes then
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
voxelot has joined #ipfs
voxelot has quit [Changing host]
voxelot has joined #ipfs
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<daviddias>
whyrusleeping: Swarm is listening on: /ip4/172.16.34.16/tcp/4001 QmbXCkzhGiQqqcHRWebApze4iWZxLC7AMmdh91AnUvZHvw
<lgierth>
jbenet: who's gonna rent a car btw? ;) i don't have a driver's license
notduncansmith has joined #ipfs
notduncansmith has quit [Read error: Connection reset by peer]
<jbenet>
lgierth: i have a drivers license in the US -- is that any good?
<jbenet>
i also have a car, but i dont have a teleporting device yet
<voxelot>
you can get an internation drivers permit from AAA for like $15, pretty much good in every counrty
<krl>
jbenet: afaik, us drivers licenses are accepted for one year all over europe
<voxelot>
not sure about the teleporter :p
<voxelot>
ohh even better
<krl>
at least in germany
<whyrusleeping>
jbenet: just rent a porsche
<spikebike>
heh, my sister keeps asking me to visit her in munich. She sends me porsche rental ads ;-)
<whyrusleeping>
spikebike: its tempting
<lgierth>
to the ipfs mobile!
<pjz>
there's a mobile version of ipfs?
<lgierth>
a wild TODO appears
<spikebike>
It's unclear to me that a full p2p client on mobile makes sense.
<lgierth>
*some* p2p client definitely makes sense
<spikebike>
being a full member of a DHT for instance often involves being awake quite often, it would chew battery pretty well
<lgierth>
doesn't kademlia tend towards peers which have been online longer?
<pjz>
sure, I'd expect some kind of client relationship to a fully ipfs node that I also control
<pjz>
lgierth: you're the one who said 'ipfs mobile' :)
<spikebike>
yeah a 2 tier setup seems reasonable, put a Pi in a mason jar that's online and get get a good reputation from it's peers, then you can use that relationship toget data to/from your phone as needed.
<lgierth>
well ipfs itself is only half the fun if there's no integration from apps
<spikebike>
Said Pi could send you push notifications to your phone