Crate pd

source ·
Expand description

Source code for the Penumbra node software.


  • Methods and types used for generating testnet configurations. Mostly relevant until Penumbra reaches mainnet.


  • The Penumbra application, written as a bundle of Components.
  • Implements service traits for Tonic gRPC services.
  • When using ABCI, we can’t control block proposal directly, so we could potentially end up creating blocks with mutually incompatible transactions. While we’d reject one of them during execution, it’s nicer to try to filter them out at the mempool stage. Currently, the way we do this is by having the mempool worker maintain an ephemeral fork of the entire execution state, and execute incoming transactions against the fork. This prevents conflicting transactions in the local mempool, since we’ll update the fork, then reject the second transaction against the forked state. When we learn a new state has been committed, we discard and recreate the ephemeral fork.