Skip to content

在 EKS 上运行区块链节点测验 ​

本测验检查你对 StatefulSet 配置、存储、健康检查和硬分叉管理的理解。

选择题 ​

  1. 应根据什么标准决定是否在 EKS 上运行区块链节点?
    • A) 是否拥有至少 10 个节点
    • B) 节点周围是否还有其他工作负载(索引器、API、监控);若节点独立运行,在 EC2 上运行更简单
    • C) 区块链是公有链还是私有链
    • D) 是否运行验证者
显示答案

答案:B) 节点周围是否还有其他工作负载(索引器、API、监控);若节点独立运行,在 EC2 上运行更简单

说明:区块链节点与 Kubernetes 的部分优势不太契合,例如快速重新调度、水平扩展和滚动更新。仍选择 EKS 的理由包括运维标准化、管理多条链和多个环境,以及与周边组件集成。如果集群中已有索引器、API 和监控,将节点与它们放在一起很合理;如果只运行一个验证者,EKS 的抽象会增加复杂性,却没有带来收益。

  1. 为什么区块链节点的 StatefulSet 应设置较长的 terminationGracePeriodSeconds?
    • A) 拉取镜像需要时间
    • B) 客户端在关闭时必须将内存状态刷新到磁盘;强制终止可能损坏数据库并要求重新同步
    • C) 必须通知 P2P 对等节点正在关闭
    • D) 卷卸载需要时间
显示答案

答案:B) 客户端在关闭时必须将内存状态刷新到磁盘;强制终止可能损坏数据库并要求重新同步

说明:默认的 30 秒通常不够。区块链客户端会在内存中缓存状态,关闭时必须将其刷新到磁盘。强制终止(SIGKILL)可能导致 DB 在写入过程中损坏,因此必须重新同步,而这可能耗时数小时到数天。同样,内存限制也应留有充足余量;OOM kill 也是一种强制终止。

  1. 为什么区块链节点存储会先遇到 IOPS 瓶颈,而不是容量瓶颈?
    • A) 链数据经过压缩
    • B) 遍历和更新状态 Trie(Merkle Patricia Trie 等)会访问分散的键,属于随机访问模式
    • C) 区块只会按顺序写入
    • D) 快照频繁创建
显示答案

答案:B) 遍历和更新状态 Trie(Merkle Patricia Trie 等)会访问分散的键,属于随机访问模式

说明:区块链节点的磁盘使用中,大部分是随机读写。如果容量充足但 IOPS 不够,同步就会落后;落后的节点也无法提供服务。这就是 gp3 的关键优势:可将 IOPS 和吞吐量独立于容量设置。gp2 会按容量固定 IOPS,因此要增加 IOPS,就必须购买并不需要的额外容量。

  1. 为什么不能将同步状态放进 liveness probe?
    • A) 同步检查会增加 RPC 负载
    • B) 落后的节点会重启,重启后落后更多,然后再次重启,形成无限循环
    • C) liveness probe 不支持 exec 方法
    • D) 只有 readiness 才能查询同步状态
显示答案

答案:B) 落后的节点会重启,重启后落后更多,然后再次重启,形成无限循环

说明:Liveness 只应检查“进程是否存活并能响应”。将同步检查放入 liveness 会终止落后的节点,而重启又会进一步延缓同步,使其永远无法追上。相反,readiness 必须包含同步状态;否则落后的节点会接收流量,并根据陈旧链数据返回错误结果。这种区分是区块链节点健康检查的关键。

  1. 你已允许入站 P2P 流量,但仍没有对等节点连接。一种典型的原因是什么?
    • A) 缺少 Security Group 规则
    • B) 未配置通告地址:容器内部看到的 Pod IP 与外部可访问地址不同,因此其他对等节点无法连接
    • C) 只开放了 UDP 端口,没有开放 TCP
    • D) 对等节点数量上限设为 0
显示答案

答案:B) 未配置通告地址:容器内部看到的 Pod IP 与外部可访问地址不同,因此其他对等节点无法连接

说明:P2P 协议会向对等节点通告自身地址。如果容器内部看到的地址(Pod IP)与外部可访问的地址(节点公网 IP、LB 地址)不同,对等节点就无法连接到通告的地址。大多数客户端提供类似 --nat extip:<addr> 的选项,不配置该选项时,即使开放入站端口也不会有对等节点连接。由于每个 Pod 都必须通告不同的地址,因此需要使用 StatefulSet 序号或 downward API 编写初始化逻辑。

  1. 为区块链工作负载分配专用工作节点时,为什么仍需谨慎设置 CPU 限制?
    • A) CPU 限制会影响内存使用
    • B) 专用节点会减少租户间资源争用,但系统守护进程仍需要预留资源和余量
    • C) 在专用节点上 CPU 限制会被忽略
    • D) Guaranteed QoS 要求使用专用节点
显示答案

答案:B) 专用节点会减少租户间资源争用,但系统守护进程仍需要预留资源和余量

说明:Kubelet、CNI/CSI、监控和操作系统服务仍需要资源。即使不设置应用程序 CPU 限制,也要测试持续负载和节点健康情况。

  1. Pectra 的 EIP-7251 带来了什么运维影响?
    • A) 节点磁盘要求减半
    • B) EIP-7251 允许符合条件的验证者合并,但验证者密钥与进程或 VM 并非一一对应
    • C) 执行客户端与共识客户端合并为一个
    • D) 硬分叉计划减少为每年一次
显示答案

答案:B) EIP-7251 允许符合条件的验证者合并,但验证者密钥与进程或 VM 并非一一对应

说明:一个验证者客户端可以管理多个密钥。验证者记录/密钥管理工作减少,并不能证明基础设施或成本也会按比例减少。

  1. 哪项维护操作可以应对 Fabric MSP/TLS 证书到期?
    • A) Orderer Raft 共识失败
    • B) 监控 MSP/TLS 证书到期,并结合通道、策略和共识运维演练续期流程
    • C) Chaincode 执行错误
    • D) 通道策略冲突
显示答案

答案:B) 监控 MSP/TLS 证书到期,并结合通道、策略和共识运维演练续期流程

说明:证书到期是一项明确的风险,但本文并未通过测量证明它是最常见的故障原因。还应验证 Operator 兼容性和 Peer 交易验证行为。

  1. 硬分叉后必须进行什么验证?
    • A) 重启 Pod
    • B) 将区块哈希与其他节点及公共区块浏览器比较,确认位于同一条链
    • C) 重新计算存储容量
    • D) 重置对等节点列表
显示答案

答案:B) 将区块哈希与其他节点及公共区块浏览器比较,确认位于同一条链

说明:不兼容的客户端可能停止跟随规范链,或在激活后发生分叉;进程存活并不意味着运行正确。应在相同区块高度和最终性状态下,对比相互独立且可信的节点或浏览器所返回的哈希,并考虑正常传播延迟和同步滞后。还要结合客户端版本、分叉识别和同步检查来判断,不能把互不相关的最新链头或某一个浏览器视为决定性证据。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。