首页  >  文章  >  web前端  >  将 Stellar 与 JavaScript 集成:构建 dApp 很简单(对于绝对初学者)

将 Stellar 与 JavaScript 集成:构建 dApp 很简单(对于绝对初学者)

WBOY
WBOY原创
2024-08-14 10:44:101085浏览

Integrating Stellar with JavaScript: Building dApp is Easy (for Absolute Beginners)

Stellar 是一个用于快速跨境金融交易的开源区块链网络。如果您是一名 JavaScript 开发人员,并且想在一流的网络上构建 dApp,那么这就是您的最佳选择。在本教程中,我们将学习如何将 Stellar 与 JavaScript 集成,从设置环境到进行第一笔交易。

那么,让我们开始吧。

哦,在开始之前,我们需要 JavaScript 的基本知识,并在您的计算机上安装 npm 和 Node.js。

1. 正视环境

首先,打开终端或命令提示符并为项目创建一个新目录:

mkdir stellar-js
cd stellar-js
npm init -y

此命令将初始化一个新的 Node.js 项目。

现在,安装 Stellar SDK for JavaScript。

npm install stellar-sdk

但是,等等什么是Stellar-SDK?

Stellar SDK 是一个功能强大的库,可以使用 JavaScript 与 Stellar 网络进行交互。

2. 连接恒星网络

现在环境已经搭建完毕,我们将连接Stellar网络。我们需要 Stellar SDK 并连接到测试网。

什么是测试网?

Testnet 是一个免费使用的网络,供开发人员测试其应用程序而无需连接真实货币。哪里有一个连接真实货币的主网,需要XLM来支付交易费用等。测试网与主网类似,它有免费的测试Lumens(XLM),称为Friendbot。

const StellarSdk = require("stellar-sdk");
const server = new StellarSdk.Server("https://horizon-testnet.stellar.org");

这将初始化 SDK 并设置服务器以连接到测试网。

3. 创建新帐户

要与Stellar网络交互,您需要有一个Stellar账户。您可以通过生成键值对,使用 SDK 轻松创建新帐户。值对由公钥和私钥组成。

const pair = StellarSdk.Keypair.random();

console.log('Public Key:', pair.publicKey());
console.log('Secret Key:', pair.secret());

publicKey()是您账户的标识符,而secret()是您的私钥,请妥善保管。

4. 为账户注资

在测试网中,您可以使用 Stellar 的 Friendbot 服务为您的帐户注资。

const fetch = require("node-fetch");

const fundAccount = async (publicKey) => {
  try {
    const response = await fetch(
      `https://friendbot.stellar.org?addr=${publicKey}`
    );
    const data = await response.json();
    console.log("Account funded:", data);
  } catch (error) {
    console.error("Error funding account:", error);
  }
};

fundAccount(pair.publicKey());

fundAccount 函数向 Friendbot 发送请求,在您的账户中存入 10k 测试流明。因此,根据交易的状态,它将记录消息。

5. 进行交易

现在,您的帐户已创建,您可以在恒星网络上进行第一笔交易。我们将构建、签署交易并将其提交到恒星网络。我们将从我们的帐户发送 10 XLM 到另一个帐户。

const sendPayment = async (publicKey) => {
  try {
    const account = await server.loadAccount(pair.publicKey());

    const transaction = new StellarSdk.TransactionBuilder(account, {
      fee: StellarSdk.BASE_FEE,
      networkPassphrase: StellarSdk.Networks.TESTNET,
    })
      .addOperation(
        StellarSdk.Operation.payment({
          destination: publicKey,
          asset: StellarSdk.Asset.native(),
          amount: "10",
        })
      )
      .setTimeout(30)
      .build();

    transaction.sign(pair);

    const result = await server.submitTransaction(transaction);
    console.log("Transaction successful:", result);
  } catch (error) {
    console.error("Error sending payment:", error);
  }
};

sendPayment("Another_Account's_Public_Key");

6. 错误处理和调试

即使是一个逗号(,)也会毁掉你的代码。处理错误对于使代码保持在预期的轨道上非常重要。

try {
  const result = await server.submitTransaction(transaction);
  console.log("Success:", result);
} catch (error) {
  console.error("Error:", error.response.data.extras.result_codes);
}

这会捕获事务期间的任何错误并记录有助于调试代码的特定错误。

结论

我们刚刚将 Stellar 与 JavaScript 集成,并在 Stellar 测试网上进行了第一笔交易。由于 JavaScript 在开发者中被广泛采用,使用 Stellar 过渡到区块链更加方便。

学习任何新技能的最好方法是练习更多项目。构建小型项目并尝试这些概念。

如果您觉得这篇文章有帮助,请不要忘记继续向我表达爱意。下次记得点赞、分享、学习。

您还可以通过在此处以及 X、GitHub 和 LinkedIn 上关注我来与我保持联系。

以上是将 Stellar 与 JavaScript 集成:构建 dApp 很简单(对于绝对初学者)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn