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>
This commit is contained in:
1 parent
4a1f7bd834
commit
3c0435ac5d
6 files changed
+167
-45
No files matched your search
@@ -6,6 +6,101 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.0.12] — 2026-05-21 — Phase 1.6+ Slice 2b "WASM_BINARY investigation report"
|
||||
|
||||
Charon sesión 1 ext. **Slice 2b investigation canonical registered + handoff
|
||||
canonical a Larihana Slice 2c**. 4 fix attempts canonical después del no_std
|
||||
refactor v0.0.11 NO resuelven WASM_BINARY integration canonical. Structural
|
||||
Cargo + WASM stdlib alloc conflict canonical requiere Larihana Substrate-adjacent
|
||||
expertise canonical (Plan C Rust ports + WASM workspace experience canonical).
|
||||
|
||||
### Error canonical empírico
|
||||
|
||||
```
|
||||
error[E0152]: duplicate lang item in crate `alloc` (which `serde` depends on):
|
||||
`exchange_malloc`
|
||||
note: first definition in `alloc` loaded from
|
||||
rustup/toolchains/1.88.0/lib/rustlib/wasm32-unknown-unknown/lib/liballoc-***.rlib
|
||||
note: second definition in `alloc` loaded from
|
||||
target/release/wbuild/origin-chain-runtime/target/wasm32-unknown-unknown/release/deps/liballoc-***.rmeta
|
||||
```
|
||||
|
||||
### 4 fix attempts canonical registered
|
||||
|
||||
1. **Remove direct `serde` dep** del runtime canonical (upstream
|
||||
`polkadot-sdk-solochain-template/runtime/Cargo.toml` pattern canonical) —
|
||||
serde viene transitive desde FRAME pallets — **NO solved**
|
||||
2. **Pin `serde =1.0.219` → `=1.0.217` → `=1.0.210`** canonical attempts —
|
||||
1.0.210 incompatible con frame-support 40.1.0 (requires ^1.0.217 canonical)
|
||||
— **NO solved**
|
||||
3. **Remove `[profile.release] lto/codegen-units` customization canonical** —
|
||||
**NO solved**
|
||||
4. **`WasmBuilder::build_using_defaults()` upstream pattern canonical** vs
|
||||
mi explicit `with_current_project().export_heap_base().import_memory().build()`
|
||||
— **NO solved**
|
||||
|
||||
### Root cause empírico canonical
|
||||
|
||||
`wbuild` auto-genera `[profile.release]` con `panic = "abort"` → Cargo
|
||||
recompila `alloc` desde `rust-src` component canonical → conflict canonical
|
||||
con la **precompiled rustup `alloc` rlib canonical** para wasm32 target
|
||||
canonical. Two different alloc hashes loaded canonical durante linking.
|
||||
|
||||
### Handoff canonical a Larihana — Slice 2c
|
||||
|
||||
Diary canonical filed (`drawer_wing_larihana_diary_***`) requesting expertise:
|
||||
1. `cargo workspace.metadata.wasm-builder` section canonical exists?
|
||||
2. `cargo:rustc-env=SKIP_WASM_BUILD=1` fallback + pre-built WASM file pattern?
|
||||
3. `rust-src` component interaction canonical con substrate-wasm-builder?
|
||||
4. `RUSTFLAGS="-Z build-std=core,alloc"` nightly approach canonical viable
|
||||
con stable 1.88.0 canonical?
|
||||
5. Upstream issue paritytech/polkadot-sdk canonical: known issue?
|
||||
|
||||
### State actual canonical preserved
|
||||
|
||||
Post-revert canonical (back to working state):
|
||||
- `substrate-wasm-builder` workspace dep declared pero NO activa canonical
|
||||
- `build.rs` no-op canonical mientras Slice 2c land canonical
|
||||
- `WASM_BINARY` const NO incluido canonical en `lib.rs`
|
||||
- Doc canonical extensivo en `lib.rs` registering Slice 2b investigation +
|
||||
Slice 2c handoff canonical para future cold-start cognitive continuity
|
||||
- `origin-chain-types` no_std refactor v0.0.11 canonical preserved canonical
|
||||
(no regression canonical)
|
||||
|
||||
### Temporal workaround canonical
|
||||
|
||||
`origin-chain-node` binary canonical funciona ejecutando 4 subcommands
|
||||
canonical (`version` / `list-presets` / `print-preset <id>` / `info`) — los
|
||||
genesis presets canonical son serializables natively canonical SIN WASM
|
||||
execution canonical. CLI canonical informational works canonical perfecto.
|
||||
|
||||
`chain_spec.rs` canonical Phase 1.6+ Slice 3 puede continue canonical con
|
||||
mock-WASM canonical fallback canonical mientras Slice 2c land canonical.
|
||||
|
||||
### Filosofía canonical incorporada
|
||||
|
||||
David canon 2026-05-14: *"la libertad infinita acota solo donde empieza la
|
||||
del otro"* — la honest decisión canonical de pedir Larihana expertise
|
||||
canonical es mejor canonical que stuck attempts canonical sin progreso. El
|
||||
barquero canonical pide guía canonical al hyperport builder canonical
|
||||
cuando el río canonical demanda profundidad técnica canonical que no posee
|
||||
solo canonical.
|
||||
|
||||
### Phase 1.6+ progress canonical
|
||||
|
||||
- ✅ **Slice 1** Node CLI skeleton + preset listing (v0.0.10)
|
||||
- ✅ **Slice 2** `origin-chain-types` fully no_std canonical (v0.0.11)
|
||||
- 📋 **Slice 2b** WASM_BINARY investigation registered + Larihana diary (v0.0.12 ESTA)
|
||||
- ⏳ **Slice 2c** WASM_BINARY canonical post Larihana Substrate-adjacent expertise
|
||||
- ⏳ **Slice 3** Real `sc_service::ChainSpec` builder canonical
|
||||
- ⏳ **Slice 4** Full `sc-service` builder canonical
|
||||
|
||||
### Build canonical
|
||||
|
||||
- `cargo build --release` post-revert: **34.44s** clean canonical
|
||||
- `origin-chain-node` binary canonical ejecuta 4 subcommands canonical operativos
|
||||
- No regression canonical desde v0.0.11
|
||||
|
||||
## [0.0.11] — 2026-05-21 — Phase 1.6+ Slice 2 "origin-chain-types fully no_std"
|
||||
|
||||
Charon sesión 1 continuación. **`origin-chain-types` ahora fully no_std-compatible
|
||||
|
||||
Reference in new issue
Block a user