site logo

Marico's space

如何使用 JavaScript 连接 XRP Ledger:XRPL API 入门教程

前端技术 2026-10-28 14:48:56 3

最近折腾了一下 XRP Ledger(XRPL)的 JavaScript 接入,踩了几个坑,这篇把连接、查询和钱包测试流程说清楚。XRPL 不一定要从智能合约或复杂基础设施入手,先用官方 xrpl.js 连上测试网,就能把账户、账本和交易这些核心能力跑起来。

构建一个区块链应用,不一定需要自己编写智能合约,也不需要维护复杂的基础设施。

XRP Ledger(XRPL)提供了一套 API(应用程序接口),开发者可以直接与网络交互,查询账户信息、查看已验证的账本数据,还能提交交易。

借助 JavaScript 和官方 xrpl.js 库,用一个相对简单的应用就能开始探索这些能力。

这篇 XRPL 开发入门教程会带大家构建一个小型 Node.js 应用,连接 XRP Ledger Testnet,并从网络中读取区块链信息。

读完之后,你应该能理解 XRPL 的连接机制,也知道如何在此基础上开发更复杂的应用。

XRP Ledger 是什么

XRP Ledger 是一个开源区块链网络,支持数字资产转账、代币发行、去中心化交易所功能,以及其他金融类应用。

它的原生加密货币是 XRP。

与 Bitcoin 使用的工作量证明模型不同,XRP Ledger 采用一种由受信任验证节点参与共识的协议,对连续的账本版本达成一致。

开发者可以直接通过 API 与网络交互,不必自己运行验证节点。

常见的 XRPL 开发场景包括:

  • 区块链浏览器
  • 加密货币支付应用
  • 账户监控系统
  • 数字资产仪表盘
  • 去中心化交易所集成
  • 交易验证工具

想系统了解 XRP 和区块链概念,可以看看 Shivamm Wealth Legacy 提供的 XRP、XRP Ledger 与数字资产技术教育资料。

xrpl.js 能做什么

xrpl.js 是一个用于和 XRP Ledger 通信的 JavaScript 库。

它封装了常见 XRPL 操作,包括连接服务器、获取账本信息、创建钱包和提交交易。

这个库可以运行在 Node.js 以及受支持的浏览器环境中。

本教程使用 Node.js 和公共 XRP Ledger Testnet。

XRPL Testnet 是专门用于测试和开发的独立网络。

开发者可以在上面试验 XRP Ledger 的各种功能,而不需要使用主网中的真实 XRP。

Testnet XRP 没有货币价值,不应把它当作投资资产。

正因如此,Testnet 很适合用来学习 API(应用程序接口)的调用方式。

开始前需要准备什么

开始之前,你需要准备:

  • Node.js 20 或更高版本
  • npm
  • 代码编辑器,例如 Visual Studio Code
  • 终端或命令行界面
  • 网络连接

创建一个新的项目目录:

mkdir xrpl-javascript-tutorial
cd xrpl-javascript-tutorial

初始化 Node.js 项目:

npm init -y

安装 XRPL JavaScript 库:

npm install xrpl

第一个连接程序

本教程使用 JavaScript ES modules。可以把应用保存为 index.mjs,Node.js 会把它识别为 ES module。

新建一个名为 index.mjs 的文件,并加入以下代码:

import xrpl from "xrpl"; const TESTNET_URL = "wss://s.altnet.rippletest.net:51233"; async function main() { const client = new xrpl.Client(TESTNET_URL); try { await client.connect(); console.log("Connected to XRPL Testnet!"); const response = await client.request({ command: "server_info" }); console.log( "Server information:", response.result.info ); } catch (error) { console.error("XRPL connection error:", error); } finally { if (client.isConnected()) { await client.disconnect(); } }
} main();

运行脚本:

node index.mjs

连接成功后,应用会向已连接的 XRPL 服务器发送请求。

xrpl.Client 类负责建立与 XRPL 兼容服务器之间的连接。

connect() 方法负责打开连接。

连接建立后,client.request() 会发送 API 命令。

在这个例子中,server_info 用于获取服务器信息及其网络状态。

finally 代码块会在应用结束时关闭连接。

这种结构也提供了基本的错误处理机制,可以覆盖连接失败或 API 请求失败的情况。

读取已验证的账本

XRPL 最实用的操作之一,就是读取已验证账本中的信息。

已验证账本代表一个经过网络共识流程认可的账本版本。

可以替换前面的示例,也可以把下面的请求放到已连接代码段中:

const response = await client.request({ command: "ledger", ledger_index: "validated", transactions: false, expand: false
}); console.log( "Validated ledger index:", response.result.ledger_index
); console.log( "Ledger hash:", response.result.ledger_hash
);

这段代码会获取当前连接服务器所知的最新已验证账本信息。

账本哈希是一个与特定账本版本关联的加密标识符,可以帮助识别并验证该账本的内容。

账本索引则表示该账本在网络账本序列中的位置。

这些数据在开发区块链浏览器、分析仪表盘和交易监控系统时很有用。

创建测试钱包

接下来,我们生成一个钱包,并申请 Testnet XRP。

把下面的代码添加到已连接代码段中:

const funded = await client.fundWallet(); const wallet = funded.wallet; console.log("Wallet address:", wallet.address); console.log( "Testnet XRP balance:", funded.balance
);

fundWallet() 方法会使用 Testnet 水龙头服务,为开发钱包提供资金。

水龙头服务有时会不可用,也可能触发限流,因此应用需要处理资金申请失败的情况。

测试钱包只适合用于实验。

绝对不要把主网钱包的私钥或助记词发布在文章、公共代码仓库、应用日志或共享截图中。

生产环境必须采用合适的密钥管理和交易签名实践。

查询账户余额

现在已经有了一个获得资金的 Testnet 钱包,可以继续读取它的账户信息。

在钱包充值完成后,添加以下请求:

const accountResponse = await client.request({ command: "account_info", account: wallet.address, ledger_index: "validated"
}); const balanceDrops = accountResponse.result.account_data.Balance; const balanceXRP = xrpl.dropsToXrp(balanceDrops); console.log("Account balance:", balanceXRP, "XRP");

account_info API 会返回账本中的账户信息。

XRP 余额使用 drops 表示,这是 XRP 的最小计量单位。

1 XRP 等于 1,000,000 drops。

dropsToXrp() 辅助方法可以将余额转换成 XRP 单位。

对于金融类应用来说,一定要区分网络中的临时状态和已验证的账本数据。

使用 ledger_index: "validated" 查询,可以确保开发者获取的是经过共识确认的账本版本,而不是尚未验证的工作状态。

完整示例

下面把前面的流程合在一起:连接 XRPL Testnet、读取最新已验证账本、创建获得资金的 Testnet 钱包,再检查账户余额。

将代码保存为 index.mjs:

import xrpl from "xrpl"; const TESTNET_URL = "wss://s.altnet.rippletest.net:51233"; async function main() { const client = new xrpl.Client(TESTNET_URL); try { await client.connect(); console.log("Connected to XRPL Testnet"); const ledger = await client.request({ command: "ledger", ledger_index: "validated", transactions: false }); console.log( "Latest validated ledger:", ledger.result.ledger_index ); const funded = await client.fundWallet(); const wallet = funded.wallet; console.log("Test wallet:", wallet.address); const account = await client.request({ command: "account_info", account: wallet.address, ledger_index: "validated" }); const drops = account.result.account_data.Balance; console.log( "Account balance:", xrpl.dropsToXrp(drops), "XRP" ); } catch (error) { console.error("Error:", error.message); } finally { if (client.isConnected()) { await client.disconnect(); } }
} main();

执行应用:

node index.mjs

如果服务器和水龙头服务都正常,应用会显示连接信息、账本索引、Testnet 钱包地址以及对应的 XRP 余额。

由于网络和水龙头都是外部服务,每次运行得到的结果可能不同。

别忽略错误处理

即使是最简单的区块链应用,也需要可靠的错误处理机制。

下面是开发者经常会遇到的几种情况。

生产应用应该实现更完整的重试策略、请求超时、日志记录和服务端点监控。

不要设置无限次数的自动重试,否则可能给公共基础设施造成压力。

接下来可以做什么

掌握基础连接之后,就可以开发更高级的系统了。

  • 读取交易、账本信息和账户活动,并展示在用户界面中。
  • 监控账户交易,确认预期支付是否出现在已验证账本中。
  • 展示公开账户信息、余额和网络统计信息。
  • 分析交易元数据、手续费及账本活动,用于学习或运营研究。
  • 集成受支持的支付与代币功能,同时满足托管、安全和监管要求。

对于处理高价值资产的应用,测试和外部安全审查会格外重要。

开发时必须遵守的基本原则

开发者应该坚持几项基础实践:

先用 Testnet。 在接触主网之前,先验证应用行为是否正常。

检查已验证的交易结果。 交易提交成功,不代表交易已经执行成功。

保护签名凭据。 永远不要暴露私钥或助记词。

处理网络故障。 公共端点可能随时不可用,也可能存在使用限制。

阅读官方文档。 随着软件和协议修订不断演进,XRPL 功能和 API 行为也可能发生变化。

理解网络机制。 XRP Ledger 的共识机制和信任假设,与工作量证明区块链系统并不相同。

这些实践能帮助开发者构建更可靠、更容易维护的应用。

写在最后

学会使用 JavaScript 连接 XRP Ledger,是进入区块链开发的一个实用起点。

借助 xrpl.js,开发者可以与 XRPL 服务器通信、读取已验证账本、查询账户余额,并继续探索其他 API。

最重要的收获,是理解连接区块链、读取已验证信息与安全处理交易这三件事之间的区别。

先从 Testnet 入手,用公开数据做实验,然后在理解逐渐深入后,逐步构建更高级的工具。

继续学习时,可以把实践开发练习与 XRP Ledger 官方文档及独立教育资料结合起来。

本教程仅用于学习和技术开发。Testnet 代币没有货币价值,代码示例投入生产环境之前,应当经过独立测试和审查。