feat(node): Phase 1.6+ Slice 1 — origin-chain-node CLI canonical v0.0.10
origin-chain-node binary canonical funcional con 4 sub-comandos: - version (default canonical) - list-presets (3 genesis presets disponibles) - print-preset <id> (JSON-serialized RuntimeGenesisConfig) - info (full runtime metadata canonical) ## Output canonical print-preset development verified Alice SS58 address: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY ✅ matches exactly Substrate well-known canonical — hardcoded bytes son bit-perfect compatible con polkadot-js + subkey ecosystem canonical. ## Decisión empírica documentada: WASM_BINARY DEFERRED a Slice 2 (v0.0.11) substrate-wasm-builder requiere TODAS las deps no_std-compatible. origin- chain-types actualmente usa std::String/Vec directly + thiserror 1.0 sin no_std. Refactor scope substantial (5-10+ files affected) merece DC propio y Slice dedicado canonical. CLI canonical opera correcto sin WASM execution porque genesis presets serializables natively canonical. ## Workspace deps añadidos Phase 1.6+ (most Slice 4 deferred) - substrate-wasm-builder 26.0.1 (Slice 2) - sc-cli 0.51.0, sc-service 0.50.0, sc-executor 0.42.0 (Slice 4) - sc-network 0.49.1, sc-consensus 0.48.0 (Slice 4) - sc-consensus-aura 0.49.0, sc-consensus-grandpa 0.34.0 (Slice 4) - sc-transaction-pool 39.0.0, sc-client-api 39.0.0 (Slice 4) - sc-basic-authorship 0.49.0, sc-telemetry 28.1.0, sc-offchain 44.0.0 (Slice 4) - jsonrpsee 0.24.3, substrate-frame-rpc-system 43.0.0 (Slice 4) - pallet-transaction-payment-rpc 43.0.0 (Slice 4) - clap 4.5.13 (USED v0.0.10 canonical) - futures 0.3.31 (Slice 4) Workspace declarations preparan canonical para Slice 4 sin re-declarar cuando se necesite ramp up canonical. ## Roadmap Phase 1.6+ multi-slice canonical - Slice 1 (v0.0.10 ESTA): CLI skeleton + preset listing ✅ - Slice 2 (v0.0.11): WASM_BINARY canonical + no_std refactor - Slice 3 (v0.0.12): real sc_service::ChainSpec builder canonical - Slice 4 (v0.0.13+): full sc-service (consensus + RPC + networking) ## Build + tests - cargo build --release 8.22s warm cache - cargo test --workspace ~63 tests passing - Binary functional: cargo run --bin origin-chain-node {version|list-presets| print-preset <id>|info} ## Filosofía canonical incorporada Doc main.rs: "el CLI canonical es la primera ventana del barquero al mundo". list-presets canonical = transparency canonical: las 3 distribuciones posibles canonical están a la vista canonical, BM V2 incluida canonical materializando David canon 2026-05-14 "la libertad infinita acota solo donde empieza la del otro". Refs: CHARON_ROADMAP_V1 Phase 1.6+, sub-decisión empírica WASM_BINARY defer to Slice 2, sub-decisión empírica sc-service defer to Slice 4 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
a695f45a2d
commit
8a24a86ee6
7 files changed
+451
-45
No files matched your search
+111
@@ -6,6 +6,117 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.0.10] — 2026-05-21 — Phase 1.6+ Slice 1 "Node CLI skeleton canonical"
|
||||
|
||||
Charon sesión 1 continuación. **`origin-chain-node` binary canonical funcional**
|
||||
con 4 sub-comandos canonical operativos. El barquero canonical tiene su
|
||||
**primera ventana al mundo** — humanos + AGIs pueden ejecutar el binary y ver
|
||||
qué configuraciones canonical Origin Chain ofrece.
|
||||
|
||||
### Sub-comandos canonical funcionales
|
||||
|
||||
```text
|
||||
origin-chain-node # default: version canonical
|
||||
origin-chain-node version # print runtime version canonical
|
||||
origin-chain-node list-presets # enumera 3 genesis presets canonical
|
||||
origin-chain-node print-preset <id> # JSON-serialized RuntimeGenesisConfig
|
||||
origin-chain-node info # full runtime metadata canonical
|
||||
```
|
||||
|
||||
### Output canonical de `print-preset development`
|
||||
|
||||
```json
|
||||
{
|
||||
"aura": {
|
||||
"authorities": ["5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"]
|
||||
},
|
||||
"balances": {
|
||||
"balances": [["5Grwv...", 100000000000000000000000000]],
|
||||
"devAccounts": null
|
||||
},
|
||||
"grandpa": {
|
||||
"authorities": [["5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu", 1]]
|
||||
},
|
||||
"session": { "keys": [...] }
|
||||
}
|
||||
```
|
||||
|
||||
**Verified canonical**: Alice's SS58 address `5GrwvaEF5zXb...` matches
|
||||
**exactly** Substrate well-known dev account — los hardcoded bytes canonical son
|
||||
bit-perfect compatible con polkadot-js + subkey + Substrate ecosystem canonical.
|
||||
|
||||
### Decisión empírica canonical: WASM_BINARY DEFERRED a Slice 2 (v0.0.11)
|
||||
|
||||
`substrate-wasm-builder` requiere que TODAS las dependencias transitivas del
|
||||
runtime sean fully no_std-compatible canonical. `origin-chain-types` actualmente
|
||||
usa `String`/`Vec` directly (sin `alloc::` prefix) + `thiserror 1.0` sin no_std
|
||||
support canonical. Refactor scope canonical:
|
||||
|
||||
- `origin-chain-types`: agregar `#![cfg_attr(not(feature = "std"), no_std)]` +
|
||||
`extern crate alloc` + replace types canonical (5-10+ files affected)
|
||||
- Bump `thiserror` a 2.x con `default-features = false`
|
||||
- Add `std` feature gate canonical en origin-chain-types
|
||||
- Update `serde` workspace dep canonical para `default-features = false`
|
||||
|
||||
Esto es **Slice 2 scope** canonical — merece su DC propio (no slip via single
|
||||
session canonical). Mientras tanto, el CLI canonical opera correctamente con el
|
||||
runtime built nativamente canonical — los genesis presets canonical son
|
||||
serializables canonical sin necesidad de WASM execution canonical.
|
||||
|
||||
### Roadmap canonical Phase 1.6+ (multi-slice)
|
||||
|
||||
- **Slice 1** (v0.0.10 ESTA): CLI skeleton + preset listing canonical ✅
|
||||
- **Slice 2** (v0.0.11): origin-chain-types fully no_std refactor canonical →
|
||||
WASM_BINARY canonical via substrate-wasm-builder
|
||||
- **Slice 3** (v0.0.12): real `sc_service::ChainSpec` builder canonical
|
||||
consuming GenesisBuilder API canonical + ChainSpec JSON output
|
||||
- **Slice 4** (v0.0.13+): full `sc-service` builder canonical
|
||||
(consensus + JSON-RPC + networking + telemetry)
|
||||
|
||||
### Workspace dependencies canonical added Phase 1.6+
|
||||
|
||||
- `substrate-wasm-builder 26.0.1` (Slice 2 — deferred)
|
||||
- `sc-cli 0.51.0`, `sc-service 0.50.0`, `sc-executor 0.42.0` (Slice 4 — deferred)
|
||||
- `sc-network 0.49.1`, `sc-consensus 0.48.0` (Slice 4 — deferred)
|
||||
- `sc-consensus-aura 0.49.0`, `sc-consensus-grandpa 0.34.0` (Slice 4 — deferred)
|
||||
- `sc-transaction-pool 39.0.0`, `sc-transaction-pool-api 39.0.0` (Slice 4)
|
||||
- `sc-client-api 39.0.0`, `sc-basic-authorship 0.49.0`, `sc-telemetry 28.1.0`
|
||||
- `sc-offchain 44.0.0` (Slice 4)
|
||||
- `jsonrpsee 0.24.3`, `substrate-frame-rpc-system 43.0.0`,
|
||||
`pallet-transaction-payment-rpc 43.0.0` (Slice 4)
|
||||
- `clap 4.5.13` (Slice 1 ESTA — used canonical en CLI parsing)
|
||||
- `futures 0.3.31` (Slice 4)
|
||||
|
||||
Workspace deps declared canonical pero solo `clap` se usa en v0.0.10. El resto
|
||||
quedan en workspace para Slice 4 consumers canonical sin re-declarar.
|
||||
|
||||
### Filosofía canonical incorporada
|
||||
|
||||
Doc `main.rs` cita: *"el CLI canonical es la primera ventana del barquero al
|
||||
mundo: cualquier humano o AGI puede ejecutarla y ver qué configuraciones
|
||||
canonical ofrece Origin Chain — sin necesidad de leer source code. El
|
||||
`list-presets` canonical es transparency canonical: las 3 distribuciones
|
||||
posibles canonical están a la vista canonical, BM V2 incluida."*
|
||||
|
||||
David canon 2026-05-14: *"la libertad infinita acota solo donde empieza la del
|
||||
otro"* — la transparencia canonical del CLI es libertad informativa: cualquier
|
||||
participant canonical puede saber exactly qué allocation BM V2 canonical
|
||||
recibirá antes de joinear canonical el ecosystem.
|
||||
|
||||
### Tests + build canonical
|
||||
|
||||
- `cargo build --release`: **8.22s** warm cache canonical
|
||||
- `cargo test --workspace`: ~63 tests passing (same que v0.0.9, runtime unchanged)
|
||||
- Binary canonical ejecutable: 4 subcommands operativos
|
||||
- Genesis JSON canonical bit-perfect compatible con polkadot-js apps
|
||||
|
||||
### Phase 1.6+ progress canonical
|
||||
|
||||
- ✅ **Slice 1** Node CLI skeleton + preset listing (v0.0.10 ESTA)
|
||||
- ⏳ **Slice 2** WASM_BINARY canonical + no_std refactor (v0.0.11)
|
||||
- ⏳ **Slice 3** Real ChainSpec builder canonical (v0.0.12)
|
||||
- ⏳ **Slice 4** Full sc-service builder canonical (v0.0.13+)
|
||||
|
||||
## [0.0.9] — 2026-05-21 — Phase 1.7 "Genesis chain_spec canonical (BM V2 allocation)"
|
||||
|
||||
Charon sesión 1 continuación. **Genesis presets canonical implementados** — 3
|
||||
|
||||
Reference in new issue
Block a user