Expand description
§ethexe-common
Shared vocabulary crate for the ethexe execution layer: block model, on-chain
events, validator commitments, injected transactions, storage trait abstractions,
and protocol constants. It defines shapes and trait interfaces only — the
concrete storage backends live in ethexe-db. Being no_std-compatible, it
links into both the WASM runtime
(ethexe-runtime) and the native node binary.
§Role in the stack
This crate depends on no other ethexe workspace member (it sits on gear-core,
gprimitives, and gsigner) and nearly every other ethexe crate depends on it,
making it a foundational leaf. For example, ethexe-consensus exchanges
consensus::BatchCommitmentValidationRequest /
consensus::BatchCommitmentValidationReply messages defined here, and
ethexe-db provides backends for the db storage traits declared here.
§Public API
consensus— Validation request/reply messages and timeline helpers for the batch commitment protocol.db—*StorageRO/*StorageRWtrait abstractions and block-metadata types.events— On-chain event model:BlockEvent(Mirror/Router variants) andWVaraEvent.gear— Protocol commitments (gear::BatchCommitmentand siblings) andgear::StateTransition.injected— Injected transactions, promises, and receipts for inbound cross-chain messaging.malachite— Sequencer block-payload shape (malachite::Transactions,Transaction).network— Validator network messages (ValidatorMessageand signed/verified variants).ecdsa— secp256k1 re-exports fromgsigner.- [
mock] — Test helpers and proptest fixtures (featuremock).
Flattened crate-root re-exports include HashOf, MaybeHashOf,
BlockHeader, SimpleBlockData, BlockData, ValidatorsVec,
EmptyValidatorsError, and the gsigner crypto surface (Address,
Digest, PublicKey, Signature, SignedData, ToDigest,
VerifiedData, …).
Crate-root constants include the per-MB soft execution limits
(OUTGOING_MESSAGES_SOFT_LIMIT, OUTGOING_MESSAGES_BYTES_SOFT_LIMIT,
CALL_REPLY_SOFT_LIMIT, PROGRAM_MODIFICATIONS_SOFT_LIMIT,
MAX_TOUCHED_PROGRAMS_PER_MB) and DEFAULT_BLOCK_GAS_LIMIT.
§Key types
HashOf<T>— phantom-typedH256wrapper preventing mixing of hashes of different payload kinds;MaybeHashOf<T>is its optional sibling.BlockHeader/SimpleBlockData/BlockData— the ethexe block model.gear::BatchCommitmentand sibling commitment types — the validator-submitted commitment hierarchy; each implementsToDigestfor Keccak256 hashing.gear::StateTransition— a single validated program state change.ValidatorsVec— aNonEmpty<Address>wrapper guaranteeing the validator set is never empty.injected::InjectedTransaction/injected::Promise— inbound cross-chain transaction and its promise/receipt lifecycle.
§Invariants
ValidatorsVeccannot be constructed from an empty collection;try_fromreturnsEmptyValidatorsErroron empty input.DEFAULT_COMMITMENT_DELAY_LIMITis a coordinator-local knob, not a protocol constant — each coordinator selects its own value.
Re-exports§
pub use gear_core;pub use gprimitives;pub use k256;pub use sha3;
Modules§
- consensus
- db
- Common db types and traits.
- ecdsa
- events
- gear
- This is supposed to be an exact copy of Gear.sol library.
- injected
- malachite
- Application-level block shape produced by the Malachite sequencer and consumed by the ethexe executor.
- network
Structs§
- Address
- Ethereum address type.
- Block
Data - Block
Header - Code
AndId - Code
AndId Unchecked - Code
Blob Info - Contract
Signature - A recoverable ECDSA signature for a contract-specific digest format (ERC-191).
- Digest
- Common digest type for the gsigner ecosystem.
Presently, it is represented as 32-byte Keccak256 hash.
The
ToDigesttrait is implemented for various types to facilitate hashing and signing. - Empty
Validators Error - From
Actor IdError - HashOf
- Maybe
Hash Of - Private
Key - secp256k1 private key (ECDSA) backed by
sp_core::ecdsa::Pair. - Protocol
Timelines - GearExe network timelines configuration. Parameters fetched the Router contract. This struct stores in the database, because of using in the multiple places.
- Public
Key - secp256k1 public key backed by
sp_core::ecdsa::Public(compressed form). - Signature
- A recoverable ECDSA signature.
- Signed
Data - A signed data structure that contains the data and its signature.
- Signed
Message - A signed according to EIP-191 message,that contains the data and its signature. Always valid after construction.
- Simple
Block Data - State
Hash With Queue Size - Validators
Vec ValidatorsVecis a wrapper over non-empty vector ofAddress. It is needed becauseNonEmptydoes not implementEncodeandDecode.- Verified
Data - A signature verified data structure with the data and recovered public key.
Enums§
- Promise
Emission Mode - The PromiseEmissionMode configures the promise emission mode for the ethexe node
- Promise
Policy PromisePolicytells processor whether should it emits promises or not.
Constants§
- CALL_
REPLY_ SOFT_ LIMIT - DEFAULT_
BLOCK_ GAS_ LIMIT - Default block gas limit for the node.
- DEFAULT_
COMMITMENT_ DELAY_ LIMIT - Default
commitment_delay_limit(in Ethereum blocks). Coordinator-local knob: how many EBs aBatchCommitmentstays valid past its target block. Not a protocol constant — every coordinator picks its own value. - MAX_
TOUCHED_ PROGRAMS_ PER_ MB - Maximum number of touched programs per MB.
- OUTGOING_
MESSAGES_ BYTES_ SOFT_ LIMIT - OUTGOING_
MESSAGES_ SOFT_ LIMIT - PROGRAM_
MODIFICATIONS_ SOFT_ LIMIT
Traits§
- ToDigest
- Trait for hashing types into a Digest using Keccak256.
Functions§
- decode_
to_ array - Decodes hexed string to a byte array.
- setup_
block_ in_ db - u64_
into_ uint48_ be_ bytes_ lossy - Converts u64 to a 48-bit unsigned integer, represented as a byte array in big-endian order.
Type Aliases§
- Program
States - Rfm
- RemoveFromMailbox key; (msgs sources program (mailbox and queue provider), destination user id)
- Schedule
- Scheduler; (block height, scheduled task)
- Scheduled
Task - NOTE: generic keys differs to Vara and have been chosen dependent on storage organization of ethexe.
- Sd
- SendDispatch key; (msgs destinations program (stash and queue provider), message id)
- Sum
- SendUserMessage key; (msgs sources program (mailbox and stash provider))