假如已经在区块链上进行了构建,或者计划构建,那样这里有关于创建区块链应用程序的一些最好工具的介绍。
编程语言
要开发区块链应用程序,就需要学习一种编程语言。这类语言可以让大家创建智能合约代码,以作为应用程序的后端。
Solidity
现在,Solidity 是区块链开发中最火爆的编程语言。它是一种高级的,面向对象的语言,它从其他语言 (特别是 C++) 中借鉴了一些元素。
很多开发职员更喜欢学习 Solidity,是由于被看作是事实上的区块链的ETH用了 Solidity 来撰写智能合约。此外,Solidity 是图灵完备的,允许大家创建功能丰富的复杂应用程序。
学习 Solidity 是作为区块链开发职员开始旅程的一个非常不错的开端。Solidity 的时尚意味着大家可以访问为新手设计的有用的课程、指南和文档。
Solidity 也可以在其他区块链上运行,只须它们与ETH虚拟机 (EVM) 兼容。这就意味着大家可以在兼容 EVM 的区块链上部署项目,如Binance智能链、AVAX、Polygon、MATIC 等。
Vyper
Solidity 并非创建智能合约的唯一语言。一种时尚的替代策略是 Vyper—— 一种基于 Python 且兼容 EVM 的语言。
虽然 Vyper 的功能和时尚程度不如 Solidity,但对于熟知 Python 的开发职员来讲,它是理想的选择。除此之外,Vyper 的容易构造降低了软件错误,简化了智能合同审计。
Rust
Rust 是一种较新的编程语言,它在区块链开发社区中愈加受青睐。它是一种用于撰写智能合约的低级语言,因其存储效率、容易性和靠谱性而备受赞誉。
问题是 Rust 不兼容 EVM,所以大家不可以在ETH和 EVM 兼容链上部署项目。但像 SOL, LUNA, NEAR, DOT波卡 和 Elrond 如此较新的链可以用 Rust,所以学习这门语言仍然是一项非常不错的投资。
框架
从头构建DApps程序 (dApp) 可能是一项困难的任务,尤其是假如大家需要自己处置每个微小的细节。幸运的是,大家可以受益于「即插即用」基础设施的软件框架,以便轻松创建 dapp。
框架附带了用于创建、测试和部署代码的资源 (库和工具)。从头开始撰写 dApp 是没必要的,由于大家可以用现成包,然后添加额外的功能。除此之外,大部分框架都是由资深的工程师开发和优化的,所以它们都是强大、高效和通用的。
Truffle
在大家的区块链开发框架列表中,第一个就是 Truffle。Truffle 是一个基于 javascript 的框架,用于开发、测试和部署智能合约。它仍然是区块链行业中最常见的框架之一。
Truffle 提供了创建功能齐全的 dApp 所需的资源,它可以提供从内置的智能合约创建工具到测试区块链的环境。它还具备现成的库,使得构建ETH dApp 的前端更容易。
Hardhat
Hardhat 是另一个被强烈推荐给智能合约开发者的框架。与 Truffle 一样,Hardhat 是一个基于 javascript 的框架,用于在ETH上创建、测试、部署和调试应用程序。
Hardhat 是一个全方位的工具平台,它抽象出与区块链软件开发有关的大部分底层通用功能。因此,大家可以专注于更要紧的任务,譬如为 dApp 构建核心基础设施。
Embark
Embark 是一个完整的栈开发框架,它允许大家同时构建 dApp 的前端和后端。虽然位列列表的最后,但 Embark 与本节中列出的其他框架一样好。
Embark 为 dApp 数据存储、实年代码测试和智能合约部署提供资源。除此之外,大家还可以访问要紧的插件,如 ETHscan、Solc、Solium 等。
集成开发环境 ( IDE )
集成开发环境 (IDE) 通过将核心开发工具组合成一个图形用户界面 (GUI) 来帮助应用程序开发。大部分 IDE 都具备代码编译、编辑、语法高亮显示、构建智能化和调试等功能。
Remix IDE
Remix 被很多区块链开发职员觉得是 IDE 的行业准则。用 Remix IDE,大家可以编译、测试和调试智能合约 — 所有操作都可以通过一个直观的界面完成。
Remix IDE 是用 JavaScript 撰写的,大家可以在任何浏览器上用它,大家也可以在我们的计算机上当地运行它 (作为桌面应用程序)。它提供了一套全方位的库、插件和其他功能,以推进智能合约开发。
EthFiddle
EthFiddle 是一个基于浏览器的 IDE,用于撰写和调试 Solidity 代码。假如大家在一个项目上与他人合作,那样 Loom Network 开发的 EthFiddle 是一个非常不错的工具,有了这个软件,大家可以轻松地编辑、查找代码片段,并与他人共享代码片段以获得反馈。
EthFiddle 不像 Remix IDE 那样功能丰富,但它能在演示文稿中共享代码这一点却非常有用。它提供了设计好的测试和原型功能,使其成为了所有区块链开发职员的好工具。
Ethcode
大家也推荐 Ethcode,一个用于开发ETH智能合约的 Visual Studio Code 插件。Ethcode 为撰写、调试和单元测试合约代码提供了一个新手友好的开发环境。
代码是开源的,新的开发职员可以在需要时寻求支持。Ethcode 适用于 Vyper 和 Solidity,可以将智能合约部署到ETH主网和 Goerli 测试网等。
API 和 SDK
除去框架和 IDE 以外,API 和 SDK 也是 Web3 开发者非常重要的工具之一。帮助区块链工程师解决开发过程中遇见的具体问题,并帮助 dApp 的创建。
为了简化不同软件之间的交互,设计了一个 API (Application Programming Interface)。通过用 API 请求数据来改进 dApp,大家可以在现有功能的基础上进行构建。
SDK 是「软件开发工具包」(Software Development Kit)的简称,是针对特定平台构建应用程序的软件商品集合。区块链开发 SDK 减少了构建特定于平台的 dapp 的复杂性。
Alchemy NFT API
伴随 NFT 价值的暴涨,很多开发职员开始将注意力转向这个行业。假如计划创建一个 NFT 应用,Alchemy 的 NFT API 是一个完美的工具。
Alchemy NFT API 允许开发职员在用户友好的界面中显示不同 NFT 的元数据。它跨多个链 (ETH、Polygon,、FLOW 等) 工作,所以用户在选择 NFT 方面有更大的灵活性。
NFT API 抽象了 NFT 交互所涉及的大部分技术任务。通过将 NFT API 集成到大家的平台中,用户在验证和购买 NFT 之前无需阅读智能合约。
Thirdweb SDK
Thirdweb SDK 对于构建 Web3 应用程序或将 Web3 特质集成到现有应用程序很有用。比如,大家可以在大家的应用程序中添加「连接钱包」特质,而无需撰写代码。
Thirdweb 可以用于以下方面:
创建 NFT 市场
在不撰写代码的状况下启动 NFT
为治理、社区成员资格和其他目的创建代币
编程版税分成 NFT
Thirdweb 现在支持 FTM, AVAX, 以太坊 和 Polygon,并承诺在将来支持更多的链。虽然智能合约可以免费用,但 Thirdweb 通过收取代币合约将来版税的 5% 来挣钱。
Moralis API 和 SDK
Moralis 是一个 Web3 开发平台,提供 API 和 SDK,以加快区块链开发周期。Moralis SDK 通过提供现成的功能减少了构建全功能 dApp 的复杂性,比如:
用户身份验证
发送和获得买卖
监听智能合约事件
与智能合约互动
Moralis 的跨链 Web3 API 还可以聚合关于竞价推广账户余额、代币、链上买卖等的全方位信息。它支持最火爆的链,包含 AVAX, Polygon, 以太坊 和Binance智能链。
测试区块链互联网
默认状况下,大部分智能合约是不可变的,一旦代码部署到区块链上,就没办法做出任何修改。因此,不鼓励在ETH主网上测试,由于大家不可以在部署后进行更改。
为知道决这个问题,ETH开发职员可以用测试区块链互联网 (testnet) 来测试 dapp。测试互联网可以让大家看到智能合约在区块链上怎么样工作,允许大家在启动它之前找到缺点。
当地区块链 ( Ganache)
Ganache 是用于ETH开发的当地区块链,可以作为命令行工具或桌面应用程序用。区块链开发职员可以用 Ganache 部署智能合约和实行测试。
Ganache 工具拥有用户友好的界面,可以访问调试信息和区块链数据 (帐户、区块、买卖)。大家还可以配置其他元素,如区块时间,以满足大家的开发需要。
公共测试互联网 (Ropsten / Rinkeby)
大家可以用 Ropsten、Goerli 或 Rinkeby 等公共测试网来代替 Ganache。主要有什么区别是 Ganache 可以离线用,无需在线访问。
一些开发职员更喜欢公共测试网,由于它们模拟了ETH的行为,可能更合适测试假设。比如,Ropsten 用像ETH主网的工作证明共识。
虽然测试网是免费用的,但大家需要在浏览器钱包中测试ETH (以太币) 才能完成买卖。
预言机
虽然智能合约有让人开心的应用程序,但它们的功能有限,由于它们只能访问存储在链上的信息。这给任何构建依靠外部信息来实行功能的智能合约的开发职员带来了问题。
这就是预言机发挥用途的地方。
区块链预言机从不一样的出处采集真实世界的信息,并将其传递给运行在区块链上的智能合约。这类信息可以以多种形式显示:实时价格、天气信息、体育结果等等。
选择去中心化的预言机是非常重要的,由于它们更难被恶意的参与者操纵,并且 (主要) 提供靠谱的信息。很多时尚的 dapp,如 Kyber、SNX 和 COMP,都用去中心化的预言机来实行智能合约。
Chainlink
现在,Chainlink 是市场份额领先的去中心化预言机解决方法。Chainlink 于 2022 年推出,为多个区块链的智能合约提供「靠谱和防篡改」数据。
通过 Chainlink,大家可以将智能合约连接到现实世界的各种数据源。比如,大家可以创建一个 dApp,奖励预测现实事件结果的用户。
其他去中心化预言机解决方法包含 Band Protocol, Witnet 和 Universal Market Access (UMA)。这类应用勉励选定的先知提供准确的信息,维持链下数据的完整性。
区块链节点提供商
在构建 dApp 时,大家将需要与区块链交互 — 无论是读取链上数据还是向区块链写入数据。为此,大家那需要连接到区块链节点;区块链节点保存了整个区块链的历史记录,可以发送 / 查看区块链数据。
问题是维护完整的ETH节点是昂贵的、耗时的和复杂的。因此,建议区块链开发职员用区块链节点提供者 (node-as-a-service)。节点提供程序为推广客户端处置区块链基础设施,使大家可以专注于构建和扩展 dApp。
Alchemy Supernode
假如大家正在探寻适合的区块链节点提供商,那样 Alchemy Supernode 值得一试。Supernode 提供了一套完整开发的 API,用于与区块链交互并获得重要的区块链数据。
用该工具,连接到区块链互联网层就像注册和接收 API 密钥一样容易。该服务不只适用于ETH,也适用于其他项目 —— 因此在用区块链方面会有充分的灵活性。
Alchemy 的「节点即服务」工具还有以下优点:
免费注册
随量扩展基础设施
增强的 API
靠谱
Supernode 旨在适应大家的需要,并提供无缝的可扩展性。如此,大家就不会由于节点基础设施而失眠,并且大家的用户可以享受更好的体验。
假如大家想知道其他可用项目,还可以查询其他节点提供程序。包含 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 为应用程序用户提供以下信息:
买卖公告;
解决活动警报;
Gas 价格警报,与更多。
安全工具
假如今年有哪些启示的话,那就是安全性应该是任何区块链项目的第一优先级。加大智能合约的安全性比在大家的新 dApp 中添加花哨的功能更可以考虑。以下是今年一些最大的漏洞:
Axie Infinity (被黑 6.15 亿USD)
Inverse Finance (被黑 1500 万USD)
Elephant Money (被黑 2250 万USD)
还有更多的黑客攻击,但这类应该会给大家一个基本的定义,智能合约安全是一件严肃的事情。假如没正确的安全手段,这或许会破坏大家的声誉并阻止用户使用。
OcTOPus
在大家的加大智能合约安全性的工具列表中,第一是 OcTOPus,这是一个用于对智能合约代码进行详细剖析的解决方法。OcTOPus 提供了符号实行、调用流剖析和控制流剖析 —— 所有这类都可以帮助大家发现合约错误并在为时已晚之前修复它们。
Mythril
下一个是 Mythril, ConsenSys 支持的智能合约安全工具。Mythril 用于剖析ETH虚拟机 (EVM) 字节码,并用污染剖析、符号实行和污染解决来辨别ETH软件中的漏洞。
Securify
最后,大家还有 Securify—— 一个由ETH基金会支持的智能合约扫描器。Securify 可以测试多达 37 个不一样的软件漏洞,并为基于 Solidity 的智能合约达成上下文特定的剖析。
钱包
假如大家要创建 dApp,大家需要一个钱包来存放资金,即便它是测试ETH (以太币)。为此,大家可以在几分钟内在浏览器中设置一个数字货币钱包。
MetaMask
大家推荐使用 MetaMask,由于除去持有 以太币,它还提供了不少功能。作为一个浏览器扩展,MetaMask 注入 Web3js API 到网站中,这允许用户直接在他们的浏览器与 dapp 交互。MetaMask 还可以实行其他功能,如密钥管理、读取区块链数据等。
概要
区块链开发可能是一个让人开心的过程,但首要条件是大家刚开始就拥有正确的工具。创建一个强大的开发栈可以更容易地创建应用程序,并提升输出的水平。