
Solana 2.0升级即将到来Chainstack 充分Chainstack ,助您顺利完成此次重大版本更新!这不仅是一次升级,更是Solana 去中心化程度、安全性与性能的重要里程碑。作为Web3开发者,以下是您需要准备的全部内容,确保无缝过渡:
为什么Solana 2.0如此重要?
Agave作为基于Rust语言Solana客户端,旨在通过构建多客户端架构增强网络韧性。与之同步Solana 基于C语言的Firedancer客户端。这两款客户端将协同实现网络去中心化与强化,要求所有节点须在2024年10月21日前完成向Agave v2.0的迁移。
龙舌兰2.0升级涉及多种API方法,逐步淘汰旧版方法并替换为优化版本。此次变更旨在最大限度减少潜在干扰,且向后兼容的替代方案已广泛可用。
为应对关键变化
若您正在使用以下任何已弃用的API方法,请立即更新调用方式以确保与Agave 2.0兼容:
| 已弃用的方法 | 替代方法 |
|---|---|
confirmTransaction | getSignatureStatuses |
getSignatureStatus | getSignatureStatuses |
getSignatureConfirmation | getSignatureStatuses |
getConfirmedSignaturesForAddress | getSignaturesForAddress |
getConfirmedBlock | getBlock |
getConfirmedBlocks | getBlocks |
getConfirmedBlocksWithLimit | getBlocksWithLimit |
getConfirmedTransaction | getTransaction |
getConfirmedSignaturesForAddress2 | getSignaturesForAddress |
getRecentBlockhash | getLatestBlockhash |
getFees | getFeeForMessage |
getFeeCalculatorForBlockhash | isBlockhashValid 或 getFeeForMessage |
getFeeRateGovernor | getFeeForMessage |
getSnapshotSlot | getHighestSnapshotSlot |
getStakeActivation | getAccountInfo |Solana (替代方案) |
如何替换 confirmTransaction 与 getSignaturesStatuses?
替换已弃用的 confirmTransaction 方法及其 getSignaturesStatuses 替换时,可使用以下方法:
import { Connection, Transaction, SendOptions } from '@solana/web3.js';
async function sendAndConfirmTransaction(
connection: Connection,
transaction: Transaction,
timeout: number = 30000, // 30 seconds default timeout
options?: SendOptions
): Promise<string> {
// Send the transaction
const signature = await connection.sendTransaction(transaction, options?.signers || [], {
...options,
skipPreflight: options?.skipPreflight || false
});
// Create a promise that will reject after the timeout
const timeoutPromise = new Promise((_, reject) => {
setTimeout(() => {
reject(new Error(`Transaction confirmation timeout after ${timeout}ms`));
}, timeout);
});
// Create the confirmation promise
const confirmationPromise = (async () => {
let done = false;
while (!done) {
// Get the status of the transaction
const response = await connection.getSignatureStatuses([signature]);
const status = response.value[0];
if (status) {
if (status.err) {
throw new Error(`Transaction failed: ${status.err.toString()}`);
}
// Check if we have enough confirmations
if (status.confirmationStatus === 'finalized') {
done = true;
return signature;
}
}
// Wait a bit before checking again
await new Promise(resolve => setTimeout(resolve, 1000));
}
})();
// Race between timeout and confirmation
try {
return await Promise.race([confirmationPromise, timeoutPromise]);
} catch (error) {
// If it's a timeout error, we should still return the signature
if (error.message.includes('timeout')) {
return signature;
}
throw error;
}
}
// Example usage
async function example() {
const connection = new Connection('CHAINSTACK_NODE');
const transaction = new Transaction();
// ... add your transaction instructions here ...
try {
const signature = await sendAndConfirmTransaction(connection, transaction, 60000, {
skipPreflight: false,
// ... other options
});
console.log('Transaction confirmed:', signature);
} catch (error) {
console.error('Transaction failed:', error);
}
}
Chainstack:为Agave 2.0做好准备
Chainstack已确保您的基础设施为Agave 2.0全面就绪,为您提供顺畅无缝的过渡体验:
- 无缝过渡:Chainstack 已就绪,并与Agave 2.0完全兼容。
- 增强安全性:受益于Agave的多客户架构,该架构旨在提升去中心化程度和安全性。
- 性能优化:迁移至更新的API方法意味着与Solana 交互的速度更快、可靠性更高。
为迎接Agave 2.0版本,请查阅Agave v2.0迁移指南并按需调整API调用。我们的支持团队随时待命为您提供协助,确保此次迁移过程尽可能顺畅无阻。
延伸阅读
- Chainstack Solana上的高性能交易:了解 Solana 节点如何通过优先费率支持确保100%着陆率,并实现集成。
- Solana 与新一代RPC:探索我们Solana 重大更新,旨在优化全球节点的延迟、覆盖范围及运行速度。
- 如何使用程序派生地址:了解如何在Solana使用程序派生地址进行状态管理,包括其优势、创建流程及实际应用场景。
- 如何通过编程方式计算交易手续费:了解Solana确定性手续费模型,学习如何通过编程方式计算交易手续费以优化您的项目。
- 如何高效检索历史数据:学习 如何Solana 检索历史数据,方法包括交易回放、Geyser插件、第三方服务等。
- 常见开发错误排查终极指南:学习如何Solana ,包括Rust版本冲突、Borsh序列化问题、区块存储错误等。
- 如何突破1000笔交易限制:学习使用getSignaturesForAddressSolana限制。通过分页和递归技术获取大型交易列表。
- 什么是正确的交易承诺级别:了解 Solana 交易承诺级别Solana 如何根据您的用例做出正确选择。
- Solana 指南:掌握 Solana ,从可复制粘贴的代码片段到高级集成方案,本指南全面覆盖所有内容。
将所有内容整合起来
Solana 2.0升级是网络发展的重要里程碑Chainstack全力确保您能无缝释放其全部潜力。通过将基础设施与Agave 2.0升级同步,我们为您提供必要工具,助您持续Solana构建可扩展、安全且高性能的去中心化应用(DApps)。
保持敏锐,抢占先机,Chainstack Solana 2.0,共同构筑Web3的未来。
在Chainstack上为您的项目注入强劲动力
- 探索如何通过我们无可匹敌的定价策略,在最全面的Web3开发平台上每月节省数千美元的基础设施成本。
- 输入您的工作负载,看看Chainstack 相较于其他RPC提供商 Chainstack 实惠。
- 连接到 Ethereum, Solana、 BNB Smart Chain, Polygon, Arbitrum, Base, Optimism, Avalanche, TON, Ronin, Plasma, Hyperliquid, Scroll, Aptos, Fantom, Cronos, Gnosis Chain,Klaytn, Moonbeam, Celo、Aurora、 Oasis Sapphire, Polygon zkEVM、 Bitcoin 主网或测试网,通过专为高效开发设计的界面完成任务。
- 在Solana上快速访问区块链归档数据和gRPC流式传输。
- 要了解更多关于Chainstack的信息,请访问我们的开发者门户或加入我们的Telegram群组。
- 您需要测试网代币吗?请通过我们的水龙头申请:Sepolia水龙头、Hoodi水龙头、BNB水龙头、zkSync水龙头、Scroll 、Hyperliquid 。
您是否已经探索过Chainstack为您带来什么?立即免费开始体验。
