区块链 开发入门:Solidity、Rust...选择编程语言,构建应用程序的最佳工具
来源:知乎
区块链 开发是增长最快的行业之一。随着基于比特币的项目(DeFi、NFT、DAO)的爆发式增长,对比特币开发者的需求也猛增。
如果您已经在 区块链 上进行开发或计划在 Alchemy 上创建免费的 区块链 开发者帐户,这里有一份有关构建 区块链 应用程序的最佳工具的综合指南。
让我们开始吧!
编程语言
为了开发 区块链 应用程序,您需要学习一种编程语言。这些语言允许您创建充当应用程序后端功能的智能合约代码。
Solidity
Solidity是目前区块链开发的最流行的编程语言。 Yao 是一种高级面向对象语言,借鉴了其他语言(尤其是 C++)的元素。
很多开发者喜欢向Solidity学习,因为以太坊被认为是事实上的区块链,使用Solidity来编写智能合约。此外,Yao 是图灵完备的,可以创建具有丰富功能的复杂应用程序。
向Solidity学习是开启区块链发展之旅的好方法。 Yao 的受欢迎意味着您可以访问有用的教程、指南和文档,所有这些都是为初学者设计的。
Solidity程序只要兼容以太坊虚拟机(EVM)就可以在其他平台上运行。这意味着您可以在支持 EVM 的平台上部署项目,例如 Binance Smart Chain、Avalanche、Polygon、Matic Network 等。
Vyper
Solidity 并不是创建智能合约的唯一语言。一个流行的替代方案是 Vyper——一种基于 Python 且与 EVM 兼容的语言。
虽然 Vyper 没有Solidity那么多的功能和受欢迎程度,但对于精通 Python 的开发人员来说,它可能是一个理想的选择。此外,Vyper 的简单架构减少了软件错误并简化了智能合约审核。
Rust
Rust 是另一种在 区块链 开发社区中越来越受欢迎的编程语言。它是一种用于编写智能合约的低级语言,因其内存效率、简单性和可靠性而受到尊重。
问题在于Rust与EVM不兼容,因此你无法在以太坊和EVM兼容的链上部署项目。然而,Solana、Terra、NEAR、Polkadot 和 Elrond 等较新的链都使用 Rust,因此学习该语言仍然是一项不错的投资。
框架
从头开始创建去中心化应用程序(dApp)可能是一项艰巨的任务,尤其是当您必须自己处理每个小细节时。幸运的是,您可以受益于提供即插即用基础设施的软件框架来轻松创建 dApp。
框架包含构建、测试和部署代码所需的资源(库和工具)。无需从头开始编写 dApp 代码,因为您可以采用现成的包并添加其他功能。此外,大多数框架都是由经验丰富的工程师开发和优化的,使其功能强大、高效且多功能。
Truffle
Truffle 是我们 区块链 开发框架列表中的第一个。 Truffle 是一个基于 JavaScript 的框架,用于开发、测试和部署智能合约。它是区块链行业中最常用的框架之一,这是有充分理由的。
Truffle 包含创建功能齐全的 dApp 所需的资源,从内置智能合约创建工具到测试环境。该软件包还包括现成的库,可以轻松创建以太坊 dApp 前端。
Hardhat
Hardhat 是另一个强烈推荐给智能合约开发人员的框架。与 Truffle 一样,Hardhat 是一个基于 JavaScript 的框架,用于在以太坊上构建、测试、部署和调试应用程序。
Hardhat 是一个综合工具平台,抽象了与 区块链 软件开发相关的大部分低级通用功能。因此,您可以专注于更重要的任务,例如构建 dApp 的核心基础设施。
Embark
Embark 是一个全栈开发框架,可让您同时构建 dApp 的前端和后端。尽管 Embark 位于列表底部,但它与本节中列出的其他框架一样好。
Embark 为 dApp 数据存储、实时代码测试和智能合约部署提供资源。您还可以获得 Etherscan、Solc、Solium 等重要插件。
集成开发环境 (IDE)
集成开发环境 (IDE) 通过将基本开发工具集成到图形用户界面 (GUI) 中来帮助开发应用程序。大多数集成开发环境都具有代码编译、编辑、语法突出显示、构建自动化和调试功能。
Remix IDE
Remix 被许多 区块链 开发者认为是 IDE 的行业标准。 Remix IDE 可让您通过直观的界面构建、测试和调试智能合约。
Remix IDE 是用 JavaScript 编写的,您可以从任何浏览器使用它,尽管您也可以在计算机上本地运行它(作为桌面应用程序)。它提供全面的库、插件和其他功能来改进智能合约开发。
EthFiddle
EthFiddle 是一个基于浏览器的 IDE,用于编写和调试Solidity代码。 EthFiddle 由 Loom Network 开发,在与其他人协作项目时是一个很棒的工具。该软件可以轻松编辑、查找代码片段并与其他人共享代码片段以获取反馈。
EthFiddle 的功能不如 Remix IDE 丰富,但它非常适合在演示中共享代码。它提供了精心设计的测试和原型设计功能,使其成为任何区块链开发人员的绝佳工具。
Ethcode
我们还推荐 Ethcode,一个用于开发以太坊智能合约的 Visual Studio Code 插件。 Ethcode 提供了一个适合初学者的开发环境,用于编写、调试和单元测试合约代码。
代码开源,新开发者如有需要可以申请支持。 Ethcode还与Vyper和Solidity合作,可以在以太坊主网和Goerli测试网等上部署智能合约。
API和SDK
除了框架和IDE之外,API和SDK是Web3最重要的工具之一。开发商。两者都帮助区块链的工程师解决开发过程中的具体问题并帮助创建 dApp。
应用程序编程接口(API)的目的是简化不同软件之间的交互。您可以通过使用 API 请求数据来开发您的 dApp,从而在现有功能的基础上进行构建。
SDK 代表“软件开发套件”,是指用于在给定平台上构建应用程序的软件产品的集合。 区块链 开发 SDK 是为了降低创建特定平台 dApp 的复杂性。
Alchemy NFT API
随着非伪造代币(NFT)价值的飙升,许多开发者正在将注意力转向这个行业。如果您想创建 NFT 应用程序,Alchemy NFT API 是完美的工具。
Alchemy NFT API 允许开发者在用户友好的界面中显示各种 NFT 的元数据。并且它可以工作在多个链上(以太坊、Polygon、Flow等),让客户在选择NFT时有更大的灵活性。
NFT API 抽象处理与 NFT 交互的大部分技术任务。通过将 NFT API 集成到平台中,买家在验证和购买 NFT 之前无需阅读智能合约。
Thirdweb SDK
Thirdweb SDK 对于构建 Web3 应用程序或将 Web3 功能集成到现有应用程序中非常有用。例如,您可以将“连接钱包”功能添加到您的应用程序中,而无需编写任何代码。
该网络可用于:
- • 创建 NFT 市场
- • 无需编写代码即可启动 NFT 项目
- • 创建用于治理、社区成员资格和其他目的的代币
- • 计划转让优惠NFT 的使用费
Thirdweb 目前支持 Fantom、Avalanche、Ethereum 和 Polygon,并承诺将来支持更多链。虽然智能合约是免费的,但 Thirdweb 通过对代币合约未来的版税收取 5% 的费用来赚钱。
Moralis API 和 SDK
Moralis 是一个 Web3 开发平台,提供 API 和 SDK 产品以加速 区块链 开发周期。 Moralis SDK 通过提供开箱即用的功能降低了构建功能齐全的 dApp 的复杂性,例如:
- • 验证用户
- • 发送和接收交易
- • 监听智能合约事件 ♾ •检索用户余额
- •与智能合约交互
Moralis跨链Web3 API还可以聚合有关账户余额、代币、链上交易等的全面信息。它支持最流行的链,包括 Avalanche、Polygon、Ethereum 和 Binance Smart Chain。
区块链 网络测试
默认情况下,大多数智能合约都是不可变的,一旦代码安装在 区块链 上,就无法进行修改。因此,不建议在以太坊主网上进行测试,因为安装后无法进行任何更改。
为了解决这个问题,以太坊开发者可以使用测试网来测试 dApp。测试网络将让您了解智能合约如何在 区块链 上运行,并让您在发布前发现任何错误。
原生 Linux (Ganache)
Ganache 是用于以太坊开发的原生 Linux,可作为命令行工具或桌面应用程序使用。 区块链 开发人员可以使用 Ganache 部署智能合约并运行测试。
Ganache 工具具有用户友好的界面,您可以在其中访问调试信息和 区块链 数据(帐户、区块、交易)。您还可以调整其他元素(例如区块时间)以满足您的开发需求。
公共测试网(Ropsten/Rinkeby)
您可以使用 Ropsten、Goerli 或 Rinkeby 等公共测试网代替 Ganache。主要区别在于 Ganache 可以离线使用,不需要在线访问。
一些开发人员更喜欢公共测试网,因为它们模拟以太坊的行为,可能更适合测试假设。例如,Ropsten 使用类似于以太坊主网的工作量证明共识。
虽然测试网可以免费使用,但您必须在浏览器钱包中测试以太币(ETH)才能完成交易。获取测试以太币的最简单方法是使用像 Alchemy Rinkeby 水龙头这样的水龙头。
预言机
虽然智能合约具有令人兴奋的应用程序,但其功能有限,因为它们只能访问存储在链上的信息。这会给任何创建依赖外部信息来执行功能的智能合约的开发人员带来问题。
这就是神谕的用武之地。
区块链 Oracle 从各种来源收集现实世界的信息,并将其转发到 区块链 上运行的智能合约。这些信息可以以多种形式出现:实时价格信息、天气信息、体育赛事结果等。
选择去中心化的预言机很重要,因为恶意行为者更难以操纵和提供(大部分)可靠的信息。许多流行的 dApp(例如 Kyber、Synthetix 和 Compound)都使用去中心化预言机来执行智能合约。
Chainlink
目前,Chainlink 是市场领先的去中心化预言机解决方案。 Chainlink 于 2017 年推出,为区块链的多个智能合约提供“可信且防篡改”的数据。
使用 Chainlink,您可以将智能合约连接到许多现实世界的数据源。例如,您可以创建一个投注 dApp,奖励预测现实世界事件结果的用户。
其他去中心化预言机解决方案包括 Band Protocol、Witnet 和通用市场准入 (UMA)。这些应用程序鼓励选定的预言机提供准确的信息,同时保持链下数据的完整性。
区块链 节点提供商
在创建 dApp 的过程中,您需要与 区块链 进行交互 - 要么从链上读取数据,要么将数据写入 区块链。为此,您需要连接到 区块链 节点; 区块链 节点保存完整的 区块链 历史记录,并且可以发送/请求 区块链 数据。
问题是维护整个以太坊节点既昂贵、耗时又复杂。因此,我们建议区块链开发者使用区块链节点提供商(Node as a Service)。节点提供商为客户端管理基础设施,因此您可以专注于构建和扩展您的 dApp。
Alchemy 超级节点
如果您正在寻找合适的 区块链 节点提供商,Alchemy 超级节点值得一试。超级节点提供了一套完全开发的API来与区块链交互并获取关键的区块链数据。
使用我们的工具,连接到 区块链 网络层就像注册和接收 API 密钥一样简单。该服务适用于其他项目,而不仅仅是以太坊 - 因此您在使用 区块链 时拥有完全的灵活性。
Alchemy 的节点即服务工具还具有以下优势:
1。免费注册:开始免费使用超级节点并升级到高级功能。
2。可随时扩展的基础设施:随着 dApp 使用量的增长,运行专用节点变得更加困难。您可以尝试启动多个节点,但这只会使问题复杂化并增加开销。
超级节点旨在适应您的需求并提供无缝的可扩展性。这样,您就不会因为节点基础设施而失去睡眠,并且您的用户将获得更好的体验。
3。改进的 API:Alchemy Supernode 附带一组独特的 API 端点,使查询 区块链 数据比以往更容易。获取交易历史记录、代币 ID、交易收据、待处理交易等。
4。可靠性:标准节点经常会遇到导致 dApp 崩溃的各种问题。使用超级节点,您可以实现最高的可靠性,因此 区块链 应用程序可以不间断运行。
查看其他集线器提供商以了解可用的选项。该产品类别中的其他名称包括 QuickNode、Infura、GetBlock、BlockDaemon 和 Chainstack。
分析
在构建 dApp 时,许多 Web3 开发人员很快意识到跟踪链上活动可能很困难。在大多数情况下,您需要付出艰苦的努力来获取关键应用程序信息,例如实时使用信息、用户采用率和令牌指标。
但是,如果您想开发您的 dApp 并扩大您的用户群,分析这些数据点非常重要。为此,您需要使用 Alchemy Monitor 等工具,它可以轻松获取 Web3 应用程序的分析结果。
Alchemy Monitor
Alchemy Monitor 是一款强大的专用工具,用于监控 dApp 基础设施并深入了解用户活动。 Alchemy Monitor 提供 dApp 运行状况的实时更新,并显示 API 调用、错误率和响应时间。
Alchemy Monitor 的仪表板还跟踪 dApp 使用情况并提供有关用户行为的有用见解。它有一个有趣的自动警报系统,可以在 dApp 遭受严重故障之前发出问题的早期预警。
Alchemy Notify
不仅开发人员需要有关 dApp 活动的实时信息。用户还需要知道 dApp 发生了什么。例如,用户想知道 dApp 中执行的交易是否成功。
这就是为什么使用 Alchemy Notify 推送通知服务是个好主意。向您的 dApp 添加推送通知可能意味着良好的用户体验和糟糕的用户体验之间的区别。 Notify 向应用程序用户提供以下信息:
- • 事务通知;
- • 有关解锁活动的警告;
- • 天然气价格提醒等。
结合使用,Alchemy Monitor 和 Notify 可以提供更好的分析,并使开发人员能够提高其应用程序的可用性。您可以将这些工具与 Etherscan 等浏览器结合使用,该浏览器提供有关以太坊本身的信息(平均 Gas 价格、区块时间等)。
安全工具
如果说今年教会了我们什么的话,那就是安全应该是任何区块链项目中的第一要务。加强智能合约的安全性比在新的 DApp 中添加花哨的东西更好。考虑到目前的情况,以下是今年最大的一些泄密事件。
- • Axie Infinity(被黑客攻击 6.15 亿)
- • 逆向金融(被黑客攻击 1500 万)
- • Elephant Money(被黑客攻击 2250 万) 您知道智能合约安全是一件严肃的事情。如果没有适当的安全措施,您就有可能滋生恶意攻击,从而损害您的声誉并阻碍用户采用。
Octopus
在加强智能合约安全的工具列表中排在第一位的是Octopus,它用于对智能合约代码进行详细分析。 Octopus 提供符号执行、调用流分析和控制流分析,帮助您发现合约错误并在为时已晚之前修复它们。
Mythril
接下来是 Mythril,一个由 ConsenSys 提供支持的智能合约安全工具。 Mythril 可用于分析以太坊虚拟机 (EVM) 字节码,使用污染分析、符号执行和净化来识别以太坊软件中的错误。
Securify
为了使列表更加完善,我们推出了 Securify——一款由以太坊基金会提供支持的智能合约扫描仪。 Securify 可以检测多达 37 个不同的软件漏洞,并能够对基于Solidity的智能合约进行特定于上下文的分析。
钱包
如果您要构建 DApp,您将需要一个钱包来存储资金,甚至用于测试以太坊 (ETH)。为此,您可以在几分钟内通过浏览器设置一个加密货币钱包。
MetaMask
我们建议使用 MetaMask,因为它比持有 ETH 提供更多功能。作为浏览器扩展,MetaMask 将 Web3js API 注入网站,允许用户直接从浏览器与 dApp 交互。 MetaMask还可以执行其他功能,例如密钥管理、扫描区块链数据等。
最终总结
区块链 的开发可以是一个令人兴奋的旅程,但前提是您拥有合适的工具来开始。创建高效的开发堆栈可以更轻松地创建应用程序并提高输出质量。
本文涵盖了构建 区块链 应用程序所需的关键开发工具,包括框架、IDE、安全工具、测试网、区块链 预言机和节点服务。要开始使用这些工具进行构建,请使用 Alchemy 开设一个免费的开发人员帐户。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。