Skip to content
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

feat: Add full beaconchain explorer #178

Closed

Conversation

peterbitfly
Copy link
Contributor

This PR adds the ability to provision the full version of the beaconcha.in explorer instead of the light version currently in use. While heavier on the resource usage, the full version also provides insight into the EL data of the test network (accounts, tokens, transactions).

Which explorer is started can be defined using the new explorer_version config field. Use light to launch the light version and full to launch the full explorer.

Note: The full explorer relies on Google bigtable for CL & EL data storage. Instead of the original bigtable environment the explorer uses a persistent emulator based on SQLite (https://github.com/gobitfly/little_bigtable) that has been tuned to this specific use case. The emulator should support testnets up to a few thousand validators.

Furthermore the integration currently relies on a branch of the explorer that has not yet been merged to master. Once that is completed we will submit a subsequent PR that updates the used image.

@piwonskp
Copy link
Contributor

Hey @peterbitfly, very useful PR! However relays subpage is empty. Do you know what may be causing this?

@h4ck3rk3y
Copy link
Collaborator

@peterbitfly Thank you for the PR! This is beautiful work. Sorry we missed this. A couple of comments

Can we change the postgres / redis services to use https://github.com/kurtosis-tech/postgres-package & https://github.com/kurtosis-tech/redis-package?

I see there are merge conflicts since this was created, do you have time to fix the merge conflicts?

@@ -181,6 +181,12 @@ To configure the package behaviour, you can modify your `network_params.json` fi
// - params for the CL nodes will be ignored (e.g. CL node image, CL node extra params)
"launch_additional_services": true,

// Which blockchain explorer should be used
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for being so thoroguh!

db_services = plan.add_services(
configs={
# Add a Postgres server
"explorer-postgres": ServiceConfig(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -156,6 +156,7 @@ def parse_input(plan, input_args):
mev_flood_seconds_per_bundle = result["mev_params"]["mev_flood_seconds_per_bundle"]
),
launch_additional_services=result["launch_additional_services"],
explorer_version=result["explorer_version"],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file has changed heavily, since we merged parsing; but these two changes make sense

@h4ck3rk3y
Copy link
Collaborator

Closing this in favor of #253 - thank you for your contribution! This means a lot :)

Since eth2/eth-network-package have been merged - adding features / fixing bugs should be a lot easier now

@h4ck3rk3y h4ck3rk3y closed this Sep 29, 2023
h4ck3rk3y added a commit that referenced this pull request Sep 29, 2023
I reworked #178 to work with the newly merged repository and other
changes we have made since. Big thanks to Peter (@peterbitfly ) the
original author of the PR

---------

Co-authored-by: peter <1674920+peterbitfly@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants