Quip Runtime 集成 pallet-revive:EVM 合约执行的设计决策、配置参数与验证清单
【免费下载链接】quip-validatorA rust implementation of the Quip Protocol forked from Substrate项目地址https://gitcode.com/gh_mirrors/qu/quip-validator点击查看免费下载本文是 Quip 协议Substrate fork 的 Rust 实现仓库为 quip-validator将pallet-revive集成进 Runtime 的设计、实现与决策记录living design / decision record的技术解读。文章围绕 EIP-155 Chain ID 策略、无许可合约部署、27 个pallet_revive::Config关联类型的具体取值存储押金、gas 换算、交易费耦合以及独立 Ethereum JSON-RPC sidecar 的部署方式展开并逐一对照仓库源码与测试给出可验证依据。读完本文你将掌握 Quip 如何在保持原生混合签名交易流不变的前提下为 12 位小数的 AGLS 原生代币接入 18 位小数的 EVM 执行环境以及上线前必须完成的端到端验证项。一、集成状态与 SDK 基线pallet-revive的首次 Runtime 集成实现于spec_version 117/transaction_version 7。其版本演进路径为113 在分支上引入114 首次随 v0.2.2-rc 标签发布115 用于基准权重benchmark weight重新生成116/117 服务于 H2/H4 混合签名迁移签名外部交易格式改变因此transaction_version升至 7。从当前仓库源码看runtime/src/lib.rs中的spec_version已进一步推进到118该次 bump 源于 quantum-pow 难度衰减策略变更与 Revive 集成本身无关transaction_version保持7不变可见 Revive 的集成面在此后未再改变外部交易格式。文档中所有待办unchecked事项集中于部署与端到端验证而非配置设计——全部 27 个配置项已给出明确取值或状态标签。SDK 基线工作区当前将 Quip 的 Polkadot SDK fork 解析到提交f17113ffe89361a26cb286f6afc5a92f443179a8。在该修订上pallet-revive版本为0.13.0pallet_revive::Config共有27 个关联类型权威 trait 位于 SDK fork 的substrate/frame/revive/src/lib.rs::pallet::Config。文档明确要求每次 SDK 依赖更新后必须对照新解析到的 SDK 提交重新核对本文档避免 trait 形状漂移导致配置失效。这一点在仓库的 sidecar 构建脚本中同样得到贯彻——docker/revive-eth-rpc.Dockerfile通过ARG POLKADOT_SDK_REVf17113ffe89361a26cb286f6afc5a92f443179a8精确锁定同一 SDK 修订并在git checkout --detach FETCH_HEAD后用git rev-parse HEAD校验一致性。状态标签约定标签含义Decided已被接受用于初始集成Candidate当前工作值仍需显式决策Required由现有 Runtime 或 Revive API 强制规定Open尚未选定首选值或实现二、核心决策一EIP-155 Chain ID 策略pallet_revive::Config::ChainId的类型是Getu64。Quip 的取值矩阵如下网络 / 预设十进制十六进制状态本地开发--dev13370x539Decided本地多验证人local_testnet、local_three_validator13370x539Decided公共 Quip 测试网quip-testnet200330x4e41Decided未来生产网络TBDTBDOpen1337是 Geth 私有开发链的惯例 EIP-155 标识符20033是 Quip 测试网的暂定标识符。做此决策时在常见公共链 ID 注册表中未找到20033条目而注册表的存在与否并不构成保留因此在对外公布公共 EVM RPC 之前应先注册测试网 Chain ID。Runtime 制品约束一份 Wasm 服务所有预设Chain ID 的值存放于pallet-evm-chain-id的存储中并在 genesis 时写入预设存储的 Chain IDdev、local_testnet、local_three_validator1337quip-testnet20033这样一份 Runtime Wasm 即可服务所有预设。若存储缺失对一个从未写入过该 key 的链做 Runtime 升级则回退返回20033与旧测试网的ConstU64行为一致。链上没有可在 genesis 后修改 Chain ID 的 dispatchable。源码佐证见 pallets/evm-chain-id/src/lib.rsTESTNET_CHAIN_ID: u64 20_033、LOCAL_CHAIN_ID: u64 1_337存储项Eip155ChainIdT使用ValueQuery且默认值类型为DefaultChainId缺失时返回TESTNET_CHAIN_IDgenesis 构建时断言chain_id 0后写入存储。ChainIdT结构体实现了Getu64直接从存储读取供pallet_revive::Config::ChainId消费。各预设的 Chain ID 注入点在 runtime/src/genesis_config_presets.rstestnet_genesis()通过evm_chain_id: pallet_evm_chain_id::GenesisConfig { chain_id, .. }写入本地三个预设传LOCAL_CHAIN_IDquip_testnet_config_genesis()传TESTNET_CHAIN_ID。该文件还包含一组 genesis 测试如quip_testnet_preset_builds用build_state走真实的BuildGenesisConfig::build路径断言存储中的 Chain ID 与预设期望一致。元数据常量与权威值的分离pallet-revive仍将ChainId标记为#[pallet::constant]。元数据在 Wasm 构建时快照Get::get()的值因此元数据常量永远是存储默认值20033。但eth_chainIdRPC 与 EVMCHAINID操作码读取的是实时存储二者才是权威值。也就是说链上看到的 chain ID 以存储为准元数据常量仅供客户端对齐参考。启动本地 Runtimecargo run -p quip-network-node --bin quip-network-node -- --dev已部署网络的 Chain ID 应视为不可变。尽管 Runtime 升级在技术上可以更改它但这样做会使钱包假设、EIP-712 域与重放保护失效。从决策日志可见Quip 曾于 2026-07-17 短暂采用过按制品区分 Chain IDdev-chain-id制品服务本地预设、默认/测试网制品服务quip-testnet后于 2026-08-13 改为genesis 写入pallet-evm-chain-id存储、一份制品服务所有预设这正是本节描述的最终形态。三、核心决策二无许可合约部署策略初始 Revive 集成采用**无许可permissionless**策略启用 EVM 字节码上传与实例化允许任意已签名账户上传合约代码允许任意已签名账户实例化合约不引入 Quip 专属 precompilesRevive 内置的以太坊 precompiles 保持可用正常 Runtime 制品含测试网禁用 Revive 调试模式若未来需要执行追踪、无限制合约大小、EIP-3607 绕过或 PolkaVM 日志可另行引入独立的本地调试构建。初始阶段针对滥用部署的经济控制手段只有交易费与存储押金不引入特权部署白名单。对应源码见 runtime/src/configs/mod.rsAllowEVMBytecode ConstBooltrue、UploadOrigin frame_system::EnsureSignedAccountId、InstantiateOrigin frame_system::EnsureSignedAccountId、Precompiles ()、DebugEnabled ConstBoolfalse。文档特别指出InstantiateOrigin只约束外部签名账户合约到合约的实例化不受该 origin 约束。四、配置跟踪器27 个关联类型全解以下四张表完整对应pallet_revive::Config的取值全部可以在 runtime/src/configs/mod.rs 的impl pallet_revive::Config for Runtime中找到落点。4.1 Runtime 接线Runtime wiringConfig类型当前取值状态说明TimeTimestampRequired向合约提供时间戳BalanceBalanceu128Required必须与配置的币种一致CurrencyBalancesRequired持有合约余额、押金与手续费OnBurn()Decided烧毁因 EVM 尘值/价值换算及取整而被提取的原生金额Quip 未来若增加 treasury 可改道RuntimeEventRuntimeEventRequired聚合运行时事件RuntimeCallRuntimeCallRequired聚合运行时调用RuntimeOriginRuntimeOriginRequired聚合运行时 originRuntimeHoldReasonRuntimeHoldReasonRequiredRevive 会新增 hold-reason 变体WeightInfopallet_revive::weights::SubstrateWeightRuntimeRequired使用生产权重重新基准测试仍是集成验证的一部分FindAuthorpallet_session::FindAccountFromAuthorIndexRuntime, BabeDecided通过 session 验证人解析 BABE 权威向 EVM 提供block.coinbase4.2 执行与访问控制Execution and accessConfig类型当前取值状态说明Precompiles()Decided初始无 Quip 专属 precompilesRevive 内置以太坊 precompiles 保持可用AddressMapperpallet_revive::AccountId32MapperRuntimeRequiredQuip 账户 ID 是AccountId32映射到 EVMH160AllowEVMBytecodeConstBooltrueDecided启用 EVM 字节码上传与实例化UploadOriginEnsureSignedAccountIdDecided允许任意已签名账户上传代码InstantiateOriginEnsureSignedAccountIdDecided允许任意已签名账户实例化合约到合约的实例化不受此 origin 约束RuntimeMemoryConstU32{ 128 * 1024 * 1024 }Decided上游完整性检查基线与 SDK 执行器默认的 2048 个额外 64-KiB 页一致PVFMemoryConstU32{ 512 * 1024 * 1024 }Decided保守的 Revive 完整性检查预算本链为 solochain并非实际的平行链 PVF 分配DebugEnabledConstBoolfalseDecided正常 Runtime 制品含测试网使用本地调试构建可后续添加4.3 存储经济学Storage economicsQuip 原生代币为 12 位小数UNIT 1_000_000_000_000 MILLI_UNIT 1_000_000_000 MICRO_UNIT 1_000_000以下取值在 Quip 面额下复现 SDK 的生产风格押金公式Config类型当前取值人类可读值状态DepositPerByte10 * MICRO_UNIT0.00001AGLS/字节DecidedDepositPerItem200 * MILLI_UNIT0.2AGLS/主 trie 项DecidedDepositPerChildTrieItem2 * MILLI_UNIT0.002AGLS/合约存储项DecidedCodeHashLockupDepositPercentPerbill::from_percent(30)30%Decided按这些取值推算的典型押金成本一个 32 字节 Solidity 存储槽的基础押金约0.00232AGLS1 个 child-trie 项0.002 32 字节 ×0.00001未计其他存储数据1 KiB 合约存储项约0.01224AGLS0.002 1024 ×0.00001一个AccountId32→H160地址映射约0.20052AGLS1 个主 trie 项0.2 52 字节 ×0.0000132 字节 key 20 字节 value。源码落点在 runtime/src/configs/mod.rsStorageDepositPerItem 200 * MILLI_UNIT、StorageDepositPerByte 10 * MICRO_UNIT被定义为链级共享存储价格pallet_multisig、pallet_proxy、pallet_xqvm的押金也基于它们推导并保留ReviveDepositPerItem/ReviveDepositPerByte兼容别名ReviveDepositPerChildTrieItem 2 * MILLI_UNIT与ReviveCodeHashLockupDepositPercent Perbill::from_percent(30)在同一文件 L356-L362 定义。Runtime 测试revive_configuration_matches_network_buildruntime/src/lib.rs逐一断言Revive 的 pallet index 为14、EvmChainId 为15三个押金值分别等于10 * MICRO_UNIT/200 * MILLI_UNIT/2 * MILLI_UNIT锁仓百分比为 30%。需要注意Revive 文档明确说明三个押金率在活链上可以安全修改因为退款按比例pro rata计算但它们终究是经济参数。初始测试网将三者作为 SDK 生产风格基线整体采纳在生产前须依据实际部署量、状态增长与代币经济重新评估。30% 的代码哈希锁仓使合约实例为其引用的代码保持可用性作出贡献它是持有的、可能可退的押金而非交易费。4.4 以太坊身份、gas 与费用Config类型当前取值状态说明ChainId本地1337测试网20033Decided见上文 Chain ID 决策NativeToEthRatioConstU321_000_000Decided推导自10^(18 - 12)将 12 位小数原生代币映射到 18 位小数 EVM 数值FeeInfopallet_revive::evm::fees::InfoAddress, Signature, EthExtraImplRequired生产级以太坊交易支持不能用 mock 的()实现MaxEthExtrinsicWeightFixedU128::from_rational(9, 10)Decided单笔以太坊交易上限为普通最大外部交易权重的 90%GasScaleConstU321_000Decided瞄准熟悉的 EVM gas 量级乘数为1时与原生比率共同给出 1 gwei 的初始基础 gas 价格。必须非零NativeToEthRatio保证面额换算精确无损失1 AGLS 10^12 native planks 10^18 EVM weiGasScale抬高报告的 gas 价格并成比例降低 gas 单位数除取整外原生执行费总额大致不变。90% 权重上限作用于普通 dispatch 类的最大外部交易权重而非直接作用于整个区块。文档要求gas 估算、取整与 out-of-gas 行为必须在端到端验证中核实。源码落点ReviveNativeToEthRatio: u32 1_000_000与ReviveMaxEthExtrinsicWeight: FixedU128 FixedU128::from_rational(9, 10)定义于 runtime/src/configs/mod.rsRuntime 测试断言NativeToEthRatio等于10u32.pow(18 - 12)且Revive::evm_base_fee()等于1_000_000_000wei即 1 gwei。交易支付耦合Transaction-payment coupling生产FeeInfo实现只支持 Revive 的BlockRatioFee。集成用以下代码替换了原先的IdentityFeetype WeightToFee pallet_revive::evm::fees::BlockRatioFee1, 1, Runtime, Balance;1/1的 ref-time 系数保留了原先IdentityFee对仅含 ref-time 权重的定价LengthToFee保持IdentityFeeBalance费用乘数固定为1Revive 生成的 Runtime 完整性测试通过当前u64::MAX的 proof-size 区块上限与 SDK 生产 Runtime 基线一致但给 proof size 的相对费用很小选定有限的 proof-size 预算仍是显式的经济后续项见下文待定决策。源码落点runtime/src/configs/mod.rs 的pallet_transaction_payment::Config中type WeightToFee pallet_revive::evm::fees::BlockRatioFee1, 1, Runtime, Balance、type FeeMultiplierUpdate ConstFeeMultiplierFeeMultiplierFeeMultiplier Multiplier::one()。4.5 独立 Ethereum JSON-RPC sidecar所固定的 SDK 将 Revive 的以太坊 RPC 暴露为连接节点 WebSocket RPC 的 sidecar 进程。嵌入式集成仍被 paritytech/polkadot-sdk#11297 阻塞——该 PR 引入SubstrateClientT抽象并将 ETH RPC 服务器嵌入 omni-node。截至 2026-08-07 该 PR 仍未合入 Quip 固定的 SDK 提交f17113f。在该提交上sidecar 也无法作为普通 Git 依赖引入其构建脚本要求在 SDK 工作区内构建revive-dev-runtime。因此 sidecar 镜像从 Quip SDK fork 的完整、精确固定 checkout构建pallet-revive-eth-rpc。Runtime 部署将该独立进程连接到节点的 WebSocket RPC且必须选择有意的收据保留与持久化策略。发布标签流水线将 docker/revive-eth-rpc.Dockerfile 发布为$CI_REGISTRY_IMAGE/quip-network-evm-sidecar覆盖linux/amd64与linux/arm64其发布标签、sha-short-sha与分支派生浮动标签与节点镜像保持一致。Dockerfile 的关键设计ARG POLKADOT_SDK_REPOSITORY/ARG POLKADOT_SDK_REV精确固定 fork 源与修订构建阶段cargo build --locked --release -p pallet-revive-eth-rpc --bin eth-rpc运行阶段以非特权用户eth-rpc运行EXPOSE 8545 96168545 为 ETH RPC 端口9616 为指标端口默认CMD [--help]。发布核验见 docs/release.mdtag 流水线同时发布quip-network-node与quip-network-evm-sidecar两个镜像post-tag 验证含docker run --rm ... --help冒烟测试。决策日志还记录2026-07-31 将 sidecar 定为仅 release-tag、多架构发布2026-08-07 移除了仓库内 Revive 本地编排与注资命令仅保留独立 sidecar 镜像与 CI 发布。五、交易扩展EVM 与混合签名的共存Quip 的特色是原生交易使用混合hybrid后量子签名H1/H3 ML-DSA-44 → H2/H4 FN-DSA-512 迁移已随 spec 116/117 完成。Revive 集成必须在不破坏该签名流的前提下接纳以太坊交易。源码揭示了具体做法EVM 感知的外部交易包装器UncheckedExtrinsic替换为pallet_revive::evm::runtime::UncheckedExtrinsicAddress, Signature, EthExtraImplruntime/src/lib.rsEthExtraImplruntime/src/lib.rs实现EthExtra其get_eth_extension为以太坊交易构造与原生一致的扩展元组仅将SetOrigin替换为new_from_eth_transaction()事务扩展顺序runtime/src/lib.rspallet_revive::evm::tx_extension::SetOriginRuntime排在ChargeTransactionPayment之后、WeightReclaim之前原生扩展构造器native_tx_extension(era, nonce, tip)保留在 Runtime 内防止节点端交易构建器在扩展集合变化时漂移。Runtime 测试hybrid_signed_extrinsic_checks_successfully与hybrid_signed_extrinsic_rejects_wrong_accountruntime/src/lib.rs 起用HybridTxSignature::sign构造外部交易并经Checkable::check验证证明现有原生混合签名交易在新包装器下编码与校验不变。Runtime API 侧runtime/src/apis.rs 使用pallet_revive::impl_runtime_apis_plus_revive_traits!宏同时展开 Revive 的以太坊 Runtime APIs 与既有核心 APIs并将EthExtraImpl一并传入。六、现有测试网升级账户初始化迁移InitializeReviveAccountruntime/src/lib.rs复现 Revive 在 genesis 时的最小余额初始化用于对已运行的现有测试网做 Runtime 升级若 Revive pallet 账户已存在则只记账一次读否则向该账户 mintEXISTENTIAL_DEPOSIT。账户存在性守卫使其在后续升级与本就包含 Revive 的 genesis 链上幂等。测试revive_upgrade_initialization_is_idempotentruntime/src/lib.rs先移除该账户再连续执行两次on_runtime_upgrade断言账户重建且余额恰为EXISTENTIAL_DEPOSIT。该迁移已挂入Migrations元组与pallet_miner_registry::migrations::v2::MigrateToV2Runtime并列。genesis 层面决策genesis 映射账户保持为空用户可按需调用 Revive 无许可的账户映射外部交易这样可避免与已升级的现有测试网产生分歧。七、待定决策与验证清单本节是未来规划会话的续接点。除非其他小节记录为 Decided此处列出的任何事项均未被接受。7.1 配置状态27 个pallet_revive::Config关联类型现在均已显式决定或被现有 Runtime 机械性地要求。未来生产 Chain ID 仍为 Open且必须与本地开发 ID 和测试网 ID 区分。7.2 跨切面架构与经济Proof-size 预算与定价决定是否以有意的有限值替换 SDK 风格的u64::MAXproof-size 区块上限。这会实质性改变 proof-size 定价与区块准入因此不并入初始 Revive Runtime 升级。费用乘数策略初始集成保留固定乘数1后续依据测试网实测负载重新审视拥堵自适应调整。测试网部署Runtime 支持升级现有测试网InitializeReviveAccount幂等复现 Revive 的 genesis 最小余额初始化无原生账户预映射。公共注册公布公共 EVM RPC 前注册测试网 Chain ID20033生产 ID 另行选定并注册。7.3 实现清单将pallet-revive加入工作区与 Runtime 依赖。传播std、runtime-benchmarks、try-runtimefeature。分配稳定 Runtime pallet index14既有 index0..13不得移动。验证 Runtime 宏将 Revive 的 hold reason 纳入聚合RuntimeHoldReason类型。实现已接受的pallet_revive::Config取值。在交易支付之后、WeightReclaim之前加入pallet_revive::evm::tx_extension::SetOriginRuntime。为以太坊交易定义EthExtraImpl。用 Revive 的 EVM 感知包装器替换通用 unchecked extrinsic 包装器同时保留 Quip 混合原生签名流。实现 Revive Runtime APIs。添加固定 SDK 的以太坊 RPC sidecar Dockerfile。将固定 sidecar 发布为仅 release-tag、多架构的quip-network-evm-sidecar镜像标签语义与节点一致。在公开测试网以太坊 RPC 前确定生产部署与持久化/归档收据存储。genesis 映射账户保持为空无许可显式映射可用避免与已升级的现有测试网分歧。添加现有测试网 Runtime 升级所需初始化。将 Runtimespec_version提升至116、transaction_version至7H2/H4 混合签名迁移改变了已签名外部交易。当前仓库已在此后推进至 spec 118transaction_version 保持 7。运行 Runtime 基准测试并在必要时替换临时权重。源码侧runtime/src/benchmarks.rs 的define_benchmarks!已包含[pallet_revive, Revive]条目说明基准注册已完成只待实际运行生成权重。7.4 固定 SDK 工具链注意事项cargo check -p quip-network-node --features runtime-benchmarks在SKIP_PALLET_REVIVE_FIXTURES1下通过验证了 Quip 的基准注册表与 feature 接线但实际生成 Revive fixtures 在固定 SDK 的 fixture builder 中、Rust 1.95 下会失败——自定义 JSON target 现在需要-Zjson-target-spec而 SDK builder 未传该 flag。不要把跳过 fixtures 的 check 当作运行基准测试的替代品。cargo check -p quip-network-node --features try-runtime目前失败于固定 SDK 的pallet-staking迁移其MigrateDisabledValidators实现缺少peek_disabled。Quip 未配置 staking这是 SDK feature 统一失败但在测试网 rehearsal 使用try-runtime之前必须解决。7.5 验证清单Runtime 完整性测试在选定的内存、费用、gas 与区块权重参数下通过。使用 Quip 混合签名的现有原生交易在 Runtime 测试中继续正确编码与校验。以太坊 legacy 与 typed 交易校验期望的 Chain ID并拒绝为其他网络签名的交易。eth_chainId与 EVMCHAINID操作码在本地预设返回1337、公共测试网预设返回20033。合约上传、部署、调用、事件与终止正常工作。存储押金、代码哈希锁仓、退款与地址映射押金符合已接受的经济模型。gas 估算、费用换算、取整、out-of-gas 行为与 90% 最大外部交易上限符合预期。内置 precompiles 在无 Quip 专属 precompiles 暴露的情况下正常工作。调试专属行为在正常 Runtime 制品中保持不可用。Runtime APIs 与以太坊 RPC 在代表性钱包与合约开发工具下工作。格式化、runtime/node clippywarnings denied、runtime/node 测试与 runtime release/Wasm 构建通过。部署前运行完整工作区 CI 矩阵。若升级现有测试网迁移检查与测试网冒烟测试证明初始化安全且不改变既有 pallet 或 call index。本地多验证人环境可由仓库脚本快速起测例如 scripts/start-local3.sh--chain local3、三节点、预置 node-key 与 bootnode配合--rpc-port 9944等参数即可在本地体验quip-testnet形态的网络。八、本 Revive 版本中不存在的参数与较旧的pallet-contracts配置不同本pallet-revive::Config不暴露MaxCodeLen、MaxStorageKeyLen、Schedule、CallFilter、ChainExtension或WeightPrice。文档明确警告不要从pallet-contracts集成指南复制这些参数。这也是识别 Revive 与 Contracts 差异、避免误配的关键提示。九、决策日志日期决策2026-07-16本地开发使用 EIP-155 Chain ID1337。2026-07-16local_testnet与local_three_validator预设使用 EIP-155 Chain ID1337。2026-07-16公共 Quip 测试网暂定使用 EIP-155 Chain ID20033。2026-07-16推迟到生产网络规划时再选择独立的 production Chain ID。2026-07-16EVM 代码上传与合约实例化对已签名账户无许可开放。2026-07-16初始无 Quip 专属 precompiles正常 Runtime 制品禁用 Revive 调试模式。2026-07-16采纳 SDK 生产风格存储押金基线每字节10 * MICRO_UNIT、每主 trie 项200 * MILLI_UNIT、每合约 child-trie 项2 * MILLI_UNIT。2026-07-16初始测试网CodeHashLockupDepositPercent设为 30%。2026-07-17NativeToEthRatio设为1_000_000精确保持 12 位小数 AGLS 与 18 位小数 EVM 值之间的换算。2026-07-17GasScale设为1_000在费用乘数1下给出 1 gwei 的初始报告基础 gas 价格。2026-07-17将以太坊交易上限设为普通最大外部交易权重的 90%。2026-07-17通过OnBurn ()烧毁 EVM 尘值/价值换算与取整产生的小额提取。2026-07-17通过Session::Validators从 BABE 权威解析 EVMblock.coinbase。2026-07-17采用 Revive 完整性检查内存基线128 MiB Runtime 内存与 512 MiB PVF 内存。2026-07-17使用默认/测试网与dev-chain-id两种 Runtime 制品分别交付 Chain ID20033与1337。2026-07-17所有本地预设强制使用dev-chain-id制品并拒绝该制品运行quip-testnet只有默认/测试网制品可运行 Chain ID20033的公共测试网。2026-08-13EIP-155 Chain ID 在 genesis 写入pallet-evm-chain-id存储本地1337、测试网20033一份 Runtime 制品服务所有预设。2026-07-17用BlockRatioFee1, 1, Runtime, Balance替换交易支付IdentityFee保留固定乘数与长度费。2026-07-17Revive 置于稳定 pallet index14含 Runtime APIs、EVM 感知外部交易与幂等的现有链账户初始化。2026-07-17嵌入式集成被 paritytech/polkadot-sdk#11297 阻塞期间使用固定 SDK 的以太坊 RPC sidecar推迟合约上传/调用冒烟测试。2026-07-31将固定 SDK sidecar 发布为仅 release-tag、多架构的quip-network-evm-sidecar镜像。2026-08-07移除仓库内 Revive 本地编排与注资命令保留独立 sidecar 镜像与 CI 发布。从日志可以看出Chain ID 策略经历了从双制品分发到单制品 genesis 存储注入的收敛这是集成过程中最重要的一次架构简化而block.coinbase、OnBurn、内存基线与 gas 定价均作为独立决策被逐条记录方便后续审计与调整。十、延伸阅读与仓库指引围绕本文主题可在仓库中继续深入runtime/src/configs/mod.rs全部 27 个pallet_revive::Config关联类型的实际接线以及共享存储价格、BlockRatioFee、EthExtraImpl依赖的类型定义runtime/src/lib.rsTxExtension顺序、EthExtraImpl、EVM 感知UncheckedExtrinsic、InitializeReviveAccount迁移与对应 Runtime 测试runtime/src/genesis_config_presets.rs四个预设的 Chain ID 注入与 genesis 存储构建测试pallets/evm-chain-id/src/lib.rsChain ID 存储、回退值与Getu64适配器docker/revive-eth-rpc.Dockerfile固定 SDK 的eth-rpcsidecar 镜像构建docs/release.mdquip-network-evm-sidecar镜像的发布与冒烟验证流程runtime/src/benchmarks.rs包含[pallet_revive, Revive]的基准注册。Quip 的 Revive 集成是一份罕见的先决策、后验证式工程实践27 个配置项全部显式决策Chain ID 从双制品收敛到存储注入交易扩展在保留后量子混合签名流的同时接纳 EVM 交易而剩余风险proof-size 预算、费用乘数策略、收据持久化、完整 CI 矩阵被清晰列成验收清单。任何计划在 Substrate fork 上接入pallet-revive的团队都可以直接对照本文的配置表与验证清单开展工作。赞分享【免费下载链接】quip-validatorA rust implementation of the Quip Protocol forked from Substrate项目地址https://gitcode.com/gh_mirrors/qu/quip-validator点击查看免费下载相关推荐quip-validator Pallet Benchmarking 全面计划生产级权重合约、非线性计费与 node02 参考机回归体系quip validator Pallet Benchmarking 全面计划生产级权重合约、非线性计费与 node02 参考机回归体系 本技术指南以仓库内Plandex计划配置任务参数与执行选项设置Plandex计划配置任务参数与执行选项设置 Plandex作为一款先进的AI编码引擎其核心优势在于灵活可配置的计划执行系统。本文将深入解析Plandex的人工智能AI Agent代码智能体CLI开发工具behaviac社区资源汇总教程、工具与项目案例大全behaviac社区资源汇总教程、工具与项目案例大全 behaviac是一款强大的游戏AI开发框架同时也可用作快速游戏原型设计工具支持行为树BT、有限上一篇5步掌握原神AI自动化神器BetterGI终极指南智能解放你的游戏时间下一篇智慧树网课效率革命如何用Chrome插件节省50%学习时间创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考