Kaia 通过引入 EthereumTxTypeEnvelope 封裝交易类型,为开发者提供与以太坊主网近乎无差别的交易格式,核心关键词:Kaia 以太坊兼容、Kaia 以太坊交易类型、EthereumTxTypeEnvelope、EIP-1559、TxTypeEthereumAccessList、RLP 编码、Kaia RPC API。以下内容将用 1000-2000 字拆解技术细节,并穿插 FAQ 加速理解与落地。
1. 以太坊兼容性总览:为什么只需一行配置即可迁移
Kaia 在交易帧格式上保持与以太坊完全一致:属性、字段顺序、RLP 编码方案均无缝衔接,唯一新增的是“一个字节”的前缀——EthereumTxTypeEnvelope。
- 对
eth命名空间:调用eth_sendRawTransaction时,Kaia 会自动为您跳过该前缀,开发者像在以太坊主网一样签名广播即可。 - 对
kaia命名空间:使用kaia_getTransactionByHash时可同时检索 Kaia 原生交易与以太坊格式交易,互不冲突。
2. EthereumTxTypeEnvelope:一个字节的隔离墙
Kaia 需要兼容未来所有 EIP 交易类型,因此引入:
0x78- 仅出现于 原始交易 RawTransaction 与类型编号;
- 不进入 TxHash、签名哈希计算,确保与以太坊工具链保持一致;
- 占用空间小,不影响带宽冗余。
序列化流程一览:
RawTx = 0x78 || EthereumTransactionType || TransactionPayload在工作链上,该字节相当于“隐形标记”,帮助节点精准识别 EVM 兼容交易,而不与 Kaia 原生 JSON 交易混淆。
3. TxTypeEthereumAccessList:EIP-2930 在 Kaia 的映射
适用范围:EthTxTypeCompatibleBlock 之后的区块高度。
开发者须知
- 交易类型:设置为
0x7801(0x78为Envelope,0x01为AccessList)。 - 仅限 Legacy 账户:只有使用
AccountKeyLegacy的 EOA 方可发送,其他密钥需切换至 Kaia 原生交易类型。 - 无 Gas 折扣:与以太坊不同,Kaia 的访问列表不会减免费用,但可提前声明存储插槽,提升数据可预测性。
3.1 重要字段与含义
- nonce:防重放;
- accessList:地址与 storage key 列表,格式:
[ (地址, 存储键数组) ]; - v, r, s:ECDSA 签名,注意
chainId参与计算。
RLP 签名步骤:
SigRLP = 0x01 || RLP([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList])
SigHash = keccak256(SigRLP)
Signature = sign(SigHash)4. TxTypeEthereumDynamicFee:EIP-1559 的 Kaia 延伸
适用规则与 AccessList 类似,但新字段与费用逻辑需高度关注。
4.1 关键字段差异
- gasTipCap(Priority Fee):即“矿工小费”;
- gasFeeCap(Max Fee):用户愿意支付的上限;
- 类型值:
0x7802。
4.2 Kaia 固定 Gas 价带来的影响
出于网络稳定性考虑,Kaia 当前执行固定 Gas 价格机制,因此建议:
gasTipCap = gasFeeCap = 250 Gkei高于或低于此值都不会改变最终费用,仅保持字段一致,避免工具链报错。
RLP 签名步骤(动态费版本):
SigRLP = 0x02 || RLP([chainId, nonce, gasTipCap, gasFeeCap, gasLimit, to, value, data, accessList])5. JSON RPC 输出:eth 与 kaia 对比
以下摘录真实回包字段差异,助开发者在调试日志里快速确认使用场景:
- eth_getTransactionByHash:
type字段返回十六进制字符串"0x1"或"0x2",与以太坊完全一致。 kaia_getTransactionByHash:
typeInt显示 Kaia 内部数值(AccessList 为30721,DynamicFee 为30722);signatures数组包含完整的V R S。
通过对比可见:当项目从 Ethereum 主网一键迁移至 Kaia,仅需替换 URL 端点即可。
6. 常见问题速查(FAQ)
Q1:已部署的 Solidity 合约是否需要重写?
A:不需要。虚拟机兼容 EVM,合约字节码可直接部署。
Q2:使用 Ledger/Trezor 签名会失败吗?
A:只要固件支持 EIP-155 链 ID 保护即可,无额外操作。
Q3:移动端钱包怎么配置自定义链?
A:添加一条 JSON-RPC 节点,链 ID 填写对应 Kaia 链号,符号使用 KAIA,配置完即可。
Q4:Kaia 出块时间比以太坊快,nonce 需要线程安全处理吗?
A:是的。建议后端用队列或带重试的 nonce manager,避免并发导致交易替换。
Q5:AccessList 可以添加合约 Call 别名吗?
A:不能,只能声明预读状态插槽;Kaia 暂不开放合约地址别名映射。
Q6:未来若启用 Base Fee,现有交易如何平滑升级?
A:只要遵循当前 EIP-1559 字段即可,未来节点升级会自动兼容旧版本字段。
7. 结语:一条公链,两套体验
Kaia 通过“一个字节的代价”完成了与以太坊主网的交易兼容,既让开发者免去重写工具的麻烦,又保留了 Kaia 自身的账户模型与高吞吐优势。
至此,从以太坊迁移到 Kaia,只需三步:
- 确认链高度已跨过
EthTxTypeCompatibleBlock; - 按本文字段填充,保持
gasTipCap=gasFeeCap=250 Gkei; - 把节点 RPC URL 换成 Kaia。
其余逻辑,一行不动。