Closed RichardLitt closed 8 years ago
js-ipfs
js-ipfs-api
libp2p
npm on ipfs
station
ipscend
js-ipfsd-ctl
specs
IPFS pinning bot
nodes https://github.com/ipfs/notes/issues/113dig +short CNAME _dnslink.blog.ipfs.io
dns
command docs ipfs/go-ipfs#24382.0.0
gx
to AUR - https://aur.archlinux.org/packages/gx/gx-go
to AUR - https://aur.archlinux.org/packages/gx-go/go-ipfs-git
- blocked by https://github.com/ipfs/go-ipfs/pull/2415ipget
fs-repo-migrations
- what should be the name?IRC mid-fortnight hangout today. Will post updates in here.
Endeavour | Lead | Time (PDT - UTC/Z - CET) | Pad |
---|---|---|---|
sync | @RichardLitt | 9:00pDT 17:00Z 18:00CET | IRC: #ipfs on Freenode |
Summary: This sprint on js-ipfs was a lot about enablement and getting the next big feature on the roadmap done, that is swarm
. I've focused on creating the foundation on js-ipfs for it to be easy to add extra features implemented, that is in: core, http-api or cli, by doing it myself for for a group of features, add comprehensive tests for each part and explain what I've done in the Captain.log + listing what needs to get done on issues, tagging them with difficulty and the 'help wanted' label, in case they are available to be done without anything blocking, this lead to several new contributions, thank you everyone :). On the swarm level, I've added it to js-ipfs, but started hitting some problems when it comes to interop with go-ipfs go-libp2p, to go after this issues, I entered the Go land, and went on an adventure to simplify js-libp2p-swarm, to reduce the amount of magic it was doing by default, and expose more operations, so it is easier to debug (by having more control), see the libp2p segment for more updates on that.
Tasks:
/api/v0/id
, including tests with js-ipfs-api/api/v0/version
, including tests with js-ipfs-api/api/vo/bootstrap
endpoints, including tests with js-ipfs-apijsipfs id
to use the daemon if it is onjsipfs daemon
to start and stop the daemon, graciously/api/v0/config
https://github.com/ipfs/js-ipfs/pull/72/api/v0/config/show
https://github.com/ipfs/js-ipfs/pull/74jsipfs commands
https://github.com/ipfs/js-ipfs/pull/78jsipfs config edit
https://github.com/ipfs/js-ipfs/pull/77jsipfs swarm
bufferImporter
https://github.com/ipfs/js-ipfs-data-importing/pull/6Summary: Fixed ls and refs features on the 0.4.0 branch. CR'ed and merged the contributions by @xicombd .
Summary: I've finished and released the webrtc-explorer 2.0.0 alpha, woot! :) On js-libp2p-ipfs, I started refactoring a lot of code, cleaning API, leveraging spdy-transport 2.0.0 to make libp2p-spdy less hacky. libp2p-utp was updated to use utp-native and libp2p-websockets was created to enable browser IPFS nodes. There is really ton of refresh and more code coverage.
Summary: Standard http-api-spec reviews for @RichardLitt.
Summary: On the side, after talking with @whyrusleeping, I decided to invest some time learning Go, trying to get as much as I could in the less amount of time possible (I can give some tips if someone wants to take the same path), the reason behind it is that it will improve a lot our iteration speed if both me and @whyrusleeping are comfortable with go-ipfs and js-ipfs code, specially when getting interop at the network level, which was the topic that sparked this conversation. I managed to do a contribution, ipfs repo stat
, unblocking @dignifiedquire https://github.com/ipfs/js-ipfsd-ctl/issues/18.
ipfs repo stat
https://github.com/ipfs/go-ipfs/pull/2430, which unblocks @dignifiedquire on https://github.com/ipfs/js-ipfsd-ctl/issues/18IPFS pinning bot
notes https://github.com/ipfs/notes/issues/113These past two weeks have been productive. I helped us switch up the sprint, so that we have a Monday off and that we run on a fortnightly basis. This involved a lot of talking to people. I reviewed all of the open PRs on http-api-spec, and merged a few of them - we're getting there, although there is more work to do (mostly involving me talking to @whyrusleeping). This coincided with a lot of go-ipfs PRs. We published last month's weekly, which took way more time than it ought to have, and I'm hoping that never happens again. I also udpated a few bugs and added a dependency, wihch gets PR creators, to name-your-contributors
, the module I use for getting a list of community contributors for the IPFS Weekly. I gave a talk about this module at BostonJS, and got to talk about IPFS there, too.
name-your-contributors
gx
to AUR - https://aur.archlinux.org/packages/gx/gx-go
to AUR - https://aur.archlinux.org/packages/gx-go/go-ipfs-git
- I can't contact the maintaineripget
fs-repo-migrations
- what should be the name? fs-repo-migrations
is too generalI wasn't super productive when it comes to IPFS (Uni started, Vulkan got released) but I was able to get something done. gx
, gx-go
and ipget
are now available on AUR which is really nice. I worked on blag about CRDT on IPFS which would sum up my thoughts, ideas, problems and solutions. It will be something others could reference while implementing their owns. I am blocked really hard on https://github.com/ipfs/go-ipfs/issues/2405, I can flush the datastore but it will probably repeat. Also general question: how to name packaged fs-repo-migrations
? Ping me on IRC with possible names.
Success is stumbling from failure to failure with no loss of enthusiasm. -- Winston S. Churchill
Two weeks have gone by, and I actually got everything done I set out to do
in the last sprint. karma-peer
now has the ability to dynamically launch browsers,
which will help @diasdavid, and hopefully more people, to write better tests for
libp2p in the browser.
The "Big Bad Tests" for go-ipfs
are on on their way with
randor
, which now is able to rerun tests predictably based on stored data, so it's
easy to find and fix bugs. @whyrusleeping is already working on the first bug that
randor
detected.
A big highlight for me personally was the first show of "dignified hacks" last Monday, where I
live streamed myself coding on the big webui refactoring. There were some technical
issues but I hope to do another one this week.
The overall progress on the webui is that I started on the files browser (based on new files
api in 0.4) which already lists files and is able to create directories. In addition all
the geolocation data now uses the fixed ipfs-geoip.
And last but not least, I familiarized myself with the codebase of the website, fixing some
basic performance issues (image compression, dead code) and started thinking of what the
next iteration might look like.
2.0.0
index.js
files into multiple parts (reducers and actions)object patch
in js-ipfs-api https://github.com/ipfs/js-ipfs-api/pull/220The past two weeks I have been studying more than I have been producing but I am getting much more comfortable with tests, the difference between using IPFS in the browser and node env, standards and practices, and so on. I wasn't able to spend as much time as I would like working on and studying our react webui project but I did tune into dignified hacks and that was helpful for a quick view of our components and data flow in the webui.
I spent some time researching a few commands in go-ipfs (cat and object get). I wrote some notes or a step-by-step analysis of what happens during those commands or what I can understand as to what's happening after seeing noffle do this with init. I spent some time writing web tests for data-importing module with dig and I started writing some export feature code to unwrap our hashes and retrieve files. Also created a distribution file for peer-id that will require node/forge rebuild to be able to work with browserify.
I've been spending time reflecting on my own goals individually and how they connect to my work on IPFS. tl;dr I'm going to be focusing more on js-ipfs and on building p2p primitives to support apps on IPFS. My week reflects this:
I did a lot of reading on p2p subjects (bittorrent, david dias' webrtc work, gossip protocols), and produced several modules: 3 to support ipfs-pad (p2p text editor), and 2 to support p2p pubsub (potentially for haad's orbit-db). Also began spec'cing out the 'ipfs init' process for js-ipfs.
These past couple weeks have been spent harding our testing, and fixing issues that have popped up while doing so. I also in this last week started setting up teamcity to be used as our own CI so we don't have to wait hours for travis to decide it wants to run our tests teamcity also gives us awesome metrics on our tests and nice statistics on failures and failure rates
Other:
I just came back from a nice and productive week in Paris. I got to spend lots of time with @cjdelisle and @ansuz at @xwiki-labs, we discussed the state and future of cjdns/fc00, layed out ideas for routing improvements, and drafted spec documents for the switch and cryptoauth layers. I'll post them to the github.com/fc00/specs repo shortly, and we'll continue working on them for the rest of March. I want to start working on Go implementations of the switch and cryptoauth in April. The switch and routing layers of fc00 might be the foundation of a smarter swarm for IPFS/libp2p, so this is all very exciting.
IPFS-wise, the sprint was dominated by hunting down subtle issues. The v04x/v03x multiplexer called multireq still doesn't seem to be 100 % good. I fixed a couple bugs with tremendous help from @whyrusleeping. I've also been debugging issues with fetching big DAGs (e.g. GeoIP). The metrics dashboard at metrics.i.ipfs.io has gotten a facelift too, and will get more detailed metrics on HTTP requests and responses.
dig +short CNAME _dnslink.blog.ipfs.io
dns
command docs ipfs/go-ipfs#2438
Sprint February 22nd
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