background preloader

BlockChain

Facebook Twitter

Problématiques - Principes - Architecture

La blockchain expliquée aux développeurs web, partie 1: la théorie. La blockchain est à la mode - on n’entend parler que de ça. Et si le nom de blockchain ne vous dit rien, vous avez sûrement déjà entendu parler de Bitcoin. Dans ce cas, c’est simple : la blockchain est la technologie sous-jacente à Bitcoin. Les experts prétendent que la blockchain va probablement révolutionner notre société autant que l’Internet en son temps.

Mais qu’est-ce que c’est vraiment, et comment peut-on l’utiliser concrètement pour développer, aujourd’hui, des applications ? Ce billet est le premier d’une série de trois, tentant d’expliquer le phénomène blockchain aux développeurs web. Il est la traduction d’un billet en langue anglaise publié il y a quelques jours sur ce même blog. Et pour commencer, essayons de comprendre de quoi il s’agit vraiment. Qu’est-ce que la blockchain, premier essai. Même si l’histoire de la blockchain est indissociablement liée à celle de Bitcoin, on peut la définir sans faire référence à Bitcoin. L’ordre des faits Les blocs L’exploitation minière. The Blockchain Explained to Web Developers, Part 1: The Theory.

The blockchain is the new hot technology. If you haven’t heard about it, you probably know Bitcoin. Well, the blockchain is the underlying technology that powers Bitcoin. Experts say the blockchain will cause a revolution similar to what Internet provoked. But what is it really, and how can it be used to build apps today? This post is the first in a series of three, explaining the blockchain phenomenon to web developers. We’ll discuss the theory, show actual code, and share our learnings, based on a real world project. To begin, let’s try to understand what blockchains really are. What Is A Blockchain, Take One Although the blockchain was created to support Bitcoin, the blockchain concept can be defined regardless of the Bitcoin ecosystem.

A blockchain is a ledger of facts, replicated across several computers assembled in a peer-to-peer network. I don’t know about you, but after reading these definitions, I still had troubles figuring out what this is all about. Ordering Facts Blocks Mining. The Blockchain Explained to Web Developers, Part 2: In Practice. Is the blockchain a revolution? The technology that powers Bitcoin sure has the potential to disrupt the entire Internet, as we explained in a previous post.

But how can you, a developer, use the blockchain to build applications? Are the tools easy to use, despite the complexity of the underlying concepts? How good is the developer experience? We wanted to find out, and there is no better tutorial than developing an app from scratch. So we’ve made a simple decentralized ad server called Zero Dollar Homepage, powered by blockchain. This is the story of our experience.

Application Concept The blockchain shines when it replaces intermediaries. Since the famous Million Dollar Homepage experiment, innovating in the field of paid ads can’t make you rich anymore. Instead, we chose to build a tool that allows to display ads for free - a Zero Dollar Homepage. User Workflow Following the link contained in the comment, the PR author is asked to sign in with their GitHub credentials. Architecture. La blockchain expliquée aux développeurs web, 3ème partie : la vérité sur la blockchain. Après avoir exploré de manière théorique la blockchain, et après avoir utilisé la blockchain pour de vrai, nous avons maintenant une meilleure compréhension de ses forces et de ses faiblesses.

Surprise : nos conclusions sont très différentes de ce que vous pourrez lire ailleurs sur le web. Peut-être est-ce parce que nous ne relayons pas aveuglément la fascination ambiante, engendrée par l’impressionnante valorisation du BitCoin et des autres crypto-monnaies. C’est sûrement dû au fait que la dure réalité à propos de la blockchain, c’est qu’en fait elle n’est pas encore prête. Ce billet décrit en détail comment nous en sommes arrivés à cette conclusion, et les preuves solides sur lesquelles nous nous appuyons. La technologie n’est pas assez mature Comme nous l’avons expliqué en détail dans le second article de cette série, développer des DApps (Decentralized Apps en anglais) sur la blockchain, c’est douloureux.

Les Smart Contracts ne peuvent pas appeler d’API Le pouvoir aux développeurs. The Blockchain Explained to Web Developers, Part 3: The Truth. After exploring the blockchain theory and using it for real, we now have a better understanding of its strengths and weaknesses. Surprisingly, most of our conclusions are very different from what you will read in the blogosphere. Maybe it’s because we don’t blindly relay the fascination caused by the huge valuations of BitCoin and others. Maybe it’s because the hard truth about the blockchain is that it’s not ready yet. Read on to understand our take on the blockchain, based on strong evidence. The Technology Is Not Mature Enough As explained in detail in the previous post in this series, developing Decentralized Apps over a blockchain is a pain. It’s not that the Ethereum developers and community are bad ; they’re amazing, and they’re pouring a lot of time and expertise into their tools. Tip: We haven’t developed DApps for Bitcoin, but I’ve heard it’s worse.

The consequence is that developers don’t want to work on blockchain projects - they find it very frustrating. Developer Power. Consensus (computer science) A fundamental problem in distributed computing is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database, agreeing on the identity of a leader, state machine replication, and atomic broadcasts.

The consensus problem requires agreement among a number of processes for a single data value. Some of the processes may fail or be unreliable in other ways, so consensus protocols must be fault tolerant. The processes must somehow put forth their candidate values, communicate with one another, and agree on a single consensus value. One approach to generating consensus is for all processes to agree on a majority value. Termination Every correct process decides some value. Validity If all processes propose the same value , then all correct processes decide Integrity , then Agreement. Preuve de travail. Un article de Wikipédia, l'encyclopédie libre. Un système[1] de validation par preuve de travail (en anglais proof-of-work ou PoW) désigne en informatique une mesure économique et sécuritaire permettant de dissuader, sur un réseau informatique, des attaques par déni de service et autres abus de service tels que le spam en requérant de la puissance de calcul et de traitement par ordinateur au demandeur de service.

C'est un système difficile à produire car il est coûteux en temps et en énergie. Le concept a d'abord été présenté par Cynthia Dwork d'Harvard et Moni Naor de l'Institut Weizmann dans un article de 1993[2]. Le terme « preuve de travail » ou PoW a été formalisé dans un document de 1999 par Markus Jakobsson (en) et Ari Juels[3]. Une caractéristique de ce système est l'asymétrie du coût de calcul : le travail doit être difficilement réalisable pour le demandeur, mais facilement vérifiable pour un tiers. Contexte[modifier | modifier le code] Exemple[modifier | modifier le code]

Ethereum Project. Home | Hyper Ledger Foundation. Monax | Monax. Monax | Tutorials | Getting Started. Eris is the ecosystem application platform built by Monax. There are four steps need to get moving with Eris: Install the platform.Roll the blockchain base for your ecosystem application.Deploy your ecosystem application using smart contract templates and a simple, web-based user interface.Integrate your ecosystem application with a web server or other microservices. Dependencies: eris has 2 dependencies: Docker and Docker Machine.

Docker is a run anywhere container solution which makes development, deployment, testing, and running of ecosystem applications a breeze and Docker Machine allows you to run Docker on remote machines. For Linux, Docker Machine dependency is optional but recommended. Currently we consider the most workable setup to be (what our tests consider authoritative) with these operating system and dependencies’ versions: Host OS = UBUNTU:16.04Docker = 1.11.2Docker Machine = 0.8.1 We are working steadily toward making eris available for a wide variety of host environments. Monax | Explainers.