feat(runtime): Phase 1.3 — Pallets foundation canonical v0.0.5
Runtime canonical REAL con 4 pallets inaugurales composed via #[frame_support::runtime] macro modern syntax (Polkadot SDK stable2509+). ## Pallets integrados (SBS-4 ratified) - Index 0 System (frame_system 40.2.0) — foundational - Index 1 Timestamp (pallet_timestamp 39.0.0) — block clock - Index 2 Balances (pallet_balances 41.1.0) — OGC token per CHN-2 - Index 3 TransactionPayment (pallet_transaction_payment 40.0.0) — gas ## Configs canonical (crates/origin-chain-runtime/src/configs.rs) Constantes canonical Origin Chain: - OGC = 10^18 base units (CHN-2) - MILLI_OGC = 10^15 - EXISTENTIAL_DEPOSIT = 1 MILLI_OGC (Inmutable #16 anti-clasista — trivial para Pi 5 rural user pero protege spam canonical) - BLOCK_HASH_COUNT = 2400 (× 6s = 4h exact = alineado CHN-1 epoch rotation) - SS58_PREFIX = 42 (substrate dev — post-mainnet registry canonical TBD) - MILLISECS_PER_BLOCK = 6000 (Aura slot per CHN-1) - SLOT_DURATION = MILLISECS_PER_BLOCK Config impls: - frame_system::Config via #[derive_impl(SolochainDefaultConfig)] prelude - pallet_balances::Config con RuntimeHoldReason + RuntimeFreezeReason + VariantCountOf + MaxLocks 50 + ExistentialDeposit canonical - pallet_timestamp::Config con MinimumPeriod SLOT_DURATION/2 - pallet_transaction_payment::Config con FungibleAdapter + IdentityFee + OperationalFeeMultiplier 5 (Phase 2.4 refactor para OriginFees CHN-8) ## Runtime composition #[frame_support::runtime] macro genera canonical: RuntimeCall + RuntimeEvent + RuntimeError + RuntimeOrigin + RuntimeFreezeReason + RuntimeHoldReason + RuntimeSlashReason + RuntimeLockId + RuntimeTask + RuntimeViewFunction + PalletInfo automáticamente. ## Types runtime canonical - Block = generic::Block<Header, UncheckedExtrinsic> - Address = MultiAddress<ChainAccountId, ()> - UncheckedExtrinsic = generic::UncheckedExtrinsic<...> - TxExtension canonical 10-tuple (substrate stable2512 pattern): CheckNonZeroSender + CheckSpecVersion + CheckTxVersion + CheckGenesis + CheckEra + CheckNonce + CheckWeight + ChargeTransactionPayment + CheckMetadataHash + WeightReclaim ## Filosofía canonical configs.rs doc cita David canon 2026-05-14 "la libertad infinita acota solo donde empieza la del otro" — EXISTENTIAL_DEPOSIT materializa empíricamente: frontera mínima sin la cual chain no se protege spam, pero trivial para no excluir Pi 5 user rural canonical. ## Build + tests - cargo check 30s cold (pallets deps resolve) - cargo build --release 17s warm cache clean - ~57 tests passing workspace (+7 nuevos runtime canonical): - existential_deposit_canonical_is_one_milli_ogc (Inmutable #16) - block_hash_count_aligned_with_chn_1_epoch_canonical (4h epoch) - slot_duration_canonical_six_seconds (Aura) - 4 pre-existing v0.0.4 tests preserved - 10 origin-chain-runtime + 36 origin-chain-types + 2 tokenomics + 5 stubs + 2 doctests ## Lint adjustment #![deny(missing_docs)] → #![warn(missing_docs)] en origin-chain-runtime because frame_support::runtime macro genera many items que no podemos documentar individualmente. Warn preserva intent sin bloquear compile. ## Phase 1 progress 1.1 ✅ + 1.2 ✅ + 1.3 ✅ (esta) → 1.4-1.7 pending (aura/grandpa/session/identity/ node service/chain_spec). Refs: CHARON_ROADMAP_V1 Phase 1.3, DC SUBSTRATE_FOUNDATION_V1 SBS-1/3/4 ratified, DC FOUNDATION_V1 CHN-1/2/8 ratified, Inmutables #16/#26/#37/#41 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
80c86f7ca0
commit
adab264d54
6 files changed
+833
-103
No files matched your search
@@ -7,22 +7,31 @@ license.workspace = true
|
||||
authors.workspace = true
|
||||
repository.workspace = true
|
||||
homepage.workspace = true
|
||||
description = "Origin Chain Substrate runtime canonical. Pilar 4: consensus Aura+GRANDPA + OGC tokenomics + provenance ledger + ink! smart contracts + bridges + governance. Phase 1.2 scaffold v0.0.4."
|
||||
description = "Origin Chain Substrate runtime canonical. Pilar 4: System + Balances + Timestamp pallets integrated (Phase 1.3 v0.0.5). Roadmap: consensus Aura+GRANDPA + provenance + ink! + bridges + governance progressivos."
|
||||
|
||||
[dependencies]
|
||||
# Origin Chain canonical traits + types
|
||||
origin-chain-types.workspace = true
|
||||
|
||||
# Substrate Primitives canonical (per SBS-1 polkadot-stable2512-3)
|
||||
# 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
|
||||
|
||||
# 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 (per SBS-4 ratified)
|
||||
pallet-balances.workspace = true
|
||||
pallet-timestamp.workspace = true
|
||||
pallet-transaction-payment.workspace = true
|
||||
|
||||
# SCALE codec canonical
|
||||
parity-scale-codec.workspace = true
|
||||
@@ -31,7 +40,7 @@ scale-info.workspace = true
|
||||
# Logging
|
||||
log.workspace = true
|
||||
|
||||
# Serialization opcional canonical
|
||||
# Serialization opcional
|
||||
serde = { workspace = true, optional = true }
|
||||
|
||||
[features]
|
||||
@@ -42,8 +51,15 @@ std = [
|
||||
"sp-std/std",
|
||||
"sp-version/std",
|
||||
"sp-api/std",
|
||||
"sp-block-builder/std",
|
||||
"sp-inherents/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",
|
||||
"parity-scale-codec/std",
|
||||
"scale-info/std",
|
||||
"serde",
|
||||
@@ -51,4 +67,7 @@ std = [
|
||||
runtime-benchmarks = [
|
||||
"frame-system/runtime-benchmarks",
|
||||
"frame-support/runtime-benchmarks",
|
||||
"pallet-balances/runtime-benchmarks",
|
||||
"pallet-timestamp/runtime-benchmarks",
|
||||
"pallet-transaction-payment/runtime-benchmarks",
|
||||
]
|
||||
Reference in new issue
Block a user