---
# System prepended metadata

title: Skip list proofs size

---

# Skip list proofs size

## Messages

En utilisant les limites de mainnet:

```ocaml
let test_inbox_max_number_of_messages_per_level () =
  let* block, (account1, account2) =
    context_init
      ~hard_gas_limit_per_block:Gas.Arith.(integral_of_int_exn 2_600_000)
      ~hard_gas_limit_per_operation:Gas.Arith.(integral_of_int_exn 1_040_000)
      Context.T2
  in
  let* block, _rollup = sc_originate block account1 "unit" in
  let _max_number_of_messages_per_level =
    Constants.sc_rollup_max_number_of_messages_per_level
  in
  let* incr = Incremental.begin_construction block in
  (* This just one message below the limit *)
  let messages = List.repeat 400_000 "foo" in
  let* op =
    Op.sc_rollup_add_messages ~gas_limit:Max (I incr) account1 messages
  in
  let* incr = Incremental.add_operation ~check_size:false incr op in

  let messages = List.repeat 395_000 "foo" in
  let* op =
    Op.sc_rollup_add_messages ~gas_limit:Max (I incr) account2 messages
  in
  let* incr = Incremental.add_operation ~check_size:false incr op in

  let* _b = Incremental.finalize_block incr in
  return_unit
```

L'ajout de seulement quelques messages après `795_000` fait dépasser la limite
en gas du block. On a donc au maximum ~= `800_000` messages par block, pas
loin du 1M.

(Peut être refaire les tests avec `message = "x"`, pour avoir le coût minimal de hash)

## Inbox levels

On a vu que la preuve de 800k à 1M fait ~= 7Kb.
Nombres de blocks par jour: 4 * 60 * 24 = 5760
1_000_000 / 5760 = 173

Il faut 173 jours de retard pour atteindre 1M, on peut donc dire que la condition
`taille opération tezos > preuve inbox + preuve message + preuve read_input` est
respecter tant que `preuve read_input < 32000 - (7000 + 7000); preuve read_input < 18000`