astriaorg / astria

A monorepo containing all the custom components of the Astria network, a decentralized system that replaces traditional sequencers, offering a shared, permissionless sequencer network.
https://www.astria.org/
Apache License 2.0
113 stars 76 forks source link

TLS upgrade cometbft to effectuate modular design of components #391

Open emhane opened 1 year ago

emhane commented 1 year ago

running a rollup node and cometbft full node on separate machines greatly decrease hardware requirements to interact with and run the shared-sequencer. the modular design of astria components allows for this.

next step, is to upgrade communication between conductor and cometbft node as well as sequencer-client (composer) and cometbft node to use the wss scheme and https scheme respectively. tendermint-rs web socket supports wss urls.

### Tasks
- [x] composer already starts sequencer clients with url, from the url the underlying tendermint `HttpClient` infers connection scheme
- [ ] https://github.com/astriaorg/astria/issues/332
- [ ] https://github.com/astriaorg/dev-cluster/issues/93this upgrade makes it possible to run the shared-sequencer as two remote machines as shown below (https://github.com/astriaorg/astria/issues/393 push validator sets to conductor instead of conductor fetching them)

SuperFluffy commented 1 year ago

What do these tasks entail? If I am looking at the tendermint clients correctly then the difference is simply passing in a wss:// url rather than a ws:// and let them handle everything.

Is there anything that we should do implementation wise in our services to unblock this? Or is this infra work? https://github.com/astriaorg/infra and https://github.com/astriaorg/dev-cluster

emhane commented 1 year ago

What do these tasks entail? If I am looking at the tendermint clients correctly then the difference is simply passing in a wss:// url rather than a ws:// and let them handle everything.

exactly, nothing else in the rust code to do

Is there anything that we should do implementation wise in our services to unblock this? Or is this infra work? https://github.com/astriaorg/infra and https://github.com/astriaorg/dev-cluster

possibly update docs and comments. local.env.example files need to be updated, probably testnets scripts in this repo @WafflesVonMaple. setting up certificate can move to dev cluster repo.

joroshiba commented 2 months ago

We use secure connections as needed in production and are supported it's just not done for local instances for testing environments