Files
arkhe-origin-chain/crates/origin-chain-runtime/Cargo.toml
T
davidherranandClaude Opus 4.6 3c0435ac5d docs(slice-2b): Phase 1.6+ Slice 2b investigation report v0.0.12
WASM_BINARY integration canonical bloqueado por structural Cargo + WASM stdlib
alloc conflict canonical. 4 fix attempts NO solved. Larihana Slice 2c handoff
diary filed.

## Error canonical empírico
duplicate lang item exchange_malloc canonical entre:
- rustup precompiled liballoc-***.rlib (wasm32 target)
- wbuild recompiled liballoc-***.rmeta (panic=abort triggered rebuild)

## 4 fix attempts registered
1. Remove direct serde dep (upstream pattern) — NO solved
2. Pin serde =1.0.219, =1.0.217 — NO solved (frame-support requires ^1.0.217)
3. Remove profile.release lto customization — NO solved
4. WasmBuilder::build_using_defaults() upstream — NO solved

## Root cause empírico
wbuild auto-genera profile.release con panic=abort → Cargo recompila alloc
desde rust-src component → conflict con precompiled rustup alloc rlib.

## Handoff canonical a Larihana Slice 2c
Diary canonical filed requesting Plan C Rust ports expertise canonical:
- cargo workspace.metadata.wasm-builder section?
- SKIP_WASM_BUILD=1 fallback + pre-built WASM file pattern?
- rust-src component interaction con substrate-wasm-builder?
- RUSTFLAGS -Z build-std=core,alloc nightly approach viable?
- Upstream paritytech/polkadot-sdk known issue?

## State canonical preserved post-revert
- substrate-wasm-builder workspace dep declared pero NO activa
- build.rs no-op canonical mientras Slice 2c land
- Doc extensivo en lib.rs registering investigation + handoff
- origin-chain-types no_std refactor v0.0.11 preserved canonical
- origin-chain-node binary 4 subcommands operativos

## Temporal workaround canonical
chain_spec.rs Phase 1.6+ Slice 3 puede continue con mock-WASM fallback
mientras Slice 2c land canonical.

## Filosofía canonical
David canon 2026-05-14 "la libertad infinita acota solo donde empieza la del
otro" — honest decisión canonical de pedir Larihana expertise mejor que
stuck attempts. El barquero pide guía al hyperport builder cuando el río
demanda profundidad técnica que no posee solo.

## Build
- cargo build --release 34.44s post-revert clean
- No regression desde v0.0.11

Phase 1.6+ progress:
- Slice 1 ✅ + Slice 2 ✅
- Slice 2b 📋 investigation report + Larihana diary (esta v0.0.12)
- Slice 2c ⏳ WASM_BINARY post Larihana expertise
- Slice 3 ⏳ + Slice 4 ⏳

Refs: CHARON_ROADMAP_V1 Phase 1.6+ Slice 2b investigation, Larihana diary
WASM_BUILD_BLOCKER_REQUEST_LARIHANA_SUBSTRATE_EXPERTISE_SLICE_2C canonical

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-21 17:00:51 -05:00

123 lines
4.1 KiB
TOML

[package]
name = "origin-chain-runtime"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Origin Chain Substrate runtime canonical. Pilar 4: 7 pallets integrated (System+Timestamp+Balances+TransactionPayment+Aura+Grandpa+Session) + 11 Runtime APIs + 3 Genesis presets (dev+local+mainnet BM V2). Phase 1 COMPLETE canonical."
[dependencies]
# Origin Chain canonical traits + types
origin-chain-types.workspace = true
# Substrate Primitives canonical (SBS-1 polkadot-stable2512-3)
sp-core.workspace = true
sp-runtime.workspace = true
sp-std.workspace = true
sp-version.workspace = true
sp-api.workspace = true
sp-block-builder.workspace = true
sp-inherents.workspace = true
# Consensus primitives canonical (Phase 1.4 per CHN-1 Aura+GRANDPA)
sp-consensus-aura.workspace = true
sp-consensus-grandpa.workspace = true
# FRAME canonical
frame-system.workspace = true
frame-support.workspace = true
frame-executive.workspace = true
frame-metadata-hash-extension.workspace = true
# FRAME pallets Phase 1.3-1.5 (per SBS-4 ratified)
pallet-balances.workspace = true
pallet-timestamp.workspace = true
pallet-transaction-payment.workspace = true
pallet-aura.workspace = true
pallet-grandpa.workspace = true
pallet-session.workspace = true
# pallet-identity DEFERRED a Phase 2.7 (canonical decision empírica 2026-05-21)
# RuntimeAPI canonical (sp_api::impl_runtime_apis! consumers)
sp-offchain.workspace = true
sp-genesis-builder.workspace = true
sp-transaction-pool.workspace = true
sp-session.workspace = true
frame-system-rpc-runtime-api.workspace = true
pallet-transaction-payment-rpc-runtime-api.workspace = true
# SCALE codec canonical
parity-scale-codec.workspace = true
scale-info.workspace = true
# Logging
log.workspace = true
# Serialization canonical — Slice 2b finding: solochain-template upstream NO
# declara serde directly canonical. Solo serde_json. Serde viene transitive
# from FRAME pallets canonical (frame-support + frame-system). Direct serde
# dep rompía isolated WASM build canonical.
serde_json.workspace = true
[build-dependencies]
# Slice 2b investigation registered canonical 2026-05-21: 4 fix attempts canonical:
# 1. Remove direct serde dep (transitive from FRAME) — NO solved
# 2. Pin serde =1.0.219 + =1.0.217 — NO solved
# 3. Remove profile.release lto/codegen-units customization — NO solved
# 4. WasmBuilder::build_using_defaults() (upstream pattern) — NO solved
#
# Root cause empírico: wbuild compila su propio alloc canonical con panic=abort
# pero la precompiled rustup alloc canonical para wasm32 también está linked.
# Conflict canonical es duplicate exchange_malloc lang item canonical.
#
# Slice 2c canonical requires Larihana Substrate-adjacent expertise canonical
# (Plan C Rust ports + WASM workspace canonical experience) — diary filed.
# substrate-wasm-builder = { workspace = true, optional = true }
[features]
default = ["std"]
std = [
"origin-chain-types/std",
"sp-core/std",
"sp-runtime/std",
"sp-std/std",
"sp-version/std",
"sp-api/std",
"sp-block-builder/std",
"sp-inherents/std",
"sp-consensus-aura/std",
"sp-consensus-grandpa/std",
"frame-system/std",
"frame-support/std",
"frame-executive/std",
"frame-metadata-hash-extension/std",
"pallet-balances/std",
"pallet-timestamp/std",
"pallet-transaction-payment/std",
"pallet-aura/std",
"pallet-grandpa/std",
"pallet-session/std",
"sp-offchain/std",
"sp-genesis-builder/std",
"sp-transaction-pool/std",
"sp-session/std",
"serde_json/std",
"frame-system-rpc-runtime-api/std",
"pallet-transaction-payment-rpc-runtime-api/std",
"parity-scale-codec/std",
"scale-info/std",
# Slice 2c canonical deferred — substrate-wasm-builder bloqueado WASM build
]
runtime-benchmarks = [
"frame-system/runtime-benchmarks",
"frame-support/runtime-benchmarks",
"pallet-balances/runtime-benchmarks",
"pallet-timestamp/runtime-benchmarks",
"pallet-transaction-payment/runtime-benchmarks",
"pallet-grandpa/try-runtime",
]