Files
solana/docs/i18n/zh/docusaurus-plugin-content-docs/current/developing/on-chain-programs/faq.md
mergify[bot] b03186e3c6 Add chinese translations to docs (#17125) (#17127)
* import zh translations

* Fix broken links

* fix whitespace

(cherry picked from commit a1df57a4ea)

Co-authored-by: Justin Starry <justin@solana.com>
2021-05-08 17:09:51 +00:00

2.3 KiB
Raw Blame History

title
title
常见问题解答

在编写或与Solana程序进行交互时经常会遇到一些常见的问题或困难。 以下是有助于回答这些问题的资源。

如果还没有解决您的问题那么Solana#developersDiscord频道是一个不错的资源。

CallDepth错误

此错误意味着跨程序调用超出了允许的调用深度。

请参见跨程序调用调用深度

CallDepthExceeded错误

此错误表示已超出BPF堆栈深度。

请参阅通话深度

计算约束

请参见计算约束

浮动Rust类型

请参见浮动支持

Heap大小

请参见heap

无效账户数据

该程序错误的发生可能有很多原因。 通常,这是由于在指令中的错误位置或与正在执行的指令不兼容的帐户向程序传递了程序不期望的帐户所致。

当执行跨程序指令而忘记提供您正在调用的程序的帐户时,程序的实现也可能导致此错误。

无效指示数据

尝试反序列化指令时,可能会发生此程序错误,请检查传入的结构是否与指令完全匹配。 字段之间可能会有一些填充。 如果程序实现了Rust的Pack特性,则尝试打包和解压缩指令类型T以确定程序期望的确切编码:

https://github.com/solana-labs/solana/blob/v1.4/sdk/program/src/program_pack.rs

MissingRequiredSignature

有些说明要求帐户必须是签名者;如果预计将对帐户进行签名但未签名,则返回此错误。

当执行需要签名程序地址的跨程序调用时,程序的实现也可能会导致此错误,但是传递的签名者种子将传递给invoke_signed与用于创建程序地址create_program_address的签名者种子不匹配。

rand Rust依赖导致编译失败

请参见Rust项目依赖项

Rust限制

请参见Rust限制

堆栈大小

请参见stack