随着区块链技术在世界范围内的腾飞,区块链编程语言正成为人们关注的主题。根据一项估计,2018年全球大约有105,000个区块链开发人员。当然,这仅占全球1800万开发人员总数的一小部分。这就是为什么2020年LinkedIn报告将区块链列为公司今年最需要的“硬技能”的原因。 如果您是想要学习正确的语言以开始您的区块链职业的开发人员,那么此文章适合您。在本文中,我们介绍了需求最大的区块链编程语言。我们将研究如何在区块链编程的上下文中使用每种语言,以及来自区块链领域主要项目的示例。分为以下三个类别:协议级开发,智能合约开发和软件开发工具包(SDK)。 协议开发的区块链编程语言 核心区块链开发,也称为协议级开发,主要侧重于构建区块链协议,区块链共识机制,网络架构以及对等网络的安全机制。请注意,协议开发不包括前端或应用程序开发。这是协议开发中经常使用的流行区块链编程语言的一些示例。 C ++ C ++通常用于构建区块链协议的主要原因有两个:严格控制内存和CPU使用率的能力;以及快速验证和传播区块的能力。 中本聪(Satoshi Nakaomoto)使用C ++编写了Bitcoin Core的代码。其他几个区块链项目使用比特币核心C ++代码库,包括比特币源代码分支,例如比特币现金和Litecoin。 其他区块链网络也已经实现了C ++代码。以太坊网络的原始实现是用C ++编写的,以及用Go和Python编写的实现。CryptoNote是面向隐私的加密货币的应用程序层协议,最初是用Java编写的,但在2013年使用C ++进行了重写。CryptoNote协议由Bytecoin,Monero和这两个项目的其他源代码分支使用。NEM当前是用Java编写的,但很快将用C ++进行重写。 Go Golang(通常称为Go)是Google设计的静态类型的编译语言。根据一本名为《计算机科学的邀请》的书,Go是“一种尝试,它结合了将解释性,动态类型化语言的编程易用性与静态类型,编译型语言的效率和安全性相结合。”?它还被设计为快速的,最多花费几秒钟在单台计算机上构建大型可执行文件。这些特性也使其成为去中心化网络上核心区块链开发的可靠选择。 Chainlink正在构建安全的区块链中间件,该中间件旨在将智能合约与外部资源(例如链下数据和API)连接起来。目前处于Alpha状态的Chainlink Golang节点是用Go编写的。它将继续构成Chainlink分散式oracle网络的基础。 Loom Network是一个以太坊第二层网络,使用Go-Ethereum(以太坊的官方Go实施)。Loom Network的许多其他方面都利用Go。例如,go-loom库包含构建Go应用程序和服务所需的所有内容,这些应用程序和服务与Loom DAppChains(在其自己的侧链上运行的dApp)交互。该库还可用于构建DAppChains上存在的智能合约。 Java Java是一种编程语言,可以很好地处理内存分配,并且被认为比其他语言(例如C或C ++)更容易编写。TIOBE编程社区索引和Cloud Foundry Foundation(CFF)等多项调查将Java列为企业开发人员的首选语言。但是,Java的明显缺点是需要使用Java虚拟机(JVM),并且与C ++和Go相比,性能较慢。 该bitcoinj库是一个Java实现Bitcoin的协议,它允许用户保持一个BTC钱包以及发送和无需比特币核心的本地副本接受交易。它带有完整的文档和一些示例应用程序,展示了如何使用它。 Hyperledger Besu(以前称为Pantheon)是主要由ConsenSys协议工程团队PegaSys开发的Java客户端。根据PegaSys团队的说法,“从很多方面来说,Java都是合乎逻辑的,从其开发社区的规模和成熟度,到以技术,以太坊特定的更多原因,例如维护,速度和可扩展性,使得Java成为了我们的理想之选。大型应用程序(例如以太坊客户端)的最佳语言。”?Hyperledger Besu可以在以太坊公共网络或私有许可的网络上运行。Web3j为以太坊网络提供了另一个Java客户端选项。 智能合约的区块链编程语言 智能合约是基于区块链的合约,可在满足某些条件时自动执行代码。当部署在区块链上时,智能合约能够支持用户活动,例如加密货币支付或DeFi应用程序,而几乎不需要人工干预。以下是一些流行的区块链编程语言的示例,这些语言通常用于智能合约开发中。 坚固性 Solidity是一种静态类型的,面向对象的编程语言,专门为以太坊虚拟机(EVM)(一种“准图灵完整”的256位虚拟机)的智能合约开发而创建。坚固性受C ++,Python和JavaScript的影响。 Remix是基于浏览器的IDE,专门用于Solidity智能合约开发,使开发人员可以编写,编译和部署智能合约。此IDE包含永久文件存储,不需要其他开发人员工具或软件安装。 尽管可以与其他语言(如Serpent和Vyper(类似Python的语言)或LLL(基于Lisp))编写基于以太坊的智能合约,但Solidity是迄今为止最流行,最可靠的选择。在许多基于以太坊的开源项目中,您会注意到Solidity的“ .sol”文件扩展名。正如Solidity文档网站所指出的那样,该语言可用于创建用于投票,众筹,盲目拍卖,多重签名钱包等的智能合约。坚固性是许多全球最受欢迎的dApp的首选。 JavaScript JavaScript在全球拥有约1100万开发人员,长期以来一直是Web开发的流行选择。现在,它已经成为智能合约开发的一种语言而受到欢迎。使用JavaScript的一些优势在于它是面向对象的,基于原型的并且支持功能编程。一个可能的缺点是它是一种动态类型的语言。 名为Nebulas的公共区块链支持JavaScript和TypeScript进行智能合约开发。Nebulas实施Nebulas虚拟机(NVM)来运行智能合约。NVM实现使用V8 JavaScript引擎,该引擎是由Chromium Project为Google Chrome和Chromium Web浏览器开发的。Nebulas?提供了一个示例,说明如何使用JavaScript和TypeScript构建称为“银行保险柜”的基本智能合约,该合约允许用户存入资金,提取资金并检查帐户余额。 Neo是另一个公共区块链,支持以JavaScript以及C#,VB.Net,F#,Java,Kotlin,Python和Go编写的智能合约。与星云和以太坊类似,Neo的平台利用称为NeoVM的虚拟机执行智能合约。 对于企业开发,IBM支持为其Hyperledger Fabric和Hyperledger Sawtooth框架使用?Javascript编写的智能合约。Hyperledger Fabric中的智能合约是一个名为Chaincode的程序。开发人员可以使用JavaScript将单个合同编程为独立的Chaincode实例,也可以使用一个Chaincode处理所有(某些类型的)合同,并公开API来管理这些合同的生命周期。请注意,Chaincode也可以用其他编程语言(例如Go和Java)编写。 虽然Fabric是仅允许使用的框架,但是Sawtooth提供了允许和不允许的选项。您可以在分类账上允许的交易族,操作组或交易类型可以看作是锯齿的分布式应用程序。Sawtooth-Ethereum(Seth)交易系列支持以JavaScript以及C ++,Go,Java,Python,Rust和Solidity编写的智能合约。为了使用Seth交易系列开发链上智能合约,IBM建议使用JavaScript APIweb.js。 C ++ C ++是一种静态类型的,面向对象的,已编译的编程语言。C ++的主要好处之一是其设计效率高和优化的代码编译器,能够产生非常快速的代码。两个潜在的缺点是C ++对于初级开发人员而言具有较陡的学习曲线,并且与其他编程语言相比,代码冗余往往更常见。 对于EOS公共区块链,C ++是用于智能合约开发的本地语言。请注意,开发人员还可以使用AssemblyScript或任何可以通过WebAssembly进行编译的编程语言,以Typescript编写代码。对于C ++智能合约,EOS具有全面的C ++ API。提供了有关如何使用C ++创建基本邮件列表应用程序的教程。 Komodo是一个多链平台,可为每个项目提供一个称为智能链的独立区块链,而不仅仅是在共享区块链上加入智能合约的功能。每个使用Komodo技术启动的智能链都可以使用Antara框架支持其自己的智能合约和应用程序。Antara模块是基于UXTO的高级智能合约,是用C ++(以及C)编写的。Antara模块也可以用任何编译后的编程语言编写,这些语言可以创建可链接的库,该库能够调用C / C ++函数并被其调用。 开发人员可以选择使用内置的模块库和/或编写自定义模块。可以对Antara模块进行编码,使其直接在自己的Smart Chain的守护程序中运行,而无需虚拟机。与其他智能合约平台不同,Komodo的Antara框架不需要为运行智能合约或dApp支付汽油费。Antara模块只需支付一笔交易费用即可运行。交易费用始终以每个Smart Chain的代币支付。 SDK的区块链编程语言 用于区块链编程的软件开发套件(SDK)与用于其他类型的开发(例如Web,移动或桌面)的SDK的目的相同。用于区块链开发的SDK本质上是可安装的软件包,其中包含工具,库,文档,代码示例以及其他相关信息的集合,使程序员能够在特定的区块链平台上开发软件应用程序。以下是一些SDK通常支持的流行区块链编程语言的示例。 JavaScript 如前所述,JavaScript是一种流行的高级编程语言。它的广泛使用也意味着区块链项目选择它作为SDK创建的第一种或第一种编程语言。 Stellar是一种用于数字货币到法定货币转账的公共区块链协议,它具有JavaScript SDK,该SDK有助于与Stellar Horizon API服务器集成以及在Node.js或浏览器中提交Stellar交易。该SDK有两个主要用途:查询Horizon并进行构建,签名并将事务提交到Stellar网络。Stellar项目团队还为Go和Java创建了SDK。Stellar社区已经为Python,C#.NET Core 2.0,Ruby,iOS&macOS和Scala编写了SDK。 Aeternity区块链具有JavaScript SDK以及Go,Python,Elixir,Java和.NET的SDK。JavaScript SDK当前似乎是可用的最全面的选项,它具有最新的变更日志和广泛的API文档。 Raiden Network是一个以太坊(Ethereum)第2层扩展解决方案,具有基于JavaScript的SDK,称为Raiden Light Client SDK。该客户端是用JavaScript / Typescript编写的,并且能够在启用了Web3的现代浏览器,钱包和Node.js环境中运行。 锈 Rust是一种静态类型的,轻量级的,可移植的并且“非常快”的语言。它可以编译到许多第三方开发人员都喜欢的Web,iOS和Android平台上。尽管该语言相对较新(于2010年首次出现),但已连续四年被评选为Stack Overflow最受欢迎的语言。根据Stack Overflow博客的说法,“ Rust强大的类型系统和对内存安全性的重视(都在编译时强制执行,这意味着在编译代码时出错是非常普遍的。” 该卡尔达诺锈项目创造了卡尔达诺对写在鲁斯特的编程语言第三方开发的加密原语的工具箱。这是IOHK(卡尔达诺背后的公司)的第一个开源项目。Cardano Rust项目提供了一个钱包和节点功能库以及一个Cardano(ADA)钱包。卡尔达诺还拥有一个JavaScript SDK,目前处于Alpha状态。 2020年2月,CasperLabs宣布推出Rust Contract SDK,其中包括用于构建智能合约的运行时环境,文档和测试框架。 ARK网络将Rust SDK作为开发人员的几种选择之一。像所有其他ARK SDK一样,Rust SDK遵循SoC(关注分离)设计模式。这意味着代码被分为两个库。在这种情况下,有一个Rust Client SDK和Rust Cryptography SDK。用于其他编程语言的ARK SDK包括TypeScript,PHP,Java,Go,Python,C ++,Elixir,.NET,Ruby和Swift。还提供对Laravel和Symfony PHP框架的支持。 科莫多使用Rust编写了Market Maker 2.0,这是科莫多原子交换协议的网络和体系结构层。原子交换是一种加密货币的对等交易,是从一个用户到另一个用户进行的,不需要交换,中介或中间人来促进交换。AtomicDEX是科莫多的原子交换供电的去中心化交易所(DEX),提供了一个开放的API,第三方交易所和钱包提供商可以使用它来集成科莫多的最新原子交换协议。在此处查看AtomicDEX开发文档。 高朗(Go) Go不仅被采用为用于众多区块链的客户端实现的语言,而且已将自身确立为重要的SDK选项,尤其是在新一代区块链中。 Cosmos是一个平台,用于构建并行的独立分散式区块链并将其连接到一个大型的可互操作网络中。正如协议本身一样,Cosmos SDK是使用Go编写的。Terra,Loom Network,Binance Chain和IRISnet是使用Cosmos SDK构建的四个流行的特定于应用程序的区块链。 Algorand是另一个带有Go SDK的公共区块链。这为协议和密钥管理API提供HTTP客户端,以及与Algorand协议进行交互的功能,包括事务签名和消息编码。Algorand还具有可用于JavaScript,Python和Java的SDK。 对于许可的区块链开发,Hyperledger Fabric?拥有Go SDK以及Java,JavaScript(Node.js)和Python的SDK。Go SDK包含有关如何查询和执行事务,查询渠道的基础分类帐以及如何进行涉及多个组织的事务的基本示例。 使用Komodo进行区块链编程 Antara框架为自定义区块链开发提供了一个简单且可调整的框架。开发人员可以创建自己的可编程区块链,称为智能链。开发人员还具有编写基于UXTO的智能合约(称为Antara模块)的能力。如果您想了解有关使用Antara Framework开发的更多信息,请务必查看Komodo文档以获取概述,开发教程,API等。 如果您想了解有关区块链技术的更多信息并紧跟Komodo的进展,可以加入Komodo的社区门户并注册每月时事通讯。 立即从Komodo开始您的区块链之旅。 —- 编译者/作者:星环创世 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
区块链编程语言:最常见的是哪种?
2020-04-22 星环创世 来源:区块链网络
LOADING...
相关阅读:
- 区块链咬人:美元的下跌,以太的赚钱者和Coinbase的考虑2020-08-01
- 纽约法院命令Longfin在区块链枢纽引发证券欺诈后向投资者支付2.23亿美元2020-08-01
- 普京签署俄罗斯加密法案成法律2020-07-31
- 日本银行(BoJ)任命其高级经济学家为监督数字日元的新负责人2020-07-31
- 打开实体落地新篇章 塞浦路斯区块链技术创新中心与ELV强强联手2020-07-31