Skip to content

feat(release): v0.9.0 Foundation Complete (spec_version 112)#24

Open
imzzaidd wants to merge 9 commits into
mainfrom
feat/v0.9.0-foundation-complete
Open

feat(release): v0.9.0 Foundation Complete (spec_version 112)#24
imzzaidd wants to merge 9 commits into
mainfrom
feat/v0.9.0-foundation-complete

Conversation

@imzzaidd
Copy link
Copy Markdown
Contributor

Summary

v0.9.0 "Foundation Complete" — SHA-256 NIST dual-hash, DePIN RPC endpoints, FRAME benchmarks, and cross-pallet integration tests.

Changes

  • SHA-256 NIST dual-hash layer — 5 domain constants (NIST_DOMAIN_*), 4 functions (sha256_with_domain, sha256_raw, sha256_hash_pair, nist_key_fingerprint) for FIPS 180-4 compliance
  • Custom DePIN RPC endpoints — New seveny-runtime-api crate with 4 runtime API traits and jsonrpsee implementations: presence_getState, epoch_current, validator_status, device_health
  • FRAME benchmark scaffolding#[benchmarks] module for all 16 custom pallets wired into define_benchmarks!
  • Cross-pallet integration tests — 30 tests exercising real Presence + Epoch + Validator pallets (no mocks), covering INV1,7-11,14,16-17,46
  • EC-VSS refactor — Extract lagrange_basis_at_zero helper to fix clippy excessive nesting
  • Equivocation reporting — Documented pallet_session dependency; stubs remain until session integration
  • Version bump — Workspace 0.9.0, spec_version 112

New Files

File Purpose
runtime-api/src/lib.rs 4 runtime API trait declarations + 6 RPC response types
runtime-api/Cargo.toml New crate for runtime API definitions
runtime/src/integration_tests.rs 30 cross-pallet integration tests
pallets/*/src/benchmarking.rs (x16) FRAME benchmark scaffolding per pallet

Test Results

  • 687 tests pass, 0 failures
  • Clippy clean (zero warnings)
  • cargo fmt clean

Test plan

  • cargo test --workspace — all 687 tests pass
  • cargo clippy --all-targets -- -D warnings — zero warnings
  • cargo fmt --all -- --check — clean
  • cargo check --no-default-features --target wasm32-unknown-unknown -p seveny-runtime — no_std verification
  • CI pipeline green

…pliance

Add domain-separated SHA-256 functions alongside existing Blake2-256 to
meet NIST FIPS 180-4 regulatory requirements for DePIN deployments.

New functions: sha256_with_domain, sha256_raw, sha256_hash_pair,
nist_key_fingerprint. Five NIST domain constants with 7ay:nist: prefix
ensure separation between hash families. Includes 12 unit tests.
Reduce nesting depth in reconstruct() by extracting the Lagrange basis
polynomial computation into a dedicated helper method. Fixes clippy
excessive_nesting warning.
…tor, device

Introduce seveny-runtime-api crate with 4 runtime API traits and typed
response structs. Implement presence_getState, epoch_current,
validator_status, and device_health RPC methods bridging pallet storage
to jsonrpsee endpoints. Document equivocation reporting status.
Add #[benchmarks] module to each pallet with representative extrinsic
benchmarks. Wire all 16 pallets into runtime define_benchmarks! and
enable runtime-benchmarks feature flags. Replaces hand-estimated weights
with measurable benchmark infrastructure.
Add 30 integration tests exercising the real Presence, Epoch, and
Validator pallets wired together (no mocks). Cover full lifecycle flow,
epoch binding, state monotonicity, terminal state immutability, quorum
edge cases, and cross-pallet error propagation for INV1,7-11,14,16-17,46.
Mark the "Foundation Complete" milestone with workspace version 0.9.0
and runtime spec_version 112. This version adds SHA-256 NIST dual-hash,
DePIN RPC endpoints, FRAME benchmarks, and cross-pallet integration tests.
- Add missing runtime API trait imports in node/src/rpc.rs (PresenceApi,
  EpochApi, ValidatorApi, DeviceApi) to fix E0599 compile errors
- Wrap H256 values with ActorId in lifecycle benchmarking to fix E0308
  type mismatch errors under runtime-benchmarks feature
- Suppress RUSTSEC-2026-0037 (quinn-proto DoS) and RUSTSEC-2026-0049
  (rustls-webpki CRL matching) - transitive deps from polkadot SDK
…ompile errors

- Add frame-benchmarking dependency to device-scanner and triangulation
  Cargo.toml (was missing, causing E0433 unresolved crate errors)
- Use pallet-local Position struct instead of seveny_primitives::Position
  to fix E0308 type mismatch in both pallets' benchmarking modules
- Rename benchmark fn to match extrinsic name (set_scan_data) so the
  #[extrinsic_call] _() macro resolves correctly
- Remove unused pallet::* imports in epoch and lifecycle benchmarks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant