区块链开发技术是现在前沿互联网技术,这项技术涉及的学科多,而且可被应用的领域也非常广。基于区块链开发的项目都用什么编程语言来实现?涉及哪些编程语言呢?我们要编写不同的区块链编程语言又是否相同呢?
区块链开发我们以比特币、超级账本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语言。frabric的智能合约可以使用一个go中的类实现,它必须要实现约定的借口Init和Query。Init 方法 在链代码首次部署到区块链网络时调用,将由部署自己的链代码实例的每个对等节点执行。而只要在区块链状态上执行任何读取/获取/查询操作,就会调用 Query 方法。
③以太坊
以太坊是第一个提供完善的智能合约开发框架的区块链,因此它也被称为区块链2.0的代表。事实上,目前绝大多数的区块链应用,包括ICO代币发行,都是基于以太坊来实现的智能合约应用。
以太坊有四种专用语言可以用来开发智能合约:Solidity ,受JavaScript 启发; Serpent ,受Python启发;Mutan,受Go 启发;LLL 受Lisp 启发。这四种语言都是为面向合约编程而从底层开始设计的语言,但从目前的发展来看,Solidity已经称为以太坊智能合约开发当之无愧的首选语言。
Solidity的语法类似于JavaScript,这降低了学习门槛,易于被掌握和使用,因为JavaScript是Web开发者的常用语言。
基于区块链技术开发的项目,一般都会比较复杂,倒不是说项目本身有多难,而是区块链技术本身就不简单,这也导致现在做一个区块链项目的经费都会相对较高,不过也是物有所值。
原文链接:http://www.a6shop.cn/wiki/1082.html
网友评论