spacemeshos / pm

Project management. Meta-tasks related to research, dev, and specs for the Spacemesh protocol and infrastructure.
http://spacemesh.io/
Creative Commons Zero v1.0 Universal
2 stars 0 forks source link

Transaction Selection #107

Closed noamnelke closed 2 years ago

noamnelke commented 2 years ago

SMIP: spacemeshos/SMIPS#50

Overview

Transaction selection in Spacemesh happens in 4 main stages:

  1. Select transactions to admit to the mempool (rejected transactions are also not gossiped) based on a conservative estimate of the principal to pay the transaction gas.
  2. Select transactions from the mempool to include in a proposal.
  3. Select transactions from the proposals that the Hare converged on to include in the block (as part of the Hare certification phase).
  4. Select transactions to actually apply from the block when the layer is verified.

The main goal here is to prevent any single smesher from being able to censor transactions, or extract value by ordering them in a biased way.

A secondary, but not less important goal, is to minimize mesh, communication and computational bloat due to "spam" transactions that end up not paying their gas cost. Combined, these stages make it hard or uneconomical to attack the network via this avenue.

Tasks

moshababo commented 2 years ago

Done.