Solana构建发起交易时,返回错误
(*jsonrpc.RPCError)(0xc00739b530)({
Code: (int) -32602,
Message: (string) (len=122) "base64 encoded solana_sdk::transaction::versioned::VersionedTransaction too large: 1668 bytes (max: encoded/raw 1644/1232)",
Data: (interface {}) <nil>
})
错误分析
交易的大小超过1232 字节限制
static_assertions::const_assert_eq!(PACKET_DATA_SIZE, 1232);
/// Maximum over-the-wire size of a Transaction
/// 1280 是 IPv6 最小 MTU
/// 40 字节是 IPv6 报头的大小
/// 8 字节是分片报头的大小
pub const PACKET_DATA_SIZE: usize = 1280 - 40 - 8;
PACKET_DATA_SIZE 硬编码,不可配置,为保障节点间数据传输的稳定和安全性
解决
拆分交易,将多个逻辑拆分到多笔交易
参考
https://github.com/solana-foundation/anchor/issues/2051
版权属于:区块链中文技术社区 / 转载原创者
本文链接:https://www.bcskill.com/index.php/archives/2392.html
相关技术文章仅限于相关区块链底层技术研究,禁止用于非法用途,后果自负!本站严格遵守一切相关法律政策!