Les langages de la Blockchain

Voyons main­te­nant quels sont, à l’heure où nous écri­vons ces lignes, les langages de pro­gram­ma­tion les plus cou­ram­ment uti­li­sés, en ma­tière de dé­ve­lop­pe­ment, dans l’uni­vers de la blockchain.

L'Informaticien - - DEV - T. T.

So­li­di­ty

So­li­di­ty est un lan­gage de pro­gram­ma­tion orien­té ob­jet per­met­tant d’écrire des contrats in­tel­li­gents ( smart contracts) pour dif­fé­rentes plates- formes ba­sées sur le prin­cipe de la blockchain, dont no­tam­ment Ethe­reum. So­li­di­ty est l’un des quatre langages conçus pour ci­bler la ma­chine vir tuelle Ethe­reum ( EVM pour Ethe­reum Vir­tual Ma­chine), les trois autres étant Ser­pent, LLL et, an­cien­ne­ment, Mu­tan. Ces langages ont pour but com­mun l’écri­ture de smart contracts sur, prin­ci­pa­le­ment – mais pas seule­ment – la blockchain Ethe­reum. So­li­di­ty est ac­tuel­le­ment le lan­gage prin­ci­pal sur Ethe­reum ain­si que sur d’autres blo­ck­chains pri­vées en concur­rence avec Ethe­reum, telle que Mo­nax. So­li­di­ty est un lan­gage de pro­gram­ma­tion si­mi­laire au Ja­vaS­cript avec un ty­page sta­tique conçu pour dé­ve­lop­per des contrats in­tel­li­gents fonc­tion­nant sur l’EVM. Il est com­pi­lé en by­te­code exé­cu­table sur l’EVM. So­li­di­ty a été conçu au­tour de la syn­taxe ECMAS­cript – proche donc du Ja­vas­cript – pour le rendre ra­pi­de­ment fa­mi­lier aux dé­ve­lop­peurs web. Contrai­re­ment à ECMAS­cript, il pos­sède un ty­page sta­tique et des types de re­tour « va­ria­diques » .

Les DApps

Si l’usage ini­tial de la blockchain était la créa­tion de cryp­to- mon­naie, « Sa­to­shi Na­ka­mo­to » avait éga­le­ment pré­vu un champ d’ap­pli­ca­tions plus large. L’émer­gence de l’Ethe­reum a bou­le­ver­sé la per­cep­tion de la blockchain. Ethe­reum est une blockchain sim­pli­fiée des­ti­née prin­ci­pa­le­ment au dé­ve­lop­pe­ment d’ap­pli­ca­tions dé­cen­tra­li­sées ou DApps ( De­cen­tra­li­zed Ap­pli­ca­tions). La plu­part des autres blo­ck­chains sont faites seule­ment pour « mi­ner » ( fa­bri­quer de la cryp­to- mon­naie) avec des no­tions de je­tons plus évo­luées, comme le cé­lèbre bit­coin. Dé­ve­lop­per des ap­pli­ca­tions dé­cen­tra­li­sées DApps re­vient en fait à dé­ve­lop­per des smart contracts. Dans l’éco­sys­tème de dé­ve­lop­pe­ment de Dapps, So­li­di­ty est ac­tuel­le­ment le lan­gage de pro­gram­ma­tion le plus uti­li­sé.

Ethe­reum

Ethe­reum s’est en­vo­lée à la deuxième place du mar­ché des cryp­to- mon­naies grâce aux pos­si­bi­li­tés d’ap­pli­ca­tions dé­cen­tra­li­sées of­fertes par ses smart contracts. L’idée à l’ori­gine d’Ethe­reum a été avan­cée en 2013 par Vi­ta­lik Bu­te­rin, un in­for­ma­ti­cien rus­so- ca­na­dien de 19 ans. La plate- forme a été lan­cée le 30 juillet 2015. Elle connaît un boom de po­pu­la­ri­té de­puis mars 2017 et est de­ve­nue à ce jour la deuxième plus grosse cryp­to- mon­naie en cir­cu­la­tion. De la même manière que le Bit­coin per­met de se pas­ser d’in­ter­mé­diaires fi­nan­ciers en connec­tant les de­man­deurs et bé­né­fi­ciaires entres eux, Ethe­reum per­met de se pas­ser de l’en­semble des in­ter­mé­diaires dont le tra­vail peut être au­to­ma­ti­sé par du code fonc­tion­nel. Il est de fait pos­sible d’ima­gi­ner les pro­chains ac­teurs de mise en re­la­tion du style d’Airbnb,

Bla­Bla­Car, Doc­to­lib ou Uber sur la blockchain, d’au­to­ma­ti­ser les rem­bour­se­ments de santé, la dé­cla­ra­tion et le paie­ment des im­pôts, de sto­cker les données mé­di­cales des pa­tients et de nom­breuses autres opé­ra­tions en sup­pri­mant presque toute pos­si­bi­li­té de fraude.

Ether ou exé­cu­tion de smart contract

Contrai­re­ment aux autres blo­ck­chains où il n’existe qu’un seul type d’adresse, l’Ethe­reum en pro­pose deux. Il n’y a au­cune dif­fé­rence no­table concer­nant la struc­ture des adresses, mais celle- ci peut cor re­spondre soit à un compte créé par un user Ethe­reum, soit à un smart contract qui va pou­voir recevoir des mes­sages. S’il s’agit d’un smart contract, des tran­sac­tions vi­sant à lan­cer son exé­cu­tion se­ront en­voyées. Si­non, si c’est un compte classique, c’est de l’Ether qui se­ra en­voyé à la place.

Ja­va

La blockchain core NEM, cou­sine d’Ethe­reum mais avec des fonc­tion­na­li­tés ré­duites, per­met seule­ment de gé­rer des as­sets. Elle uti­lise le lan­gage Ja­va et il de­vrait aus­si être bien­tôt pos­sible d’em­ployer le lan­gage C++.

C#

Par­mi les prin­ci­paux pro­jets de blockchain écrits en C#, il faut ci­ter Stra­tis et NEO. Stra­tis ( https:// stra­tis­plat­form. com/) est un four­nis­seur de BaaS ( Blockchain- as- a- Ser­vice) sou­te­nu par Mi­cro­soft et of­frant aux en­tre­prises la pos­si­bi­li­té de construire leurs propres sys­tèmes de blockchain pri­vées. NEO ( https:// neo. org/) a été écrit en C# mais supporte d’autres langages tels Ja­vas­cript, Ja­va, Py­thon et Go.

Ja­vas­cript

L e S D K ( S i d e C h a i n De­ve­lop­ment Kit) de Lisk ( https:// lisk. io/) a été écrit en Ja­vaS­cript et c’est grâce à ce lan­gage que les dé­ve­lop­peurs peuvent créer des ap­pli­ca­tions pour cette blockchain.

SQL

Aer­go ( https:// www. aer­go. io/) est une so­lu­tion de blockchain pour l’en­tre­prise dé­ve­lop­pée par Blo­cko sous sa tech­no­lo­gie pro­prié­taire Coins­tack. Elle offre les fonc­tion­na­li­tés d’une plate- forme de smart contracts ba­sée sur le lan­gage SQL. La blockchain Aer­go per­met aux en­tre­prises de créer et d’exé­cu­ter des smart contracts avan­cés dans des en­vi­ron­ne­ments sur­tout com­mer­ciaux et d’af­faires.

C++

C++ est le lan­gage de pro­gram­ma­tion pré­fé­ré d’EOS ( https:// eos. io/), ce sans doute pour sa sou­plesse et sa puis­sance lé­gen­daires. La blockchain EOS supporte aus­si tout lan­gage pou­vant être com­pi­lé en WASM ( WebAs­sem­bly). Rap­pe­lons au pas­sage que le coeur de la blockchain Bit­coin est co­dé en C++.

Go ou Go­lang

La plus grande par­tie du code de blockchain des smart contracts uti­li­sant Hy­per­Led­ger Fa­brics est écrit en Go­lang. Un SDK Ja­va per­met éga­le­ment de dé­ve­lop­per des ap­pli­ca­tions pour cette blockchain. Pour con­ce­voir le lan­gage Go, rap­pe­lons que Google avait fait ap­pel à plu­sieurs vé­té­rans de la pro­gram­ma­tion : Ken Thomp­son, co- au­teur d’Unix et créa­teur du lan­gage B au­quel a suc­cé­dé le C, Rob Pike, le créa­teur du sys­tème Plan 9 pour Bell et Robert Grie­se­mer qui a contri­bué au com­pi­la­teur Ja­vaS­cript V8 de Ch­rome et au pro­jet GCC, le com­pi­la­teur C GNU. Créé en 2007, Go est uti­li­sé en pro­duc­tion chez Google de­puis mai 2010. Outre le fait qu’il peut rem­pla­cer le C++ très ef­fi­ca­ce­ment dans cer­tains cas de fi­gures ( pas tous, loin s’en faut), il tend aus­si à être uti­li­sé à la place des Py­thon et Ru­by car sa vi­tesse de com­pi­la­tion convient au scrip­ting, tout en pro­dui­sant des bi­naires. Il peut être em­ployé à la place de presque tous les langages de conception de pro­grammes en ligne de com­mande, mais n’est pas le plus adap­té à toutes les tâches. Go in­nove sur­tout au ni­veau de ses fonc­tion­na­li­tés, par­ti­cu­liè­re­ment les Map, les Slice, les Go­rou­tines et les chan­nels. ❍

Newspapers in French

Newspapers from France

© PressReader. All rights reserved.