jueves, 7 de noviembre de 2013

i6station: Contributing to an OpenSource specific project

This post is about a software project I am contributing to during my free time together with other software developers. It aims to exploit IPv6 specific advantages in real life scenarios.
If you are a developer willing to contribute or just learn v6-coding for fun, do not hesitate to join the i6hub (placeholder of i6station and other projects).


The main idea of i6station is to lower the barriers for developers [ including some of us ;-) ] to quickly build Apps/Services oriented to common life scenarios such as: a home, a conference or event, a friend's meeting, a car, etc.




The bet today is building services solely based on smartphones+cloud resources.
While these 2 sources meant thousands of ideas to become true, there are potential new ones not fitting or performing well into that simple approach:

  1. Services exploiting local resources we cannot (or don't want to) connect, upload nor share in the Cloud (public Internet). This means normally Communications & resources we want to keep local for efficiency or security purposes.
  2. New local network settings we would like to deploy (a multicast channel, a dedicated Wifi, a v6 tunnel to enable incoming traffic to local services, IP-mobility, etc).
  3. Address places where there is no (good) Internet connectivity or we lack the connectivity type we wish. 

i6station aims to complete the fast growing world of Apps with open (and cheap) hardware that is physically installed in the same location Apps/services are provided. Of course one may argue that someone may use a smartphone for that, but certainly you just don't want to empty your phone battery, share it or risk its integrity.

The first and main reason I decided to join this initiative is the idea of building a v6-specific platform meaning that IPv6 advantages are given a strong priority compared to v4 backwards compatibility.

The second reason is the selected open hardware platform is the well-known Raspberry Pi that I really love to work with, previously at home for my DIY projects, and nowadays also at work as a result of those own personal hobbies.

The 3rd reason is the chose model is a platform model. In the beginning the idea was more to build up some services for those environments but after some brainstormings the new direction is to build a "platformized" product.
Then It's is not only about building standalone Apps but, at the same time, not attempting a super-mega-platform for others usage. Just develop for ourselves to be able to develop more ideas and faster in the future. If more people join, great but that is not the unique or central goal.

The final -and key- reason is the platform will be 100% opensource and Apps built on top may have any license they wish, just mention they are built ontop. Let's make things usable, no limits, that's it.

From a developer's point of view, the PI+i6station will expose lots of local resources with the successful and easy-to-learn REST APIs model, which will be served mainly over CoAP/UDP/IPv6, or sometimes over HTTP/TCP/IPv6. IPv4 might be also used, but features are never guaranteed in such a legacy environment.

Finally, some ideas we believe v6-specific model helps to:

  • We can deploy many local IP public or private networks with different prefixes for different devices or services/Apps. We give the freedom to the App for creating those subnets, let's enable developers to create network domains with no network commands knowledge at all.
    • As a reference we will check what is being worked out by IETF Homenet WG.
  • We can always choose to use public addressing or ULA addresses.
    • ULA is similar to v4 private but we avoid two problems:
      • 1) limited number of nodes in the network
      • 2) potential overlapping when merging networks.
  • We ensure P2P services (including those based in WebRTC) will always work and they will be offered in the most efficient way.
    • For home environments we will check latest proposed access configurations (draft-v6ops-vyncke-balanced-ipv6-security-01.txt, Jul 2013)
  • We integrate CoAP/6LowPAN m2m networks without introducing proxies or translators.
  • We introduce new possibilities with IPv6 staless auto configuration.
  • We introduce new possibilities with IPv6 renumbering.
  • We introduce new possibilities with IPv6 mobility.
  • We introduce new possibilities with IPv6 security Headers.
  • We introduce new possibilities with IPv6 multicast.
  • We are in the best position to explore and incorporate new possibilities that entities (SDOs such as IETF, research centers, universities or companies) will develop only for IPv6 once it gets massively deployed and thus used as main Internet transport.
  • If we focus on IPv6 for this new product, we remove the chains of IPv4 and legacy devices. For them, we can provide proxies or specific module-interfaces.


If you follow or join this project, just Enjoy as much as I'm doing!  :-)