Skip to content

[consensus/marshal] Add Example for Simplex-Less Marshal #2466

@patrick-ogrady

Description

@patrick-ogrady

For nodes following consensus (that only have access to certificates), we should create an example where they run an instance of marshal without instantiating p2p or simplex. Recall, all we need is just some feed of certs and some resolver to ask for missing data...

This should serve as a template for creating "follower" nodes (that aren't part of validator p2p) for exchanges/RPC nodes.

A blocker here is to expose the stream of certificates (and maybe blocks) over a public port exposed by validators (on top of the reporter from Simplex or on top of the reporter from Marshal...depending on the certificate visibility required). See #2030 (may be able to also power #1921) for an example of what that could look like. I suspect this would be easier for operators than #2034 (which is probably overkill for trusted operators that don't want to configure listeners on the server). Arguably this could just be implemented outside of the codebase but seems useful to have a "default" here.

Once this stream is available, it should be possible for infrastructure providers to replicate cheaply in the cloud for any number of listeners (should not open this stream port to the internet as it could destabilize the validator).

For a lossless indexing record, this streamer could track the stream to broadcast and ensure all listeners explicitly ack all results. We attempted something like this in Battleware but it may be overkill for some listeners (this example also pushes data to some endpoint rather than just broadcasting).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Staged

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions