From 0f689782954c0aa454168c20d2075e3026f2ef66 Mon Sep 17 00:00:00 2001 From: tilacog Date: Fri, 3 Nov 2023 09:49:39 -0300 Subject: [PATCH] chore: remove outdated documentation Those docs are outdated or were never implemented. --- crates/oracle/docs/decoding-errors.org | 81 ------------------ crates/oracle/docs/event-sourcing.org | 80 ----------------- .../oracle/docs/graphviz/event_sourcing.dot | 51 ----------- .../oracle/docs/graphviz/event_sourcing.png | Bin 56578 -> 0 bytes .../event_sourcing_transport_errors.dot | 79 ----------------- .../event_sourcing_transport_errors.png | Bin 36678 -> 0 bytes 6 files changed, 291 deletions(-) delete mode 100644 crates/oracle/docs/decoding-errors.org delete mode 100644 crates/oracle/docs/event-sourcing.org delete mode 100644 crates/oracle/docs/graphviz/event_sourcing.dot delete mode 100644 crates/oracle/docs/graphviz/event_sourcing.png delete mode 100644 crates/oracle/docs/graphviz/event_sourcing_transport_errors.dot delete mode 100644 crates/oracle/docs/graphviz/event_sourcing_transport_errors.png diff --git a/crates/oracle/docs/decoding-errors.org b/crates/oracle/docs/decoding-errors.org deleted file mode 100644 index 9667eca7..00000000 --- a/crates/oracle/docs/decoding-errors.org +++ /dev/null @@ -1,81 +0,0 @@ -#+title: Decoding Errors - -How should the Block Oracle and the Epoch Subgraph behave when the subgraph fails to -decode a Message payload /(calldata)/? - -* Epoch Subgraph -The subgraph must signal that an Oracle message for the current epoch is invalid. - -It should create a new =DecodingError= (entity) instance scoped to the transaction it just received. - -The subgraph will not enter on a failed state because of this. - -* Block Oracle -Once it detects a =DecodingError= for the current epoch, the Oracle will change -its behaviour/mode. - -It will transition its internal state from =Valid= to =SubgraphDecodingError= and enter -a [[Preemptive State]], followed by a possible [[Alert State]]. - -** Subgraph Error Monitoring -By introducing the concept of =DecodingErrors= in the Epoch Subgraph, the Block Oracle -is given the responsibility to actively monitor the former during the ongoing epoch -until its state is successfully updated. - -This routine complements the [[Transaction Monitoring]] system. - -** Preemptive State -In this state, the Oracle will: -1. Emit an alert. -2. Build and send a single preemptive =SetBlockNumberForCurrentEpoch= - message. Note that this specific message will not include - unregistered networks, as in compliance with the current Epoch - Subgraph state. -3. Watch if the preemptive message triggered another =DecodingError= in the subgraph for - this epoch. - -** Why? -To prioritize closing allocations. This operational mode will ensure that the current -indexed chains continue to receive updates, regardless of failing to register other -networks. - -** Assumptions -Given the following network sets in the context of Message creation: -- previously registered :: ~O~ /(old)/ -- to be registered :: ~N~ /(new)/ -- to have its chain head updated :: ~O ∩ N~ /(old + new)/ - -The Oracle could have prepared and sent a malformed =[RegisterNetworks { N }, -SetBlockNumberForCurrentEpoch { O ∩ N }]= message block. - -There is a chance that the encoding error was caused by the =RegisterNetworks { N }= -message, so it might still be possible to send a =SetBlockNumberForCurrentEpoch { O }= -message to update the chain head for all previously registered networks. - -** On Success -If no second =DecodingError= for this epoch is detected, then it means that the Oracle: -- succeeded at updating the previously registered networks, and -- failed at registering new networks. - -*** If Left Unattended -In the advent of a new epoch, the Oracle will transition its internal state from -=SubgraphDecodingError= to =Valid=, as if it had forgotten about the =DecodingErrors= -from the previous epoch. Nonetheless, it will quickly fail again for the same reason at -the entering epoch, as it will retry sending the very same =RegisterNetworks { N }= -message that supposedly triggered the error in the first place. - -Effectively, the Oracle will lock itself in it's [[Preemptive State]], incapable of -registering networks, but will try to update the currently registered networks at every -new epoch. - -** On Error -If the preemptive =SetBlockNumberForCurrentEpoch { O }= message triggers a second -=DecodingError= in the Epoch Subgraph at the same epoch, then this means that the -encoding error could have happened for all other message types. - -Thus the Oracle can't recover by itself and will change its mode once more and enter in -its [[Alert State]]. - -** Alert State -It will stop sending messages to the DataEdge contract and will emit alerts -periodically. diff --git a/crates/oracle/docs/event-sourcing.org b/crates/oracle/docs/event-sourcing.org deleted file mode 100644 index 3423207f..00000000 --- a/crates/oracle/docs/event-sourcing.org +++ /dev/null @@ -1,80 +0,0 @@ -#+title: Event Sourcing -#+date: [2022-06-20 Mon 19:19] - -The *Event Source* is the component designated to poll the Epoch Block Oracle's *Indexed Chains* periodically and get their latest block numbers, so it can later assemble *Messages* to be sent in a transaction to the *DataEdge* smart contract. - -* Cycles -The Epoch Block Oracle operations can take place in two different cycles: a longer cycle that encompasses one epoch at the *Protocol Chain* and a smaller cycle that is used to poll all *Indexed Chains*, also called the poll cycle. - -At each poll cycle, the Oracle will interact with all JSON RPC endpoints and try to obtain the latest block number for each *Indexed Chain* and update its in-memory state. - -At the beginning of each epoch cycle, the Oracle will then use the collected block numbers to assemble a new *Message* to the *DataEdge* smart contract. - -[[graphviz/event_sourcing.png]] - -* Indexed Chain Selection -The *Indexed Chains* must be declared in the Block Oracle configuration file as an associative array where =CAIP-2= chain identifiers are the /keys/ and an array of JSON RPC endpoints are the /values/. - -The Oracle will ignore any chain that was *unregistered* by the Epoch Subgraph and will not attempt to interact with their JSON RPC endpoints, nor will it hold information about their latest block numbers. - -* Error Cases -There are several ways where event sourcing can fail. - -** Transport failure -How to deal with failed requests when fetching the latest block number from one, multiple, or all JSON RPC providers for a given chain? - -Since the Event Source will poll the latest block numbers continuously, it could hold the latest valid block number from previous attempts, but what if the latest obtained data is not fresh enough? What if a chain stops receiving updates for a whole epoch? - -*** Proposed Solution -The Oracle uses an exponential backoff retry strategy for all JSON RPC requests to address short-term networking problems. - -Since the Event Source is constantly polling for new block numbers, it holds the latest retrieved information for each chain, so all Messages to the *DataEdge* contract will reference that. - -Suppose all providers for a given chain fail to provide a recent block for an extended period. In that case, the Event Source could fall back to using the previous epoch's block number or removing the network if the situation persists for longer than a specified number of epochs. - -#+begin_quote -[[graphviz/event_sourcing_transport_errors.png]] - -The picture above shows how blocks are selected for the *Indexed Chains* at each epoch. Numbered boxes represent attempts to fetch the latest block numbers at a polling cycle, and failed attempts are marked with an "X". -#+end_quote - -**** Alerting -In case a chain has no updates during a whole epoch cycle, an alert should be emitted. - -** Re-orgs -How to detect and deal with re-orgs among the *Indexed Chains*? - -*** Proposed Solution -The Epoch Block Oracle will not seek to detect re-orgs. - -Instead, it will wait a given amount of time to allow for re-orgs and only submit a probabilistically final, "re-org safe" block. That block should be distant from the chain head and recognized by the majority of the providers. - -**** Keeping a distance from the chain head -Each chain must be configured with a number expressing the distance from the chain head. This number will be subtracted from all polled block numbers from all JSON RPC requests. - -** Chain Head Consensus -How to obtain consensus if the latest block number diverges between the JSON RPC providers for the same chain? - -*** Proposed Solution -Since polled block numbers can vary between providers for the same network, the Event Source must seek consensus on the right block to select. - -The consensus check verifies that the *block hash* for the earliest block received is consistent across the simple majority of the providers. This routine will vary according to the number of configured JSON RPC endpoints for each network: - -+ One :: - Naturally, there will be no consensus check if a network is configured with a single provider. -+ Two :: - Between two divergent block numbers, both providers must agree on the block hash of the earliest block. -+ Three or more :: - A set with more than three block numbers will have its outliers filtered using [[https://en.wikipedia.org/wiki/Outlier#Tukey's_fences][Tukey's fences method]], and providers must agree on the block hash of the oldest block in the set. - -If providers do not consent on the selected block, then previous blocks will be selected and verified until consensus is reached under a time limit, in which case the polling operation will be considered as failed. - -**** Alerting -A tolerable block distance can be configured for each chain to trigger a warning in case providers return widely differing block numbers. -+ For two providers, this value will be interpreted as the absolute difference between returned block numbers. -+ For three or more providers, it will be used as the number of standard deviations. - -* References -- [[https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md][CAIP-2 - Blockchain ID Specification]] -- [[https://en.wikipedia.org/wiki/Interquartile_range#Outliers][Interquartile Range]] -- [[https://en.wikipedia.org/wiki/Outlier#Tukey's_fences][Outlier detection using Tukey's fences method]] diff --git a/crates/oracle/docs/graphviz/event_sourcing.dot b/crates/oracle/docs/graphviz/event_sourcing.dot deleted file mode 100644 index 5314e513..00000000 --- a/crates/oracle/docs/graphviz/event_sourcing.dot +++ /dev/null @@ -1,51 +0,0 @@ -digraph event_soucing_cycles { - // General Graph Display - rankdir=LR - fontname="Helvetica,Arial,sans-serif" - edge [fontname="Helvetica,Arial,sans-serif"] - node [fontname="Helvetica,Arial,sans-serif", shape=rect, - style=filled, fillcolor="lightgray"] - - // Node Definitions - subgraph cluster_poll_cycle { - label = "Polling Cycle" - EventSource [label="Event\nSource", fillcolor=darkolivegreen1] - - ChainA [label="Chain A", fillcolor=gold] - ChainB [label="Chain B", fillcolor=steelblue] - - ProviderA1 [label="Provider A1", fillcolor=wheat] - ProviderA2 [label="Provider A2", fillcolor=wheat] - ProviderA3 [label="Provider A3", fillcolor=wheat] - - ProviderB1 [label="Provider B1", fillcolor=lightsteelblue] - ProviderB2 [label="Provider B2", fillcolor=lightsteelblue] - ProviderB3 [label="Provider B3", fillcolor=lightsteelblue] - } - - subgraph cluster_epoch_cycle { - label = "Epoch Cycle" - Message [label="Assemble\nMessage"] - BroadcastTransaction [label="Broadcast\nTransaction"] - } - - // Edges - ChainA -> ProviderA1 [arrowhead=none] - ChainA -> ProviderA2 [arrowhead=none] - ChainA -> ProviderA3 [arrowhead=none] - - ChainB -> ProviderB1 [arrowhead=none] - ChainB -> ProviderB2 [arrowhead=none] - ChainB -> ProviderB3 [arrowhead=none] - - ProviderA1 -> EventSource - ProviderA2 -> EventSource - ProviderA3 -> EventSource [label="Latest Block\nNumber", fontsize=11] - ProviderB1 -> EventSource - ProviderB2 -> EventSource - ProviderB3 -> EventSource - - EventSource -> Message [label="Latest\nBlocks"] - Message -> BroadcastTransaction - -} diff --git a/crates/oracle/docs/graphviz/event_sourcing.png b/crates/oracle/docs/graphviz/event_sourcing.png deleted file mode 100644 index adbdc49232e152e9eeacd513efd39f970e11fa46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56578 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%0AQfM_g4P9Q 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 KJ?rY-zy23s13fDM diff --git a/crates/oracle/docs/graphviz/event_sourcing_transport_errors.dot b/crates/oracle/docs/graphviz/event_sourcing_transport_errors.dot deleted file mode 100644 index 71450748..00000000 --- a/crates/oracle/docs/graphviz/event_sourcing_transport_errors.dot +++ /dev/null @@ -1,79 +0,0 @@ -digraph event_sourcing_transport_errors { - // General Graph Display - newrank=true; - rankdir=LR - fontname="Helvetica,Arial,sans-serif" - edge [fontname="Helvetica,Arial,sans-serif"] - node [fontname="Helvetica,Arial,sans-serif", shape=rect, - style=filled, fillcolor="whitesmoke"] - - subgraph cluster_chain_c { - label="Chain C\nLatest Block: Same as the previous epoch" - style=filled - color=grey88 - CC1 [label="", style=invis] - CC2 [label="1 x", fontcolor=red] - CC3 [label="2 x", fontcolor=red] - CC4 [label="3 x", fontcolor=red] - CC5 [label="4 x", fontcolor=red] - CC6 [label="5 x", fontcolor=red] - CC7 [label="6 x", fontcolor=red] - CC8 [label="7 x", fontcolor=red] - CC9 [label="", style=invis] - CC2 -> CC3 -> CC4 -> CC5 -> CC6 -> CC7 -> CC8 - } - - subgraph cluster_chain_b { - label="Chain B\nLatest Block: 5" - style=filled - color=grey88 - CB1 [label="", style=invis] - CB2 [label="1 ✓"] - CB3 [label="2 ✓"] - CB4 [label="3 ✓"] - CB5 [label="4 x", fontcolor=red] - CB6 [label="5 ✓"] - CB7 [label="6 x", fontcolor=red] - CB8 [label="7 x", fontcolor=red] - CB9 [label="", style=invis] - CB2 -> CB3 -> CB4 -> CB5 -> CB6 -> CB7 -> CB8 - } - - subgraph cluster_chain_a { - label="Chain A\nLatest Block: 6" - style=filled - color=grey88 - CA1 [label="", style=invis] - CA2 [label="1 ✓"] - CA3 [label="2 ✓"] - CA4 [label="3 ✓"] - CA5 [label="4 ✓"] - CA6 [label="5 ✓"] - CA7 [label="6 ✓"] - CA8 [label="7 x", fontcolor=red] - CA9 [label="", style=invis] - CA2 -> CA3 -> CA4 -> CA5 -> CA6 -> CA7 -> CA8 - } - - subgraph cluster_protocol_chain { - label="Protocol Chain" - style=filled - color=grey78 - E1 [label="Epoch\nStart"] - E2 [label="Epoch\nEnd"] - E1 -> E2 [arrowhead=none] - } - - // Alignment - { rank=same; E1; CA1; CB1; CC1} - { rank=same; E2; CA9; CB9; CC9} - - // Invisible edges - edge[style=invis] - CA1 -> CA2 [style=invis] - CA8 -> CA9 [style=invis] - CB1 -> CB2 [style=invis] - CB8 -> CB9 [style=invis] - CC1 -> CC2 [style=invis] - CC8 -> CC9 [style=invis] -} diff --git a/crates/oracle/docs/graphviz/event_sourcing_transport_errors.png b/crates/oracle/docs/graphviz/event_sourcing_transport_errors.png deleted file mode 100644 index 2bc134b204016b71c6755e0102b7e1fa791e5138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36678 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