Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rethink oasis-node access #71

Closed
Yawning opened this issue Jun 13, 2022 · 4 comments
Closed

Rethink oasis-node access #71

Yawning opened this issue Jun 13, 2022 · 4 comments
Labels
bug Something isn't working

Comments

@Yawning
Copy link

Yawning commented Jun 13, 2022

The current intended way of accessing oasis-node 100% does not support archive nodes, for the same reason why oasisprotocol/oasis-web3-gateway#286 exists.

Before this hits production this should be rethought and re-evaluated as this likely impacts storage strategy (while oasis-node is the best at storing oasis-node's data, when you can't connect to multiple versions of oasis-node simultaniously reliably, other options need to be considered).

@Yawning Yawning added the bug Something isn't working label Jun 13, 2022
@aefhm
Copy link
Contributor

aefhm commented Jun 22, 2022

I think the current strategy (which will be further outlined) is to run multiple instances of the Indexer, per each upgrade.

@gw0
Copy link

gw0 commented Jun 24, 2022

I thought that only analyzers would access oasis-nodes, process what is needed and write the results into a database? The front-end of the Indexer would then just read from this database?

Architecturally analyzers should be more or less stand-alone components where each one supports its own oasis-node version and is backed by an archive oasis-node with that version. To improve the robustness of the system and solve the Go package importing issue this means each analyzer should be compiled separately and a coordinator service should spawn analyzers that are needed.

The configuration of analyzers in the config file supports this (name = analyzer compiled for specific oasis-node version, rpc = connect to which archive node, from/to = block height boundaries):

@aefhm
Copy link
Contributor

aefhm commented Jun 27, 2022

I thought that only analyzers would access oasis-nodes, process what is needed and write the results into a database? The front-end of the Indexer would then just read from this database?

Ah, to be more specific, I should say multiple analyzers 🤔.

@mitjat
Copy link
Contributor

mitjat commented Oct 11, 2022

The current thinking is still that the current approach will work out OK. Each analyzer (probably instantiated in a separate k8s deployment, though not technically necessary) will connect to a separate node (oasis-3, oasis-4, etc) and write to a separate set of tables (namescoped by chain id) in the DB. How both sets of tables are merged is up for debate; my early bet is on a one-time migration of the oasis-3 content to the oasis-4 schema during the node upgrade window. But that's a larger question and is to be fully addressed in scope of #161 .

@mitjat mitjat closed this as completed Oct 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants