Skip to content

Rust Abci Execution#883

Merged
QuantumExplorer merged 221 commits into
v0.25-devfrom
feat/abci_validation
Apr 20, 2023
Merged

Rust Abci Execution#883
QuantumExplorer merged 221 commits into
v0.25-devfrom
feat/abci_validation

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented Apr 4, 2023

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

This PR is for Rust Abci execution. And includes a lot of changes:

  • Validation:
  1. Validation in RS-Drive-Abci.
  2. Synchronous.
  3. Validation now happens in 3 steps:
  • Structure : does not look at state (except for getting contract for documents), structure only
  • Signature : verifies signatures
  • State : verifies state
  1. Output of each validation is state transition action.
  • Execution: Groups validation output as State transition Actions.
    The advantage is that state transitions are now atomic.
  • State Storage on Restart: Rewrote this feature in Rust.
  • Masternode identity port: Rewrote this feature in Rust.
    Operator now has a system key for Node id
  • Signature verification: Commits and withdrawal signatures are verified.
  • Withdrawals: A lot of fixes
  • Atomicity of state transitions: State transitions are atomic. Individual state transitions can fail without invalidating the block.
  • Identity operations are now on Identity V2: Exact Identity calls
  • Masternode list: Direct new calls to core (more efficient and easier).

What was done?

This is a mega PR that brings with it the main Platform executor written in Rust.

How Has This Been Tested?

A lot of strategy tests.

Breaking Changes

We removed JS-Drive and JS-DPP.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

@QuantumExplorer QuantumExplorer changed the base branch from phoenix to v0.25-dev April 20, 2023 10:15
@QuantumExplorer

Copy link
Copy Markdown
Member Author

We are going to merge this into to v25 broken. Reviews are going to take place from tomorrow but after merge. v0.25 will only become the main branch after CI is passing.

@QuantumExplorer QuantumExplorer merged commit 44f9a09 into v0.25-dev Apr 20, 2023
@QuantumExplorer QuantumExplorer deleted the feat/abci_validation branch April 20, 2023 10:58
@thephez thephez added this to the v0.25.0 milestone Oct 11, 2023
QuantumExplorer added a commit that referenced this pull request Jul 14, 2026
…hip, node id, restore & lifecycle fixes

Bumps the pin for rust-dashcore #882 (operator gap-limit extension),
#884 (platform node id = Tenderdash SHA256[0..20], fixing our #883)
and #885 (dedicated PlatformNodeId newtype). Addresses the review
blockers on the masternode feature:

- Ownership maps are rebuilt from the managed provider pools: operator
  scans through the pool's high-water mark (not a hardcoded 20-window)
  so #882/restored beyond-gap keys match; platform node ownership
  reads the persisted EdDSA batch with node ids recomputed under #884
  (the lifecycle is seedless, so seed-derivation never fired).
- Platform-node key batch is threaded restore→FFI→pool as typed EdDSA
  entries; MasternodeSync never downgrades a true ownership flag on a
  transient absent signal.
- Address-pool restore keeps prederived typed BLS/EdDSA keys instead of
  clobbering them with the ECDSA-shaped FFI row.
- Claim button gated off (withdrawal is still a stub); wallet deletion
  purges PersistentMasternode; list_masternodes writes empty outputs
  before fallible lookups.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

5 participants