Skip to content

Commit

Permalink
Merge pull request #44 from liushooter/dev
Browse files Browse the repository at this point in the history
  • Loading branch information
DaviRain-Su authored Sep 29, 2023
2 parents 43b2fe6 + 11e9889 commit f2ce8b9
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ tags:

## 🚧 在本地设置 Solana 客户端

现在让我们换一种方式来操作 - 我们将不再使用`React/Next.js`,而是采用纯`TypeScript`来构建一个本地客户端。这样的方法比搭建前端并构建复杂用户界面要快得多。你可以在单独的TS文件中进行开发,并通过异步方式让它与网络进行交互。
现在让我们换一种方式来操作 - 我们将不再使用`React/Next.js`,而是采用纯`TypeScript`来构建一个本地客户端。这样的方法比搭建前端并构建复杂用户界面要快得多。你可以在单独的 TS 文件中进行开发,并通过异步方式让它与网络进行交互。

首先,在你的`Solana`工作区中创建一个新文件夹,然后使用以下便捷命令来设置本地客户端:

Expand Down Expand Up @@ -98,7 +98,7 @@ async function main() {
const connection = new Web3.Connection(Web3.clusterApiUrl('devnet'));
const signer = await initializeKeypair(connection);

console.log("公钥:", signer.publicKey.toBase58());
console.log("公钥", signer.publicKey.toBase58());
}
```

Expand Down Expand Up @@ -155,7 +155,7 @@ async function airdropSolIfNeeded(
}
```

这可能看得让人有些头大,但其实你对于这里正在发生的事情应该相当了解!我们正在借助我们熟悉的`getBalance`来查看我们的余额是否不足,如果不足,我们就会用`requestAidrop`函数来获取一些资金。
这可能看得让人有些头大,但其实你对于这里正在发生的事情应该相当了解!我们正在借助我们熟悉的`getBalance`来查看我们的余额是否不足,如果不足,我们就会用`requestAirdrop`函数来获取一些资金。

区块哈希和区块高度是识别区块的标识符,用以确保我们是最新的,也不会发送陈旧的交易。

Expand Down Expand Up @@ -242,7 +242,7 @@ async function pingProgram(connection: Web3.Connection, payer: Web3.Keypair) {

你必须知道这个是什么——可以通过阅读程序本身或其文档来了解。如果你不了解这一点,就无法与程序互动,因为指令会无效。

可以将这个过程想象成试图开车去一个没有GPS地址的地方。你知道你想去哪里,但不知道如何到达那里。
可以将这个过程想象成试图开车去一个没有 GPS 地址的地方。你知道你想去哪里,但不知道如何到达那里。

由于此操作不需要数据账户的签名,我们将`isSigner`设置为`false``isWritable`设置为`true`,因为该账户将被写入。

Expand All @@ -254,14 +254,14 @@ async function pingProgram(connection: Web3.Connection, payer: Web3.Keypair) {

你刚刚将数据写入了区块链。感觉简单吗?

虽然看起来很简单,但你确实已经成功了。当推特上的人们都在热衷于猴子图片时,你正在构建真正有价值的东西。你在本节学到的内容——从`Solana`网络读取和写入数据——足以制作价值1万美元的产品。想象一下,当你完成这个项目时,你还能做些什么🤘!
虽然看起来很简单,但你确实已经成功了。当推特上的人们都在热衷于猴子图片时,你正在构建真正有价值的东西。你在本节学到的内容——从`Solana`网络读取和写入数据——足以制作价值 1 万美元的产品。想象一下,当你完成这个项目时,你还能做些什么🤘!


## 🚢 挑战 - SOL转账脚本
## 🚢 挑战 - SOL 转账脚本

既然我们一同学习了如何将交易发送到网络,现在是时候让你独立尝试了。

参照前一步骤的流程,从头开始创建一个脚本,让你能够在`Devnet`上从一个账户转移SOL到另一个账户。请确保打印交易签名,以便你可以在`Solana Explorer`上查看它。
参照前一步骤的流程,从头开始创建一个脚本,让你能够在`Devnet`上从一个账户转移 SOL 到另一个账户。请确保打印交易签名,以便你可以在`Solana Explorer`上查看它。

回顾一下到目前为止你学到的东西:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const [pda, bump] = await PublicKey.findProgramAddress(
);
```

请注意,无论是你还是调用方都必须支付存储费用,并且每个账户有`10`兆字节的限制,所以要谨慎选择要放在链上的内容。
请注意,无论是你还是调用方都必须支付存储费用,并且每个账户有`10` Mb 的限制,所以要谨慎选择要放在链上的内容。

:::caution
每个数据账户的大小最大是`10MB`的大小。
Expand Down
2 changes: 1 addition & 1 deletion docs/cookbook-zh/guides/account-maps.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ async () => {

*首先,你需要初始化存储`BTreeMap`的账户,然后才能向其中插入必要的键值对。然后,你还需要将这个账户的地址存储在某个地方,以便每次更新时进行更新。

*账户存在内存限制,每个账户的最大大小为10兆字节,这限制了`BTreeMap`存储大量键值对的能力。
*账户存在内存限制,每个账户的最大大小为10 Mb,这限制了`BTreeMap`存储大量键值对的能力。

因此,在考虑你的用例后,可以按照以下方式实现这种方法:

Expand Down

0 comments on commit f2ce8b9

Please sign in to comment.