* Allow the application to process events in parallel
there is a main thread that tracks incoming messages, but then it spawns goroutines to actually process each slot so that they can happen concurrently.
* Control knownGaps in existing test
* Use Interfaces for different fork version
Use interfaces for `SignedBeaconBlock` and `BeaconState`, this allows the application to determine the correct forked struct.
In the test we also use a switch condition to properly serve the correct mimics.
* Utilize new ipld-ethcl-db repository
* Add final tests
* Update timeout and secret
* Update token
* Update docker compose
* Update expected inserts
* multihash key gen func
* go mod updates
* Added test to ensure the application shuts down gracefully or within a timeframe.
* Disregard race condition since its with the test not the application itself
* Capture the head block in the DB entirely. (#27)
* -- Intermediary Commit --
Just want to commit my code over the weekend, in case I spill coffee on my workstation.
* Create DB models ready for write.
* Handle SSE events
* Update ref for stack-orchestrator
* Use env in one place only.
* Boot Application on PR
* Update syntax
* Update syntax
* Correct command
* Use bash instead of sh
* Use until instead of while
* Make linter happy and check sse subscription err
* Handle Reorgs - Untested
* Feature/22 test handling incoming events - Intermediary Commit (#28)
* Checkpoint before the weekend
* Update location for SetupPostgresDB
* Feature/22 test handling incoming events (#30)
* Checkpoint before the weekend
* Update location for SetupPostgresDB
* Include first functioning tests for processing head
* Fix gitignore
* Test CaptureHead | Add Metrics | Handle Test Race Conditions
This Commit allows us to:
* Test the `CaptureHead` function.
* Test parsing a single Head message.
* Test a Reorg condition.
* Add Metrics. This is primarily used for testing but can have future use cases.
* Rearrange the test due to race conditions introduced by reusing a variable. `BeforeEach` can't be used to update `BC`.
* Update and finalize testing at this stage
* Update code and CI/CD
* Fix lint errors
* Update CICD and fail when file not found.
* Update test to have failed as expected.
* Remove Test file
* Add KnownGaps Errors (#33)
* Handle Skipped Slots (#34)
* Ensure that the node is synced at boot time
* Update test + add logic for checking skipped slots
* Update boot check
* Add skip_sync to config.
* Update a test so it fails
* go mod updates
* Integrate MHKey into existing code base.
* Update go.mod and go.sum
* Utilize the MHkey
* Stop tests from running forever on failure.
* Use sszRoot instead of sszObj for MhKey
* Update entrypoint script
* Update config parameter
Co-authored-by: Abdul Rabbani <abdulrabbani00@gmail.com>
Co-authored-by: Abdul Rabbani <58230246+abdulrabbani00@users.noreply.github.com>
* Checkpoint before the weekend
* Update location for SetupPostgresDB
* Include first functioning tests for processing head
* Fix gitignore
* Test CaptureHead | Add Metrics | Handle Test Race Conditions
This Commit allows us to:
* Test the `CaptureHead` function.
* Test parsing a single Head message.
* Test a Reorg condition.
* Add Metrics. This is primarily used for testing but can have future use cases.
* Rearrange the test due to race conditions introduced by reusing a variable. `BeforeEach` can't be used to update `BC`.
* Update and finalize testing at this stage
* Update code and CI/CD
* Fix lint errors
* Update CICD and fail when file not found.
* Update test to have failed as expected.
* -- Intermediary Commit --
Just want to commit my code over the weekend, in case I spill coffee on my workstation.
* Create DB models ready for write.
* Handle SSE events
* Update ref for stack-orchestrator
* Use env in one place only.
* Boot Application on PR
* Update syntax
* Update syntax
* Correct command
* Use bash instead of sh
* Use until instead of while
* Make linter happy and check sse subscription err
* Handle Reorgs - Untested
This Commit contains the following:
* Graceful shutdowns.
* Handling all incoming SSE events for reorgs, finalizations, and head.
The structure of the `BeaconClient` has drastically changed and generics are used.
* Utilize Ginkgo and replace `testing` library.
* Add TOC to docs
* Add Docker specific files
* Remove -e
* Update on-pr-manual.yml
* Add depth
* Add repositories
* Remove $ from path
* Update path for make
* Setup Go and Ginkgo
* Use go mod download
* Use go install
* Update on-pr-manual.yml
* Use latest
* Remove install of GINKGO
* Add explicit gopath
* Explicitly specify the gopath
* Update on-pr-manual.yml
* Update on-pr-manual.yml
* Update on-pr-manual.yml
* Update on-pr-manual.yml
* Update on-pr-manual.yml
* Update on-pr-manual.yml
* Use which ginkgo
* Try with make now
* Final working Make
I copied most of the code from the `statediff` service from within geth. The idea is that I can create formal DB packages, that can be utilized in other projects down the road.