Open snissn opened 1 year ago
To close this issue we want to
is this anywhere close to being testable? we'd be happy to run on calib asap
is this anywhere close to being testable? we'd be happy to run on calib asap
yes! It should be very capable of running on calibnet at this point!! While it hasn't landed yet in master, there is the branch mikers/feat/cassandra-store for lotus and the documentation is available here https://cosmic-halva-918d7c.netlify.app/lotus/configure/followers/ ( to ultimately be merged into prod docs link when the code is merged)
Title: Scalable Lotus Node Infrastructure with YugabyteDB
Summary
This proposal aims to create a scalable Lotus infrastructure leveraging YugabyteDB as the backend datastore, supporting multiple RPC nodes behind a load balancer, and supporting linearly being able to increase read IOPs through horizontally scaling and adding more nodes to the Yugabyte cluster. Because of the Yugabyte cluster, all of the RPC nodes will see identical and synchronized chain state.
Proposal
Integrate YugabyteDB as the backend datastore for Lotus nodes.
Implement a new node mode called "follower." which will Support multiple RPC nodes behind a load balancer.
node/builder.go#L241-L246
to addisFollowerNode
.node/builder_chain.go#L91-L92
andnode/builder_chain.go#L174
to wrap the initialization in an if statement that does not initialize if the node is a follower node.chainstore.PutTipSet
:chain/store/store.go#L380
.Benchmark the new infrastructure to ensure performance improvements.
[x] - Provide clear and concise documentation for the community to adopt and implement this scalable Lotus infrastructure.
documentation is available to preview here: https://main--cosmic-halva-918d7c.netlify.app/lotus/configure/followers/#infrastructure-diagram
The documentation can go live as soon as a PR from this branch is made - https://github.com/filecoin-project/lotus-docs/compare/main...snissn:lotus-docs:main?expand=1
Infrastructure Diagram