Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

不同的区块链技术,涉及那些编程语言?(区块链是一种技术吗)

区块链 加入收藏
本篇文章给大家谈谈不同的区块链技术,涉及那些编程语言?对应的信息,希望对各位有所帮助,不要忘了收藏本站喔。区块链技术入门,涉及那些编程语言?在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来

本篇文章给大家谈谈不同的区块链技术,涉及那些编程语言?对应的信息,希望对各位有所帮助,不要忘了收藏本站喔。

区块链技术入门,涉及那些编程语言?在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约编程,并提供你进一步学习的资源链接。

比特币比特币是第一个真正意义上的区块链,不过,从严格意义上来讲,它对智能合约的开发者是不友好的。

可以用一种低门槛的编程语言Bitcoin Script在比特币系统上编写智能合约。

每个比特币地址都对应着一个Bitcoin Script程序。

看起来是这样:IF 2CHECKSIGENDIF另一种较高级别的语言是Ivy,它可以编译成Bitcoin Script。

Ivy能够帮助你编写自定义的比特币地址,这种地址与隔离见证(SegWit)兼容,在比特币协议(包括签名检查、hash特征值(commitment)和时间锁)的支持下,可以执行任意条件组合。

例如:contractEscrowWithDeplay{sender:PublicKeyrecipient:PublicKey,escrow:PublicKey,delay:Duration,val:Value}{clausetransfer(sig1:Signature,sig2:Signature){verifycheckMultiSig([sender,recipient,escrow],[sig1,sig2])unlockval}clausetimeout(sig:Signature){verifycheckSig(sender,sig)verifyolder(delay)unlockval}}Ivy的github地址:https://github.com/ivy-lang/ivy-bitcoin比特币“虚拟机”——协议中负责执行Bitcoin Script程序的一部分——与以太坊或者Chain Protocol等其它智能合约平台的虚拟机相比(功能)更加有限,其指令系统甚至不是图灵完备的。

但Bitcoin Script的确提供了一组很有用的基础原语(primitives)——签名校验、哈希计算以及相对和绝对的时间锁——另外还能对这些原语进行自由组合。

超级账本fabricfabric是超级账本大家庭中最成熟的一个区块链项目,主要用于行业链、联盟联或私有链,它不需要通过挖矿来形成共识,因此可以达到很高的交易速度。

在fabric中,智能合约被称为链码(Chaincode),实质上是控制区块链网络中的不同实体或相关方如何相互交互或交易的业务逻辑。

简言之,链代码将业务网络交易封装在代码中。

可以调用链代码来设置和获取账本或 world state。

超级账本可以使用go、java或者nodejs来开发智能合约,不过支持最好的还是go语言。

下面是使用go开发的一个简单地fabric智能合约:packagemainimport"fmt"import"github.com/hyperledger/fabric/core/chaincode/shim"typeSampleChaincodestruct{}func(t*SampleChaincode)Init(stubshim.ChaincodeStubInterface,functionstring,args[]string)([]byte,error){returnnil,nil}func(t*SampleChaincode)Query(stubshim.ChaincodeStubInterface,functionstring,args[]string)([]byte,error){returnnil,nil}func(t*SampleChaincode)Invoke(stubshim.ChaincodeStubInterface,functionstring,args[]string)([]byte,error){returnnil,nil}funcmain(){err:=shim.Start(new(SampleChaincode))iferr!=nil{fmt.Println("CouldnotstartSampleChaincode)}else{fmt.Println("SampleChaincodesuccessfullystarted)}}frabric的智能合约可以使用一个go中的类实现,它必须要实现约定的借口Init和Query。

Init 方法 在链代码首次部署到区块链网络时调用,将由部署自己的链代码实例的每个对等节点执行。

而只要在区块链状态上执行任何读取/获取/查询操作,就会调用 Query 方法。

以太坊以太坊是第一个提供完善的智能合约开发框架的区块链,因此它也被称为区块链2.0的代表。

事实上,目前绝大多数的区块链应用,包括ICO代币发行,都是基于以太坊来实现的智能合约应用。

以太坊有四种专用语言可以用来开发智能合约:Solidity ,受JavaScript 启发Serpent ,受Python启发Mutan,受Go 启发LLL 受Lisp 启发Solidity的语法类似于JavaScript,这降低了学习门槛,易于被掌握和使用,因为JavaScript是Web开发者的常用语言。

例如,下面是一个使用Solidity开发的简单但完整的智能合约:pragmasolidity^0.4.21;contractHelloWorld{stringhello="HelloWorld!!!";eventsay(string_value);functionsayHello()public{emitsay(hello);}}合约代码第一行指定该合约使用的Solidity版本为0.4.21,不支持高于0.4.21版本的Solidity特性。

在Solidity中,contract关键字包含的代码段即表示一个智能合约,它拥有一些成员变量和函数,看起来非常类似于传统的面向对象开发中的类。

不同的区块链技术,涉及那些编程语言?就为大家介绍到这里了。如果你也感兴趣的话,不妨试试网站搜索,相信可能会有不一样的惊喜!

图集详情底部广告位