AvalancheGo API使用指南:完整接口文档和示例
AvalancheGo API使用指南:完整接口文档和示例
【免费下载链接】avalanchegoGo implementation of an Avalanche node.项目地址: https://gitcode.com/gh_mirrors/ava/avalanchego
AvalancheGo是Avalanche节点的Go语言实现,提供了丰富的API接口用于节点管理、健康监控和区块链交互。本文将详细介绍AvalancheGo的API体系结构、核心接口使用方法以及实际调用示例,帮助开发者快速上手节点开发和集成。
一、API体系概览
AvalancheGo的API接口按照功能分为多个模块,主要包括:
- Admin API:节点管理与调试接口,默认禁用,需手动开启
- Health API:节点健康状态监控接口
- Info API:节点信息查询接口
- Metrics API:性能指标收集接口
- VM-specific APIs:各虚拟机(如AVM、PlatformVM)专用接口
所有API均遵循JSON-RPC 2.0规范,默认通过9650端口提供服务,基础路径为/ext。
二、Admin API使用详解
Admin API提供高级节点管理功能,包括链别名设置、日志级别调整和性能分析等。
2.1 启用Admin API
默认情况下Admin API是禁用的,需要通过启动参数开启:
./avalanchego --api-admin-enabled=true接口文档位于:api/admin/service.md
2.2 核心方法示例
2.2.1 链别名管理
为区块链设置别名,简化API调用:
curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"admin.aliasChain", "params": { "chain":"sV6o671RtkGBcno1FiaDbVcFv2sG5aVXMZYzKdP4VQAWmJQnM", "alias":"myBlockchainAlias" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin设置后可通过别名访问链:/ext/bc/myBlockchainAlias
2.2.2 日志级别调整
动态修改节点日志级别:
curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"admin.setLoggerLevel", "params": { "loggerName": "C", "logLevel": "DEBUG", "displayLevel": "INFO" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin2.2.3 性能分析
启动CPU性能分析:
# 开始分析 curl -X POST --data '{"jsonrpc":"2.0","id":1,"method":"admin.startCPUProfiler","params":{}}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin # 停止分析(结果保存到cpu.profile) curl -X POST --data '{"jsonrpc":"2.0","id":1,"method":"admin.stopCPUProfiler"}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin三、Health API监控节点状态
Health API提供节点健康状态检查功能,帮助监控节点运行状况。接口文档位于:api/health/service.md
3.1 基本健康检查
使用GET请求获取节点健康状态:
# 检查整体健康状态 curl http://localhost:9650/ext/health # 检查节点就绪状态 curl http://localhost:9650/ext/health/readiness健康节点返回状态码200,不健康节点返回503。
3.2 过滤检查结果
按子网ID过滤健康检查结果:
curl 'http://localhost:9650/ext/health?tag=29uVeLPJB1eQJkzRemU8g8wZDw5uJRqpab5U2mX9euieVwiEbL'3.3 JSON-RPC调用示例
获取详细健康检查信息:
curl -H 'Content-Type: application/json' --data '{ "jsonrpc":"2.0", "id" :1, "method" :"health.health", "params": { "tags": ["11111111111111111111111111111111LpoYY"] } }' 'http://localhost:9650/ext/health'响应包含各链(C链、P链、X链)的共识状态、网络连接情况和资源使用信息。
四、其他常用API接口
4.1 Info API
获取节点基本信息,接口文档位于:api/info/service.md
curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"info.getNodeID" }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info4.2 Metrics API
获取节点性能指标,接口文档位于:api/metrics/service.md
# 获取所有指标 curl http://localhost:9650/ext/metrics # 获取特定指标 curl http://localhost:9650/ext/metrics?metrics=avalanche_node_peer_count五、API调用最佳实践
5.1 安全注意事项
- 生产环境中应限制Admin API访问,仅允许可信IP
- 使用HTTPS加密传输敏感数据
- 避免在公网暴露API端口,通过反向代理控制访问
5.2 错误处理
API调用失败时,响应中会包含error字段:
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32602, "message": "invalid parameter" } }常见错误码:
-32602:参数无效-32603:内部错误-32000:服务器错误
5.3 批量请求
支持批量API调用,减少网络往返:
curl -X POST --data '[ {"jsonrpc":"2.0","id":1,"method":"info.getNodeID"}, {"jsonrpc":"2.0","id":2,"method":"health.health"} ]' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X六、总结
AvalancheGo提供了全面的API接口,涵盖节点管理、监控和区块链交互等功能。通过Admin API可以进行高级节点配置,Health API可实时监控节点状态,而各虚拟机专用API则支持链上操作。
开发人员可以通过官方文档和接口定义文件深入了解每个API的详细参数和返回值,结合本文提供的示例快速集成AvalancheGo节点功能。
无论是构建区块链应用、开发钱包还是运行节点,掌握这些API接口都是高效开发的关键。建议在开发过程中结合具体使用场景选择合适的API,并遵循安全最佳实践保护节点和数据安全。
【免费下载链接】avalanchegoGo implementation of an Avalanche node.项目地址: https://gitcode.com/gh_mirrors/ava/avalanchego
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
