主页 > imtoken钱包苹果版 > 区块链技术涉及哪些编程语言?

区块链技术涉及哪些编程语言?

imtoken钱包苹果版 2023-03-09 05:49:46

区块链技术是目前最前沿的互联网技术,那么区块链技术涉及到哪些编程语言呢? 我们写不同的区块链编程语言是一样的吗? 下面跟大家分享一下比特币、Hyperledger Fabric、以太坊这三大区块链中用于编写智能合约的编程语言。 让我们来看看。

比特币

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

可以使用比特币脚本这种低门槛的编程语言在比特币系统上编写智能合约。 每个比特币地址对应一个比特币脚本程序。 它看起来像这样:

以太坊和比特币相同的地方_比特币狗狗币以太坊_以太坊和比特币相同点

以太坊和比特币相同的地方_比特币狗狗币以太坊_以太坊和比特币相同点

另一种高级语言是 Ivy,它可以编译成比特币脚本。 Ivy 可以帮助您编写与 SegWit 兼容的自定义比特币地址以太坊和比特币相同的地方,并可以在比特币协议(包括签名检查、哈希承诺和时间锁)组合下强制执行任意条件。 例如:

以太坊和比特币相同点_比特币狗狗币以太坊_以太坊和比特币相同的地方

比特币“虚拟机”——协议中负责执行比特币脚本程序的部分——比以太坊或 Chain Protocol 等其他智能合约平台的虚拟机更受限制,其指令集甚至不是图灵完备的。 但 Bitcoin Script 确实提供了一组有用的原语——签名验证、哈希计算以及相对和绝对时间锁——而且还可以对这些原语进行完美组合。

超级账本结构

以太坊和比特币相同点_以太坊和比特币相同的地方_比特币狗狗币以太坊

Fabric 是 Hyperledger 家族中最成熟的区块链项目。 主要用于产业链、联盟或私有链。 它不需要挖矿来形成共识,因此可以达到很高的交易速度。

在fabric中,智能合约被称为链码(Chaincode),它本质上是控制区块链网络中不同实体或关联方如何交互或交易的业务逻辑。 简而言之,链码将业务网络交易封装在代码中。 可以调用 Chaincode 来设置和获取分类帐或世界状态。

Hyperledger可以使用go、java或者nodejs来开发智能合约,但是支持最好的是go语言。 下面是使用go开发的一个简单的fabric智能合约:

以太坊和比特币相同点_比特币狗狗币以太坊_以太坊和比特币相同的地方

比特币狗狗币以太坊_以太坊和比特币相同点_以太坊和比特币相同的地方

Frabric 的智能合约可以使用 Go 中的类来实现,该类必须实现约定的借口 Init 和 Query。

Init 方法在链代码首次部署到区块链网络时被调用,并将由每个部署自己的链代码实例的节点执行。 相反,只要对区块链状态执行任何读取/获取/查询操作,就会调用 Query 方法。

以太坊

以太坊是第一个提供完整智能合约开发框架的区块链,因此也被称为区块链2.0的代表。 事实上,目前大部分的区块链应用,包括ICO代币发行,都是基于以太坊的智能合约应用。

以太坊和比特币相同的地方_以太坊和比特币相同点_比特币狗狗币以太坊

以太坊有四种专用语言可用于开发智能合约:

· Solidity以太坊和比特币相同的地方,受 JavaScript 启发

· 受 Python 启发的蛇

受 Go 启发的 Mutan

以太坊和比特币相同的地方_比特币狗狗币以太坊_以太坊和比特币相同点

· 受 Lisp 启发的 LLL

这四种语言都是为面向合约编程而设计的,但从目前的发展来看,Solidity 已经成为当之无愧的以太坊智能合约开发首选语言。

Solidity 的语法类似于 JavaScript,降低了学习门槛,易于掌握和使用,因为 JavaScript 是 Web 开发人员的通用语言。 例如,这是一个使用 Solidity 开发的简单但完整的智能合约:

比特币狗狗币以太坊_以太坊和比特币相同的地方_以太坊和比特币相同点

合约代码第一行指定合约使用的Solidity版本为0.4.21,不支持高于0.4.21版本的Solidity特性。

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