区块链技术涉及哪些编程语言?
区块链技术涉及哪些编程语⾔?
  区块链技术是现⽬前最前沿的互联⽹技术,那区块链技术到底涉及哪些编程语⾔呢?我们要编写不同的区块链编程语⾔⼜是否相同呢?下⾯为⼤家分享三⼤主流区块链:⽐特币、超级账本Fabric和以太坊中,分别使⽤什么编程语⾔来编写智能合约,⼀起来看看吧。
  ⽐特币
  ⽐特币是第⼀个真正意义上的区块链,不过,从严格意义上来讲,它对智能合约的开发者是不友好的。
  可以⽤⼀种低门槛的编程语⾔Bitcoin Script在⽐特币系统上编写智能合约。每个⽐特币地址都对应着⼀个Bitcoin Script程序。看起来是这样:
  另⼀种较⾼级别的语⾔是Ivy,它可以编译成Bitcoin Script。Ivy能够帮助你编写⾃定义的⽐特币地址,这种地址与隔离见证(SegWit)兼容,在⽐特币协议(包括签名检查、hash特征值(commitment)和时间锁)的⽀持下,可以执⾏任意条件组合。例如:
  ⽐特币“虚拟机”——协议中负责执⾏Bitcoin Script程序的⼀部分——与以太坊或者Chain Protocol等其它智能合约平台的虚拟机相⽐(功能)更加有限,其指令系统甚⾄不是图灵完备的。但Bitcoin Script的确提供了⼀组很有⽤的基础原语(primitives)——签名校验、哈希计算以及相对和绝对的时间锁——另外还能
对这些原语进⾏⾃由组合。
  超级账本fabric
  fabric是超级账本⼤家庭中最成熟的⼀个区块链项⽬,主要⽤于⾏业链、联盟联或私有链,它不需要通过挖矿来形成共识,因此可以达到很⾼的交易速度。
  在fabric中,智能合约被称为链码(Chaincode),实质上是控制区块链⽹络中的不同实体或相关⽅如何相互交互或交易的业务逻辑。简⾔之,链代码将业务⽹络交易封装在代码中。可以调⽤链代码来设置和获取账本或 world state。
  超级账本可以使⽤go、java或者nodejs来开发智能合约,不过⽀持最好的还是go语⾔。下⾯是使⽤go开发的⼀个简单地fabric智能合约:
  frabric的智能合约可以使⽤⼀个go中的类实现,它必须要实现约定的借⼝Init和Query。
比特币如何挖矿  Init ⽅法在链代码⾸次部署到区块链⽹络时调⽤,将由部署⾃⼰的链代码实例的每个对等节点执⾏。⽽只要在区块链状态上执⾏任何读取/获取/查询操作,就会调⽤ Query ⽅法。
  以太坊
  以太坊是第⼀个提供完善的智能合约开发框架的区块链,因此它也被称为区块链2.0的代表。事实上,⽬前绝⼤多数的区块链应⽤,包括ICO发⾏,都是基于以太坊来实现的智能合约应⽤。
  以太坊有四种专⽤语⾔可以⽤来开发智能合约:
  · Solidity ,受JavaScript 启发
  · Serpent ,受Python启发
  · Mutan,受Go 启发
  · LLL 受Lisp 启发
  这四种语⾔都是为⾯向合约编程⽽从底层开始设计的语⾔,但从⽬前的发展来看,Solidity已经称为以太坊智能合约开发当之⽆愧的⾸选语⾔。
  Solidity的语法类似于JavaScript,这降低了学习门槛,易于被掌握和使⽤,因为JavaScript是Web开发者的常⽤语⾔。例如,下⾯是⼀个使⽤Solidity开发的简单但完整的智能合约:
  合约代码第⼀⾏指定该合约使⽤的Solidity版本为0.4.21,不⽀持⾼于0.4.21版本的Solidity特性。
  在Solidity中,contract关键字包含的代码段即表⽰⼀个智能合约,它拥有⼀些成员变量和函数,看起来⾮常类似于传统的⾯向对象开发中的类。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。