首页 > 编程知识 正文

区块链主要技术有哪些(区块链运用的技术包含哪几项)

时间:2023-05-03 15:39:10 阅读:81783 作者:3927

本文对区块链开发中使用的技术、工具、语言、平台进行全景扫描,并对其应用情况进行分类。

新工具不仅能提高效率,前人也做不到。 作为活跃的开发领域之一,区块链新技术、工具、平台、语言、框架层出不穷,但面对复杂的选择,开发者难以面面俱到。

区块链开发——工具与框架篇

Ethers.js是一个完整实现以太坊钱包功能的工具包,其API文档非常详细。

Truffle是开发合同工程的框架,是一组本地集成开发环境和编译测试调试工具。 在Truffle提供的开发环境中,整合了前端实例化合同的方法,可以简单地调用合同功能。 此外,各种盒子在开箱后即可使用,整合了前端APP应用程序调用合同项目的方法。

Geth是用Go语言写的以太坊客户端,是目前最常用的以太坊客户端,拥有丰富的API,但没有视觉操作界面。 可以与Mist合作进行以太坊智能合约的开发调试。

Solc是以太坊官方提供的Solidity编译工具。

OpenZeppelin是一系列经过安全性验证的合同工具和ERC标准合同库,开发者可以通过继承这些合同和libray来轻松进行合同开发。

Mist是以太网电脑钱包,也可以连接到不同的网络。 包括帐户管理、交易、呼叫合同、部署合同和某些DApp功能的呼叫。 为这些功能提供的接口化操作对于ssdbb发送事务和调用合同非常有用。

使用Mist,可以轻松连接到以太网测试网络,从而支持智能合约的开发、部署和调试。 对开发者很友好。

Remix是一个集成的浏览器IDE,用于创建部署调试合同,可以在Remix提供的浏览器页面上快速创建部署合同,包括正式的网络连接、测试、静态检查、本地调试、事务日志、事件和日志查询另外,可以与Remixd提供的ws服务进行连接和开发到本地文件。 对于与以太坊智能合约兼容的连锁平台来说,Remix是一个非常易于使用的合同编辑、测试和部署工具,用户众多且成熟。

Docker在区块链上有多种用途,如用作基础组件以在BaaS服务中实现动态节点管理,或用作结构中智能合约的执行容器。

RocksDB是一个具有高性能、易用性特征的NoSQL数据库,许多区块链项目使用RocksDB作为底层存储数据库。

MyEtherWallet是一个热门的网络版以太坊在线钱包,具有丰富的资产管理、帐户备份功能。 对于不想在本地安装wallet客户端,而是存储所有数据块信息的用户来说,这是个不错的选择。 曾经因为侵占DNS的问题,一部分用户访问钓鱼网站,失去了大量的以太坊资产。 www.alfamp3.com代码是开源的,不存储用户的钱包信息帐户。 即使有一天MyEtherWallet网站不可用,也可以用钱包的私钥和密码在其他钱包中找回钱包的帐户,可以放心使用。

MetaMask是谷歌浏览器Chrome中使用的插件类型的以太网钱包。 这个钱包不需要下载,只需要添加支持谷歌浏览器的扩展程序,非常轻便,使用方便,不需要下载全部数据块信息,twddc用户可以管理自己的数字资产对以太坊Dapp的普及和普及起到了非常大的作用。 当时以太网游戏的爆发,Metamask功不可没。

Embark目前集成了EVM区块链(以太网)、去中心化存储(IPFS )、去中心化通信平台) Whisper和Orbit ),为开发者构建自己的区块链APP应用程序提供了Swarm

Ganache是Truffle官方推荐的客户端之一。 另一个是内置在Truffle中的Truffle开发程序。

以太坊联合创始人Gavin Wood认为,所有人从头开始构建网络和共识代码是非常浪费能源的。 使用Substrate构建新项目。 开发者需要做的是,只需要在代码中调用少量的函数,就可以获得定制、构建和发布各种密码学模板以及新区块链所需的各个方面。 “Substrate为区块链开发者提供最大限度的自由,花最少的精力”。

关系数据(如MySQL )用于记录某些区块链系统中系统对象的关联,提供的查询功能比NoSQL更丰富。 但是,由于关系数据库的灵活性、可扩展性较差,不太适合数据像区块链那样单调增长的情况,数据量增加后关系数据库的运维管理变得复杂,所以不推荐使用。 我建议研究其他的代替方案。

曾经广泛使用的EtherScripter被废除,Embark、Truffle是其替代者。

区块链开发——技术篇

GOSSIP是一种广泛应用于面向公共链的区块链系统(如比特币和以太坊)中实现点对点通信的消息通信算法。

POW是目前面向公共链众多共识算法中唯一具有安全性证明的算法,已在cjdlf的论文中论证,并被比特币系统的运行证明。 缺点是需要消耗计算力。

pft是拜占庭容错的共识算法,适用于面向联盟链的场景,很多区块链项目都采用了p

BFT 算法及其变种算法;但原始的 PBFT 算法本身不支持节点的动态增加,在实际应用时需要注意。

区块链开发——语言篇

Java作为一项成熟的通用语言,掌握开发人员多,生态全面,被广泛运用于各类企业级系统、中间件的开发,在区块链中也被一些项目用做系统开发语言和合约开发语言。

Go是高效快速的应用逻辑开发语言,编译速度优越,已经有较为强大的基础库,属于新兴语言,很被大家看好。作为一项通用语言,具有内存安全、性能优异的特点,使用用作区块链底层系统的开发语言。由于Go简洁易用的语言特性、功能丰富的代码库以及优异的性能表现,很多区块链底层是用Go语言实现的,Hyperledger Fabric等项目也主推用Go编写智能合约或DApp,可说Go语言在区块的应用中已经非常成熟。

Go的高性能,预编译与语言学习的易上手性,使得它非常适合被用来编写区块链项目。目前,大量的新的区块链项目都是用Go来编写。

JavaScript开发方便,很多区块链项目支持。Lisk支持使用JavaScript来开发智能合约,这使得智能合约的开发对于Web开发者来说,变得更加的简单。

Solidity是以太坊EVM虚拟机上编写智能合约的图灵完备语言,也是当前智能合约最实用和使用最广泛的语言,语法类似JavaScript,适用于以太坊及其扩展实现,只能由 EVM 加载执行。但受制于EVM包括以太坊本身的扩展性不够等设计缺陷,在开发效率和运行速度上有一定的限制。不过Solidity还在不断的发展和更新,可以期待未来更优的使用体验,但如果用于正式的重要的业务中,需要谨慎考虑。

Rust作为一项通用语言,具有内存安全、性能优异的特点,使用用作区块链底层系统的开发语言。已经有一些区块链项目采用了该语言作为开发语言。但开发人群还相对较少,选择该语言还需要考虑开发生态的成熟度。Rust在不影响性能的前提下提供的安全特性非常有吸引力,这些安全特性也很适用于区块链开发。如steem等区块链项目用Rust开发,经过适当的限制后也适用于智能合约开发。Rust可以被C及其它多种语言轻松调用,且由于其高性能特性,非常适合被用来编写区块链相关组件,比如可插拔密码库和共识机制。

作为一项有历史的成熟的经典语言,C++通常用于开发偏底层的系统,且不断迭代升级,引入新特性新思想,性能一直较好,但由于语言特性复杂,容易产生内存安全的问题,对开发者要求高,在有其它内存安全的语言可选择的情况下,C++不是进行区块系统开发的最优选择。EOS等项目是用C++开发的,但由于其复杂性,使用时需要非常小心。

另外,学习曲线较陡,使得越来越多的新的区块链项目不再使用C++语言来进行编写。但是C++高性能和编译特性,使得它仍然会在一些区块链项目的底层开发中发挥作用。

Vyper是新的以太坊语言,它为开发者提供了Solidity的一种替代选择。

已有项目采用Clojure编写合约解释器,但学习曲线较为陡峭,现有开发者中,熟练掌握的人相当少,可能会面对缺人或维护困难的窘境。

Red拥有出色的表达及DSL能力,但项目仍在开发中,基础尚不完备。

区块链开发——平台篇

迅雷链平台(Thunder Chain)是高性能、高可靠性、开发方便、技术支持完善的主链平台。

EVM是以太坊上的智能合约引擎,用于执行 Solidity 的智能合约,它是一个栈式虚拟机,其安全性是还需要完善,众多针对以太坊的攻击方法都是由 EVM 本身的缺陷带来的,虽然爆出的缺陷已经大部分修复,但毕竟EVM出现的时间相对还很短,所以还需更多时间来观察其进展。

和普通节点相比,Azure BaaS节点好处主要是,能让开发者快速建立自己所需的开发环境,能帮助更快地验证自己的概念和模型,工具性更强,便于创建、部署、运行和监控区块链服务。但其实用性还有待验证。

Blockchain Testnet可用于测试和体验操作。允许DApp开发者使用测试网络方便的进行开发和调试,而不必担心在主链上测试导致的费用问题。

Coinbase’s API的提供者Coinbase是全球用户最多的交易所之一。

Tierion是将区块链用于验证任何数据、文件或过程的平台,应用场景包括文件存在性证明、审计跟踪等,应用场景有限,决定使用这个平台之前请先评估是否跟自己的实际业务场景相匹配。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。