Ethereum Everywhere

“The Ethereum Foundation’s mission is to promote and support research, development and education to bring decentralized protocols and tools to the world that empower developers to produce next generation decentralized applications (dapps), and together build a more globally accessible, more free and more trustworthy Internet.”
From https://ethereum.org/foundation

Ethereum_logo_bw

TL;DR – What are you proposing?

I am proposing to the contributors that the C++ Ethereum client runtime (cpp-ethereum) be re-licensed from the copyleft GPLv3 license to the more permissive Apache 2.0 license, to enable Ethereum software to be used as broadly as possible (a long-standing plan).   This proposal only addresses the C++ client runtime and does not include Solidity or Mix (the C++ tools).

There is another blog post detailing the likely operational steps in that process.   This document seeks to explain why I am making that proposal.

 

What is Ethereum?

When we think about Ethereum, we usually think about public chain, and more specifically we think about the public chain (the “mainnet”).    That is quite natural within the frame of reference of Ethereum purely as a cryptocurrency, but it is a limited view of the possibilities which this new decentralized computing platform offers.

Ethereum is much more than “a better cryptocurrency”.   Ether is the fuel for the engine, but it is the Ethereum engine itself which opens up these new possibilities.  The fuel is just a means to an end.

We have the opportunity to build a set of technologies in the next few years which could have similar societal impacts as the Internet, the World Wide Web and open source languages, relational databases, etc.  We are building a decentralized computing platform which every individual on Earth should benefit from.

These technologies need to reach into every nook and cranny of our computing fabric: big and small, public and private, independent and corporate; smartwatches to mainframes.

This is a large and ambitious undertaking that is addictive and all-consuming for many of us.  Diversity of viewpoints, a broad spectrum of use-cases to mature the base technology, and an open and inclusive attitude and environment of collaboration will help us achieve our shared goals.

 

Why do private and consortium chains matter?

private

“It is important to note that while the original Ethereum blockchain is a public blockchain, the Ethereum state transition rules (i.e. the part of the protocol that deals with processing transactions, executing contract code, etc.) can be separated from the Ethereum public blockchain consensus algorithm (i.e. proof of work), and it is entirely possible to create private (run by one node controlled by one company) or consortium (run by a pre- specified set of nodes) blockchains that run the Ethereum code.”

“Ethereum technology itself is thus arguably agnostic between whether it’s applied in a public, consortium or private model, and it is our goal to maximally aim for interoperability between various instantiations of Ethereum – i.e. one should be able to take contracts and applications that are written for public chain Ethereum and port them to private chain Ethereum and vice versa.”

Vitalik Buterin, Ethereum Platform Review paper

vitalik-buterin

Many individuals and companies, large and small, see that opportunity the Ethereum platform has to offer, and are equally supportive of and inspired by the technical vision, even if their business goals vary dramatically. Public chains and private or consortium chains will likely end up having a lot more in common than meets the eye.

We have a working example of a permissioned Ethereum chain in the form of HydraChain, which was demonstrated at Ethereum DEVCON1 last November (2015):

Consortium chains can provide certain benefits beyond the general purpose public chain because they are special-purpose, such as:

  • They can choose to have 1 second block-times.
  • They might not need to do any node-discovery because the nodes are fixed.
  • They can have incredible throughput (e.g. JP Morgan’s Juno boasts 2,000 txns/sec).
  • They can modify consensus rules for performance (i.e. using PBFT).
  • They can be a testbed for experimentation and innovation, because there will often be much smaller groups of stakeholders.

The interest in Ethereum can be seen in the ever-growing volume of news stories about blockchain and decentralized ledger technologies in general, but in particular, the interest in the Ethereum platform emanating from  major technology companies has escalated rapidly and noticeably since the last Ethereum developer conference, DEVCON1, which was held in London in November 2015.

The Ethereum platform is unique in the crypto space in  that a significant number of  large publicly owned corporations are either already using it, have experimented with it, or are exploring how it may be used in or integrated with their current systems.

The author believes providing a permissive licensing will facilitate moving towards the dream of mass adoption of the Ethereum platform.

Some articles from Vitalik Buterin on private and consortium blockchains:

 

Why permissive licensing over copyleft?

Software licensing is obviously somewhat of a religious matter, but there are practical reasons to favor permissive licenses for low-level components like Ethereum.

Beyond incompatibility between the GPL and corporate business models there are practical ways in which the GPL reduces Ethereum’s reach.   The author was witness to these restrictions in his “past life” as a video games developer.

Worst of all are the games consoles.   Code for PlayStation and XBOX usually has to be closed-source, because developers must sign NDAs (non-disclosure agreements) to be allowed access to the SDKs and they cannot redistribute those SDKs or any information about the platform APIs.   That is commonly interpreted to include any code using those APIs.    Some embedded platforms are similarly locked down.

While we could argue until the cows come home about the ethics of even using such systems, they are a reality, and making Ethereum available on them has value.

The Apple stores – App Store for iOS and Mac Store for macOS – are incompatible with the GPL, and the same is likely true of the Windows Store.    The Terms of Service are applying additional constraints which are incompatible with the GPL.

The only “workaround” which I have seen for this incompatibility is for there to be a single copyright owner for the software, such that they can dual license it as GPL and commercial, and for the commercial version of the software to be used in the App Store.   That is the approach which Mono used for nearly a decade, which means that developers wanting to use C# on iOS had to pay for a commercial license for Mono for all that time.

Open Whisper Systems recently added an exception to the GPLv3 license for their libsignal-protocol-c library, which permits people to incorporate that library into applications distributed through the App Store under Mozilla Public License 2.0, providing that the licensees are otherwise in compliance with the GPL.   That exception looks similar to dual-licensing, but seemingly only applies for iOS.

That dual GPL/commercial licensing approach is a sensible approach for open-source friendly companies to take, which balances their desire to make the code available for public good while also generating revenue to keep them alive from those end-users who want or need to use the code in a context which is not GPL-compatible.

Dual licensing is the approach which Mono took, which Qt have recently switched to and which Ethcore are following with Parity.   That dual licensing approach doesn’t work well for a Foundation, though, which is explicitly non-profit.

The choice of GPL for a Foundation just reduces the contexts in which the code can be used, because offering a commercial license is not really possible.    Commercial licensing would be incompatible with the non-profit mission of the Ethereum Foundation.

More importantly, though, the Foundation does not own the code to be able to offer the code under a commercial license, because the Foundation has intentionally not required copyright assignment from the contributors.

What licenses does the Ethereum Foundation use?

At the moment we have a bit of a mixed bag.    This proposal is only considering the C++ codebase, but it might make sense to look at licensing for the codebases as a whole.

  • go-ethereum – GPLv3 and LGPLv3
  • cpp-ethereum – GPLv3
  • pyethereum/pyethapp – MIT
  • ethereumjs-lib – MPL 2.0 and MIT
  • remix – MIT
  • web3.js – LGPLv3

 

Why Apache 2.0?

There are numerous permissive software licenses which are OSI approved, with a much shorter list of popular ones (really boiling down to MIT, BSD and Apache).   Why are we favoring Apache 2.0 for the C++ codebase, where we had previously favored MIT?

 

Floss-license-slide-image

See License compatibility from Wikipedia.

It essentially boils down to compatibility with GPLv3 in combination with protection from future software patent claims, which is obviously hugely important to Ethereum.

Apache 2.0 is the Free Software Foundation’s own recommendation for permissive licences for that very reason:

“This is a free software license, compatible with version 3 of the GNU GPL.”

“Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version. These include certain patent termination and indemnification provisions. The patent termination provision is a good thing, which is why we recommend the Apache 2.0 license for substantial programs over other lax permissive licenses.”

Various Licenses and Comments about them, Free Software Foundation

 

About the Ethereum C++ client

The Ethereum C++ project has spent the last few months rebooting under the leadership of Christian Reitwießner, who is probably best known as the lead developer on Solidity, but also leads work on Mix, Remix and on the C++ client.

christian

A number of the original C++ development team departed last year, with Christian, Yann Levreau, Liana Husikyan and Dimitry Khoklov staying on.  Bob Summerwill and Greg Colvin were added to the team in February, and Paweł Bylica rejoined the Foundation in March.

Christian has blogged about our progress in FebruaryMay and July.

We are on the verge of finally decoupling Solidity, (Re)Mix and Eth, so that we have three entirely independent projects – one runtime, two tooling.

That architectural decoupling is a dual-edged sword, because that tight coupling did a lot to keep the eth client alive.    We needed Solidity and Mix, so development on eth had to continue too.   All of the projects were interrelated.

Following this refactoring, it is getting much harder to justify any significant level of spending from the Foundation for ongoing eth development.   We already have geth.   Parity is becoming more popular.   There are 8 clients in total.    In the early days, having the Foundation funding multiple clients was crucial for maturing the protocol.   With 4 clients developed outside of the Foundation, it is harder to argue for this spending anymore.

So what unique value does a C++ client bring to the table to justify ongoing spending, whether from the Foundation or from other community actors?

The author’s own interest in the C++ client was on the basis of resource-constrained devices and portability, potential for the best raw performance, and a possibility that such a profile might also be a good fit for data centers.    Those are interesting stories, but not entirely compelling.   Parity has a very similar “profile”.

With this huge growth in interest in Ethereum for private and consortium chain scenarios though, we have a fantastic new potential “niche” for the C++ client, which is Enterprise applications.

That wouldn’t mean that the C++ client wouldn’t support public chain scenarios.    It would mean that we put an additional focus on modularity in the C++ client, so that it can start to span all of these categories in a way which has not been a primary focus to this point.   And it would mean that additional resources could come to bear on this work, outside of purely being funded by the Ethereum Foundation.

 

Why is the Ethereum C++ client a good fit for Enterprise?

Development efforts within large enterprises usually quite conservative in their development language choices.   They need systems to run for many years, and favor long-term-service platforms and well known and mature development tools.    That often ends up meaning Java or C++ on Linux.

Newer languages like Go and Rust are less appealing in many corporate environments, because their developers have little to no experience with those languages, where they have Java and C++ experience to spare.

In addition, the C++ codebase benefited from a fairly significant refactoring last year which started to decouple the consensus mechanism.    This was prototyped as a Proof of Authority (POA) alternative to Proof of Work (POW) in the (now retired) Fluidity client.

There has been huge interest in Ethereum integration within the Hyperledger consortium following Vitalik’s presentation to their Technical Steering Committee in April 2016.   Hyperledger is a project under the Linux Foundation bringing together many member companies collaborating to build common blockchain and ledger solutions.

Outside of Hyperledger there are other companies who have already made their technology decision and chosen Ethereum as their base technology.   Rubix by Deloitte, for example, have been building on the C++ codebase for several months and there are a number of other companies also favoring the C++ codebase.

With permissive licensing, work in any of these “C++ buckets” could proceed in parallel with existing Ethereum Foundation-centered work.   We can collaborate where we have commonality and diverge where we need to.

Permissive licensing enables permissionless innovation.

 

 

Corporations don’t love you or hate you

Screen Shot 2016-06-26 at 10.51.00 PM

Technology companies are now the largest corporations in the world by market cap.

Apple, Alphabet/Google, Microsoft and Amazon are literally #1, #2, #3 and #4 for the first quarter of 2016.   Ahead of oil companies.   Ahead of banks.   Ahead of every other industry.

Most software developers are working for large corporations.   Those corporations need tools to build their businesses.  Open source tools resourced by large corporations are now the norm.   There is a world of difference between the current day and the hostile landscape which Richard Stallman was facing in the mid-80s.

  • Apple are obviously a money-making machine, but they also finance LLVM/Clang.
  • Google do not have your best interests at heart, but that doesn’t mean that Go is evil.
  • Facebook, mixed in with their people farming, have brought us React.
  • Microsoft are night-and-day different from the Ballmer horror days.

Conclusion

Corporations will build blockchain technology irrespective of what we do.   It is already happening.

Just as both Intranets and the Internet have a role to play, so do public and private/consortium chains.    Maximalist thinking is not particularly helpful here.

The real world never works in black-and-white, and demonizing people with similar but not identical goals is self-defeating.

The author would rather have those corporations building Ethereum-based blockchain technology than have them building something completely incompatible purely because of the barrier of copyleft licensing which we have long planned to remove anyway.

Having  these corporations within a shared “big tent” rather than in rival camps gives us maximal synergy, and taps the vast resources of those corporations to contribute to our goals, rather than letting them build rival ecosystems with zero synergy.

Proceed with caution, but please let’s proceed!

Proceed-with-Caution-State-Farm

 

 

Appendix A – History of cpp-ethereum licensing

Appendix B – A selection of Enterprise blockchain articles and events

Cats and dogs can be friends!

A couple of weeks back, I had the pleasure of making a number of new friends and acquaintances while I was in Austin, Texas for the OSCON 2016 Open Source Conference.

I will do another blog post about OSCON more generally, but here I focus on the open source blockchain Meetup.

NB: If anybody has further photos or notes to add, please let me know, and I will update this blog post.

CapitalFactoryLogoBlack

Capital Factory were good enough to donate meeting space for about 30-40 attendees for the Open Source Blockchain Meetup which I organized to bring together blockchainers of all stripes, both Austin-local and out-of-towners who were at OSCON.    We also had several people who drove to Austin specifically for the event, which was very humbling.

I certainly enjoyed the evening immensely, and I hope that everybody else did too!

The idea was simply to bring together people from across all of the many open source blockchain and decentralized ledger technology projects, to get some common understanding of what we are all working on, and to make some personal connections and friendships.

I think that these technologies have the potential to have as large an impact as the Internet, or Linux, and that we will all have a lot more in the way of common goals than we will have differences.    It is a big pool and there is more than enough room for us all to swim in it 🙂

We started with Brian Deery of Factom, who talked briefly about Bitcoin, though most people present were already familiar with the granddaddy of blockchain technologies 🙂

image20160518_174344359

image20160518_171129327

I then gave a quick introduction to Ethereum.   Slides below.   No photo of my ugly mug available, I am afraid!

I was delighted that Christopher Ferris, who is the Chair of the Hyperledger Steering Committee was able to join us to talk about “What is Hyperledger?”     That was a very last-minute.  He was in town for OSCON, but it looked like he wouldn’t be able to make the meeting, but his travel plans changed last minute, so he was able to join us.

image20160518_172203051

We also had Renat Khasanshyn whose company Altoros, has been doing much of the early presentation material for Hyperledger, along with building sample applications.
image20160518_174248614

… and Bishop Brock, of IBM Research, who is focussed on blockchain on Mainframes.   Yes, blockchain on mainframes.   I bet they get some decent transaction throughput!   There were some other local IBM-ers too.

image20160518_180950855

Brian Deery spoke again on the topic of Factom, and what they are building there.

Pete Harris, of Lighthouse Partners spoke about a new Austin Blockchain for Business Meetup which he is just starting up.    Pete is a great networker and organizer.   I look forward to seeing all of the blockchain businesses which will come out of Austin in the coming years.

And then we mingled until 9pm, when our time at Capital Factory was up, but many more of us continued to talk for a few more hours around the fine drinking establishments of Austin.

image20160518_175942619

Scott Travis (below) contacted me after the Meetup and said … “That was my first meetup to attend, brought me out of my coding cave to meet some fellow Ethereum enthusiasts.”

image20160518_170824940

I think there were other first-timers there too.    I think that Meetups are fantastic.   Talking to other people with similar interests is so helpful.    We’re all human, and face-to-face interactions are unbeatable.

Hector Torres was looking for collaborators for healthcare use-cases on the blockchain, and invited people to contact him at hector@ulahealth.me.

hector

I also got to meet Niran Babalola of ConsenSys and Dustin Byington, of Satoshi Talent and SmartContract Exchange Inc, formerly at Tendermint.    And many others whose names I have sadly forgotten.   That’s what the beers after the meeting did to me 🙂

Getting out from behind our keyboards is very important, and I’m glad that I got the opportunity to meet you all down in Austin.    Best wishes!

 

Thanks to Paul Snow, of the Austin Bitcoin Meetup, Niran Babalolo of the Austin Ethereum Meetup, Mark Morris of the Austin Blockchain Meetup for helping to gather attendees!

Windows 10 nuke-and-pave

So today was the day where I had enough of screwing around with trying to get Visual Studio 2015 installed on my Surface Pro 3.

I had been battling Team Explorer for Visual Studio 2015 -> Fatal Error for a week or so, like many suckers before me, and was fed up of trying hack-after-hack.

It was time to nuke-and-pave!

And I am very glad that I did.   I now have my Surface Pro 3 with the following fully-comprehensive setup for cpp-ethereum development:

  • Windows 10 Pro Insider Edition Build 14361.0 (with Bash-for-Windows)
  • Visual Studio Community 2013 Update 5
  • Visual Studio Community 2015 Update 2
  • Visual Studio Enterprise 15 Preview 2

All at the same time below!

windows10

And just for bonus points, my question of Best means for getting photos OFF Meizu MX4 Ubuntu Edition? now has a great answer.    That device (my main phone for the last few months) has a really flaky USB, which has been failing to show up on my MacBook Air OS X El Capitan almost 100% of the time.

It works a treat on Windows 10 though, I find, which means that I have no excuse for not starting to do some blog posts on OSCON, with photos.

Two great features in this latest Insider Preview too, both of which I plan to take advantage of.    So, good progress in pressing the reset button 🙂

LastPass extension for Microsoft Edge: We are excited to announce that LastPass, a popular free password management extension, is now available for download. Visit our extensions page at the Microsoft Edge Dev website to learn more and try it out for yourself! Be sure to check out the list of known issues for the LastPass extension here.

Introducing Hyper-V Container: You can now use Docker natively on Windows 10 with Hyper-V Containers, to build, ship and run containers utilizing the Windows Server 2016 Technical Preview 5  Nano Server container OS image. A new version of the Docker engine for Windows has also been made available that extends the support of containers while also improving the DockerFile syntax and getting started experience for users. For more details on how to get started with this check out the Windows container documentation or the Windows 10 Getting Started Guide.

 

Repton is alive!

I have just been followed on Twitter by Superior Interactive.   Oh my, my!

Screen Shot 2016-04-20 at 2.38.05 PM

Who are Superior Interactive?   They are the company formerly known as Superior Software, who filled my BBC Micro youth with the joy of such classics as Repton (with a level editor in later versions), Thrust, Bonecrusher and more!

Screen Shot 2016-04-20 at 2.38.14 PM

Wikipedia tells me that Superior was set up by Richard Hanson and John Dyson, who I now discover were graduates of the University of Leeds, just like me.

It is a delight to make your reacquaintance, Superior, even if, as in all likelihood, it was in a completely algorithmic and impersonal manner 🙂

And who can forget “It’s Time To Play Bonecruncher!”

Open source Blockchain Meetup in Austin, TX

UPDATE!  EVENT LINKS:  Austin Bitcoin Meetup, Austin Ethereum Meetup.

Greetings!   My name is Bob Summerwill and I work for the Ethereum Foundation, mainly on the Ethereum C++ client.

ASIDE – What is Ethereum?

bob

I have been scheming for the last few weeks to arrange a one-off Blockchain Meetup to coincide with OSCON 2016, in Austin, TX, on the evening of Wednesday 18th May.

ba-oscon16-520x292_0

I will be in town myself for OSCON, and I thought that individuals working on other blockchain and DLT projects might well be in the same position, and it would be rude to pass up the opportunity to get together and meet-and-greet!

Here is my OSCON Attendee Profile.   Please do connect!

I didn’t see any sessions at OSCON specifically related to blockchain or DLT.   If you spot anything, please do let me know.

So I contacted:

And I think we’re onto a winner.   Everybody is up for it!

highres_198764252member_166192632brachypelma_smithi_2009_g03aaeaaqaaaaaaaaczaaaajge0n2nmyje4lthmotqtngqxzc04mty1ltc2mzcwmtrhmjc2ng

The provisional plan is for Factom to host the session at their offices (thank you, Paul!) maybe around 7pm.

We could do 10-15 minute Introduction to X presentations on our respective technology stacks, so we all have some basic common understanding, and then we just mingle and chat the night away!    Let’s make some personal connections and better understand what everybody else is working on.   No doubt we have numerous common problems and opportunities for future collaboration.

Volunteers for presentations would be much appreciated.

I am very happy to do one for Ethereum myself!

Stay tuned for an official event posting on Meetup.com.   Hope to meet a bunch of new people next month 🙂

Please do spread this post far-and-wide.   It is a completely open invitation, so please do pass it along to anybody who you think might be interested.    I will update this article with a link to the actual Meetup event URL when we have that.

I will never work for Amazon

Today I have been contacted yet again by a recruiter from Amazon:

amazon_logo_500500-_v323939215_

This is despite my LinkedIn summary starting with the following text:

(Please don’t contact me about Amazon roles. Also ONLY opportunities in Vancouver or remote-friendly please)

This is despite me having already said NO! to Amazon recruiters on numerous occasions in the past few years and explicitly asking to be blacklisted.   They obviously don’t share any information between themselves.

This is all despite me publicly boycotting Amazon since 2014.

Amazon is a horrible, horrible, company.   Please, Amazon recruiters, never darken my door again.   Seriously.    Thank you.

For any recruiters seeking to understand what I have to offer and what my requirements are, I wrote this Bob Summerwill for Recruiters article.   I am not looking for new opportunities at the moment, but that’s what I’m looking for if I become available again in the future.

And everybody, please read the New York Times article from last year: Inside Amazon: Wrestling Big Ideas in a Bruising Workplace

100% Ethereum

So I’m delighted to report that as of April 2016, I will be contracting for the Ethereum Foundation full time!

I started work for the Foundation part-time just over a month ago, and it’s been the most enjoyable work which I have done for many, many years.    I’ve been working on Ethereum for fun since last year at doublethink.co, and now I can focus entirely on it.

My BlockGrantX-funded work on “Ethereum for resource-constrained devices” will keep ticking along on the side.  We made Homestead releases last week and I posted an update on our status.

 

ethereum-homestead-background-4

The run up to the Homestead Release was a huge rush.    I spent much of my time that week (and weekend) working on the Ethereum Documentation.   If you have not seen that, please do check it out, including the new home of the cpp-ethereum docs.

Thanks to everybody at the Foundation and in the Ethereum community who make this project a delight to work on.    Have a great weekend, everyone!

Microsoft ♥ Xamarin!

Today saw a very happy announcement in the technology world, in which I have a particular personal interest.

Nat Friedman, CEO of Xamarin, announced that Xamarin and Microsoft love each other and are engaged to be married.   They want to make babies together.   They will be very beautiful babies.    Baby monkeys.

1871-640x427I

Xamarin are a fantastic company, and their founders are gems.   I am just delighted for them.    I was lucky enough to attend their first conference – Evolve 2013, in Austin, TX, and to spend quality time with many of Xamarin Massive.   At that stage I was experimenting with Mono as a foundational technology for future EA Sports titles.

Mono is a fantastic enabling technology, which has spanned Linux Desktop to Windows to Mac to Consoles to Mobile.   It is the foundation of Unity3D, far and away the most successful game development technology in existence.    Mono and Xamarin’s success will have been a huge factor leading to the open-sourcing of .NET Core.

I spent several months in 2014 on MonoTizen and Mono for Sailfish, and the opportunity to work on Unity3D titles using Mono was one of the reasons why I left EA after 15 years.

Microsoft have had a sea-change in their culture in the last few years (see Scott Hanselman’s fantastic Microsoft Killed My Pappy for more on that).   Huge credit for that has to go to Microsoft insiders who have been pulling on the steering wheel from within, but we should also not forget individuals like those leading Xamarin, who have plotted a path for near 15 years, which has led to Microsoft coming to the conclusion that they wanted to travel in exactly the same direction too!

It is not clear exactly what this marriage will mean in the short term, but I am sure that we are going to love the outcomes.

About Hybris

croppedimage608342-hubris1

Want to run Linux on a mobile SoC?

Well good luck with that, because you probably can’t, due to the dominance of Android.

There just isn’t a market for X11 drivers, let alone Wayland drivers, so most manufacturers won’t even think about delivering SoCs which supports them.

Some options:

  1. Use Android.   Obey your new masters.    This is what most people do, if they even consider leaving “Apple world” in the first place.
  2. Use AOSP (Android Open Source Project) on stock hardware, like a Nexus device.   Except that AOSP is getting progressively crippled and abandoned, because Google’s real operating system base is actually Google Play Services.   Google really don’t have your best interests in mind with Android.   See Google’s iron grip on Android: Controlling open source by any means necessary.
  3. CyanogenMod.   Getting better.   You’ve got yourself a usable OS, which some people actually prefer to commercial Android distributions.   But you’re still in much the same place.
  4. Use Replicant, which is built from CyanogenMed, but with every single bit of proprietary stuff removed.  Better yet from a “freedom” perspective, but you are now really cutting off your own nose in regards to the hardware you can use.    Replicant only works on chronically old devices.   And it still doesn’t solve all the privacy/security issues.
  5. Opt out of Android entirely, and go for the only true mobile Linux which exists, Tizen, which is actually running on X11.  You can even buy real devices with it installed like the Samsung Z3.  But Tizen has its own problems, the most acute of which, for potential end-users, is the complete dearth of available software, combined with no ability to run Android applications as a stop-gap, which makes the platform practically unusable, IMHO.   Even Samsung struggle to get SoCs which support X11/Wayland.   And Tizen 3.0, along with its open governance, has still not arrived on commercial devices.
  6. None of the above?   There must be a better way?    Well ….

 

The primary incompatibility between Android (which uses the Linux kernel) and existing Linux distros is the C runtime.    For the Android user-land, Google chose to build bionic (primarily to avoid GPL licensing), rendering Android applications binary-incompatible with Linux, even if they are running on the same hardware.    Linux userland applications typical use the GNU C Library (glibc).

This was the problem-space facing Carsten Munk in 2012, so he tried something crazy, and it worked.   He built a compatibility layer for glibc sitting on top of bionic which allows both Android and Linux user-lands to co-exist on top of an Android kernel.

He later extended that model to GPU drivers, so you can run Wayland on top of Android drivers, which is a very neat trick.

Hybris is the “secret sauce” which lets Sailfish OS, Ubuntu PhonePlasma Mobile and AsteroidOS work on the mobile/wearable hardware which we actually have to work with right now.    You can read more about it on Wikipedia and check out the code on Github.

Hybris is the reason why the following fantastic devices coming to Mobile World Congress this year are possible:

This magic opens up the possibility of Linux user-land in a world of Android-dominance.

We can all hope-and-dream of a future of open hardware and 100% open source drivers and bootloaders for them.   In the meantime, Hybris lets those of us who cannot affect that situation continue to build freedom-respecting software in the real world.

Forever obsessing about things which are not under your control is not the path to happiness.   Let’s work on the pieces where we can make a difference today.

UPDATE:   Also check out the Open Devices project from Sony which is working on a mainline Linux kernel for xperia devices.

Dream job – working for Ethereum Foundation

I am delighted to share the news that I will be starting my dream job on Monday, as a part-time contractor for the Ethereum Foundation working on the Ethereum C++ client.

ethereum_040414

As anybody who knows me will be aware, I’ve been rather obsessed with Ethereum over the past few months, and have been putting a lot of time and effort into the C++ client via doublethink.co, first with Anthony Cros and then more recently on my own.   It has been a real blast.

Now I get the opportunity to continue that work from the inside.  This is a real honor for me.    The Ethereum community is a delight, and I am ecstatic to have the opportunity to work directly as part of the Ethereum development team.

I truly believe that Ethereum has the potential to impact our technical and social landscape to as significant degree as the Internet did in the 90s, and the opportunity to work with the inner group building that future is a once-in-a-lifetime golden ticket of geeky joy for me.

Woot, woot – Happy Hat!

1yrtlkt