本指南解释了使用私有 RPC 节点构建去中心化应用程序 (DApp) 的基础知识。我们演示了如何在区块链、私有区块链节点、智能合约和加密货币代币中使用 RPC。以下是开发人员和未来的 DApp 构建者需要了解的内容。
在本指南中:
- 什么是去中心化应用程序(DApp)?
- 为什么 DApp 如此受欢迎?
- 什么是 RPC 节点?
- 私有 RPC 节点:为什么需要一个?
- 设置私有 RPC 节点:分步手册
- 用于 DApp 开发的私有 RPC 节点:第一步
- 如何使用私有RPC节点进行DApp开发?
- 经常问的问题
- 关于作者
什么是去中心化应用程序(DApp)?
对于需要快速回顾的人来说,去中心化应用程序 (DApp) 是一类依赖分布式网络(区块链或许可账本)的软件程序。基本上,DApp 是在区块链网络上运行的软件应用程序。
从技术上讲,每个去中心化应用程序都包含多个智能合约。智能合约是链上钱包之间的“协议”:“如果事件 A 发生,事件 B 应该随之发生。”
2023年,DApp可以被视为多种子类。让我们关注三个最大的:
- 去中心化金融协议或 DeFi。这些应用程序允许加密货币持有者在区块链上使用基本的银行功能(借贷、跨资产转换等)。
- 链上游戏。基于区块链的游戏是利用加密货币作为支付方式或使用不可替代代币 (NFT) 技术作为创建、存储和转移游戏内资产的方式的视频游戏。
- NFT 市场。这些平台专为不可替代代币(NFT)的存储、演示和交易而设计。
其他类别的 DApp 包括链上(非托管)加密钱包、元宇宙、区块链赌场、Decentralized Social媒体平台等。
为什么 DApp 如此受欢迎?
由于区块链技术的日益普及,DApp 近年来出现了显着的用户和流动性流入。这就是去中心化应用程序如此受欢迎的原因:
- 抗审查性:由于 DApp 中的所有关键操作都是在链上执行的,即在用户的钱包和智能合约之间执行,因此政府、监管机构和犯罪分子无法控制资金和账户。相比之下,中心化交易所可以随时主动“冻结”你的资产。
- 盈利能力:与中心化竞争对手( TradFi和 CeFi)相比,大多数 DeFi 应用程序提供了更令人印象深刻的收益机会。此外,在 2021 年 NFT 热潮和牛市期间,一些顶级 NFT 系列的价格飙升。
- 灵活性:DApp 领域非常快地扩展到新的领域:每天都会到处发布具有各种用例的新协议。因此,去中心化应用程序可以比传统的 web2 应用程序更快地解决市场的“痛点”。
因此,越来越多的互联网用户有兴趣购买他们的第一个加密货币来与各种类型的去中心化应用程序进行交互。
什么是 RPC 节点?
远程过程调用或 RPC 是一种请求-响应通信协议,旨在启动远程系统(如本地系统)上的进程。
在区块链开发中,RPC 节点是安装有软件客户端的服务器。它参与验证交易,因此能够在区块链网络中读取和写入信息。因此,RPC 节点可用于将去中心化应用程序连接到可编程和不可编程区块链。
从技术上讲,DApp 可以通过 RPC 节点的 API 端点连接到区块链。在这种情况下,开发人员只需获取 RPC API 端点的 URL 并将其集成到基于区块链的软件中。
此外,RPC 节点代表与其他类别的节点一起工作的特定类型的区块链节点。
节点类型 | 轻节点 | 全节点 | 存档节点 |
功能性 | 读取区块链状态 | 读取区块链的状态,写入有关交易的信息,存储有关最近添加的区块的数据 | 读取区块链的状态,写入有关交易的信息,存储有关添加的所有区块的数据 |
使用者 | 验证者 | 主流DApp | 分析 DApp、探索者 |
技术规格 | 基础硬件(部分区块链手机),同步速度快 | 特殊硬件,最长4天同步 | 高端专用硬件,数周同步 |
因此,RPC 节点是以自动化方式与区块链交互所需的软件和硬件元素的组合。
私有 RPC 节点:为什么需要一个?
2023年,区块链开发者可以使用多种类型的RPC节点。首先,您可以在租用或私有服务器上设置自己的节点。为此,您需要获取硬件服务器,安装软件客户端,并等待节点同步。一旦这些操作完成,您就可以立即开始使用节点来处理区块链。然而,这种场景需要太多资源:特定技能、资金、用于监控的 DevOps 团队等等。
因此,开发人员可以使用现成的“区块链即服务”节点。公共RPC节点由最大的区块链自己部署和维护,包括以太坊(ETH)、 BNB智能链(BSC)、 Polygon (Matic)等。它们是免费的,但不提供足够快的速度或带宽。因此,仅建议将其用于实验或研究目的。免费的公共 RPC 端点对于商业用途来说太慢。
同时,私有 RPC 端点融合了去中心化和成熟 SaaS 平台的优势。有了它们,您可以以有竞争力的速度将您的 DApp 连接到区块链节点。通常,私有 RPC 节点提供商会向客户收取请求包或无限使用期的操作费。
设置私有 RPC 节点:分步手册
要开始使用私有 RPC 节点,您需要向其提供商注册一个帐户,设置仪表板,选择首选节点,为帐户充值(对于付费套餐用户),连接您的 DApp,然后开始向区块链。
在本手册中,我们将演示在GetBlock (最大的 RPC 节点提供商之一)上设置私有 RPC 端点的过程。虽然我们将使用 GetBlock 作为示例,但对于所有顶级区块链节点提供商(包括 Alchemy、Infura、Quicknode 等),设置私有 RPC 节点的过程看起来都很相似。
该怎么做:
- 注册一个帐户。在主要的 RPC 节点提供商上,您可以使用电子邮件地址、 Metamask钱包或 Google 的识别工具包进行注册。如果通过电子邮件注册,您将被要求验证您的地址。如果您注册了Metamask,请准备好授权与您的提供商进行交互。
- 获取您的端点地址。基本上,区块链节点的 API 端点的工作方式与互联网上的 URL 没有什么不同。因此,您只需选择要使用的区块链网络(比特币、以太坊、 Polygon等)、网络类型(主网或测试网),并授权创建 API 端点。
- 选择您有兴趣使用的 API 接口类型。区块链节点提供商通常提供 JSON-RPC、REST API、WebSockets (WS) 和 gRPC 接口。
- 为您的帐户充值。此步骤对于付费资费计划的用户来说是有意义的。
就是这样!开发人员可以采用新创建的 API 端点,并开始将它们集成到去中心化应用程序中,以将其代码库连接到区块链。 API端点的使用情况可以在用户帐户的“统计”模块中跟踪。
用于 DApp 开发的私有 RPC 节点:第一步
现在,您需要做的就是将一些链上逻辑连接到首选网络的区块链端点。
首先,您可以从头开始编写应用程序的代码库。它需要软件开发、时间和金钱资源、测试、部署等方面扎实的专业知识。在这种情况下,您只需不要忘记在部署和运行应用程序之前复制 RPC API 端点的地址即可。
然后,您可以通过 OpenAI 的 ChatGPT(一个人工智能驱动的聊天机器人)创建这个或那个 DApp 的简化副本。如果我们请求ChatGPT为我们编写一个类似 Uniswap 的自动做市商 (AMM) 合约,并使用私有 RPC 节点,它将为我们提供以下代码(简化示例):
// SPDX 许可证标识符:MIT
杂注可靠性^0.8.0;
导入“@openzeppelin/contracts/token/ERC20/IERC20.SOL”;
合约 UniswapCloneWithPrivateRPC {
IERC20 公共代币;
向公共所有者致辞;
构造函数(地址_token){
令牌 = IERC20(_token);
所有者 = msg.sender;
}
函数交换(uint256 amountOut,uint256 amountInMax)外部{
// …(与前面的示例相同)
}
函数 getAmountOut(uint256 amountIn) 公共纯返回 (uint256) {
// …(与前面的示例相同)
}
}
然后,为了与私有 RPC 节点交互,我们需要使用 Truffle 或类似框架部署此代码,并使用 web3.js 或 ethers.js 库与合约交互。
ChatGPT 为您提供了以下说明来执行此操作:const ethers = require(‘ethers’);const ContractAbi = require(‘path_to_contract_abi.json’); // 替换为实际的 ABIconstprovider = new ethers.providers.JsonRpcProvider(‘https://your-private-node-url’);// 使用其地址和 ABIconstcontractAddress = ‘0xYourContractAddress’;const 合约连接到合约= new ethers.Contract(contractAddress,contractAbi,provider);//调用合约函数(async()=>{constsigner=provider.getSigner();consttokenBalance=awaittoken.balanceOf(awaitsigner.getAddress()); console.log(‘代币余额:’, tokenBalance.toString()); const swapTx = waitcontract.swap(10, 100);await swapTx.wait(); console.log(‘兑换完成。’); const amountOut = wait Contract.getAmountOut(100); console.log(‘出金金额:’, amountOut.toString());})();
在此示例中,“ https://your-private-node-url ”应替换为 RPC 端点的实际地址。此方法假设您具有可作为 JSON 文件 (contract_abi.json) 进行交互的合约 ABI(应用程序二进制接口)。然而,该变体缺乏“真实” Uniswap中发布的安全工具,只能用于演示和研究。
最后但并非最不重要的一点是,如果版权允许,您可以从 GitHub 获取软件应用程序的逻辑。例如,在下面的线程中,以太坊和Gnosis资深人士 Martin Köppelmann 演示了一个使用私有 RPC 端点构建的有趣交易机器人的示例
归根结底,所有提到的方法都需要对 Solidity、以太坊的编程语言、开发框架和库有基本的了解。
如何使用私有RPC节点进行DApp开发?
私有RPC节点可以简化DApp开发流程并为web3团队节省资源。有了这些节点,开发人员不需要自己运行区块链节点或使用缓慢的公共 RPC 端点。
为了获取私有 RPC 节点的 API 端点,用户应向区块链节点提供商注册并选择网络名称、接口和网络类型(testnet/ 主网)。然后,这些 RPC 端点地址可以集成到各种软件逻辑中——分叉或从头开始编写。
经常问的问题
什么是 RPC 节点?
RPC 节点是安装了区块链客户端软件的服务器。它参与区块链交易的验证,并负责与整个区块链的交互。 RPC 节点将基于区块链的应用程序连接到区块链。
什么是DApp?
去中心化应用程序或 DApp 是一种依赖区块链技术进行数据物流和金融交易的软件应用程序。简而言之,区块链是此类应用程序的去中心化后端的一部分:非托管加密货币交易所、链上视频游戏、元宇宙等。
如何创建一个DApp?
为了创建DApp,您需要将智能合约逻辑与相应的区块链连接起来。它需要编码、web3 和智能合约方面的专业知识。
我可以创建Uniswap DEX 克隆吗?
是的,作为一款开源软件, Uniswap可以被任何加密货币爱好者“分叉”和部署。然而,分叉和运行Uniswap或其他主流 DEX 需要良好的编程专业知识。
是否可以使用私有 RPC 创建元宇宙?
是的,当然, 元宇宙可以使用任何可编程区块链的私有 RPC 端点来创建和运行:以太坊、BSC、 Polygon、 Optimism等。
关于作者
Deen Newman 是 GetBlock 的项目经理,也是一位著名的加密技术作家,对区块链技术及其潜在应用拥有丰富的知识。他为加密媒体撰写文章已有五年多了。他的深入分析和专家评论使他在加密货币社区中成为受人尊敬的声音,并因提供内容丰富且引人入胜的高质量内容而享有盛誉。
Deen 对技术的热情以及他致力于了解该领域最新发展的奉献精神,使他成为任何想要了解复杂的加密货币世界的人的宝贵财富。