# Multiple bundles per block vs one bundle per block

**URL:** <https://forum.autonomys.xyz/t/multiple-bundles-per-block-vs-one-bundle-per-block/2276>\
**Category:** Research\
**Created:** [December 19, 2023, 1:53pm UTC](https://forum.autonomys.xyz/t/multiple-bundles-per-block-vs-one-bundle-per-block/2276 "2023-12-19T13:53:33Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![nazar-pc](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.autonomys.xyz/nazar-pc/32/6_2.png) [@nazar-pc](https://forum.autonomys.xyz/u/nazar-pc)\
**Post date:** [December 19, 2023, 8:01pm UTC](https://forum.autonomys.xyz/t/multiple-bundles-per-block-vs-one-bundle-per-block/2276/2 "2023-12-19T20:01:42Z")

</div>

A few notes from our recent offline discussion.

> [@ning](#):
>
> through bundle gossip in the domain network

Can also be done by intercepting consensus node gossip as well, but latency might be higher and construction will be less effective because of it.

> [@ning](#):
>
> Or even worse, if the tx depends on a tx included in the previous bundle (i.e. through nonce) the tx will be illegal and the bundle will be invalid without the previous bundle, thus the operator will be slashed

This will not be a valid bundle, bundle can only include transactions that are legal as of the parent state of the consensus block. Can be fixed by introducing a chain of bundles within the same block as we discussed recently, where next bundle points to the previous, making it possible to include transactions with increasing nonces across a series of bundles.

> [@ning](#):
>
> While deduplication is easy for the farmer, it is hard for other farmers to verify if the deduplication is performed correctly, i.e. verifying every domain tx that committed to the bundle extrinsic root is still exist in the consensus block

It depends on the implementation. In case we have bundle headers with hashes of all transactions the cost is similarly trivial.

> [@ning](#):
>
> While the domain block is derived from multiple bundles we can’t ensure the final domain block doesn’t contain illegal tx.

This is fine, transaction only has to be legal from the point of view of the parent state, no guarantees are made about the legality during execution and operation shouldn’t be slashed in that case.

> [@ning](#):
>
> The will cause the final domain block exceed its size/weight limit, and once the limit is exceeded the following domain tx will be skip from execution thus causing a waste of storage

During last discussion we decided to remove this limit for now, also [On bundle weight limits sum](https://forum.autonomys.xyz/t/on-bundle-weight-limits-sum/2277) has a follow-up discussion about defining bundle weight limit.

> [@ning](#):
>
> One drawback of this approach found currently

The other one is related to network saturation: instead of sending a few smaller bundles we send one large bundle. This can be significantly mitigated by the compact bundles implementation like the one we have for blocks already.

Similarly there is an issue in case bundles are duplicated because they are large and waste a lot of bandwidth, the mitigation is similar though.

---

_[View the full topic](https://forum.autonomys.xyz/t/multiple-bundles-per-block-vs-one-bundle-per-block/2276)._
