Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Weekly #7 #28

Merged
merged 11 commits into from Mar 18, 2016
58 changes: 58 additions & 0 deletions published/007-2016-March-13.md
@@ -0,0 +1,58 @@
# IPFS Weekly #7

[IPFS](//ipfs.io/) is a new hypermedia distribution protocol, addressed by content and identities, aiming to make the web faster, safer, and more open. In these posts, we highlight some of the development that has happened in the past week. For anyone looking to get involved, follow the embedded hyperlinks, search the wealth of information on [GitHub](//github.com/ipfs) or join us on [IRC](//webchat.freenode.net/?channels=ipfs) (#ipfs on the Freenode network).

If you would like to get this update as an email, sign up for our [weekly newsletter](//tinyletter.com/ipfsweekly)!

Here are some of the highlights for the [second week of March](//github.com/ipfs/pm/issues/97):

## Updates

### [__Repo__](//github.com/)

### Orbit

[Orbit](https://github.com/haadcode/orbit) is back in active development and going through a major code base overhaul. It now uses orbit-db as it's database layer.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe a sentence about what orbit is


[orbit-db](https://github.com/haadcode/orbit-db) is a KV-store and Event Log on top of IPFS which allows developers to use IPFS as a database. Last week orbit-db got big performance and stability improvements and is now using CRDTs for eventual consistency.

### [js-multiaddr](https://github.com/jbenet/js-multiaddr)

_@diasdavid:_ I don't know what these mean. Why are these changes important? Can you explain them in English a bit more? Also, these weren't mentioned in the sprint hangout as things done last week - why not?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

> multiaddr JS impl was upgraded, now it matches go-ipfs features which means protocols whose code's required a varint https://github.com/jbenet/js-multiaddr

What this means is that js-multiaddr now supports protocols that need to be encoded with varints. A varint is a integer that uses only the number of bytes it needs to be described by using a continuation bit (notes: http://web.stanford.edu/class/cs276/Jeff-Dean-compression-slides.pdf). Before this addition, we were not able to declare http, websockets or even ipfs multiaddrs because these protocol have a code that doesn't fit in a byte (max: 2^8 = 256). You can check the encoding table at https://github.com/jbenet/js-multiaddr/blob/master/src/protocols.csv.

Hope this helps, ping me if there are still questions :)

note: github doesn't send notifications by mentions on files, you have to explicitly mention me in a issue or PR, like @jbenet did.


The [js-multiaddr](https://github.com/jbenet/js-multiaddr) implementation was upgraded, now that it now matches go-ipfs features. This interoperability which means protocols whose code's required a varint

mafmt now does uTP and WebSockets validation as well

new libp2p-swarm released, check it out :)


### Go-IPFS

A nasty bug in our networking code was fixed this week. An issue in yamux (our primary stream multiplexer) would cause code to hang when opening a new stream if there were too many in flight stream opens. As a result of this, large file transfers (ipfs refs -r, ipfs get, and so on) would hang.

IPFS 0.4.0 is now very close to shipping: we ran @dignifiedquire's randor tool quite extensively and are more confident in the repo operations that have changed since 0.3.11. The release now has a somewhat short checklist of things that are blocking the official release.

As a small side project, @whyrusleeping started benchmarking each of our possible datastore implementations with ds-bench. The results will help us improve the performance of our storage moving forward. On that same topic, @whyrusleeping started an experiment in new and exciting datastores and wrote a datastore implementation that can be backed by a sql database. He then spun up a postgresql database (from docker) and ran the benchmarks against it, without any sort of tuning the initial performance metrics showed that it was around three time as fast as our current on-disk datastore. (Note: the metrics are simply testing the performance of writing random 256k binary blobs to each datastore).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait, postegresql was faster than our on-disk format? durably to disk? wow. @whyrusleeping

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jbenet yeap, durably to disk. I had some links in the think I sent richard i thought.... here: https://gist.github.com/whyrusleeping/55e2759dfa4b5b60a2cf

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

benchmark code is here: https://github.com/whyrusleeping/ds-bench

After 0.4.0 i'm going to work more on that perf


## Community

@jbenet met with ConsenSys and Ethereum people at the MIT Media Lab. TODO Fill out.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe:

@jbenet was in Boston this week for consensus research discussions. While in Boston, @jbenet visited the Digital Currency Initiative at the MIT Media Lab, where he spoke about IPFS and its implications for blockchains, for digital publishing, and for access to information.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linkify all the things if possible (ConsenSys, Ethereum, etc).


[c-base/ipfs-ringpin](https://github.com/c-base/ipfs-ringpin) is a set of tools for setting up an IPFS "file pinning ring" between multiple parties. Can be used for example for hackerspaces to provide redundancy by pinning each other's files.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


[the-gred/jsjob-ethereum](https://github.com/the-grid/jsjob-ethereum) is an experiment at creating a computational market on top of Ethereum. Computational jobs are run in a JavaScript sandbox, and both input data, the algorithm to run, and the produced results are shared over IPFS.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very nice! 👍


## Contributors

Across the entire IPFS GitHub organization, the following people have committed code, created issues, or made a comment on GitHub between March 7th (noon, GMT) and March 13th. We're autogenerating this list using [this tool](//github.com/ipfs/weekly/blob/master/tools/get_commits.py) and [this other tool](//github.com/richardlitt/name-your-contributors), so please let us know if your name isn't here.

- __Contributors__

This newsletter is also a community effort. If you have cool things to share for the next weekly, drop a comment about it in the [weekly sprint issue](//github.com/ipfs/pm/issues/97)! The more people mention items they want to see in the weekly there, the easier it is to make this and send it out.

Thanks, and see you next week!

- Richard Littauer and Andrew Chin

_Submit feedback about this issue [here](//github.com/ipfs/weekly/issues/27), or send us [feedback about the IPFS Weekly in general](//github.com/ipfs/weekly/issues/7)._