* 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
* 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.
* 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
This concludes all the code needed to connect to the DB and beacon node. We will no longer reference the lighthouse client because this application should work interchangeably with any beacon node.
I have also standardized logging.