Architecture Basics
Last updated
Last updated
The pod network operates through an architecture of interconnected participants, each serving specific roles in maintaining the network's efficiency, security, and accessibility
Validators serve as the fundamental processing layer of the network, receiving and attesting to new transactions. Each validator operates independently and does not communicate with other validators, only with nodes that send and receive transactions. This architectural decision maximizes efficiency by allowing validators to process transactions using only their local state, without coordination overhead. However, this means validators may temporarily have inconsistent states as they see transactions in different order, or some validators may not see some transactions at all.
The validator's role focuses solely on transaction attestation and validation, establishing a clear separation of concerns within the network architecture.
Nodes act as intermediaries, broadcasting transactions to validators and collecting their attestations. The network supports two distinct node types:
Full Nodes maintain a comprehensive view of network activity by collecting all attestations from validators and maintaining a complete record of the network state.
Sparse Nodes offer a more targeted approach by collecting attestations selectively based on specific criteria, such as particular accounts or smart contracts. This selective monitoring optimizes resource usage while still maintaining network participation.
Clients represent the application layer of the pod and come in two varieties based on their trust model:
Verifying Clients implement their own validation logic and verify the cryptographic proofs of transaction validity. These clients rely on nodes only for liveness—the timely delivery of new transactions and attestations. They independently verify the safety of transactions by checking validator attestations and signatures, ensuring transaction without having to trust the node they are connected to. Verifying clients may receive transaction information through various channels, including but not limited to node JSON-RPC interfaces. For example, they might be smart contracts on other blockchains.
Non-Verifying Clients must establish direct connections with trusted nodes and depend on them for both liveness and safety. They rely on nodes not only to receive new transactions and attestations but also to determine transaction validity. This approach optimizes for performance and simplicity but requires complete trust in the connected node's proper operation and honest behavior. As a result, non-verifying clients must carefully consider their choice of node operator.
The pod network facilitates transaction processing through a defined communication flow:
Transaction Initiation: Clients submit transactions through their chosen communication channel.
Transaction Broadcasting: Nodes broadcast received transactions to all validators through the consensus network.
Transaction Validation: Validators independently process transactions and generate attestations.
Attestation collection: Nodes collect attestations according to their configuration (full or selective).
Client Communication: Nodes provide transaction results and attestations to connected clients.
Pod's security model centers on the verification of validator attestations and aggregate signatures. Full nodes collect attestations from validators and provide these to clients along with aggregate signatures. Each client can implement its own trust threshold, determining how many validator attestations it requires before considering a transaction final.
The security of the system relies on cryptographic verification rather than trust in individual components. Clients can verify the aggregate signatures provided by nodes to ensure transaction validity, rather than having to trust the nodes themselves. This allows for a flexible security model where different applications can implement varying levels of verification based on their specific requirements.
Applications interacting with pod should carefully consider their trust model. There are two primary approaches to ensuring security:
The first approach is to operate with a trusted full node. Organizations can run their own full node, maintaining direct control over their network interface. This model is suitable for applications where the organization can ensure the integrity of their node infrastructure.
The second approach is to implement attestation verification at the client level. In this model, clients verify the aggregate signatures provided by nodes, checking that a sufficient number of validators have attested to each transaction. This verification can be calibrated to require different quorum levels depending on the application's security needs.
For critical applications, implementing robust signature verification is recommended even when working with trusted nodes, as this provides an additional layer of security. The level of verification can be adjusted based on transaction value and importance.
Pod implements a leaderless consensus mechanism where transaction finalization occurs through validator attestations rather than traditional block creation. This approach enables rapid transaction finality through a quorum-based certification process.
A transaction in pod progresses through several distinct states:
Submitted: Transaction is broadcasted to the network
Validated: Individual validators have processed the transaction
Attested: Validators have provided signed attestations
Finalized: Sufficient attestations have been collected to form a certificate
When a client submits a transaction to pod:
Client sends transaction via JSON-RPC to a connected node
Node validates basic transaction format and parameters
Node forwards valid transaction to validators through consensus network
Unlike traditional blockchain systems, pod doesn't batch transactions into blocks or rely on leader election. Instead:
Each validator independently:
Receives the transaction
Validates transaction format and signatures
Checks account balances and nonce values
If calling a smart contract function, checks that the function accepts the calldata, always ensuring enough gas was paid.
Upon successful validation, validators generate signed attestations containing:
Transaction hash
Validator's signature
Nodes collect attestations from validators according to their configuration:
Collect all attestations from all validators
Maintain complete network state
Track attestation quorum for all transactions
A transaction reaches finality when:
More than two-thirds of validators have provided attestations
The attestations are cryptographically valid
The attestations form a consistent view of the transaction
Once a certificate is formed:
Nodes update their local state
Clients can query transaction status via JSON-RPC
The transaction is considered irreversible
Pod's leaderless consensus mechanism offers several advantages:
Fast Finality: Transactions can finalize as soon as sufficient attestations are collected, without waiting for block creation
Consistent Latency: No block time variability or leader election delays
High Throughput: Parallel processing by validators without block size limitations
When implementing applications on pod:
Always wait for transaction finalization before considering transactions complete.
Monitor transaction receipts to verify attestation collection.
Implement appropriate error handling for transaction submission and monitoring.
Consider using verifying clients for critical applications.