Skip to content

Conversation

jimmygchen
Copy link
Contributor

This PR lowers the cross seeding requirements for non-supernodes, to only require publishing recovered custody columns (instead of all recovered columns) after reconstruction.

The spec currently says:

Once the node obtains a column through reconstruction, the node MUST expose the
new column as if it had received it over the network. If the node is subscribed
to the subnet corresponding to the column, it MUST send the reconstructed
`DataColumnSidecar` to its topic mesh neighbors. If instead the node is not
subscribed to the corresponding subnet, it SHOULD still expose the availability
of the `DataColumnSidecar` as part of the gossip emission process. After
exposing the reconstructed `DataColumnSidecar` to the network, the node MAY
delete the `DataColumnSidecar` if it is not part of the node's custody
requirement.

However I think its unfair for nodes custodying less than 128 ciolumns to publish all columns instead of just its sampling columns, because they might actually end up using more outbound bandwidth than a supernode every time it performs reconstruction.

  • A supernode only publishes reconstructed columns that it hasn't observed via gossip.
  • A non-supernode will have to publish everything that it doesn't custody, because it wouldn't have seen any of the non sampling columns on gossip. This means a node custdoying 65 columns will always publish at least 64 (63 non custody + at least 1 missing custody column) columns every time it reconstructs.

My preference would be making publishing to non-custody subnets optional, so that non-supernodes are not required to publish the same amount of data as supernodes after reconstruction. The impact to the network should be minimal, because we can safely assume supernode exists on a live network. On a separate note, longer term it would be ideal to reduce / eliminate the dependency on supernodes via partial 1D or 2D reconstruction and partial gossip column messages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant