feat(node): Phase 1.6+ Slice 3 — ChainSpec builder canonical mock-WASM fallback v0.0.13

Real ChainSpec JSON builder canonical via mock-WASM fallback pattern. Avanza
Origin Chain sin esperar Slice 2c WASM_BINARY resolution canonical (Larihana
pending). Own minimal JSON builder canonical via serde_json puro vs sc-chain-spec
dep canonical (43/44.0.0 trae sc-network mismatch + cid 0.9.0 yanked core2).

Deliverables canonical:
- crates/origin-chain-node/src/chain_spec.rs NEW (240 LOC) — 3 builder fns
  (development/local_testnet/mainnet) + load_spec alias resolver + serialize_chain_spec
- crates/origin-chain-node/src/main.rs — new BuildSpec subcommand + build_spec fn
- crates/origin-chain-node/Cargo.toml — Slice 3 dep block canonical doc
- Cargo.toml workspace — sc-chain-spec investigation findings registered

Output JSON canonical compatible con Substrate-canonical sc_chain_spec::GenericChainSpec
schema (12-field structure). Mock WASM hex = "0x" placeholder canonical mientras
Slice 2c land canonical real WASM_BINARY via substrate-wasm-builder.

Verification canonical end-to-end:
- cargo check workspace verde 0.60s
- 10/10 chain_spec tests canonical pass + 75+ workspace tests canonical no regression
- cargo build --release origin-chain-node 2.28s clean
- build-spec --chain dev|local|mainnet|--raw all functional canonical
- BM V2 mainnet allocation verified: 400M+250M+150M+150M+50M = 1B OGC canonical
- Existing subcommands (version, list-presets, print-preset, info) NO REGRESSION

Phase 1.6+ progress: Slices 1+2+2b+3 ✅, Slice 2c WASM pending Larihana,
Slice 4 full sc-service requires Slice 2c canonical resolution.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
davidherranandClaude Opus 4.7 committed 2026-05-22 07:54:57 -05:00
1 parent 3c0435ac5d
commit a2925f67b9
6 files changed
+452 -16

No files matched your search

+6
View File
@@ -93,6 +93,12 @@ substrate-wasm-builder = { version = "26.0.1" }
# Substrate client canonical (Phase 1.6+ node binary service builder)
sc-cli = { version = "0.51.0" }
sc-service = { version = "0.50.0" }
# Slice 3 (v0.0.13) canonical — `sc_chain_spec::GenericChainSpec` builder canonical
# para Phase 1.6+ ChainSpec serialization. Pattern canonical mock-WASM fallback:
# `ChainSpec::builder(MOCK_WASM, None).with_genesis_config_patch(preset_json)`
# bypassa runtime WASM execution — depends on Slice 2c land canonical solo para
# `node run` real (Slice 4 territory). JSON serialization funciona canonical.
# sc-chain-spec canonical EVITADA Slice 3 (see comentario superior canonical)
sc-executor = { version = "0.42.0" }
sc-network = { version = "0.49.1" }
sc-consensus = { version = "0.48.0" }