Closed RichardLitt closed 8 years ago
ipfs log tail
Update
Next
Update
Next
I'll be working on integrating orbit-db (1) to Orbit (2) in order to make sure orbit-db provides an easy embeddable p2p database for apps on IPFS. It also means I can refactor a huge bunch of the Orbit code and simplify the "backend" logic of the app as well as refactor the UI to a more manageable state. The overall goal is to make Orbit a little cleaner so that others can start contributing to is.
1) https://github.com/haadcode/orbit-db 2) https://github.com/haadcode/anonymous-networks
I am going to focus on copy editing some of our blog posts that need to go out, because we should publish them and I think a little elbow grease will get them out the door. I will also be diving into js-ipfs and seeing if I can help out with building ipfs block
there. Along with these I am going to be generally working through my backlog of issues and things to do.
I want to make headway on the "init" process for js-ipfs: this means getting a clear understanding of what initializing a repo means with respect to IPFS, resolving any non-existant dependencies, and implementing the initialization logic. I don't have a clear view yet on the full dependency graph for this, so I'll try and update this list as the amount of work involved becomes clearer.
I'd also like to build hyperarray: an ordered list CRDT built on a hyperlog. This will form the underlying document model for an ipfs-pad document. I've been largely inspired by r-array's design and API.
I want to continue to make progress with my understanding of IPFS. I feel I am at around 70% knowledge and this is keeping me from awnsering some of the bigger questions about data importing like what structures should a browser be able to use in lack of an fs.. yet should we use unixfs and such. I will be moving towards more defined tasks from the go implementation like building out more commands. Also starting to take a look at libp2p and networking. And spending some time with react and the webui to keep my application development chops in line.
P.S. Also want to work with those geniuses up there on pub/sub and CRDT systems
ssh blog@pages.i.ipfs.io publish <hash>
@nicola and I will be having a hangout about IPLD this monday 3/14. interested researchers feel free to join. time TBD, probably after the general hangout. (@richardlitt if you can assign a time that would be great) cc @mildred if interested
@rychipman will join the IPLD meeting ^
Set up for 3pm Eastern Time (Should be 8 CET, 7GMT) on Monday. In the calendar.
Note: tomorrow is a mid-fortnight sprint. We will have a Google Hangout at 1pm EST, 6PM CET. Link will be posted in IRC.
@RichardLitt @jbenet could we shift the meeting on IPLD just about 30 minutes? (@rychipman can only make then)
I will join the IPLD meeting. Is it still 7pm UTC?
@nicola Sure! Which way - forwards or backwards?
@RichardLitt 3:30 EST :)
Done. Note: daylight savings affected the states. That mean sprint hangout will follow the calendar: 1pm EST, 10am PST, 5pm GMT, and 6pm CET.
Focus on Libp2p, interop with go-p2p. Work on libp2p swarm. The api has completely changed. Before, I was exposing a simple API like dial, and then internally it would figure out which transport to use. Now, instead, we expose these internal steps as different function calls. You still have the nice high-level API to the other peer, but there's a lot more stuff exposed. There's more tests, too, making swarm less brittle. So on that, you now have a swarm version ready. What I'm working now is getting the websocket transport to the new transport scheme, which resulted from this upgrade on p2p swarm.
https://github.com/diasdavid/js-libp2p-swarm/issues/24
Go-p2p and js-p2p interop. Getting that done. If that goes well, he'll go into Bitswap. I might build bitswap on js-land, just to have some example code.
@dignifiedquire has worked on the webui. He's got peers working, and all of the geolocation data is now fetched all through IPFS again. Mostly, he's been working on the files API. You can delete stuff, create files and folders.
Preview works: You can view text files, images, and videos. Anything that the browser could play for you, you can use in the webui.
Getting the webui polished and finished. Also, fixing config. It was PRed by @sucha (TODO), who also worked on tests, and then Friedel broke it a bit.
Haads been working on Orbit and Orbit-db. Got it integrated into IPFS, so that's all working quite nicely on both sides. The turn around times are fairly good. It works, it loads.
There's a lot of bugs and things that need to be worked on. Thanks @noffle for bouncing ideas and giving feedback.
Work on orbit; test @noffle's prototype and give feedback. No blockers.
Been sick recently, but everything that he's started is in progress. Not really finished yet, but getting there. Friday he's flyin go to New York.
Multireq, metrics, pages.
Lots of browser testing this week, for js-ipfs data importing and for js-merkledag. Everything is ok, except for one issue of not being able to find a function, although it works on @dignifiedquire's machine, but @diasdavid should be able to help. Also, writing tests for containers for the webui.
Nat testing.
Focused on ipfs-init working with js-ipfs. @noffle wrote a spec-like document showing how that works. He's also been thinking a lot of about the structure of distributed apps on top of IPFS. So, he's making a quick prototype of a distributed IPFS-powered wiki. If you're a reader, you just look through a gateway; if you're a publisher, you just publish a new root hash of the wiki. Might work well for a lot of applications. Inspired after playing with zeronet.
Finish this prototype, possibly work on the IPFS-Etherpad prototype.
PRed some things - went over all of the PRs in http-api-spec. Revieweed 0.4.0 blogpost and I need to do that again. Published the weekly. Started work on ipfs-block; also perused all of /faq and /support. Also hung out with @jbenet.
Going to keep work on ipfs-block.
Fixed a bug where IPFS would hang for large files; it was a multiplexer bug, in the end. There's a bug in Yamux which hasn't been fixed, where if you have too many in flight open streams, the connection will hang. If you raise that limit, the open ones will close down. The limit has been raised to around 16k, and merged that in, but there's still more to do there
Ship 0.4.0. @RichardLitt needs to review stuff; Everyone to review the changelog. Other than that, should be pretty silent. Distributions to be updated, too.
following the summary check in format. For a complete task list done during this sprint, check https://github.com/ipfs/pm/issues/97#issuecomment-193680854.
This last sprint I had the chance to give a lot of time to js-ipfs and libp2p, with the goal of getting js-ipfs working on the browser and exchanging blocks with other js-ipfs nodes and go-ipfs nodes. I've made a lot of contributions and updates to: js-libp2p-ipfs, js-ipfs-data-importing, js-multiaddr, js-mafmt, js-peer-id, js-ipfs-repo, js-libp2p-swarm, js-libp2p-tcp, js-libp2p-utp, js-libp2p-websockets, js-libp2p-multiplex. These changes bubbled up to js-ipfs.
I've found some (really nasty) rabbit wholes when using spdy over websockets which I will explain more at the libp2p hangout, which made a good hit at my time planning.
Also had a good time hacking with @xicombd, good discussions and remote hacking/debugging with @nginnever, good conversations with @dignifiedquire and @nginnever which resulted in the understanding of the new IPFS JavaScript Project guidelines, and last but not the least, the IPLD hangout with a bunch of IPLD enthusiasts.
I've also got the chance to write and submit the paper for ICWE and organize and host the first Research & Development meetup in Lisbon.
I feel my work has been a bit slow the past two weeks. I worked on the http-api-spec, some more, redoing ipfs object
and opening a lot of PRs on go-ipfs. I also went through go-ipfs and added defaults to all of the options, which I think will help out in the future, and am getting a bit more comfortable with reading go. I've sent out two weeklies, and spent a lot of time helping organize the IPFS trip to New York for next week, and I spent a good amount of time going through ipfs/faq and ipfs/support checking up on all of the old issues which weren't updated. I did not get to help review the 0.4.0 ship, nor did I do significant work on js-ipfs block, which I am unhappy about. Hoping to get more work done this coming sprint, especially with the in-person coding time ahead.
ipfs object
PR for HTTP API, opened lots of relevant issues in go-ipfsMy main focus this time was the webui. I have made some good progress on the files explorer interface, refactoring some code and writing more tests. I'm now working on cleaning up the UI, preparing mockups and plans for the final phase of the implementation.
After a some discussions and issues with our JavaScript setups I've started to create dignified.js which is going to be the module to help us have a unified testing, linting and building solution in all our JavaScript projects. This is an ongoing effort that I'm working on together with @diasdavid and @nginnever.
Also in addition after the great IPLD hangout last week I've started implementing parts of it in rust with the goal of finding a typesafe and general interface on how to define mappings between raw IPLD and higher level abstractions like unix-fs.
The past few weeks Berlin has been a huge drag on me, tons of org stuff to take care of, and was generally very easily distracted. My task list is testament to that :) I made a bit of progress on everything, but wasn't able to focus on any particular task very well. I feel quite energized though now that I'm in NYC, so I am to finish all of last sprint's stuff, and maybe a thing or two more.
My focus is still: v03x/v04x multireq stability, metrics, pages deployment, and cleaning up the mess which is the infrastructure repo.
We still seem to have subtle issues with v03x/v04x and multireq, which I haven't quite tracked down yet. One of them is timeouts, for which we have UptimeBuddy and Pingdom alerts in place now, as well as nginx-level metrics which are about to be ready. The other is performance/latency. I've taken the saturn host out of ipfs.io DNS for now, it's in DigitalOcean's Singapore datacenter which doesn't have the best connectivity it seems.
ssh blog@pages.i.ipfs.io publish <hash>
This past week I continued to work on web testing the data-importing and merkle-dag modules. This kicked off conversation about new ways to handle our tests so that in the future things will be more consistent. Having this taken care of is allowing me to make much more progress now on jsipfs core.
I also began working on an export function for data-importing on a branch that will unMarshal our hashes and begin to pipe together streams of dag linked data for our files get and files cat commands.
Worked a bit with the webui but still need to study that type of react structure more to feel useful.
Lots of reading and a few PRs this week some libp2p modules -- mostly usability improvements. Big accomplishment of the week is that the majority of the ipfs initialization logic for js-ipfs is now written.
Several of us (haad, jbenet, whyrusleeping, nginnever) discussed approaches to pubsub in more detail, and I did some further background reading on previous discussions across ipfs/* repos.
Last weekend I wrote a prototype wiki powered by IPFS. A few pieces are written so far, but the overall goal is to gain a better understanding of the functionality still missing in IPFS to make apps like these relatively simple.
I integrated orbit-db into Orbit and it's working nicely. Sending messages feels instantenous and responsive. With that, the "backend" code of Orbit is now a lot smaller and manageable. I was able to refactor the UI code of Orbit a little along the way but it still needs quite a bit of work. Orbit now has a nice new app icon for the desktop app and as a favicon in the browser. I refactored orbit-db a little by taking out the append-only log functionality into its own module (https://github.com/haadcode/ipfs-log) so that it can be used more easily as a building block in other apps, or eg. as a transport data structure for CRDTs.
Spent most of my effort on getting 0.4.0 ready to ship. This involved lots of testing work, and also a lot of organizational stuff. I also did a large amount of performance analysis and have good ideas for improving perf overall moving forward. My list of weekly accomplishments feels short, many of these are rather large items.
Sprint March 7th -- 20th
Sprint Goals
Sprint Discussions
Schedule
Please take notes in a separate pad, if you can, and link it here.
Please add the Agenda to the Pad before the endeavour sprint starts.
Sprint Deliverables