Documentation Index
Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
Use this file to discover all available pages before exploring further.
包含以下内容的配置对象:Commitment 级别(processed、confirmed、finalized)
代码示例
基本请求
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTransactionCount"
}'
使用 web3.js
import { Connection } from '@solana/web3.js';
const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');
// Get transaction count
const count = await connection.getTransactionCount();
console.log('Transaction count:', count);
// Get transaction count with analysis
async function getTransactionCountWithAnalysis(
config: { commitment?: string }
) {
const count = await connection.getTransactionCount(config);
return {
count,
analysis: {
timestamp: Date.now(),
commitment: config.commitment
}
};
}
注意事项
- 返回账本中的当前交易计数
- 计数包括节点处理的所有交易
- 响应是即时的,因为它从当前状态读取
- 计数会随着新交易而变化
- 由于网络传播,不同节点之间的计数可能有所不同
最佳实践
- 根据需求使用适当的 commitment 级别
- 在适当时缓存结果以减少 RPC 负载
- 监控交易计数的变化
- 考虑使用 WebSocket 订阅获取实时更新
- 适当处理网络错误并重试
常见错误
| 错误码 | 消息 | 解决方案 |
|---|
| -32601 | Method not found | 验证是否连接到 Solana RPC 节点 |
| -32602 | Invalid params | 检查配置参数 |
-
交易计数分析
interface TransactionCountAnalysis {
count: number;
metrics: {
timestamp: number;
commitment?: string;
};
}
class TransactionCountAnalyzer {
async analyzeTransactionCount(
config: { commitment?: string }
): Promise<TransactionCountAnalysis> {
const count = await connection.getTransactionCount(config);
return {
count,
metrics: {
timestamp: Date.now(),
commitment: config.commitment
}
};
}
}
-
交易计数监控
interface TransactionCountChange {
changes: {
previousCount: number;
currentCount: number;
difference: number;
percentageChange: number;
};
metadata: {
timestamp: number;
};
}
class TransactionCountMonitor {
private previousCount: number | null = null;
async monitorTransactionCount(
config: { commitment?: string }
): Promise<TransactionCountChange | null> {
const currentCount = await connection.getTransactionCount(config);
if (this.previousCount !== null && this.previousCount !== currentCount) {
const difference = currentCount - this.previousCount;
const percentageChange = (difference / this.previousCount) * 100;
this.previousCount = currentCount;
return {
changes: {
previousCount: this.previousCount,
currentCount,
difference,
percentageChange
},
metadata: {
timestamp: Date.now()
}
};
}
this.previousCount = currentCount;
return null;
}
}
-
交易计数规划
interface TransactionCountPlan {
currentCount: number;
recommendations: Array<{
type: 'scale' | 'optimize' | 'monitor';
reason: string;
}>;
metadata: {
timestamp: number;
};
}
class TransactionCountPlanner {
private readonly maxTransactionsPerSecond = 1000;
private readonly minTransactionsPerSecond = 100;
async planTransactionCount(
config: { commitment?: string }
): Promise<TransactionCountPlan> {
const currentCount = await connection.getTransactionCount(config);
const recommendations: Array<{
type: 'scale' | 'optimize' | 'monitor';
reason: string;
}> = [];
if (currentCount > this.maxTransactionsPerSecond) {
recommendations.push({
type: 'scale',
reason: `Transaction count (${currentCount}) exceeds maximum (${this.maxTransactionsPerSecond})`
});
}
if (currentCount < this.minTransactionsPerSecond) {
recommendations.push({
type: 'optimize',
reason: `Transaction count (${currentCount}) below minimum (${this.minTransactionsPerSecond})`
});
}
return {
currentCount,
recommendations,
metadata: {
timestamp: Date.now()
}
};
}
}