区块链开发技术 区块链技术开发入门
时间: 2020年11月16日                     分类: 区块链技术 标签:

本文将对区块链开发中使用的技术,工具,语言和平台进行全景扫描,并对它们的应用状态进行分类。

新工具不仅提高了效率,而且对于上一代人来说也是不可能的。作为活跃的发展领域之一,新的区块链技术,工具,平台,语言和框架层出不穷。但是,面对众多复杂的选择,开发人员很难涵盖所有内容。

区块链开发工具和框架

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

Truffle是用于开发合同工程的框架,一组本地集成开发环境以及编译,测试和调试工具。在Truffle提供的开发环境中,集成了前端实例化契约方法,并且可以轻松调用契约函数。此外,还有各种支持即用型的工具箱,它们集成了前端应用程序调用合同项目的方式。

Geth是以Go语言编写的以太坊客户端。它是当前最常用的以太坊客户端,具有丰富的API但没有可视界面。它可以与Mist合作开发和调试以太坊智能合约。

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

OpenZeppelin是已实施的一系列经过安全验证的合同工具和ERC标准合同库。开发人员可以通过继承和继承合同轻松地开发合同。

Mist是一个以太坊PC钱包,您可以选择连接到不同的网络。包括帐户管理,交易,调用合同,部署合同和调用某些DApp功能。上述功能提供的界面操作大大方便了普通用户发送交易和通话合同。

使用Mist轻松连接以太坊测试网络,并支持智能合约的开发,部署和调试。对开发人员非常友好。

Remix是用于编写部署和调试合同的集成浏览器IDE。您可以在remix提供的浏览器页面上快速编写部署合同。它支持正式和测试网络连接,静态检查,本地调试,事务记录,事件和日志查询。等功能。此外,结合Remixd提供的ws服务,可以连接本地文件以进行开发。对于与以太坊智能合约兼容的链平台,Remix是一个非常有用的合约编辑,测试和部署工具。它有很多用户,并且相对成熟。

Docker在区块链中有很多用途,包括在BaaS服务中用作实现动态节点管理的基本组件,并在Fabric中用作智能合约的运行容器。

RocksDB是一个高性能且易于使用的NoSQL数据库。许多区块链项目都使用RocksDB作为底层存储数据库。

MyEtherWallet是一个非常流行的基于Web的以太坊在线钱包,具有丰富的资产管理和帐户备份功能。对于不想在本地安装电子钱包客户端并存储完整阻止信息的用户来说,这是一个不错的选择。一旦DNS劫持问题导致一些用户访问网络钓鱼网站,并丢失了很多以太资产。 MyEtherWallet代码是开源的。它不存储用户的钱包信息帐户。即使一天无法使用MyEtherWallet网站,您也可以通过钱包的私钥和密码从其他钱包中检索您的钱包​​帐户,并且可以放心使用它。

MetaMask是用于Google Chrome浏览器的插件式以太坊钱包。不需要下载钱包。您只需要将相应的扩展名添加到Google Chrome。它非常轻巧,易于使用。非常方便,无需下载全部区块信息,还允许小白用户管理其数字资产。它在以太坊Dapp的推广和传播中发挥了非常重要的作用。那一年,Metamask促进了以太网猫游戏的流行。

Embark当前集成了EVM区块链(以太坊),去中心化存储(IPFS)和去中心化通信平台(Whisper和Orbit),部署了对Swarm的支持,并帮助开发人员构建自己的区块链应用程序。

Ganache是​​Truffle正式推荐的客户之一(另一个是Truffle内置的Truffle Develop)。

以太坊的联合创始人加文·伍德(Gavin Wood)认为,每个人都从头开始构建网络和共识代码,这是浪费能源。要使用Substrate构建新项目,所有开发人员要做的就是调用代码中的几个函数以获得各种加密模板,以及定制,构建和发布新区块链所需的所有方面。 “基板是区块链开发,它们提供最大的自由度,并花费最少的精力。”

关系数据(例如MySQL)在某些区块链系统中用于记录系统对象的关系,以提供比NoSQL更丰富的查询功能。但是,关系数据库的灵活性和可伸缩性不好,它们不适用于数据单调增加的情况。数据量增加后,关系数据库的操作和维护管理变得很复杂,因此不建议这样做。建议考虑其他选择。

曾经被广泛使用的EtherScripter被淘汰了,Embark和Truffle是其替代品。

区块链开发技术章节

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

POW是当前众多公共链共识算法中唯一具有安全性证明的算法。中本聪的论文已经证明了这一点,而比特币系统的运行也证明了这一点。缺点是它消耗计算能力。

PBFT是拜占庭式容错共识算法,适用于面临联盟链的情况。许多区块链项目都采用了PBFT算法及其变体算法。但是原来的PBFT算法本身不支持节点动态增加,在实际应用中需要注意。

区块链开发语言文章

作为一种成熟的通用语言,Java具有大量的开发人员和完善的生态系统。它广泛用于各种企业级系统和中间件的开发中。它也被用作系统开发语言和合同开发语言。

Go是一种高效,快速的应用程序逻辑开发语言,具有出色的编译速度。它已经有一个相对强大的基本库。它是一种新兴的语言,非常受欢迎。作为通用语言,它具有存储安全性和出色性能的特征。它用作区块链底层系统的开发语言。由于Go的简洁易用的语言功能,功能丰富的代码库以及出色的性能,许多区块链都在底部的Go语言中实现。 Hyperledger Fabric和其他项目也主要使用Go编写智能合约或DApp,可以在Go中使用它。在块的应用中已经非常成熟。

Go的高性能,预编译和易于学习的语言使其非常适合对区块链项目进行编程。当前,大量的新区块链项目都用Go编写。

JavaScript开发非常方便,并得到许多区块链项目的支持。 Lisk支持使用JavaScript开发智能合约,这使Web开发人员更容易开发智能合约。

Solidity是一种Turing完整的语言,用于在以太坊EVM虚拟机上编写智能合约。它也是智能合约最实用,使用最广泛的语言。语法类似于JavaScript。它适用于以太坊及其扩展,并且只能由EVM实施。加载执行。但是,由于EVM的设计缺陷,包括以太坊本身的可扩展性不足,因此对开发效率和运行速度有一定的限制。但是,Solidity仍在不断发展和更新,我们期待着将来获得更好的用户体验,但是如果将其用于正式且重要的业务中,则需要仔细考虑。

铁锈作为一种通用语言,具有存储安全性和出色性能的特征。它用作区块链底层系统的开发语言。一些区块链项目已经采用了这种语言作为开发语言。但是,发展人口仍然相对较少,选择这种语言时需要考虑发展生态的成熟度。 Rust提供的不影响性能的安全功能非常吸引人,这些安全功能也非常适合于区块链开发。 Steem等区块链项目是使用Rust开发的,经过适当的限制,它们也适用于智能合约开发。 Rust可以用C和许多其他语言轻松地调用,并且由于其高性能特性,它非常适合编写与区块链相关的组件,例如可插拔密码库和共识机制。

作为有历史的成熟经典语言,C ++通常用于开发低级系统,并且迭代升级,引入新功能和新思想,性能一直不错,但是由于复杂的语言功能,因此很容易提高内存安全性对于开发人员来说,这个问题很高。当还有其他内存安全语言可供选择时,C ++并不是块系统开发的最佳选择。 EOS之类的项目是用C ++开发的,但是由于其复杂性,使用时需要非常小心。

此外,陡峭的学习曲线使越来越多的新区块链项目不再使用C ++编写。但是,C ++的高性能和编译特性使其仍在某些区块链项目的基础开发中发挥作用。

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

现有项目已经使用Clojure编写合同解释器,但是学习曲线相对较陡。在现有的开发人员中,很少有技术人员会面临人员短缺或维护困难的困境。

Red具有出色的表达能力和DSL功能,但是该项目仍在开发中,基础还不完善。

区块链开发平台文章

Thunder Chain平台是具有高性能,高可靠性,方便开发和完整技术支持的主链平台。

EVM是以太坊上的智能合约引擎,用于执行Solidity智能合约。它是一个堆栈虚拟机,其安全性需要提高。 EVM本身实现了许多针对以太坊的攻击方法。缺陷,尽管大多数缺陷已得到修复,但毕竟EVM出现的时间相对较短,因此需要更多时间来观察其进展。

与普通节点相比,Azure BaaS节点的主要优点在于,它使开发人员可以快速建立所需的开发环境,有助于更快地验证其概念和模型,并具有更强大的工具,从而更易于创建和部署。 ,运行和监视区块链服务。但是其实用性尚未得到验证。

区块链测试网可用于测试和体验操作。允许DApp开发人员使用测试网络来促进开发和调试,而不必担心主链上的测试成本。

Coinbase API的提供者Coinbase是世界上用户最多的交易所之一。

Tierion是一个使用区块链验证任何数据,文档或流程的平台。应用场景包括文档存在证明,审计跟踪等。应用场景是有限的。在决定使用此平台之前,请评估它是否符合您的实际情况。匹配业务场景。