Brave
@47c132035ed7a1105a867946b99d67af Cardano研究小组 公开
讨论 Koios 科普:假如 Blockfrost 关停,Cardano 链上 API 怎么办

Koios 科普:假如 Blockfrost 关停,Cardano 链上 API 怎么办

背景:Blockfrost 发生了什么

2026 年 6 月 26 日,Blockfrost 团队向 Cardano 链上治理提交了一笔 Treasury 提款提案,请求 9,832,979 ADA(约 983 万 ADA),用于将其托管基础设施过渡为社区治理的非营利组织,并继续运营免费公开 API。

此前 Blockfrost 曾提交过一个更庞大的提案(合并了 Project Cayley 去中心化索引架构),未获足够的治理支持。本次提案范围收窄,仅聚焦于所有权移交、服务延续和社区监督。

提案的关键时间线:

事件日期
提案提交2026-06-26
投票开始2026-06-26
投票截止2026-07-28(今天)
投票方DRep(代表)、宪法委员会(CC)

Charles Hoskinson 明确表态:无论提案结果如何,IOG 对 Blockfrost 的所有权和运营责任都将在 2026 年底结束。如果提案通过,Blockfrost 将有序移交社区非营利组织,API 继续运行;如果提案被拒,Blockfrost 将逐步关停其 hosted API 服务。

"关停 Hosted API"具体意味着什么

Blockfrost 提供的不是"一条 API"而是三层服务:

  1. Cardano 数据查询层——通过 REST API 查询区块、交易、地址、UTxO、原生资产、质押信息等。这是最常见的用法。
  2. 交易提交层——通过 submit API 向链上提交交易。钱包和 dApp 依赖这个功能将用户交易广播到网络。
  3. IPFS/Filecoin 网关——存储和检索 IPFS 数据(主要与 NFT 元数据相关)。

关停的顺序和影响:

  • Free / Hobby / Developer / Enterprise 所有 tier 逐步下线,Starter tier 曾标注"till hell freezes over"但实际为 marketing 措辞,不受承诺保护
  • 依赖 Blockfrost 的钱包(如 Eternl、Typhoon、Flint)和 dApp 前端需要紧急切换数据源
  • Cardano 主网约 50% 以上的交易流量经过 Blockfrost 的 submit API(根据 Hoskinson 的陈述),关停后这部分流量需要被其他 submit API 承载
  • 对于 SPO 的出块操作本身无影响(SPO 直接运行 cardano-node,不依赖 Blockfrost),但依赖 Blockfrost 的周边工具和查询脚本会失效

如果提案通过会怎样

即使提案通过,过渡也需要时间:

里程碑时间
成立非营利组织框架,发布过渡架构2026 Q3
公开 API 使用情况和可用性仪表板2026 Q3
链上选举社区委员会2026 Q4
所有公共 API 流量迁移到新栈2027 Q1
IP、商标、域名移交社区2027 Q1

在过渡期间,Blockfrost 承诺保持 99% 月度正常运行时间。过渡结束后,新设的非营利组织将继续运营一个免费的公共 API,不设付费 tier。

换句话说:最好的情况下,你在 2027 年 Q1 之前需要迁移。最坏的情况下,你现在就需要迁移。


Koios 是什么

Koios(发音 /ˈkɔɪ.ɒs/,源自古希腊语 Κοιος,意为"提问、探究",也是泰坦神族的智慧之神)是一个去中心化、弹性、完全开源的 Cardano 区块链 REST API 查询层。

项目始于 2021 年,由 Guild Operators(Cardano 社区最资深的 SPO 工具开发者群体)创建和维护。采用 MIT 开源协议,核心代码、SQL 查询、API 规范、测试套件全部托管于 GitHub。

一句话概括:Blockfrost 能查的数据 Koios 都能查,而且不需要 API Key,没有单点故障,不会被关停。

设计目标

Koios 的设计围绕四个原则:

弹性(Elastic) ——任何人都可以运行自己的实例,也可以选择加入公共集群。节点越多,集群越强。不像传统中心化 API 那样,用户增加 = 供应商成本增加 = 涨价或限流。

去中心化(Decentralized) ——没有单一实体控制 API 层。即使 Koios DAO 明天解散,所有已部署的开源代码和数据库 schema 仍然存在,任何人都可以继续运行。

开放标准(Open Standards) ——所有 SQL 查询、端点定义、测试用例公开。开发者可以审查每一个端点返回的数据是否准确,也可以提交改进。

低门槛(Low Barrier) ——公共端不需要注册、不需要 API Key、不需要 gas 费。5,000 次/天免费额度对个人工具和原型开发完全够用。


架构深度解析

Koios 完整节点(称为 gRest)是一个五层堆栈。理解这五层有助于你判断:你需要在哪一层介入。

                                    ┌──────────────────────────────┐
                                    │      HAProxy (端口 8053)      │ ← 暴露层
                                    │  负载均衡 / 健康检查 / SSL    │
                                    └──────────┬───────────────────┘
                                               │
                                    ┌──────────▼───────────────────┐
                                    │     PostgREST (端口 8050)     │ ← 接口层
                                    │   SQL → JSON RESTful API     │
                                    └──────────┬───────────────────┘
                                               │
                                    ┌──────────▼───────────────────┐
                                    │    PostgreSQL (端口 5432)      │ ← 存储层
                                    │  规范化的索引数据 + 缓存表     │
                                    └──────────┬───────────────────┘
                                               │
                                    ┌──────────▼───────────────────┐
                                    │  cardano-db-sync              │ ← 解析层
                                    │ 链上数据 → 关系型数据库        │
                                    └──────────┬───────────────────┘
                                               │
                                    ┌──────────▼───────────────────┐
                                    │   cardano-node (端口 6000)    │ ← 基底层
                                    │   P2P 同步、验证、存储         │
                                    └──────────────────────────────┘

第 1 层:Cardano Node(基底层)

就是标准的 cardano-node 进程,通过 P2P 网络同步完整的 Cardano 区块链数据。如果你已经是 SPO,你这层已经跑着,不需要额外配置。

关键配置点:

  • 拓扑文件(topology.json)配置 peer 连接
  • 数据库路径(--database-path)建议放在 SSD 上
  • 需要启用 --socket-path 供 db-sync 连接

第 2 层:DBSync(解析层)

cardano-db-sync 进程持续读取 cardano-node 的链上数据,将其解析并写入 PostgreSQL。这是整个堆栈中最消耗资源的部分。

数据覆盖范围:

  • 区块头、区块体、交易
  • 输入/输出(UTxO)
  • 地址、质押地址
  • 原生资产(Native Assets)——包括 NFT
  • Plutus 脚本和 datum
  • 池注册、更新、退休
  • 委托操作
  • 奖励和 MIR
  • 治理操作

全量同步耗时(主网):

  • 从 0 开始:约 24-48 小时(取决于硬件和网络)
  • 持续同步:基本实时,滞后通常 < 10 秒

第 3 层:PostgreSQL(存储层)

存储 db-sync 写入的原始数据,外加 Koios 自定义的缓存表和物化视图。这是 Koios 性能优化的核心——预计算耗时查询(如池的活跃质押量、地址资产余额),避免每次请求都扫描全表。

关键表(非完整列表):

表名用途行数级(主网)
block区块1.1 亿+
tx交易1.5 亿+
tx_out交易输出4 亿+
address地址2.5 亿+
stake_address质押地址500 万+
pool_owner池所有者3,000+
pool_hash池哈希4,000+
asset原生资产元数据1,000 万+
asset_mint铸造/销毁记录2,000 万+
ma_tx_out_mint交易中的资产关联3 亿+

Koios 额外创建的缓存表(以 grekoios schema 存储):

  • grekoios.account_info_cache——质押地址缓存信息
  • grekoios.epoch_active_stake_cache——每个 epoch 的活跃质押量
  • grekoios.pool_history_cache——池历史汇总
  • grekoios.asset_registry_cache——代币注册表元数据

第 4 层:PostgREST(接口层)

PostgREST 是一个工具:它读取 PostgreSQL 数据库 schema,自动为每个表/视图生成 RESTful 端点。Koios 团队编写了专门的 SQL 函数(RPC),映射到每个 API 端点。

例如,account_info 端点的背后是一个 PostgreSQL 函数:

CREATE FUNCTION grekoios.api_account_info(_stake_addresses text[])
RETURNS TABLE (
    stake_address text,
    status text,
    delegated_pool text,
    total_balance numeric,
    utxo_balance numeric,
    rewards_available numeric,
    ...
) LANGUAGE plpgsql STABLE
AS $$
    -- 复杂的多表 JOIN 和聚合查询
$$;

PostgREST 将这个函数暴露为 POST /rpc/account_info(在 Koios 中路由为 POST /api/v0/account_info)。

这种设计的优势:

  • 查询逻辑完全透明——所有 SQL 在 GitHub 上公开可审查
  • 性能可预测——每个端点的查询计划(query plan)固定
  • 扩展方便——社区成员可直接贡献新的 SQL 函数

第 5 层:HAProxy(暴露层)

HAProxy 作为反向代理,提供:

  • TLS 终止——将外部 HTTPS 请求转换为内部 HTTP
  • 健康检查——定期检查后端 postgREST 是否响应、数据是否最新(通过对比 tip 时间戳)
  • 负载均衡——在多实例集群下分发请求
  • 速率限制——根据 tier 级别控制请求频率
  • DDoS 防护——尖峰流量时的请求排队和丢弃策略

健康检查的核心逻辑:HAProxy 定期调用 /tip 端点,检查返回的 block_no 是否在可接受的时间窗口内(通常 < 60 秒)。如果某个实例落后太多,HAProxy 自动将其从集群中移除,直到它重新追上。


与 Blockfrost 的详细对比

通用维度

维度BlockfrostKoios
运营主体Five Binaries OÜ(IOG 子公司)Koios DAO(社区)
治理模型公司决策双周公开会议 + 社区投票
开源范围后端(RYO)开源,核心基础设施闭源全部开源(MIT)
首次发布2020 年2021 年
当前版本v1.4.0(主网),v1.4.1(测试网)
网络覆盖主网、Preview、Preprod、Midnight主网、Preview、Preprod
认证方式project_id header(每个项目独立 key)无需认证(公共层),JWT(注册/付费层)
关停风险有(2026 年底 IOG 退出)无(无单一关停决策者)
费用模式免费 Starter + 付费 Hobby/Developer/Enterprise公共层免费 + Free(注册)免费 + Pro/Premium 付费
免费额度50,000 次/天5,000 次/天(公共),50,000 次/天(注册 Free)

API 能力维度

能力BlockfrostKoios
批量查询不支持(逐条查)支持(POST 批量查,一次最多 25-100 条)
端点数量~60+~50+
水平过滤有限(cursor 分页)完整(任意字段过滤 + 排序 + 分页)
返回格式JSONJSON
OpenAPI 规范
Webhook 支持无(但可通过 polling 替代)
IPFS 网关
Submit API有(通过 cardano-submit-api)

数据一致性维度

维度BlockfrostKoios
数据源自建 node + db-sync 集群多节点独立 node + db-sync
延迟亚秒(中心化基础设施)亚秒至数秒(取决于节点,通常 < 5s)
容错单集群,多 region 部署多实例自动 failover
数据校验不可公开审计所有 SQL 可审计,端点可独立验证

API 端点逐一详解

以下按功能类别列出每个端点及其典型用途、请求示例和响应字段说明。

账户(Account)


GET /api/v0/account_list

获取所有至少有一笔交易的质押地址列表。通常在需要遍历所有活跃账户时使用。

请求参数:

  • ?order=asc——排序方向
  • ?limit=1000——每页数量

响应示例(精简):

[
  {"stake_address": "stake1u9...", "first_tx_time": 1623456789},
  {"stake_address": "stake1ux...", "first_tx_time": 1623456790}
]

POST /api/v0/account_info

查询一个或多个质押地址的完整信息。这是最常用的端点之一。

请求体:

{
  "_stake_addresses": [
    "stake1u9fzv...",
    "stake1uxp3..."
  ]
}

响应字段:

字段说明
stake_address质押地址 bech32
statusregisteredderegistered
delegated_pool委托的池 ID(bech32),未委托时为 null
total_balance总余额(UTxO + 奖励 - 已提取奖励)
utxo_balance控制 UTxO 中的 ADA 总量
rewards累计奖励总额
withdrawals已提取奖励总额
rewards_available当前 epoch 可提取的奖励
reserves储备金奖励

GET /api/v0/account_utxos

查询给定质押地址下的所有 UTxO。

请求参数:?stake_address=stake1u9...

过滤参数:

  • &order=desc——按交易时间降序
  • &limit=50——每页 50 条
  • &offset=0——偏移量

响应字段:

字段说明
tx_hash交易哈希
tx_index输出索引
address接收地址
valueADA 金额(lovelace)
stake_address关联质押地址
asset_list该 UTxO 中的原生资产列表(policy_id, asset_name, quantity)
block_height所在区块高度
block_time区块时间戳

POST /api/v0/account_assets

查询质押地址持有的所有原生资产(含 NFT)。如果你需要查某个地址下有哪些 NFT,就是用这个端点。

请求体:

{
  "_stake_addresses": ["stake1u9fzv..."]
}

响应字段:

字段说明
stake_address质押地址
asset_list数组,每个元素包含 policy_idasset_name(hex)、quantity
asset_list[].fingerprint资产指纹(asset1...)
asset_list[].decimals小数位数(NFT 通常是 0)

POST /api/v0/account_rewards

查询质押地址的奖励历史(含 MIR)。

请求体:

{
  "_stake_addresses": ["stake1u9fzv..."]
}

过滤参数:?epoch_no=500(指定 epoch)

响应字段:

字段说明
earned_epoch奖励所属 epoch
spendable_epoch奖励可花费 epoch
amount奖励金额(lovelace)
type奖励类型:member(池奖励)、leader(出块奖励)、treasuryreservesmir

POST /api/v0/account_updates

查询质押地址的变更历史:注册、注销、委托更新、提现。

请求体:

{
  "_stake_addresses": ["stake1u9fzv..."]
}

响应字段:

字段说明
action_typeregistrationderegistrationdelegationwithdrawal
tx_hash该操作的交易哈希
epoch_no操作所在 epoch
epoch_slot操作所在 slot

POST /api/v0/account_history

查询质押地址在每个 epoch 的委托状态和余额历史。

请求体:

{
  "_stake_addresses": ["stake1u9fzv..."]
}

响应字段:

字段说明
pool_id该 epoch 委托的池 ID
epoch_noepoch 编号
active_stake该 epoch 的活跃质押量
rewards该 epoch 获得的奖励

地址(Address)


POST /api/v0/address_info

查询一个或多个地址的详细信息。

请求体:

{
  "_addresses": ["addr1qx...", "addr1qy..."]
}

响应字段:

字段说明
addressbech32 地址
balance地址余额(lovelace)
stake_address关联的质押地址
script是否为脚本地址
utxo_set该地址下的 UTxO 列表(可选展开)

POST /api/v0/address_txs

查询地址的交易历史(可选指定起始区块高度)。

请求体:

{
  "_addresses": ["addr1qx..."],
  "_after_block_height": 9000000
}

响应字段:

字段说明
tx_hash交易哈希
block_height区块高度
block_time区块时间
epoch_noepoch 编号

POST /api/v0/address_assets

查询地址持有的所有原生资产。如果你需要在非质押地址(如合约地址)下查资产,用这个而不是 account_assets。

请求体:

{
  "_addresses": ["addr1qx..."]
}

响应: 每个资产的 policy_idasset_namequantity


资产 / NFT(Asset)


GET /api/v0/asset_list

获取所有已铸造的原生资产分页列表。数据量极大(主网已超过 1,000 万种资产),通常配合搜索使用。

过滤参数:

  • ?policy_id=...——按 policy 过滤
  • ?asset_name=...——按名称过滤(hex)

POST /api/v0/asset_info

批量查询资产的详细信息。查 NFT 元数据(metadata、name、description、image URL 等)就用这个端点。

请求体:

{
  "_asset_list": [
    "policy_id_hex.asset_name_hex",
    "policy_id_hex.asset_name_hex"
  ]
}

响应字段:

字段说明
policy_id策略 ID(hex)
asset_name资产名称(hex)
fingerprint资产指纹
minting_tx_hash首次铸造交易
minting_tx_time首次铸造时间
decimals小数位数
total_supply总供应量
metadata资产元数据(JSON,含 name、image、description 等)
token_registry_metadata官方代币注册表元数据

GET /api/v0/asset_history

查询资产的铸造(mint)和销毁(burn)历史。

请求参数:?asset_policy=policy_id_hex&asset_name=asset_name_hex

响应字段:

字段说明
tx_hash交易哈希
mint_quantity正数=铸造,负数=销毁
block_time区块时间

GET /api/v0/asset_addresses

查询持有某资产的所有地址。注意:对于高交易量的资产(如热门 NFT 项目),数据量极大,公共层可能超时。


GET /api/v0/policy_asset_info | policy_asset_list | policy_asset_addresses

这三组端点与资产类似,但作用域是一个 policy ID 下的所有资产。适合查"同一个 NFT 集合下的所有资产"。


交易(Transaction)


POST /api/v0/tx_info

批量查询交易详情。这是 Koios 相对 Blockfrost 的核心优势之一——一次查多条交易。

请求体:

{
  "_tx_hashes": [
    "abc123...",
    "def456..."
  ]
}

响应字段(每个交易):

字段说明
tx_hash交易哈希
block_height区块高度
block_time区块时间
inputs输入列表(地址、value、资产)
outputs输出列表(地址、value、资产)
fee手续费
deposit质押存款(注册池时)
withdrawal提现
withdrawal_address提现地址
script_size脚本大小
invalid_beforeTTL 下界
invalid_hereafterTTL 上界
collateral_inputs抵押输入
reference_inputs参考输入

GET /api/v0/tx_utxos

查询交易的 UTxO 详情。

响应与 tx_info 的输出类似,但展开为每输入/输出一条记录。


POST /api/v0/tx_status

查询交易是否在链上被确认。

请求体:

{
  "_tx_hashes": ["abc123..."]
}

响应:

字段说明
tx_hash交易哈希
num_confirmations确认数(0 = 未上链)

池(Pool)


GET /api/v0/pool_list

所有当前注册或正在退休(未完成退休)的池列表。

过滤参数:?status=registered(或 retiring


POST /api/v0/pool_info

查询一个或多个池的详细信息。SPO 查自己或其他池的数据,这是最主要的端点之一。

请求体:

{
  "_pool_bech32_ids": ["pool1..." , "pool1..."]
}

响应字段:

字段说明
pool_id_bech32池 ID(bech32)
pool_id_hex池 ID(hex,VRF key hash)
active_epoch_no池活跃起始 epoch
vrf_key_hashVRF 密钥哈希
margin池利润率(如 0.01 = 1%)
fixed_cost固定成本(ADA)
pledge质押承诺(ADA)
pool_owners所有者地址列表
pool_statusregistered / retiring / retired
retiring_epoch退休 epoch(如果正在退休)
pool_size当前总委托量
live_stake当前实时质押
live_delegators当前委托人数量
live_saturation当前饱和度(百分比,如 0.85 = 85%)

GET /api/v0/pool_stake_snapshot

获取池的 Mark、Set、Go 三个快照点数据。这对 SPO 计算 leaderlog(出块概率)极其关键。

请求参数:?pool_bech32=pool1...

响应:

字段说明
snapshot快照类型:mark / set / go
epoch_no快照对应的 epoch
stake该快照点的质押量
pool_stake池委托量
active_stake全网活跃质押量

GET /api/v0/pool_delegators

查池的所有委托人和各自的质押量。

请求参数:?pool_bech32=pool1...

响应:

字段说明
stake_address委托人质押地址
amount该地址委托的 ADA 量
epoch_no委托生效 epoch

GET /api/v0/pool_blocks

查池的出块记录。

请求参数:?pool_bech32=pool1...&epoch_no=500

响应:

字段说明
epoch_noepoch 编号
block_height区块高度
block_time出块时间
slot_noslot 编号
block_hash区块哈希

GET /api/v0/pool_history

查池的历史数据:每个 epoch 的委托量、奖励、费用。

响应:

字段说明
epoch_noepoch 编号
active_stake该 epoch 活跃质押
pool_fees池收取的费用
pool_rewards池总奖励
delegators委托人数量
delegator_rewards分配给委托人的奖励
epoch_ros该 epoch 的收益率(ROI)

POST /api/v0/pool_metadata

查池的链上元数据(名称、描述、网站、logo URL 等)。

请求体:

{
  "_pool_bech32_ids": ["pool1..."]
}

响应:

字段说明
pool_id_bech32池 ID
meta_url元数据 URL
meta_hash元数据 JSON 的哈希
meta_json解析后的元数据 JSON(如 name、ticker、homepage、description)

Epoch & 网络


GET /api/v0/epoch_info

查 epoch 信息。可选指定 epoch 编号,不指定则返回当前 epoch。

请求参数:?epoch_no=500

响应:

字段说明
epoch_noepoch 编号
out_sum该 epoch 交易输出总和(ADA)
fees该 epoch 手续费总和
tx_count交易总数
block_count区块总数
start_timeepoch 开始时间
end_timeepoch 结束时间
active_stake全网活跃质押量

GET /api/v0/tip

查链的当前尖端——最新区块号、哈希和 slot。

响应:

字段说明
block_no最新区块高度
block_hash最新区块哈希
slot_no当前 slot 编号
epoch_no当前 epoch 编号

脚本(Script)


POST /api/v0/datum_info

查询 datum 信息。对 Plutus 智能合约开发者有用。

请求体:

{
  "_datum_hashes": ["hash1..."]
}

从 Blockfrost 迁移:逐端点的具体对照

curl 示例对照

查询地址详情

Blockfrost(GET + API Key):

curl -H "project_id: mainnetXXX" \
  "https://cardano-mainnet.blockfrost.io/api/v0/addresses/addr1qx..."

Koios(POST,无需认证):

curl -X POST "https://api.koios.rest/api/v0/address_info" \
  -H "Content-Type: application/json" \
  -d '{"_addresses": ["addr1qx..."]}'

查询地址 UTxO

Blockfrost:

curl -H "project_id: mainnetXXX" \
  "https://cardano-mainnet.blockfrost.io/api/v0/addresses/addr1qx.../utxos"

Koios:

curl -X GET "https://api.koios.rest/api/v0/account_utxos?stake_address=stake1u9..."

查询资产/NFT 信息

Blockfrost:

curl -H "project_id: mainnetXXX" \
  "https://cardano-mainnet.blockfrost.io/api/v0/assets/policy_id_hexasset_name_hex"

Koios(批量查):

curl -X POST "https://api.koios.rest/api/v0/asset_info" \
  -H "Content-Type: application/json" \
  -d '{"_asset_list": ["policy_id_hex.asset_name_hex"]}'

查询池详情

Blockfrost:

curl -H "project_id: mainnetXXX" \
  "https://cardano-mainnet.blockfrost.io/api/v0/pools/pool1..."

Koios:

curl -X POST "https://api.koios.rest/api/v0/pool_info" \
  -H "Content-Type: application/json" \
  -d '{"_pool_bech32_ids": ["pool1..."]}'

查询池委托人

Blockfrost:

curl -H "project_id: mainnetXXX" \
  "https://cardano-mainnet.blockfrost.io/api/v0/pools/pool1.../delegators"

Koios:

curl -X GET "https://api.koios.rest/api/v0/pool_delegators?pool_bech32=pool1..."

关键迁移注意事项

  1. 认证从 header 改为无 — 移除所有 project_id header
  2. 路径模式变化 — Blockfrost 用路径参数(/pools/{pool_id}),Koios 用 POST body({_pool_bech32_ids: [...]})或 query 参数
  3. 批量查询利用 — Blockfrost 逐条查的地方,Koios 可以合并为一次 POST 批量查,大幅减少请求次数
  4. 返回字段名不同 — 例如 Blockfrost 的 amount 在 Koios 中可能是 total_balance,需要对照 API 文档逐个映射
  5. 分页方式 — Blockfrost 使用 cursor 分页(page/page_total),Koios 使用标准 limit/offset 分页
  6. 速率控制 — 公共层 100 请求/10 秒,如果现有代码在 Blockfrost 上用量较高,迁移后需要调整请求间隔

费率层级详解

层级费用日配额速率限制超时限制CORS
Public免费5,000 次/天100 次/10 秒30 秒受限
Free免费(需注册)50,000 次/天100 次/10 秒30 秒开放
Pro~$29.99/月500,000 次/天250 次/10 秒60 秒开放
Premium~$74.99/月1,200,000 次/天500 次/10 秒120 秒开放
Custom定制不限可协商可协商开放

对 SPO 而言:

  • 个人查询和监控脚本:Public 层(5,000 次/天)绰绰有余
  • 池网站/工具产品化:注册 Free 层(50,000 次/天),0 成本
  • 高流量商业应用:Pro 或 Premium 层

注:API token 在主网和测试网之间分开计数,但 Preview 和 Preprod 共享额度。


SPO 工具生态

前面提到 Koios 的核心维护者就是 Guild Operators 社区。这个社区不只是做 API,Cardano SPO 日常运营的核心工具全部来自他们。

CNTools

功能覆盖:

类别具体命令说明
钱包管理new-wallet / wallet-list创建/列出 HD 钱包
地址管理gen-payment-addr / gen-stake-addr生成支付/质押地址
转账send / send-to-enterpriseADA 和原生资产转账
委托stake-delegation / delegate委托/取消委托
池管理register-pool / update-pool / retire-pool完整池生命周期
奖励rewards / withdraw查看和提取奖励
Key 管理gen-vrf-key / gen-kes-key / gen-op-cert节点密钥轮换
多签build-multisig-tx / sign-multisig-tx多签交易构造

CNTools 底层已经集成了 Koios 查询层。如果你之前用的是 CNTools,你已经在间接使用 Koios。

gLiveView

运行方式:

# 启动交互界面
./gLiveView.sh

# 一次输出
./gLiveView.sh -o

实时显示数据面板:

┌─────────────────────────────────────────────────────────┐
│ Cardano Node Live View - Mainnet                        │
├─────────────────────────────────────────────────────────┤
│ Synced          : 99.98%    Tip             : 11234567  │
│ Block           : 11234567  Slot            : 98765432  │
│ Epoch           : 512       SlotInEpoch     : 345678    │
│ Forks           : 0         Seconds         : 0.3s      │
│ Mem (RSS)       : 2.4GB     Peers (In/Out)  : 3/8      │
│ Disk            : 98.3GB    Uptime          : 47d 12h   │
│ Version         : 10.1.3    Protocol        : Conway    │
└─────────────────────────────────────────────────────────┘

其他 Guild Operators 工具

工具用途
sLiveView质押池实时性能仪表板(类似 gLiveView 但侧重池指标)
Topology Updater自动更新 P2P 拓扑文件
Log Monitor节点日志实时监控和警报
EKG ExporterPrometheus 指标导出

所有这些工具都不依赖 Blockfrost。它们通过 cardano-node 的本地 Unix socket 或 Koios API 获取数据。


自建实例:分步指南

如果你决定跑自己的实例,有两种部署方式:

方式一:Guild Operators 一键脚本(推荐)

# 1. 安装 guild-operators 脚本库
git clone https://github.com/cardano-community/guild-operators.git
cd guild-operators
./prereqs.sh

# 2. 运行 gRest 部署脚本
./setup-grest.sh -f -i prmcd -q -b main

参数说明:

  • -f:完整安装(所有组件)
  • -i prmcd:安装模式(PostgreSQL + PostgREST + HAProxy + 监控 + 自定义端点)
  • -q:静默安装
  • -b main:分支名

脚本会自动:

  • 安装和配置 PostgreSQL 14+
  • 部署 PostgREST
  • 配置 HAProxy
  • 创建 Koios schema 和 RPC 函数
  • 设置 systemd 服务
  • 安装 Prometheus 指标导出器

方式二:Docker 部署

# PostgreSQL
docker run -d --name koios-postgres \
  -e POSTGRES_PASSWORD=secret \
  -v koios-pg-data:/var/lib/postgresql/data \
  postgres:14

# cardano-node + db-sync(通过 docker-compose 管理)
# 参考 https://github.com/input-output-hk/cardano-db-sync

# PostgREST(连接已有 PG)
docker run -d --name koios-postgrest \
  -e PGRST_DB_URI=postgres://user:pass@host:5432/cexplorer \
  -e PGRST_DB_SCHEMA=grekoios \
  -e PGRST_DB_ANON_ROLE=grekoios_anon \
  -p 8050:3000 \
  postgrest/postgrest

硬件建议

规模CPURAM磁盘(SSD)日均并发
私人使用4 核16 GB700 GB< 10
小团队8 核32 GB1 TB< 100
公共节点16 核64 GB2 TB1000+

加入公共集群

自建实例后,如果你愿意分享资源给社区:

  1. koios-artifacts/topology 提交 PR,提供你的节点连接信息
  2. 向监控实例开放 Prometheus Exporter 端口(8059)、HAProxy 端口(8053)和 Submit API 端口(8090)
  3. 跟进版本发布(通常周六 UTC 8:00,有变更日志预告)
  4. HAProxy 的健康检查会自动检测你的节点状态,通过后流量开始分发到你的实例

社区与治理

组织结构

Koios 由 Koios DAO 治理,不隶属于任何公司。治理结构:

  • 核心开发者:Guild Operators 的核心成员,负责代码审查、版本发布、架构决策
  • 实例提供者:运行 Koios 节点并加入公共集群的 SPO 和机构
  • DAO 参与者:持有治理 token 的社区成员(通过委托投票影响决策)

核心开发者来源于 Cardano 社区中最资深的贡献者——他们运营着自己的质押池,日常使用自己写的工具,有切身利益确保代码质量。

透明度

  • 所有代码:GitHub 公开
  • 开发进度:GitHub Project Board
  • 实例状态:公共 Grafana 仪表板(显示每个节点的同步状态、延迟、健康度)
  • 会议记录:双周公开会议(每月第 2 和第 4 个周四),讨论内容发布在 Telegram

如何参与

参与方式门槛
使用 API零门槛
提交 GitHub Issue零门槛
贡献 SQL 查询熟悉 PostgreSQL
运行实例有硬件资源
加入公共集群有稳定节点
参与治理关注双周会议

沟通渠道

渠道用途链接
Telegram 讨论日常技术交流t.me/CardanoKoios
Telegram 公告版本发布/维护通知公告频道
Discord深度技术讨论discord.gg/zSrC9WZbNN
GitHub代码/Issue/PRcardano-community/koios-artifacts
X (Twitter)一般动态@CardanoKoios
Bluesky一般动态koios.rest

总结:你现在应该做什么

优先级检查清单

时间事项说明
今天检查你的工具是否依赖 Blockfrostgrep 代码中的 blockfrost.io
今天注册 Koios Free 层获得 50,000 次/天的配额
本周逐个替换 API 端点对照本文的迁移对照表
本周验证所有替代端点数据一致用你现在用的数据做交叉对比
这月如果 Latency 敏感,自建 Koios 实例用 Guild Operators 一键脚本
2026 Q4关注提案结果决定是否需要加速迁移

最终一张表

 BlockfrostKoios
关停风险2026 年底 IOG 退出不存在
谁控制IOG(一家公司)社区 DAO
谁维护公司员工你的同行 SPO
认证方式API Key公开免费
费用超过免费层后付费公共/Free 免费,Pro 可选
开源性后端开源,核心闭源完全开源 MIT
迁移难度几个端点的变更

开始迁移koios.rest | API 文档api.koios.rest | GitHubcardano-community/koios-artifacts