You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a number of historical state queries that are currently unsupported, due to requiring the ability to query an old version of oasis-node with historical state (ie: an archive node). While the naive approach (#268) would be something like "write a composite client that queries the correct node based on block height", this approach is non-workable due to backward/forward incompatible changes to the oasis-node gRPC protocol, and the extreme difficulty in getting multiple versions of the oasis-core code to co-exist in a single binary.
While it may seem like certain calls are mis-categorized as not requiring an archive note, this list is written under the assumption that the non-archive node has access to the SQL database containing historical state (so any node can service calls that do not require access to the paratime storage).
Instead of doing this the correct way (single web3 gateway instance that can query multiple oasis-node instances), which doesn't actually work, the wrong way will work like thus:
This will re-dispatch the 6 calls that require historical state access via web3's JSON-RPC to an archival web3-gw instance (built against the appropriately ancient versions of oasis-sdk and oasis-core) that will service the requests. The downsides are:
This requires 1 extra instance of the web3-gw (wastes CPU cycles)
This requires 1 extra copy of the SQL db state (the mainnet web3-gw requires all of it, the archive web3-gw requries the historical portion). Add an option to disable the indexer #84 would mostly solve this.
The text was updated successfully, but these errors were encountered:
There are a number of historical state queries that are currently unsupported, due to requiring the ability to query an old version of oasis-node with historical state (ie: an archive node). While the naive approach (#268) would be something like "write a composite client that queries the correct node based on block height", this approach is non-workable due to backward/forward incompatible changes to the oasis-node gRPC protocol, and the extreme difficulty in getting multiple versions of the oasis-core code to co-exist in a single binary.
Web3 methods that DO require an archive node:
While it may seem like certain calls are mis-categorized as not requiring an archive note, this list is written under the assumption that the non-archive node has access to the SQL database containing historical state (so any node can service calls that do not require access to the paratime storage).
Instead of doing this the correct way (single web3 gateway instance that can query multiple oasis-node instances), which doesn't actually work, the wrong way will work like thus:
This will re-dispatch the 6 calls that require historical state access via web3's JSON-RPC to an archival web3-gw instance (built against the appropriately ancient versions of oasis-sdk and oasis-core) that will service the requests. The downsides are:
The text was updated successfully, but these errors were encountered: