Lunie: Identify and avoid connecting to non-indexing nodes

Created on 20 Jul 2018  ·  25Comments  ·  Source: luniehq/lunie

UI Version: 0.7.1

Description:

Usually nodes are not indexing transactions. This results in falsely txs not showing.

Tendermint shows us if a node is indexing via the status endpoint and the property node_info.other.tx_index

blocked ✋ bug

Most helpful comment

I think we should keep trying to fix this - Voyager isn't the only client that might need to query indexing status, and we want the user to have the ability to select a different full node.

I'll try to take a look today or tomorrow.

All 25 comments

is it unreasonable to propose that voyager won't connect to a non-indexing node without the user saying this is ok?

  1. voyager tries to connect to an indexing node
  2. if no indexing nodes found, full screen modal telling user that voyager can't find any indexing nodes, asking if voyager should try connecting to non indexing nodes
  3. features effected by non-indexing nodes (like tx history) should have special error message stating that the node voyager is connected to is "non-indexing" with a button to try to find (or run locally?) an indexing node.

what do you think?

Totally what I was thinking. Two 👍 from me.

  • let's try to push for indexing being mandatory

also show correct message

I requested that indexing be made mandatory and the SDK team said "no".

Other than the transaction history, which Voyager features are affected by a non-indexing node?

Another idea: How about Voyager doesn't connect to non-indexing nodes, period. We can handle more cases after launch.

I guess most staking information. Am I wrong @fedekunze ?
I like the idea to skip non-indexing nodes. We just need to make sure, we have at least one per testnet. This should be possible, as we can make the testnet team do it. :)

  • @faboweb @NodeGuy I like the idea of skipping non-indexing nodes, since we won't be able to query txs by tag. That affects mostly all actions (_i.e_ governance, staking, transfers, etc) and important queries we need in order for Voyager to work smoothly

@faboweb @NodeGuy should we also open an issue for more docs of what Node indexing is and what are the pros/cons of it ?

yes @fedekunze please open one

See cosmos/cosmos-sdk#2132

OK, I'll make Voyager skip non-indexing nodes.

The mentioned status node_info.other.tx_index doesn't show actual indexing.

Example:
103.72.145.36:26657 shows tx-index=on but doesn't show txs.
195.201.141.141:26657, 51.38.113.60:26657 shows tx-index=on and shows txs.

Pulling in SDK team @cwgoes
Pulling in Tendermint team @xla

Please submit a bug report in the SDK repo.

See cosmos/cosmos-sdk#2183

I believe this is a Tendermint RPC endpoint which the SDK doesn't handle.

Isn't indexing handled by Tendermint?

Sounds like the bug should be filed in the Tendermint repo.

Created an issue on the Tendermint repo: https://github.com/tendermint/tendermint/issues/2304

We shouldn't be blocked on Voyager side. Even in the case there's an issue on the SDK or Tendermint, we still need to identify non indexing nodes. Therefore I'm removing the blocked label

The problem is: We can't identify those nodes yet. There is no proposal for how to solve this yet.

Implementation ready, but blocked on not being able to test the results

Is this now irrelevant because of https://github.com/cosmos/voyager/issues/1291?

Is this now irrelevant because of #1291?

We can ice this PR. We can get back to it after launch.

I think we should keep trying to fix this - Voyager isn't the only client that might need to query indexing status, and we want the user to have the ability to select a different full node.

I'll try to take a look today or tomorrow.

Iced.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

faboweb picture faboweb  ·  3Comments

jbibla picture jbibla  ·  4Comments

faboweb picture faboweb  ·  3Comments

fedekunze picture fedekunze  ·  3Comments

fedekunze picture fedekunze  ·  3Comments