-
Notifications
You must be signed in to change notification settings - Fork 1
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
OIP-15: PotterHat - A multi-client Ethereum data service #15
Comments
Great initiative ! One thing to note is that when we talk about
|
By the way I'm just the notetaker. |
Would it be useful if PotterHat detected chain re-orgs? |
I need to figure out if all clients provide information to detect that. But if that's possible, what do you reckon this service need to do? Just emit a |
Note to self: chain re-orgs are probably handled pretty well within a client, but since we'll be relying on data from multiple clients we still need to handle when different clients are based on different chains. |
Some applications assume a maximum re-org depth and will fail to be secure if that assumption is broken. It may make sense to have an option that defines a tolerance and emit an event if a re-org occurs with a depth that is equal to or larger than the defined amount. |
TODO: Comparison table with existing solutions |
Question1: how justified is the thinking that potterhat will be a drop-in replacement for an eth node, in terms of its API/behavior/ways of starting up etc. And if yes - which eth node is it going to mimic "the most"? Question2: why is Mana not on the client list |
My initial thought is, probably geth. Though we'll need to do a PoC of this to get comprehensive diffs between different clients. I've added this in the Open Questions section of this OIP.
Last I heard is that Mana is not ready for use yet. Maybe @InoMurko can give a better informed opinion? I don't think the design would change since we will still need to depend on non-Elixir/OTP clients and hence reliance on Elixir/OTP should probably be abstracted. But up for discussions on this. |
Added to the Requirements -> Alerts section |
@Pongch updated later that listening to ether transactions is possible. Ref: https://ethereum.stackexchange.com/questions/48927/web3-detect-listen-to-events-if-someone-send-ether-to-addresses. So no changes to the OIP for this one. |
Hi! Mana was not never battle tested and it still needs some work to be a fully functional mainnet clinet :-) On the other hand (if you remember Shanghai DOS) you really need to run multiple different clients and abstract away any specifics in interface implementation. |
Simple Summary
PotterHat is a facade application that attempts to provide a consistent and resilient Ethereum data service by unifying the differences between different Ethereum client implementations and routing requests through the Ethereum client that is running with the most up to date data.
It listens to events and data across Ethereum clients, and returns the data that it thinks is the closest to the truth.
Motivation
Connections to Ethereum can be unreliable. Ethereum integrators therefore need to set up a redundancy mechanism to protect themselves against failures from a single Ethereum node.
However, unlike typical applications where redundancy can be achieved by setting up multiple identical nodes and load-balance over them, hiccups from Ethereum could come from an unstable/faulty client implementation as well. This means that a resilient Ethereum integration not only requires redundancy against a node failure, but also against a failure from the node’s implementation as well.
Specification
Requirements
Tasks
The text was updated successfully, but these errors were encountered: