From d44a7b6ade00205bc546bfcd180c034474326914 Mon Sep 17 00:00:00 2001 From: Matthew Sevey <15232757+MSevey@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:24:30 -0400 Subject: [PATCH 1/4] chore: bump rollkit version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8b3e487..0e1a89a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ ENV GOPATH /usr/local/go ENV PATH $GOPATH/bin:$PATH # Install Rollkit dependencies -RUN curl -sSL https://rollkit.dev/install.sh | sh -s v0.13.5 +RUN curl -sSL https://rollkit.dev/install.sh | sh -s v0.13.7 # Install GM rollup RUN bash -c "$(curl -sSL https://rollkit.dev/install-gm-rollup.sh)" From 0ad5f4f0e35dd25738fae4337391a31744bd3b3f Mon Sep 17 00:00:00 2001 From: Matthew Sevey <15232757+MSevey@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:24:45 -0400 Subject: [PATCH 2/4] feat: add da selection --- main.star | 89 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 73 insertions(+), 16 deletions(-) diff --git a/main.star b/main.star index 124b564..d87cf48 100644 --- a/main.star +++ b/main.star @@ -2,30 +2,57 @@ # # NOTE: currently this is only connecting to a local DA node -da_node = import_module("github.com/rollkit/local-da/main.star@v0.3.0") +# DA Types +celestia = "celestia" +avail = "avail" +local_da = "local-da" -def run(plan): - ########## - # DA - ########## - da_address = da_node.run( - plan, - ) - plan.print("connecting to da layer via {0}".format(da_address)) +def run(plan, da=local_da): + # Define vars + da_address = None + da_auth_token = None + # Start up the DA node + plan.print("Starting up GM rollup with DA: {0}".format(da)) + if da == local_da: + plan.print("Using local-da") + da_node = import_module("github.com/rollkit/local-da/main.star@v0.3.1") + da_address = da_node.run( + plan, + ) + elif da == celestia: + plan.print("Using celestia for DA") + da_node = import_module("github.com/MSevey/celestia-da-node-package/main.star") + da_address, da_auth_token = da_node.run( + plan, + ) + else: + fail("Unknown DA: {0}".format(da)) + + plan.print("connecting to da layer via {0}".format(da_address)) ##### # GM ##### plan.print("Adding GM service") plan.print("NOTE: This can take a few minutes to start up...") - gm_start_cmd = [ - "rollkit", - "start", - "--rollkit.aggregator", - "--rollkit.da_address {0}".format(da_address), - ] + gm_start_cmd = [] + if da == celestia: + gm_start_cmd = rollkitCMD( + da, + da_auth_token=da_auth_token, + da_namespace="00000000000000000000000000000000000000000008e5f679bf7116cb", # Make an input, people can set this to whatever they want + da_start_height=2535482, # Make an input, people can pull this from a block explorer + ) + elif da == avail: + fail("Avail DA is not yet supported") + elif da == local_da: + gm_start_cmd = rollkitCMD(da, da_address) + else: + fail("Unknown DA: {0}".format(da)) + + plan.print("GM start command: {0}".format(gm_start_cmd)) gm_port_number = 26657 gm_port_spec = PortSpec( number=gm_port_number, transport_protocol="TCP", application_protocol="http" @@ -41,7 +68,11 @@ def run(plan): name="gm", config=ServiceConfig( # Using rollkit version v0.13.5 - image="ghcr.io/rollkit/gm:05bd40e", + # image="ghcr.io/rollkit/gm:05bd40e", + image=ImageBuildSpec( + image_name="gm_temp", + build_context_dir=".", + ), cmd=["/bin/sh", "-c", " ".join(gm_start_cmd)], ports=gm_ports, public_ports=gm_ports, @@ -82,3 +113,29 @@ def run(plan): public_ports=frontend_ports, ), ) + + +def rollkitCMD( + da, da_address=None, da_auth_token=None, da_namespace=None, da_start_height=None +): + if da == celestia: + return [ + "rollkit", + "start", + "--rollkit.aggregator", + "--rollkit.da_auth_token {0}".format(da_auth_token), + "--rollkit.da_namespace {0}".format(da_namespace), + "--rollkit.da_start_height {0}".format(da_start_height), + "--minimum-gas-price=0.025stake", + ] + elif da == avail: + fail("Avail DA is not yet supported") + elif da == local_da: + return [ + "rollkit", + "start", + "--rollkit.aggregator", + "--rollkit.da_address {0}".format(da_address), + ] + else: + fail("Unknown DA: {0}".format(da)) From e0c041e480c34488e69f8a5b997db20a7c2e90f2 Mon Sep 17 00:00:00 2001 From: Matthew Sevey <15232757+MSevey@users.noreply.github.com> Date: Fri, 4 Oct 2024 11:31:58 -0400 Subject: [PATCH 3/4] feat: working celestia da node on arabica --- main.star | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/main.star b/main.star index d87cf48..ac780d0 100644 --- a/main.star +++ b/main.star @@ -1,6 +1,4 @@ # This Kurtosis package spins up a minimal GM rollup that connects to a DA node -# -# NOTE: currently this is only connecting to a local DA node # DA Types celestia = "celestia" @@ -8,51 +6,57 @@ avail = "avail" local_da = "local-da" -def run(plan, da=local_da): +def run( + plan, + da=local_da, + da_namespace="00000000000000000000000000000000000000000008e5f679bf7116cb", +): # Define vars - da_address = None + da_rpc_address = None da_auth_token = None + da_wallet_address = None + da_height = None # Start up the DA node plan.print("Starting up GM rollup with DA: {0}".format(da)) if da == local_da: plan.print("Using local-da") da_node = import_module("github.com/rollkit/local-da/main.star@v0.3.1") - da_address = da_node.run( + da_rpc_address = da_node.run( plan, ) elif da == celestia: + # Uses arabica by default + # TODO: add inputs to target mocha plan.print("Using celestia for DA") - da_node = import_module("github.com/MSevey/celestia-da-node-package/main.star") - da_address, da_auth_token = da_node.run( + da_node = import_module( + "github.com/rollkit/kurtosis-celestia-da-node/main.star" + ) + da_rpc_address, da_auth_token, da_wallet_address, da_height = da_node.run( plan, ) else: fail("Unknown DA: {0}".format(da)) - plan.print("connecting to da layer via {0}".format(da_address)) + plan.print("connecting to da layer via {0}".format(da_rpc_address)) ##### # GM ##### plan.print("Adding GM service") plan.print("NOTE: This can take a few minutes to start up...") - gm_start_cmd = [] - if da == celestia: - gm_start_cmd = rollkitCMD( - da, - da_auth_token=da_auth_token, - da_namespace="00000000000000000000000000000000000000000008e5f679bf7116cb", # Make an input, people can set this to whatever they want - da_start_height=2535482, # Make an input, people can pull this from a block explorer - ) - elif da == avail: - fail("Avail DA is not yet supported") - elif da == local_da: - gm_start_cmd = rollkitCMD(da, da_address) - else: - fail("Unknown DA: {0}".format(da)) + # Generate start command + gm_start_cmd = rollkitCMD( + da, + da_address=da_rpc_address, + da_auth_token=da_auth_token, + da_namespace=da_namespace, + da_start_height=da_height, + ) plan.print("GM start command: {0}".format(gm_start_cmd)) + + # Build GM Service Spec gm_port_number = 26657 gm_port_spec = PortSpec( number=gm_port_number, transport_protocol="TCP", application_protocol="http" @@ -123,10 +127,11 @@ def rollkitCMD( "rollkit", "start", "--rollkit.aggregator", + "--rollkit.da_address {0}".format(da_address), "--rollkit.da_auth_token {0}".format(da_auth_token), "--rollkit.da_namespace {0}".format(da_namespace), "--rollkit.da_start_height {0}".format(da_start_height), - "--minimum-gas-price=0.025stake", + "--minimum-gas-prices=0.025stake", ] elif da == avail: fail("Avail DA is not yet supported") From 4c76d4bdc88bf4df5a9166481b2a27e9665cd8f3 Mon Sep 17 00:00:00 2001 From: Matthew Sevey <15232757+MSevey@users.noreply.github.com> Date: Fri, 4 Oct 2024 16:00:21 -0400 Subject: [PATCH 4/4] chore: bump celestia package version --- main.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.star b/main.star index ac780d0..4bee5b7 100644 --- a/main.star +++ b/main.star @@ -30,7 +30,7 @@ def run( # TODO: add inputs to target mocha plan.print("Using celestia for DA") da_node = import_module( - "github.com/rollkit/kurtosis-celestia-da-node/main.star" + "github.com/rollkit/kurtosis-celestia-da-node/main.star@v0.1.0" ) da_rpc_address, da_auth_token, da_wallet_address, da_height = da_node.run( plan,