建议和反馈

请填写你的反馈内容

区块链编程必须掌握的基础知识

2019-10-08 ·1989次阅读 ·读完需要15分钟

区块链编程基础知识你知道多少?在这里,我将讨论,您需要学习什么才能够构建区块链的应用程序。当我开始学习区块链时,很多问题浮现在脑海。其中有位重要的就是区块链编程语言,在本文中,我将讨论您可以学习的不同编程语言及其之间的区别和优势。

    区块链编程的类型

    • 区块链架构编程

    在发布区块链之前,必须解决构成其架构和协议的重要功能。这必须用代码编写。例如,在2009年发布比特币区块链之前,管理这种情况的规则和法规是用c ++编写的。通常使用更接近机器的语言(例如c和java)完成这种编码。

    • 建立智能合约或分散式应用程序(DApp)

    在普通的集中式应用程序中,后端代码在集中式服务器上运行,而DAPP的后端代码在分散的对等网络上运行。像应用程序一样,DApp可以使用可以调用后端的任何语言和用户界面编写其前端代码。

    流行的区块链编程平台

    超级账本

    超级账本是开源区块链的总体项目,旨在帮助推动技术发展并通过领导力提供相关工具,培训和活动,以支持基于区块链的分布式账本的协同开发。其目标是提供包含丰富,易于使用的应用程序编程接口(API)的模块化区块链技术。Hyperledger降低了安全风险,并确保只有想要进行交易的各方才是交易的一部分。因此,超级账本提供了区块链架构的所有功能,数据隐私,信息共享和不变性。

    以太坊

    以太坊是一个开源的区块链平台,用于开发基于区块链技术运行的去中心化应用程序或DApp。以太坊区块链平台有助于通过网络中的节点运行的脚本或智能合约。它只是不跟踪交易,而是对交易进行编程。以太坊提供了众多的编程选择,包括C ++,Go,Python,Java等。智能合同是使用Solidity(一种面向合同的高级编程语言)构建的。

    排名前5位的区块链编程语言

    1. C ++

    让我们从列表中最古老,最受赞赏的语言开始,即常绿的C ++。几乎我们所有人都知道这是C语言的扩展。在C ++中,创建了一个数据,函数和对象的包,可以轻松地在其他程序中对其进行调用和重用,从而大大减少了编码时间。

    但是现在有许多高级语言,为什么要使用C ++?

    好吧,C ++具有使其非常吸引人的某些功能。 考虑到区块链发展中的挑战,区块链应该像一个安全堡垒,同时也具有有效的资源管理。区块链应该与许多不受信任的节点进行交互,同时仍然为所有节点提供快速服务。这种迅速的服务对于加密货币的成功至关重要。 为了竞争所有这些需求并以最高水平执行,您需要对CPU和内存使用情况进行完全控制。C ++将其提供给用户。

    C ++另一个有趣的方面是移动语义。移动语义提供了一种在对象之间移动内容而不是复制内容的方法。移动语义的优点在于,仅当需要时才可以获取某些数据的副本,从而通过减少代码冗余来极大地提高性能。因此,有效的内存管理和高性能都是区块链所希望的。

    关于区块链编程,我能想到的另一个挑战是如何很好地并行化任务和不并行化任务。大多数语言专门研究一种语言,但是C ++的线程处理能力可以处理并行和非并行任务。C ++允许多线程功能与有效的线程间通信,并且还优化了单线程性能。

    C ++的优缺点:

    好处缺点
    独立和多平台复杂且通常难以调试
    静态类型不太容易学习
    高速不支持垃圾收集


    C ++主要用于加密货币和重要的区块链项目,例如比特币,Ripple,比特币现金,Litecoin,Stellar,Monero。

    2. Javascript

    JavaScript是最流行的软件开发语言之一。JavaScript及其库和框架(如jQueryReactAngularNode)是驱动现代Web开发的引擎。与HTML和CSS一起,它肯定会增强其功能。JavaScript主要用于创建广泛交互的网页。

    javascript使其非常适合于区块链操作的主要特征之一是,它非常擅长处理异步操作。随着区块链上用户数量的增加,所有动作同时执行,JavaScript可以更轻松地处理所有这些不同区块链节点之间的通信。但是,就最大程度地提高计算机的处理能力而言,我们不能否认JavaScript不如C ++高效。

    JavaScript的优缺点:

    好处缺点
    面向对象动态
    基于原型解释取决于浏览器
    支持功能编程任何人都可以查看代码


    区块链开发人员在web3.js和ethereum.js中使用javascript,它可以帮助您连接应用程序的前端以与以太坊网络和智能合约连接。 
    javascript在区块链中的另一种流行用法是用于Node.js的Hyperledger Fabric SDK。这是一个巨大的框架,在IT行业和公司中经常使用。因此,如果您喜欢这种编码,那么对您来说可能是一个不错的选择。

    3. Python

    python是一种相对现代的编程语言,由于它具有类似于英语的简单语法,因此通常是新编码人员的最爱。可以在服务器上使用Python代码来创建基于Web的应用程序。它还用于连接数据库系统。它可以处理大数据并执行复杂的数学运算。Python最吸引人的方面是,它与其他经常使用分号或括号的编程语言不同,它使用换行符来完成命令。

    无论您尝试什么,都不能将Python排除在此列表之外,因为几乎每个区块链生态系统都有一个或多个用Python编写的公共工具。Python正变得比以往更流行。

    Python的优缺点:

    好处缺点
    可在不同平台(Windows,Mac,Linux,Raspberry等)上运行主要用作服务器语言
    与某些其他编程语言相比,该语法使开发人员可以用更少的行编写程序。不太聪明的上下文
    在解释器系统上运行。意思是,原型制作可能很快。图书馆并非总是以足够的方式记录在案

    区块链中的Python用例:

    在区块链领域,Python用于为Hyperledger编写智能合约。还有许多其他好的项目,例如以太坊(pyethereum),它们都有自己的实现。Python也已用于为NEO创建合同。

    4.Golang

    GoLang(俗称GO编程语言)是Google于2007年开发的一种相对现代的领域通用语言,于2012年公开发布。它是一种静态类型的语言,其语法与C的语法有些相似。 GO是一种多用途语言,它是将Python和Javascript等现代语言的语法和用户友好性与C的性能和安全性优势相结合的尝试。GO是一种编译语言,它提供了丰富的标准库。当您将GO用于区块链项目的多个部分时,此功能可提供最大的灵活性。

    在Go中,称为Goroutines的方法提供了异步或并行运行多个程序或程序的多个部分的能力,这是区块链项目所需的重要功能。通常,线程用于以Java等语言实现此目的。

    Go的优点和缺点:

    好处缺点
    编译时间快不太容易学习
    程序简单,简洁,安全去没有很多软件包,如python或javascript
    超强类型,可扩展对于某些开发人员,语法不清楚
    垃圾收集很年轻的语言和社区没有其他流行语言那么大

    在区块链中使用案例:

    与Golang相关的项目无穷无尽,但在这里我要提到一些受欢迎的项目以太坊是用golang编写的最重要的项目之一。用Go语言编写的另一个重要项目是Hyperledger Fabric。它是大公司最受欢迎的区块链解决方案之一。针对分散式在线游戏的一个激动人心的项目是Loom Network,它具有随时编写的链码。

    solidity

    solidity是由以太坊团队(Gavin Wood,Christian Reitwiessner等)开发的一种类似于javascript的领域特定,面向对象的高级语言。Solidity受C ++,Python和JavaScript的影响,旨在在Ethereum平台(以太坊虚拟机(EVM))上创建去中心化应用程序。EVM是在以太坊平台上编写的智能合约的运行时环境。Solidity是一种静态类型的语言,支持继承,库和复杂的用户定义类型。到目前为止,它是以太坊社区和区块链行业中最适应的DSL。

    要尝试Solidity的代码示例,可以使用Remix IDE。Remix是基于Web浏览器的IDE,具有集成的编译器和Solidity运行时环境,而没有服务器端组件。它使您可以编写Solidity代码,部署和运行智能合约

    solidity优点和缺点:

    好处缺点
    在合同中提供 继承属性语言很年轻,社区还不大,所以支持较少。
    静态类型由于标准库不可用,使用非常复杂
    简单易学不普遍;仅在以太坊生态系统中可用

    区块链中的solidity用例:

    实体语言用于开发以太坊智能合约。我没有看到其他任何使用稳固性的项目,但是以太坊开发生态系统非常庞大,是迄今为止区块链开发最重要的部分之一。稳固性是智能合约开发中最流行的语言之一。


    评论(0)问答(0)
    请先登录或注册

    请先登陆或注册

    相关推荐

    C#中的智能合约入门

    在上一篇文章NEO区块链简介中,我们讨论了NEO区块链及其用途,在本文中,我们学习了如何使用Visual Studio和C#为NEO区块链智能合约设置开发机器。在下一篇文章中,我将更详细地讨论智能合约......
    区块技术花 · 2019-12-07
    226阅读 · 0赞赏 · 0问答

    如何使用Metamask和Remix在Ropsten TestNet上部署和测试智能合约

    想象一下要去一家冰淇淋店,品尝一些口味的冰淇淋,然后再选择要支付的口味。以太坊测试网就是这样。在将智能合约部署到实际花费真实以太币的真实以太坊网络之前,您需要通过将其部署在只是模拟真实以太坊网络的测试......
    比特币论坛 · 2019-12-06
    414阅读 · 0赞赏 · 0问答

    在.NET Core中构建基本区块链

    区块链技术是比特币的基础,比特币是世界上最受欢迎的加密货币。随着比特币的流行,区块链也获得了很大的曝光。人们现在也开始在非加密货币类型的应用程序中使用区块链。看看中本聪(Satoshi Nakamot......
    btc论坛 · 2019-12-06
    455阅读 · 0赞赏 · 0问答

    去中心化应用程序堆栈

    目前,Intranet处于隔离状态,无法相互通信和共享信息。现在基于区块链的网络也是如此。甚至对所有人开放的公共网络(例如比特币网络)也可以在其他公共网络之间独立运行,而无法在它们之间直接进行通信。在......
    开发者小白 · 2019-12-05
    485阅读 · 0赞赏 · 0问答

    在.NET Core中构建区块链-交易和奖励

    在上一篇文章中,我谈到了区块链技术中的工作量证明,工作量证明需要大量的计算时间,反过来,它也需要大量的电能。一个例子是,2017年11月整个比特币网络消耗的电力高于爱尔兰。比特币网络中的所有节点都是志......
    btc论坛 · 2019-12-05
    494阅读 · 0赞赏 · 0问答

    在.NET Core中构建区块链-工作证明

    基本区块链可以很容易地被篡改。即使存在验证机制,通过更新一个块并重新计算其后所有块的哈希,被篡改的区块链也通过了验证。在现实世界中,情况可能会变得更糟,因为可以使用现代计算机在短时间内进行重新计算。我......
    btc论坛 · 2019-12-05
    442阅读 · 0赞赏 · 0问答

    2894

    LK币

    27

    粉丝

    58

    笔记

    感谢"比特币论坛"

    这篇精彩的笔记,目前已经帮助

    • 0
    • 1
    • 9
    • 8
    • 9
    喜欢0
    链客社群 加入

    微博进入

    商务合作>

    广告投放>

    公司名称:北京链客行科技有限公司

    联系方式:010-67707199

    ICP备案号:京ICP备18032136号

    Copyright:链客区块链技术问答社区 版权所有

    感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

    感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

    您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

    您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!