This repository has been archived by the owner on May 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 435
ContractCreationTx
Register Pipeline POC
#3
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
epociask
changed the title
ETL Pipe Component Implementation
ETL Pipe && Oracle Component Implementation
Mar 28, 2023
epociask
changed the title
ETL Pipe && Oracle Component Implementation
ETL Pipe && Oracle Component Implementations
Mar 28, 2023
epociask
changed the title
ETL Pipe && Oracle Component Implementations
Preliminary Pipeline Implementation
Mar 29, 2023
…pociask/PIPE_COMPONENT
epociask
changed the title
Preliminary Pipeline Implementation
Preliminary Pipeline Implementation POC
Mar 29, 2023
epociask
changed the title
Preliminary Pipeline Implementation POC
Contract Transaction Pipeline Implementation POC
Mar 30, 2023
epociask
changed the title
Contract Transaction Pipeline Implementation POC
Contract Creation Tx Detection Pipeline POC
Mar 30, 2023
epociask
changed the title
Contract Creation Tx Detection Pipeline POC
Contract Creation Tx Register Pipeline POC
Mar 30, 2023
epociask
changed the title
Contract Creation Tx Register Pipeline POC
Mar 30, 2023
Contract Creation Tx
Register Pipeline POC
epociask
changed the title
Mar 30, 2023
Contract Creation Tx
Register Pipeline POCContractCreationTx
Register Pipeline POC
anupsv-cb
reviewed
Mar 31, 2023
anupsv-cb
reviewed
Mar 31, 2023
anupsv-cb
reviewed
Mar 31, 2023
…pociask/PIPE_COMPONENT
anupsv-cb
approved these changes
Apr 3, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lets get this goin.
Review Error for anupsv-cb @ 2023-04-03 21:23:24 UTC |
anupsv-cb
approved these changes
Apr 3, 2023
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Disclaimer
This implementation is currently suboptimal and is done to provide a baseline scaffolding for the pessimism development team to begin iterating and developing on top of. Please note that the chain indexing logic for the
GethBlock
register oracle is very poor and was only implemented in it's existing state for quick iteration. This logic will need to be revisited, heavily worked, and deeply tested to ensure that:Additionally, it's worth noting that that the oracle implementation is rather lackluster as well and will require some further attention.
Changes
Pipe
component that takes arbitrary injected callback to transform someTransitData
register type to anotherOracle
component that takes anOracleDefinition
interface, allowing for semi-intuitive creation of arbitrary external data source readersOutputRouter
construct to allow forn
number subscriptions between oracles and pipesOutputRouter
struct logicGethBlock
register definition thatconfig.env.template
to template cfg vars.golangci.yml
file to disable unnecessary go lintersDataRegister
types with dependenciesgo-test
CI action for running go unit testsProof-of-Concept
About
This POC was performed to ensure that component interaction operates as intended. Additionally, the exercise of manually building components and binding them together allows us to better understand how we can automate this creation with higher level abstractions. All the POC does is creates, binds, and runs two components together to extract Contract Creation transactions from an oracle fetched block. Effectively, it implicitly generates a
ContractCreateTx
register pipeline. The register pipeline looks like so:To Run
go build -a -tags netgo -o bin/block_read_poc ./cmd/block_read_poc/
./bin/block_read_poc
Example Output
NOTE
This driver script will be deleted sometime in the foreseeable future, it's only current purpose is to showcase that these components work in a useful way. Additionally, once we have automation support for generating register pipelines, we can generate this pipeline using that logic and run this script to ensure outputs match.