From 49c2cb26b7001f9736716cbb5033ec678b551714 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Tue, 29 Oct 2024 13:33:09 -0300 Subject: [PATCH 1/5] feat(cli): adapt to rollups-node:2.0.0 --- apps/cli/src/node/DockerfileDeploy.txt | 2 +- apps/cli/src/node/default.env | 54 ++++++++++++------- apps/cli/src/node/docker-compose-anvil.yaml | 36 +++++++------ .../cli/src/node/docker-compose-database.yaml | 18 ++++++- .../node/docker-compose-snapshot-volume.yaml | 2 +- .../src/node/docker-compose-validator.yaml | 7 ++- 6 files changed, 79 insertions(+), 40 deletions(-) diff --git a/apps/cli/src/node/DockerfileDeploy.txt b/apps/cli/src/node/DockerfileDeploy.txt index d1412cb2..9efd58c2 100644 --- a/apps/cli/src/node/DockerfileDeploy.txt +++ b/apps/cli/src/node/DockerfileDeploy.txt @@ -1,4 +1,4 @@ -FROM cartesi/rollups-node:1.5.1 +FROM cartesi/rollups-node:2.0.0 ENV CARTESI_SNAPSHOT_DIR=/usr/share/rollups-node/snapshot ENV CARTESI_HTTP_ADDRESS=0.0.0.0 COPY --chown=cartesi:cartesi . ${CARTESI_SNAPSHOT_DIR} diff --git a/apps/cli/src/node/default.env b/apps/cli/src/node/default.env index a415d636..044dbf66 100644 --- a/apps/cli/src/node/default.env +++ b/apps/cli/src/node/default.env @@ -1,27 +1,45 @@ # cartesi/rollups-node -CARTESI_LOG_LEVEL="${CARTESI_LOG_LEVEL:-error}" -CARTESI_HTTP_ADDRESS="${CARTESI_HTTP_ADDRESS:-0.0.0.0}" -CARTESI_HTTP_PORT="${CARTESI_HTTP_PORT:-10000}" -CARTESI_FEATURE_HOST_MODE="${CARTESI_FEATURE_HOST_MODE:-false}" -CARTESI_FEATURE_READER_MODE_ENABLED="${CARTESI_FEATURE_READER_MODE_ENABLED:-false}" -CARTESI_FEATURE_DISABLE_CLAIMER="${CARTESI_FEATURE_DISABLE_CLAIMER:-false}" -CARTESI_FEATURE_DISABLE_MACHINE_HASH_CHECK="${CARTESI_FEATURE_DISABLE_MACHINE_HASH_CHECK:-true}" + +#logs +CARTESI_LOG_LEVEL="${CARTESI_LOG_LEVEL:-info}" +CARTESI_LOG_PRETTY_ENABLED="${CARTESI_LOG_PRETTY_ENABLED:-false}" + +# features +CARTESI_FEATURE_CLAIMER_ENABLED="${CARTESI_FEATURE_CLAIMER_ENABLED:-true}" +CARTESI_FEATURE_MACHINE_HASH_CHECK_ENABLED="${CARTESI_FEATURE_MACHINE_HASH_CHECK_ENABLED:-false}" + +# rollups CARTESI_EPOCH_LENGTH="${CARTESI_EPOCH_LENGTH:-720}" +CARTESI_ADVANCER_POLLING_INTERVAL="${CARTESI_ADVANCER_POLLING_INTERVAL:-7}" +CARTESI_VALIDATOR_POLLING_INTERVAL="${CARTESI_VALIDATOR_POLLING_INTERVAL:-7}" +CARTESI_CLAIMER_POLLING_INTERVAL="${CARTESI_CLAIMER_POLLING_INTERVAL:-7}" +CARTESI_EVM_READER_RETRY_POLICY_MAX_RETRIES="${CARTESI_EVM_READER_RETRY_POLICY_MAX_RETRIES:-3}" +CARTESI_EVM_READER_RETRY_POLICY_MAX_DELAY="${CARTESI_EVM_READER_RETRY_POLICY_MAX_DELAY:-3}" + +# blockchain CARTESI_BLOCKCHAIN_ID="${CARTESI_BLOCKCHAIN_ID:-31337}" CARTESI_BLOCKCHAIN_HTTP_ENDPOINT="${CARTESI_BLOCKCHAIN_HTTP_ENDPOINT:-http://anvil:8545}" CARTESI_BLOCKCHAIN_WS_ENDPOINT="${CARTESI_BLOCKCHAIN_WS_ENDPOINT:-ws://anvil:8545}" -CARTESI_BLOCKCHAIN_IS_LEGACY="${CARTESI_BLOCKCHAIN_IS_LEGACY:-false}" +CARTESI_LEGACY_BLOCKCHAIN_ENABLED="${CARTESI_LEGACY_BLOCKCHAIN_ENABLED:-false}" CARTESI_BLOCKCHAIN_FINALITY_OFFSET="${CARTESI_BLOCKCHAIN_FINALITY_OFFSET:-0}" +CARTESI_EVM_READER_DEFAULT_BLOCK="${CARTESI_EVM_READER_DEFAULT_BLOCK:-latest}" CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT="${CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT:-60}" -CARTESI_CONTRACTS_APPLICATION_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_ADDRESS:-0xab7528bb862fb57e8a2bcd567a2e929a0be56a5e}" -CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER="${CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER:-22}" -CARTESI_CONTRACTS_HISTORY_ADDRESS="${CARTESI_CONTRACTS_HISTORY_ADDRESS:-0x325272217ae6815b494bf38ced004c5eb8a7cda7}" -CARTESI_CONTRACTS_AUTHORITY_ADDRESS="${CARTESI_CONTRACTS_AUTHORITY_ADDRESS:-0x58c93f83fb3304730c95aad2e360cdb88b782010}" -CARTESI_CONTRACTS_INPUT_BOX_ADDRESS="${CARTESI_CONTRACTS_INPUT_BOX_ADDRESS:-0x59b22D57D4f067708AB0c00552767405926dc768}" -CARTESI_SNAPSHOT_DIR="${CARTESI_SNAPSHOT_DIR:-/usr/share/cartesi/snapshot}" + +#contracts +CARTESI_CONTRACTS_INPUT_BOX_ADDRESS="${CARTESI_CONTRACTS_INPUT_BOX_ADDRESS:-0x593E5BCf894D6829Dd26D0810DA7F064406aebB6}" +CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER="${CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER:-7}" +CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0x1d4CfBD2622d802A07CeB4C3401Bbb455c9dbdC3}" +CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS="${CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS:-0xB897F7Fe78f220aE34B7FA9493092701a873Ed45}" + +# snapshot +CARTESI_SNAPSHOT_DIR="${CARTESI_SNAPSHOT_DIR:-/usr/share/rollups-node/snapshot}" + +# auth CARTESI_AUTH_MNEMONIC="${CARTESI_AUTH_MNEMONIC:-test test test test test test test test test test test junk}" -CARTESI_POSTGRES_ENDPOINT="${CARTESI_POSTGRES_ENDPOINT:-postgres://postgres:password@database:5432/postgres}" -CARTESI_EXPERIMENTAL_SERVER_MANAGER_BYPASS_LOG="${CARTESI_EXPERIMENTAL_SERVER_MANAGER_BYPASS_LOG:-false}" -# server-manager -SM_DEADLINE_MACHINE="${SM_DEADLINE_MACHINE:-30000}" +# postgres +CARTESI_POSTGRES_ENDPOINT="${CARTESI_POSTGRES_ENDPOINT:-postgres://postgres:password@database:5432/postgres?sslmode=disable}" + +# http +CARTESI_HTTP_ADDRESS="${CARTESI_HTTP_ADDRESS:-0.0.0.0}" +CARTESI_HTTP_PORT="${CARTESI_HTTP_PORT:-10000}" diff --git a/apps/cli/src/node/docker-compose-anvil.yaml b/apps/cli/src/node/docker-compose-anvil.yaml index 219a771f..f31343c8 100644 --- a/apps/cli/src/node/docker-compose-anvil.yaml +++ b/apps/cli/src/node/docker-compose-anvil.yaml @@ -19,27 +19,29 @@ services: - 8545:8545 dapp_deployer: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/rollups-node:2.0.0 restart: on-failure depends_on: - anvil: + validator: condition: service_started + env_file: + - ${CARTESI_BIN_PATH}/node/default.env command: - [ - "cast", - "send", - "--rpc-url", - "http://anvil:8545", - "--private-key", - "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", - "0x4C11C7F82D6D56a726f9B53dd99af031AFd86BB6", - "deployContracts(address,address,bytes32,bytes32)", - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "720", - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - ] + - /bin/bash + - -c + - -x + - | + cartesi-rollups-cli app deploy \ + --print-json \ + --postgres-endpoint "$$CARTESI_POSTGRES_ENDPOINT" \ + --rpc-url "$$CARTESI_BLOCKCHAIN_HTTP_ENDPOINT" \ + --inputbox-block-number "$$CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER" \ + --mnemonic "$$CARTESI_AUTH_MNEMONIC" \ + --epoch-length "$$CARTESI_EPOCH_LENGTH" \ + --app-factory "$$CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS" \ + --authority-factory "$$CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS" \ + --app-owner "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" \ + --template-path $$CARTESI_SNAPSHOT_DIR prompt: image: debian:bookworm-slim diff --git a/apps/cli/src/node/docker-compose-database.yaml b/apps/cli/src/node/docker-compose-database.yaml index fb661ab1..e8d365d7 100644 --- a/apps/cli/src/node/docker-compose-database.yaml +++ b/apps/cli/src/node/docker-compose-database.yaml @@ -1,6 +1,6 @@ services: database: - image: postgres:15-alpine + image: postgres:17-alpine healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres || exit 1"] interval: 10s @@ -8,3 +8,19 @@ services: retries: 5 environment: - POSTGRES_PASSWORD=password + + migration: + image: cartesi/rollups-node:2.0.0 + command: + - /bin/bash + - -c + - -x + - | + cartesi-rollups-cli db upgrade -p "$$CARTESI_POSTGRES_ENDPOINT" + + depends_on: + database: + condition: service_healthy + restart: "no" + env_file: + - ${CARTESI_BIN_PATH}/node/default.env diff --git a/apps/cli/src/node/docker-compose-snapshot-volume.yaml b/apps/cli/src/node/docker-compose-snapshot-volume.yaml index 0862b2a3..46c04b93 100644 --- a/apps/cli/src/node/docker-compose-snapshot-volume.yaml +++ b/apps/cli/src/node/docker-compose-snapshot-volume.yaml @@ -1,7 +1,7 @@ services: dapp_deployer: volumes: - - ./.cartesi/image:/usr/share/cartesi/snapshot:ro + - ./.cartesi/image:/usr/share/rollups-node/snapshot:ro validator: volumes: diff --git a/apps/cli/src/node/docker-compose-validator.yaml b/apps/cli/src/node/docker-compose-validator.yaml index 81f7dba8..e0c76a15 100644 --- a/apps/cli/src/node/docker-compose-validator.yaml +++ b/apps/cli/src/node/docker-compose-validator.yaml @@ -1,9 +1,11 @@ services: validator: - image: cartesi/rollups-node:1.5.1 + image: cartesi/rollups-node:2.0.0 depends_on: - dapp_deployer: + migration: condition: service_completed_successfully + anvil: + condition: service_healthy expose: - "10000" healthcheck: @@ -11,6 +13,7 @@ services: interval: 10s timeout: 1s retries: 5 + user: root command: - /bin/bash - -c From 27311fa5abb6a0f2855783d5e159be1d988b8345 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Fri, 1 Nov 2024 15:57:13 -0300 Subject: [PATCH 2/5] DELETE: use cartesi/rollups-node:devel --- apps/cli/src/node/DockerfileDeploy.txt | 2 +- apps/cli/src/node/docker-compose-anvil.yaml | 2 +- apps/cli/src/node/docker-compose-database.yaml | 2 +- apps/cli/src/node/docker-compose-validator.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/cli/src/node/DockerfileDeploy.txt b/apps/cli/src/node/DockerfileDeploy.txt index 9efd58c2..3ee73917 100644 --- a/apps/cli/src/node/DockerfileDeploy.txt +++ b/apps/cli/src/node/DockerfileDeploy.txt @@ -1,4 +1,4 @@ -FROM cartesi/rollups-node:2.0.0 +FROM cartesi/rollups-node:devel ENV CARTESI_SNAPSHOT_DIR=/usr/share/rollups-node/snapshot ENV CARTESI_HTTP_ADDRESS=0.0.0.0 COPY --chown=cartesi:cartesi . ${CARTESI_SNAPSHOT_DIR} diff --git a/apps/cli/src/node/docker-compose-anvil.yaml b/apps/cli/src/node/docker-compose-anvil.yaml index f31343c8..6d552b34 100644 --- a/apps/cli/src/node/docker-compose-anvil.yaml +++ b/apps/cli/src/node/docker-compose-anvil.yaml @@ -19,7 +19,7 @@ services: - 8545:8545 dapp_deployer: - image: cartesi/rollups-node:2.0.0 + image: cartesi/rollups-node:devel restart: on-failure depends_on: validator: diff --git a/apps/cli/src/node/docker-compose-database.yaml b/apps/cli/src/node/docker-compose-database.yaml index e8d365d7..17e34d65 100644 --- a/apps/cli/src/node/docker-compose-database.yaml +++ b/apps/cli/src/node/docker-compose-database.yaml @@ -10,7 +10,7 @@ services: - POSTGRES_PASSWORD=password migration: - image: cartesi/rollups-node:2.0.0 + image: cartesi/rollups-node:devel command: - /bin/bash - -c diff --git a/apps/cli/src/node/docker-compose-validator.yaml b/apps/cli/src/node/docker-compose-validator.yaml index e0c76a15..ad600e21 100644 --- a/apps/cli/src/node/docker-compose-validator.yaml +++ b/apps/cli/src/node/docker-compose-validator.yaml @@ -1,6 +1,6 @@ services: validator: - image: cartesi/rollups-node:2.0.0 + image: cartesi/rollups-node:devel depends_on: migration: condition: service_completed_successfully From 5c9f7c3ced5d8fdf91c4ca3af98b1e2f61e38a62 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Fri, 1 Nov 2024 16:17:08 -0300 Subject: [PATCH 3/5] chore(cli): bump to cartesi/sdk:0.12.0-alpha.2 --- apps/cli/src/node/default.env | 2 +- apps/cli/src/node/docker-compose-anvil.yaml | 2 +- apps/cli/src/node/docker-compose-bundler.yaml | 2 +- apps/cli/src/node/docker-compose-paymaster.yaml | 2 +- packages/mock-verifying-paymaster/docker-compose.yaml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/cli/src/node/default.env b/apps/cli/src/node/default.env index 044dbf66..ead3567a 100644 --- a/apps/cli/src/node/default.env +++ b/apps/cli/src/node/default.env @@ -28,7 +28,7 @@ CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT="${CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT:-60}" #contracts CARTESI_CONTRACTS_INPUT_BOX_ADDRESS="${CARTESI_CONTRACTS_INPUT_BOX_ADDRESS:-0x593E5BCf894D6829Dd26D0810DA7F064406aebB6}" CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER="${CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER:-7}" -CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0x1d4CfBD2622d802A07CeB4C3401Bbb455c9dbdC3}" +CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0xd7d4d184b82b1a4e08f304DDaB0A2A7a301C2620}" CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS="${CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS:-0xB897F7Fe78f220aE34B7FA9493092701a873Ed45}" # snapshot diff --git a/apps/cli/src/node/docker-compose-anvil.yaml b/apps/cli/src/node/docker-compose-anvil.yaml index 6d552b34..e8abbdb7 100644 --- a/apps/cli/src/node/docker-compose-anvil.yaml +++ b/apps/cli/src/node/docker-compose-anvil.yaml @@ -1,6 +1,6 @@ services: anvil: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/sdk:0.12.0-alpha.2 command: [ "devnet", diff --git a/apps/cli/src/node/docker-compose-bundler.yaml b/apps/cli/src/node/docker-compose-bundler.yaml index 7237cc15..32afdf92 100644 --- a/apps/cli/src/node/docker-compose-bundler.yaml +++ b/apps/cli/src/node/docker-compose-bundler.yaml @@ -1,6 +1,6 @@ services: alto: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/sdk:0.12.0-alpha.2 command: - "alto" - "--entrypoints" diff --git a/apps/cli/src/node/docker-compose-paymaster.yaml b/apps/cli/src/node/docker-compose-paymaster.yaml index 4c9bf35e..86e8be87 100644 --- a/apps/cli/src/node/docker-compose-paymaster.yaml +++ b/apps/cli/src/node/docker-compose-paymaster.yaml @@ -1,6 +1,6 @@ services: mock-verifying-paymaster: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/sdk:0.12.0-alpha.2 command: "mock-verifying-paymaster" environment: - ALTO_RPC=http://alto:4337 diff --git a/packages/mock-verifying-paymaster/docker-compose.yaml b/packages/mock-verifying-paymaster/docker-compose.yaml index 4ab09ca9..b6b99a0b 100644 --- a/packages/mock-verifying-paymaster/docker-compose.yaml +++ b/packages/mock-verifying-paymaster/docker-compose.yaml @@ -1,6 +1,6 @@ services: anvil: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/sdk:0.12.0-alpha.2 command: ["devnet", "--block-time", "${BLOCK_TIME:-5}"] healthcheck: test: ["CMD", "eth_isready"] @@ -13,7 +13,7 @@ services: - 8545:8545 alto: - image: cartesi/sdk:0.12.0-alpha.1 + image: cartesi/sdk:0.12.0-alpha.2 command: [ "alto", From dd0ab40c092a8b9a160628c83c3812f70f34f88f Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Wed, 13 Nov 2024 09:47:20 -0300 Subject: [PATCH 4/5] fixup! feat(cli): adapt to rollups-node:2.0.0 --- apps/cli/src/node/default.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/cli/src/node/default.env b/apps/cli/src/node/default.env index ead3567a..ee150088 100644 --- a/apps/cli/src/node/default.env +++ b/apps/cli/src/node/default.env @@ -25,7 +25,7 @@ CARTESI_BLOCKCHAIN_FINALITY_OFFSET="${CARTESI_BLOCKCHAIN_FINALITY_OFFSET:-0}" CARTESI_EVM_READER_DEFAULT_BLOCK="${CARTESI_EVM_READER_DEFAULT_BLOCK:-latest}" CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT="${CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT:-60}" -#contracts +# contracts CARTESI_CONTRACTS_INPUT_BOX_ADDRESS="${CARTESI_CONTRACTS_INPUT_BOX_ADDRESS:-0x593E5BCf894D6829Dd26D0810DA7F064406aebB6}" CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER="${CARTESI_CONTRACTS_INPUT_BOX_DEPLOYMENT_BLOCK_NUMBER:-7}" CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0xd7d4d184b82b1a4e08f304DDaB0A2A7a301C2620}" From df5c0cd56f32d8ff4964f32e28b6f77e6559ba82 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Mon, 18 Nov 2024 10:58:14 -0300 Subject: [PATCH 5/5] fixup! feat(cli): adapt to rollups-node:2.0.0 --- apps/cli/src/node/default.env | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/cli/src/node/default.env b/apps/cli/src/node/default.env index ee150088..97591a6f 100644 --- a/apps/cli/src/node/default.env +++ b/apps/cli/src/node/default.env @@ -5,7 +5,7 @@ CARTESI_LOG_LEVEL="${CARTESI_LOG_LEVEL:-info}" CARTESI_LOG_PRETTY_ENABLED="${CARTESI_LOG_PRETTY_ENABLED:-false}" # features -CARTESI_FEATURE_CLAIMER_ENABLED="${CARTESI_FEATURE_CLAIMER_ENABLED:-true}" +CARTESI_FEATURE_CLAIM_SUBMISSION_ENABLED="${CARTESI_FEATURE_CLAIM_SUBMISSION_ENABLED:-true}" CARTESI_FEATURE_MACHINE_HASH_CHECK_ENABLED="${CARTESI_FEATURE_MACHINE_HASH_CHECK_ENABLED:-false}" # rollups @@ -21,7 +21,6 @@ CARTESI_BLOCKCHAIN_ID="${CARTESI_BLOCKCHAIN_ID:-31337}" CARTESI_BLOCKCHAIN_HTTP_ENDPOINT="${CARTESI_BLOCKCHAIN_HTTP_ENDPOINT:-http://anvil:8545}" CARTESI_BLOCKCHAIN_WS_ENDPOINT="${CARTESI_BLOCKCHAIN_WS_ENDPOINT:-ws://anvil:8545}" CARTESI_LEGACY_BLOCKCHAIN_ENABLED="${CARTESI_LEGACY_BLOCKCHAIN_ENABLED:-false}" -CARTESI_BLOCKCHAIN_FINALITY_OFFSET="${CARTESI_BLOCKCHAIN_FINALITY_OFFSET:-0}" CARTESI_EVM_READER_DEFAULT_BLOCK="${CARTESI_EVM_READER_DEFAULT_BLOCK:-latest}" CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT="${CARTESI_BLOCKCHAIN_BLOCK_TIMEOUT:-60}"