From e9bd3b77ba48020b5f63b5e0deb105220a8de433 Mon Sep 17 00:00:00 2001 From: Gabriel Coutinho de Paula Date: Tue, 14 Jan 2025 12:05:52 -0300 Subject: [PATCH] wip --- Cargo.lock | 22 +++++----- Cargo.toml | 14 ++++-- cartesi-rollups/contracts/justfile | 43 ++++++++++--------- cartesi-rollups/node/Dockerfile.test | 37 ---------------- .../node/blockchain-reader/Cargo.toml | 5 ++- cartesi-rollups/node/dave-rollups/Cargo.toml | 4 +- cartesi-rollups/node/dave-rollups/src/lib.rs | 2 +- .../node/machine-runner/src/lib.rs | 2 +- .../machine-runner/test-files/inputs.test | 10 ----- .../test-files/machine_state_hashes.test | 11 ----- .../machine-runner/test-files/split_inputs.sh | 28 ------------ .../{compute-runner => prt-runner}/Cargo.toml | 2 +- .../{compute-runner => prt-runner}/src/lib.rs | 0 .../node/rollups-test-entrypoint.sh | 4 -- cartesi-rollups/node/state-manager/Cargo.toml | 6 +-- justfile | 6 ++- prt/client-rs/{ => core}/Cargo.toml | 27 ++++++------ prt/client-rs/{ => core}/src/arena/arena.rs | 6 +-- prt/client-rs/{ => core}/src/arena/config.rs | 0 prt/client-rs/{ => core}/src/arena/mod.rs | 0 prt/client-rs/{ => core}/src/arena/reader.rs | 0 prt/client-rs/{ => core}/src/arena/sender.rs | 0 .../{ => core}/src/db/compute_state_access.rs | 0 prt/client-rs/{ => core}/src/db/mod.rs | 0 .../{ => core}/src/db/sql/compute_data.rs | 0 prt/client-rs/{ => core}/src/db/sql/error.rs | 0 .../{ => core}/src/db/sql/migrations.rs | 0 .../{ => core}/src/db/sql/migrations.sql | 0 prt/client-rs/{ => core}/src/db/sql/mod.rs | 0 prt/client-rs/{ => core}/src/lib.rs | 0 .../{ => core}/src/machine/commitment.rs | 0 .../src/machine/commitment_builder.rs | 0 .../{ => core}/src/machine/constants.rs | 0 .../{ => core}/src/machine/instance.rs | 0 prt/client-rs/{ => core}/src/machine/mod.rs | 0 prt/client-rs/{ => core}/src/strategy/gc.rs | 0 prt/client-rs/{ => core}/src/strategy/mod.rs | 0 .../{ => core}/src/strategy/player.rs | 0 prt/client-rs/executable/Cargo.toml | 22 ++++++++++ .../executable}/Dockerfile | 0 .../executable}/Makefile | 0 .../executable}/README.md | 0 .../executable}/src/lib.rs | 0 .../executable}/src/main.rs | 0 prt/contracts/justfile | 15 ++++--- prt/contracts/src/CanonicalConstants.sol | 4 -- .../tournament/abstracts/LeafTournament.sol | 24 ++++------- prt/contracts/src/tournament/libs/Clock.sol | 2 +- .../blockchain/constants.lua | 0 .../{compute => common}/blockchain/node.lua | 0 .../{compute => common}/blockchain/utils.lua | 8 ++-- .../runners/helpers/dummy_commitment.lua | 0 .../runners/helpers/fake_commitment.lua | 2 +- .../runners/helpers/idle_strategy.lua | 0 .../runners/hero_runner.lua | 0 .../runners/idle_runner.lua | 0 .../runners/rust_hero_runner.lua | 0 .../runners/sybil_runner.lua | 0 .../utils => common/test_utils}/example.lua | 10 ++--- .../test_utils}/scoped_require.lua | 0 .../utils => common/test_utils}/test.lua | 0 prt/tests/compute-rs/Cargo.toml | 25 ----------- prt/tests/compute/prt_compute.lua | 4 +- prt/tests/compute/setup_path.lua | 1 + prt/tests/rollups/dave/node.lua | 2 +- prt/tests/rollups/justfile | 6 +-- prt/tests/rollups/prt_rollups.lua | 8 ++-- prt/tests/rollups/setup_path.lua | 2 +- test/programs/justfile | 11 ++--- 69 files changed, 146 insertions(+), 229 deletions(-) delete mode 100644 cartesi-rollups/node/Dockerfile.test delete mode 100644 cartesi-rollups/node/machine-runner/test-files/inputs.test delete mode 100644 cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test delete mode 100755 cartesi-rollups/node/machine-runner/test-files/split_inputs.sh rename cartesi-rollups/node/{compute-runner => prt-runner}/Cargo.toml (92%) rename cartesi-rollups/node/{compute-runner => prt-runner}/src/lib.rs (100%) delete mode 100755 cartesi-rollups/node/rollups-test-entrypoint.sh rename prt/client-rs/{ => core}/Cargo.toml (67%) rename prt/client-rs/{ => core}/src/arena/arena.rs (96%) rename prt/client-rs/{ => core}/src/arena/config.rs (100%) rename prt/client-rs/{ => core}/src/arena/mod.rs (100%) rename prt/client-rs/{ => core}/src/arena/reader.rs (100%) rename prt/client-rs/{ => core}/src/arena/sender.rs (100%) rename prt/client-rs/{ => core}/src/db/compute_state_access.rs (100%) rename prt/client-rs/{ => core}/src/db/mod.rs (100%) rename prt/client-rs/{ => core}/src/db/sql/compute_data.rs (100%) rename prt/client-rs/{ => core}/src/db/sql/error.rs (100%) rename prt/client-rs/{ => core}/src/db/sql/migrations.rs (100%) rename prt/client-rs/{ => core}/src/db/sql/migrations.sql (100%) rename prt/client-rs/{ => core}/src/db/sql/mod.rs (100%) rename prt/client-rs/{ => core}/src/lib.rs (100%) rename prt/client-rs/{ => core}/src/machine/commitment.rs (100%) rename prt/client-rs/{ => core}/src/machine/commitment_builder.rs (100%) rename prt/client-rs/{ => core}/src/machine/constants.rs (100%) rename prt/client-rs/{ => core}/src/machine/instance.rs (100%) rename prt/client-rs/{ => core}/src/machine/mod.rs (100%) rename prt/client-rs/{ => core}/src/strategy/gc.rs (100%) rename prt/client-rs/{ => core}/src/strategy/mod.rs (100%) rename prt/client-rs/{ => core}/src/strategy/player.rs (100%) create mode 100644 prt/client-rs/executable/Cargo.toml rename prt/{tests/compute-rs => client-rs/executable}/Dockerfile (100%) rename prt/{tests/compute-rs => client-rs/executable}/Makefile (100%) rename prt/{tests/compute-rs => client-rs/executable}/README.md (100%) rename prt/{tests/compute-rs => client-rs/executable}/src/lib.rs (100%) rename prt/{tests/compute-rs => client-rs/executable}/src/main.rs (100%) rename prt/tests/{compute => common}/blockchain/constants.lua (100%) rename prt/tests/{compute => common}/blockchain/node.lua (100%) rename prt/tests/{compute => common}/blockchain/utils.lua (80%) rename prt/tests/{compute => common}/runners/helpers/dummy_commitment.lua (100%) rename prt/tests/{compute => common}/runners/helpers/fake_commitment.lua (98%) rename prt/tests/{compute => common}/runners/helpers/idle_strategy.lua (100%) rename prt/tests/{compute => common}/runners/hero_runner.lua (100%) rename prt/tests/{compute => common}/runners/idle_runner.lua (100%) rename prt/tests/{compute => common}/runners/rust_hero_runner.lua (100%) rename prt/tests/{compute => common}/runners/sybil_runner.lua (100%) rename prt/tests/{compute/utils => common/test_utils}/example.lua (89%) rename prt/tests/{compute/utils => common/test_utils}/scoped_require.lua (100%) rename prt/tests/{compute/utils => common/test_utils}/test.lua (100%) delete mode 100644 prt/tests/compute-rs/Cargo.toml diff --git a/Cargo.lock b/Cargo.lock index 31d37e47..e60d256c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1307,9 +1307,9 @@ dependencies = [ "futures", "log", "rollups-blockchain-reader", - "rollups-compute-runner", "rollups-epoch-manager", "rollups-machine-runner", + "rollups-prt-runner", "rollups-state-manager", "rusqlite", "tokio", @@ -2927,16 +2927,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "rollups-compute-runner" -version = "0.1.0" -dependencies = [ - "alloy", - "cartesi-prt-core", - "log", - "rollups-state-manager", -] - [[package]] name = "rollups-epoch-manager" version = "0.1.0" @@ -2966,6 +2956,16 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "rollups-prt-runner" +version = "0.1.0" +dependencies = [ + "alloy", + "cartesi-prt-core", + "log", + "rollups-state-manager", +] + [[package]] name = "rollups-state-manager" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 36e37ede..797eacfc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,11 +10,12 @@ members = [ "common-rs/arithmetic", # prt - "prt/client-rs", - "prt/tests/compute-rs", + "prt/client-rs/core", + "prt/client-rs/executable", # rollups-node "cartesi-rollups/node/blockchain-reader", + "cartesi-rollups/node/prt-runner", "cartesi-rollups/node/dave-rollups", "cartesi-rollups/node/epoch-manager", "cartesi-rollups/node/machine-runner", @@ -48,7 +49,7 @@ cartesi-prt-contracts = { path = "prt/contracts/bindings-rs" } # rollups-node rollups-blockchain-reader = { version = "0.1", path = "cartesi-rollups/node/blockchain-reader" } -rollups-compute-runner = { version = "0.1", path = "cartesi-rollups/node/compute-runner" } +rollups-prt-runner = { version = "0.1", path = "cartesi-rollups/node/prt-runner" } rollups-epoch-manager = { version = "0.1", path = "cartesi-rollups/node/epoch-manager" } rollups-machine-runner = { version = "0.1", path = "cartesi-rollups/node/machine-runner" } rollups-state-manager = { version = "0.1", path = "cartesi-rollups/node/state-manager" } @@ -58,7 +59,7 @@ cartesi-dave-arithmetic = { path = "common-rs/arithmetic" } cartesi-dave-merkle = { path = "common-rs/merkle" } # prt -cartesi-prt-core = { path = "prt/client-rs" } +cartesi-prt-core = { path = "prt/client-rs/core" } ## Dependencies @@ -80,6 +81,11 @@ async-trait = "0.1" futures = "0.3" tokio = { version = "1", features = ["full"] } +# sqlite +lazy_static = "1.4" +rusqlite = { version = "0.31.0", features = ["bundled"] } +rusqlite_migration = "1.2.0" + clap = { version = "4.5", features = ["derive", "env"] } hex = "0.4" log = "0.4" diff --git a/cartesi-rollups/contracts/justfile b/cartesi-rollups/contracts/justfile index 930c9422..24b3564e 100644 --- a/cartesi-rollups/contracts/justfile +++ b/cartesi-rollups/contracts/justfile @@ -11,36 +11,39 @@ default: build build: build-smart-contracts bind +fmt: + forge fmt + # compile smart contracts build-smart-contracts: - forge build + forge build # clean smart contracts artifacts clean-smart-contracts: - forge clean + forge clean # clean generated bindings clean-bindings: - rm -rf {{BINDINGS_DIR}} + rm -rf {{BINDINGS_DIR}} # generate Rust bindings from Solidity code bind: clean-bindings - forge bind --alloy --select {{BINDINGS_FILTER}} \ - --module --bindings-path {{BINDINGS_DIR}} \ - --root {{SRC_DIR}} + forge bind --alloy --select {{BINDINGS_FILTER}} \ + --module --bindings-path {{BINDINGS_DIR}} \ + --root {{SRC_DIR}} deploy-dev INITIAL_HASH: - forge script \ - script/InputBox.s.sol \ - --fork-url {{ANVIL_ENDPOINT}} \ - --broadcast \ - --sig 'run()' \ - -vvvv 2>&1 - forge script \ - script/DaveConsensus.s.sol \ - --fork-url {{ANVIL_ENDPOINT}} \ - --broadcast \ - --sig 'run(bytes32,address)' \ - {{INITIAL_HASH}} \ - $(jq -r '.transactions[] | select(.transactionType=="CREATE").contractAddress' broadcast/InputBox.s.sol/{{ANVIL_CHAIN_ID}}/run-latest.json) \ - -vvvv 2>&1 + forge script \ + script/InputBox.s.sol \ + --fork-url {{ANVIL_ENDPOINT}} \ + --broadcast \ + --sig 'run()' \ + -vvvv 2>&1 + forge script \ + script/DaveConsensus.s.sol \ + --fork-url {{ANVIL_ENDPOINT}} \ + --broadcast \ + --sig 'run(bytes32,address)' \ + {{INITIAL_HASH}} \ + $(jq -r '.transactions[] | select(.transactionType=="CREATE").contractAddress' broadcast/InputBox.s.sol/{{ANVIL_CHAIN_ID}}/run-latest.json) \ + -vvvv 2>&1 diff --git a/cartesi-rollups/node/Dockerfile.test b/cartesi-rollups/node/Dockerfile.test deleted file mode 100644 index 946e4cc2..00000000 --- a/cartesi-rollups/node/Dockerfile.test +++ /dev/null @@ -1,37 +0,0 @@ -FROM cartesi/machine-emulator:0.18.1 - -USER 0 -RUN apt-get -y update && \ - apt-get -y install build-essential clang curl git libssl-dev pkg-config wget - -RUN curl https://sh.rustup.rs -sSf | bash -s -- -y - -ENV PATH="/root/.cargo/bin:${PATH}" - -COPY --from=ethereum/solc:0.8.27 /usr/bin/solc /usr/bin/solc -RUN chmod u+x /usr/bin/solc - -WORKDIR /app - -RUN wget https://github.com/cartesi/image-kernel/releases/download/v0.20.0/linux-6.5.13-ctsi-1-v0.20.0.bin \ - -O ./linux.bin -RUN wget https://github.com/cartesi/machine-emulator-tools/releases/download/v0.16.1/rootfs-tools-v0.16.1.ext2 \ - -O ./rootfs.ext2 - -RUN cartesi-machine --ram-image=./linux.bin \ - --flash-drive=label:root,filename:./rootfs.ext2 \ - --no-rollback --store=./echo \ - -- "ioctl-echo-loop --vouchers=1 --notices=1 --reports=1 --verbose=1" - -# copy dependencies -COPY ./machine /app/machine -COPY ./common-rs /app/common-rs -COPY ./prt /app/prt - -# copy rollups-node application -COPY ./rollups-node /app/rollups-node -COPY ./.git /app/.git - -WORKDIR /app/rollups-node - -ENTRYPOINT ["./rollups-test-entrypoint.sh"] diff --git a/cartesi-rollups/node/blockchain-reader/Cargo.toml b/cartesi-rollups/node/blockchain-reader/Cargo.toml index 7e40668b..e83b9329 100644 --- a/cartesi-rollups/node/blockchain-reader/Cargo.toml +++ b/cartesi-rollups/node/blockchain-reader/Cargo.toml @@ -30,6 +30,7 @@ cartesi-dave-merkle = { workspace = true } cartesi-prt-core = { workspace = true } cartesi-prt-contracts = { workspace = true } +rusqlite = { workspace = true } +rusqlite_migration = { workspace = true } + clap = { workspace = true } -rusqlite = { version = "0.31.0", features = ["bundled"] } -rusqlite_migration = "1.2.0" diff --git a/cartesi-rollups/node/dave-rollups/Cargo.toml b/cartesi-rollups/node/dave-rollups/Cargo.toml index 80ded89c..364466f5 100644 --- a/cartesi-rollups/node/dave-rollups/Cargo.toml +++ b/cartesi-rollups/node/dave-rollups/Cargo.toml @@ -12,7 +12,7 @@ repository = { workspace = true } [dependencies] rollups-blockchain-reader = { workspace = true } -rollups-compute-runner = { workspace = true } +rollups-prt-runner = { workspace = true } rollups-epoch-manager = { workspace = true } rollups-machine-runner = { workspace = true } rollups-state-manager = { workspace = true } @@ -26,5 +26,5 @@ clap = { workspace = true } futures = { workspace = true } tokio = { workspace = true } log = { workspace = true } -rusqlite = { version = "0.31.0", features = ["bundled"] } +rusqlite = { workspace = true } env_logger = "0.11.5" diff --git a/cartesi-rollups/node/dave-rollups/src/lib.rs b/cartesi-rollups/node/dave-rollups/src/lib.rs index ba74fb9f..6e056fca 100644 --- a/cartesi-rollups/node/dave-rollups/src/lib.rs +++ b/cartesi-rollups/node/dave-rollups/src/lib.rs @@ -3,7 +3,7 @@ use cartesi_prt_core::arena::{BlockchainConfig, EthArenaSender, SenderFiller}; use clap::Parser; use log::error; use rollups_blockchain_reader::{AddressBook, BlockchainReader}; -use rollups_compute_runner::ComputeRunner; +use rollups_prt_runner::ComputeRunner; use rollups_epoch_manager::EpochManager; use rollups_machine_runner::MachineRunner; use rollups_state_manager::persistent_state_access::PersistentStateAccess; diff --git a/cartesi-rollups/node/machine-runner/src/lib.rs b/cartesi-rollups/node/machine-runner/src/lib.rs index 3933e78f..c12438c6 100644 --- a/cartesi-rollups/node/machine-runner/src/lib.rs +++ b/cartesi-rollups/node/machine-runner/src/lib.rs @@ -18,7 +18,7 @@ use cartesi_machine::{ use cartesi_prt_core::machine::constants::{LOG2_EMULATOR_SPAN, LOG2_INPUT_SPAN, LOG2_UARCH_SPAN}; use rollups_state_manager::{InputId, StateManager}; -// gap of each leaf in the commitment tree, should use the same value as CanonicalConstants.sol:log2step(0)a +// gap of each leaf in the commitment tree, should use the same value as CanonicalConstants.sol:log2step(0) const LOG2_STRIDE: u64 = 44; pub struct MachineRunner { diff --git a/cartesi-rollups/node/machine-runner/test-files/inputs.test b/cartesi-rollups/node/machine-runner/test-files/inputs.test deleted file mode 100644 index c6a793b5..00000000 --- a/cartesi-rollups/node/machine-runner/test-files/inputs.test +++ /dev/null @@ -1,10 +0,0 @@ -48004900 -4800490048004900 -480049004800490048004900 -48004900480049004800490048004900 -4800490048004900480049004800490048004900 -480049004800490048004900480049004800490048004900 -48004900480049004800490048004900480049004800490048004900 -4800490048004900480049004800490048004900480049004800490048004900 -480049004800490048004900480049004800490048004900480049004800490048004900 -48004900480049004800490048004900480049004800490048004900480049004800490048004900 \ No newline at end of file diff --git a/cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test b/cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test deleted file mode 100644 index 533b118d..00000000 --- a/cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test +++ /dev/null @@ -1,11 +0,0 @@ -07f51a6be61d727fb1cd06b68ecf53c5b447fd9497083c96873feabcfe062d79 524287 -6180e24a5fbd929ebc8c2d90514318f6db61f66686e7f9699c15d58075a700ba 524287 -078dcdc666d2eb2318f256615591aa04c966d834329754ca6cb02059151a8aa7 524287 -35f9714c3358de215caa2dc0c9b6323ae21c34162f0aa64012d1fbb6d3333988 524287 -b996b7c89cc62716e77ddf9b7fe7ebe3c89f400c587e101dbce489d682fb8eb6 524287 -38f1555cccb391facdd901e4b74fc1780d73a6b48b2fc7cbe6d41901c2414b72 524287 -0cd32ddbb7bec97493a2d7b04d86faf77dc3fce89bd5cdd2150cd34a968125bb 524287 -610d9e9f2542f8dcd15953f626ca8c7e5ecabceebbbd2bcbafbeee1a09ec408a 524287 -621e3c728bef89af5f312a89e5eae1c894fc535332e8a0ae70d46a5fcb6827d8 524287 -bb7f4abd9af36d7b47b57a5a643e8e8dd7a5a139d42640f8776c04a023b2f911 524287 -cea5f55f8c2f2a7fdffadab58693331094e51c1985d5693220a2a861a1c90e1e \ No newline at end of file diff --git a/cartesi-rollups/node/machine-runner/test-files/split_inputs.sh b/cartesi-rollups/node/machine-runner/test-files/split_inputs.sh deleted file mode 100755 index 19b09f0b..00000000 --- a/cartesi-rollups/node/machine-runner/test-files/split_inputs.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Check if the input file is provided -if [ -z "$1" ]; then - echo "Usage: $0 " - exit 1 -fi - -input_file="$1" -i=0 - -# Read each line from the input file -while IFS= read -r line; do - payload=$(echo "$line") - echo $payload - cast_cmd="cast calldata \"EvmAdvance(uint256,address,address,uint256,uint256,uint256,bytes)\" \ - 0x0000000000000000000000000000000000000001 \ - 0x0000000000000000000000000000000000000002 \ - 0x0000000000000000000000000000000000000003 \ - 0x0000000000000000000000000000000000000004 \ - 0x0000000000000000000000000000000000000005 \ - 0x000000000000000000000000000000000000000$i \ - 0x$payload" - eval $cast_cmd | xxd -r -p > "input-${i}.bin" - i=$((i+1)) -done < "$input_file" - -echo "Conversion complete. Created $i binary files." \ No newline at end of file diff --git a/cartesi-rollups/node/compute-runner/Cargo.toml b/cartesi-rollups/node/prt-runner/Cargo.toml similarity index 92% rename from cartesi-rollups/node/compute-runner/Cargo.toml rename to cartesi-rollups/node/prt-runner/Cargo.toml index 5dacc99c..780f450b 100644 --- a/cartesi-rollups/node/compute-runner/Cargo.toml +++ b/cartesi-rollups/node/prt-runner/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "rollups-compute-runner" +name = "rollups-prt-runner" version.workspace = true authors.workspace = true description.workspace = true diff --git a/cartesi-rollups/node/compute-runner/src/lib.rs b/cartesi-rollups/node/prt-runner/src/lib.rs similarity index 100% rename from cartesi-rollups/node/compute-runner/src/lib.rs rename to cartesi-rollups/node/prt-runner/src/lib.rs diff --git a/cartesi-rollups/node/rollups-test-entrypoint.sh b/cartesi-rollups/node/rollups-test-entrypoint.sh deleted file mode 100755 index aacf0e96..00000000 --- a/cartesi-rollups/node/rollups-test-entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -exec env RUST_LOG="info" cargo test diff --git a/cartesi-rollups/node/state-manager/Cargo.toml b/cartesi-rollups/node/state-manager/Cargo.toml index b1eeb224..0b1aa753 100644 --- a/cartesi-rollups/node/state-manager/Cargo.toml +++ b/cartesi-rollups/node/state-manager/Cargo.toml @@ -11,8 +11,8 @@ readme = { workspace = true } repository = { workspace = true } [dependencies] -rusqlite = { version = "0.31.0", features = ["bundled"] } -rusqlite_migration = "1.2.0" +lazy_static = { workspace = true } +rusqlite = { workspace = true } +rusqlite_migration = { workspace = true } -lazy_static = "1.4.0" thiserror = { workspace = true } diff --git a/justfile b/justfile index d17bf52c..6c457f44 100644 --- a/justfile +++ b/justfile @@ -4,10 +4,14 @@ update-submodules: clean-emulator: make -C machine/emulator clean depclean distclean -setup: update-submodules clean-emulator +download-deps: just -f ./test/programs/justfile download-deps + +build-programs: just -f ./test/programs/justfile build-programs +setup: update-submodules clean-emulator download-deps build-programs + build-consensus: just -f ./cartesi-rollups/contracts/justfile build clean-consensus-bindings: diff --git a/prt/client-rs/Cargo.toml b/prt/client-rs/core/Cargo.toml similarity index 67% rename from prt/client-rs/Cargo.toml rename to prt/client-rs/core/Cargo.toml index 5adcc472..44ee4448 100644 --- a/prt/client-rs/Cargo.toml +++ b/prt/client-rs/core/Cargo.toml @@ -1,18 +1,14 @@ [package] name = "cartesi-prt-core" -version = "0.1.0" - -authors = [ - "Gabriel Coutinho de Paula ", - "Algebraic Sofia ", - "Stephen Chen ", -] description = "A Cartesi validator reference implementation" -edition = "2021" -homepage = "https://github.com/cartesi/dave" -license-file = "LICENSE" -readme = "README.md" -repository = "https://github.com/cartesi/dave" + +version = { workspace = true} +authors = { workspace = true} +edition = { workspace = true} +homepage = { workspace = true} +license-file = { workspace = true} +readme = { workspace = true} +repository = { workspace = true} [dependencies] # common-rs @@ -39,11 +35,12 @@ thiserror = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } hex = { workspace = true } -lazy_static = "1.4.0" log = { workspace = true } num-traits = { workspace = true } -rusqlite = { version = "0.31.0", features = ["bundled"] } -rusqlite_migration = "1.2.0" + +lazy_static = { workspace = true } +rusqlite = { workspace = true } +rusqlite_migration = { workspace = true } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/prt/client-rs/src/arena/arena.rs b/prt/client-rs/core/src/arena/arena.rs similarity index 96% rename from prt/client-rs/src/arena/arena.rs rename to prt/client-rs/core/src/arena/arena.rs index 7ce36f83..74cf6c42 100644 --- a/prt/client-rs/src/arena/arena.rs +++ b/prt/client-rs/core/src/arena/arena.rs @@ -94,19 +94,19 @@ impl ClockState { impl std::fmt::Display for ClockState { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { if self.start_instant == 0 { - write!(f, "clock paused, {} seconds left", self.allowance) + write!(f, "clock paused, {} blocks left", self.allowance) } else { let time_elapsed = self.block_number - self.start_instant; if self.allowance >= time_elapsed { write!( f, - "clock ticking, {} seconds left", + "clock ticking, {} blocks left", self.allowance - time_elapsed ) } else { write!( f, - "clock ticking, {} seconds overdue", + "clock ticking, {} blocks overdue", time_elapsed - self.allowance ) } diff --git a/prt/client-rs/src/arena/config.rs b/prt/client-rs/core/src/arena/config.rs similarity index 100% rename from prt/client-rs/src/arena/config.rs rename to prt/client-rs/core/src/arena/config.rs diff --git a/prt/client-rs/src/arena/mod.rs b/prt/client-rs/core/src/arena/mod.rs similarity index 100% rename from prt/client-rs/src/arena/mod.rs rename to prt/client-rs/core/src/arena/mod.rs diff --git a/prt/client-rs/src/arena/reader.rs b/prt/client-rs/core/src/arena/reader.rs similarity index 100% rename from prt/client-rs/src/arena/reader.rs rename to prt/client-rs/core/src/arena/reader.rs diff --git a/prt/client-rs/src/arena/sender.rs b/prt/client-rs/core/src/arena/sender.rs similarity index 100% rename from prt/client-rs/src/arena/sender.rs rename to prt/client-rs/core/src/arena/sender.rs diff --git a/prt/client-rs/src/db/compute_state_access.rs b/prt/client-rs/core/src/db/compute_state_access.rs similarity index 100% rename from prt/client-rs/src/db/compute_state_access.rs rename to prt/client-rs/core/src/db/compute_state_access.rs diff --git a/prt/client-rs/src/db/mod.rs b/prt/client-rs/core/src/db/mod.rs similarity index 100% rename from prt/client-rs/src/db/mod.rs rename to prt/client-rs/core/src/db/mod.rs diff --git a/prt/client-rs/src/db/sql/compute_data.rs b/prt/client-rs/core/src/db/sql/compute_data.rs similarity index 100% rename from prt/client-rs/src/db/sql/compute_data.rs rename to prt/client-rs/core/src/db/sql/compute_data.rs diff --git a/prt/client-rs/src/db/sql/error.rs b/prt/client-rs/core/src/db/sql/error.rs similarity index 100% rename from prt/client-rs/src/db/sql/error.rs rename to prt/client-rs/core/src/db/sql/error.rs diff --git a/prt/client-rs/src/db/sql/migrations.rs b/prt/client-rs/core/src/db/sql/migrations.rs similarity index 100% rename from prt/client-rs/src/db/sql/migrations.rs rename to prt/client-rs/core/src/db/sql/migrations.rs diff --git a/prt/client-rs/src/db/sql/migrations.sql b/prt/client-rs/core/src/db/sql/migrations.sql similarity index 100% rename from prt/client-rs/src/db/sql/migrations.sql rename to prt/client-rs/core/src/db/sql/migrations.sql diff --git a/prt/client-rs/src/db/sql/mod.rs b/prt/client-rs/core/src/db/sql/mod.rs similarity index 100% rename from prt/client-rs/src/db/sql/mod.rs rename to prt/client-rs/core/src/db/sql/mod.rs diff --git a/prt/client-rs/src/lib.rs b/prt/client-rs/core/src/lib.rs similarity index 100% rename from prt/client-rs/src/lib.rs rename to prt/client-rs/core/src/lib.rs diff --git a/prt/client-rs/src/machine/commitment.rs b/prt/client-rs/core/src/machine/commitment.rs similarity index 100% rename from prt/client-rs/src/machine/commitment.rs rename to prt/client-rs/core/src/machine/commitment.rs diff --git a/prt/client-rs/src/machine/commitment_builder.rs b/prt/client-rs/core/src/machine/commitment_builder.rs similarity index 100% rename from prt/client-rs/src/machine/commitment_builder.rs rename to prt/client-rs/core/src/machine/commitment_builder.rs diff --git a/prt/client-rs/src/machine/constants.rs b/prt/client-rs/core/src/machine/constants.rs similarity index 100% rename from prt/client-rs/src/machine/constants.rs rename to prt/client-rs/core/src/machine/constants.rs diff --git a/prt/client-rs/src/machine/instance.rs b/prt/client-rs/core/src/machine/instance.rs similarity index 100% rename from prt/client-rs/src/machine/instance.rs rename to prt/client-rs/core/src/machine/instance.rs diff --git a/prt/client-rs/src/machine/mod.rs b/prt/client-rs/core/src/machine/mod.rs similarity index 100% rename from prt/client-rs/src/machine/mod.rs rename to prt/client-rs/core/src/machine/mod.rs diff --git a/prt/client-rs/src/strategy/gc.rs b/prt/client-rs/core/src/strategy/gc.rs similarity index 100% rename from prt/client-rs/src/strategy/gc.rs rename to prt/client-rs/core/src/strategy/gc.rs diff --git a/prt/client-rs/src/strategy/mod.rs b/prt/client-rs/core/src/strategy/mod.rs similarity index 100% rename from prt/client-rs/src/strategy/mod.rs rename to prt/client-rs/core/src/strategy/mod.rs diff --git a/prt/client-rs/src/strategy/player.rs b/prt/client-rs/core/src/strategy/player.rs similarity index 100% rename from prt/client-rs/src/strategy/player.rs rename to prt/client-rs/core/src/strategy/player.rs diff --git a/prt/client-rs/executable/Cargo.toml b/prt/client-rs/executable/Cargo.toml new file mode 100644 index 00000000..e0576cb1 --- /dev/null +++ b/prt/client-rs/executable/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "cartesi-prt-compute" +description = "A Cartesi validator reference implementation" + +version = { workspace = true} +authors = { workspace = true} +edition = { workspace = true} +homepage = { workspace = true} +license-file = { workspace = true} +readme = { workspace = true} +repository = { workspace = true} + + +[dependencies] +cartesi-prt-core = { workspace = true } + +anyhow = { workspace = true } +alloy = { workspace = true, features = ["sol-types"] } +clap = { workspace = true, features = ["derive", "env"] } +env_logger = "0.11.5" +log = "0.4" +tokio = { workspace = true, features = ["full"] } diff --git a/prt/tests/compute-rs/Dockerfile b/prt/client-rs/executable/Dockerfile similarity index 100% rename from prt/tests/compute-rs/Dockerfile rename to prt/client-rs/executable/Dockerfile diff --git a/prt/tests/compute-rs/Makefile b/prt/client-rs/executable/Makefile similarity index 100% rename from prt/tests/compute-rs/Makefile rename to prt/client-rs/executable/Makefile diff --git a/prt/tests/compute-rs/README.md b/prt/client-rs/executable/README.md similarity index 100% rename from prt/tests/compute-rs/README.md rename to prt/client-rs/executable/README.md diff --git a/prt/tests/compute-rs/src/lib.rs b/prt/client-rs/executable/src/lib.rs similarity index 100% rename from prt/tests/compute-rs/src/lib.rs rename to prt/client-rs/executable/src/lib.rs diff --git a/prt/tests/compute-rs/src/main.rs b/prt/client-rs/executable/src/main.rs similarity index 100% rename from prt/tests/compute-rs/src/main.rs rename to prt/client-rs/executable/src/main.rs diff --git a/prt/contracts/justfile b/prt/contracts/justfile index fe113081..b4c71b8c 100644 --- a/prt/contracts/justfile +++ b/prt/contracts/justfile @@ -2,15 +2,20 @@ BINDINGS_DIR := "./bindings-rs/src/contract" SRC_DIR := "." BINDINGS_FILTER := "^[^I].+TournamentFactory|LeafTournament|RootTournament|^Tournament$" -default: help +default: build -help: - echo " clean - clean the generated bindings" - echo " bind - generate Rust bindings from Solidity code" +build: build-smart-contracts bind +clean: clean-smart-contracts clean-bindings -build: +build-smart-contracts: forge build +clean-smart-contracts: + forge clean + +fmt: + forge fmt + clean-bindings: rm -rf {{BINDINGS_DIR}} diff --git a/prt/contracts/src/CanonicalConstants.sol b/prt/contracts/src/CanonicalConstants.sol index adfafb05..e751e48a 100644 --- a/prt/contracts/src/CanonicalConstants.sol +++ b/prt/contracts/src/CanonicalConstants.sol @@ -30,10 +30,6 @@ library ArbitrationConstants { + Time.Duration.unwrap(COMMITMENT_EFFORT) ); - uint64 constant LOG2_UARCH_SPAN = 20; - uint64 constant LOG2_EMULATOR_SPAN = 48; - uint64 constant LOG2_INPUT_SPAN = 24; - // 3-level tournament uint64 constant LEVELS = 3; diff --git a/prt/contracts/src/tournament/abstracts/LeafTournament.sol b/prt/contracts/src/tournament/abstracts/LeafTournament.sol index c2a1f6e0..635f90ff 100644 --- a/prt/contracts/src/tournament/abstracts/LeafTournament.sol +++ b/prt/contracts/src/tournament/abstracts/LeafTournament.sol @@ -4,7 +4,6 @@ pragma solidity ^0.8.17; import "./Tournament.sol"; -import "../../CanonicalConstants.sol"; import "../libs/Commitment.sol"; import "step/src/EmulatorConstants.sol"; @@ -114,6 +113,10 @@ abstract contract LeafTournament is Tournament { deleteMatch(_matchId.hashFromId()); } + uint64 constant LOG2_UARCH_SPAN = 20; + uint64 constant LOG2_EMULATOR_SPAN = 48; + uint64 constant LOG2_INPUT_SPAN = 24; + // TODO: move to step repo function metaStep( bytes32 machineState, @@ -124,15 +127,9 @@ abstract contract LeafTournament is Tournament { AccessLogs.Context memory accessLogs = AccessLogs.Context(machineState, Buffer.Context(proofs, 0)); - uint256 uarch_step_mask = - (1 << ArbitrationConstants.LOG2_UARCH_SPAN) - 1; - uint256 big_step_mask = ( - 1 - << ( - ArbitrationConstants.LOG2_EMULATOR_SPAN - + ArbitrationConstants.LOG2_UARCH_SPAN - ) - ) - 1; + uint256 uarch_step_mask = (1 << LOG2_UARCH_SPAN) - 1; + uint256 big_step_mask = + (1 << (LOG2_EMULATOR_SPAN + LOG2_UARCH_SPAN)) - 1; if (address(provider) == address(0)) { // this is a inputless version of the meta step implementation primarily used for testing @@ -151,11 +148,8 @@ abstract contract LeafTournament is Tournament { if (inputLength > 0) { bytes calldata input = proofs[32:32 + inputLength]; - uint256 inputIndexWithinEpoch = counter - >> ( - ArbitrationConstants.LOG2_EMULATOR_SPAN - + ArbitrationConstants.LOG2_UARCH_SPAN - ); + uint256 inputIndexWithinEpoch = + counter >> (LOG2_EMULATOR_SPAN + LOG2_UARCH_SPAN); // TODO: maybe assert retrieved input length matches? bytes32 inputMerkleRoot = provider.provideMerkleRootOfInput( diff --git a/prt/contracts/src/tournament/libs/Clock.sol b/prt/contracts/src/tournament/libs/Clock.sol index 5b11aa2a..61a35c87 100644 --- a/prt/contracts/src/tournament/libs/Clock.sol +++ b/prt/contracts/src/tournament/libs/Clock.sol @@ -14,7 +14,7 @@ library Clock { struct State { Time.Duration allowance; - Time.Instant startInstant; // the timestamp when the clock started ticking, zero means clock is paused + Time.Instant startInstant; // the block number when the clock started ticking, zero means clock is paused } // diff --git a/prt/tests/compute/blockchain/constants.lua b/prt/tests/common/blockchain/constants.lua similarity index 100% rename from prt/tests/compute/blockchain/constants.lua rename to prt/tests/common/blockchain/constants.lua diff --git a/prt/tests/compute/blockchain/node.lua b/prt/tests/common/blockchain/node.lua similarity index 100% rename from prt/tests/compute/blockchain/node.lua rename to prt/tests/common/blockchain/node.lua diff --git a/prt/tests/compute/blockchain/utils.lua b/prt/tests/common/blockchain/utils.lua similarity index 80% rename from prt/tests/compute/blockchain/utils.lua rename to prt/tests/common/blockchain/utils.lua index 508fba2f..20670ac5 100644 --- a/prt/tests/compute/blockchain/utils.lua +++ b/prt/tests/common/blockchain/utils.lua @@ -1,12 +1,12 @@ local cast_advance_template = [[ -cast rpc -r "%s" evm_increaseTime %d +cast rpc -r "%s" anvil_mine %d ]] -local function advance_time(seconds, endpoint) +local function advance_time(blocks, endpoint) local cmd = string.format( cast_advance_template, endpoint, - seconds + blocks ) local handle = io.popen(cmd) @@ -15,7 +15,7 @@ local function advance_time(seconds, endpoint) handle:close() if ret:find "Error" then - error(string.format("Advance time `%d`s failed:\n%s", seconds, ret)) + error(string.format("Advance time `%d`s failed:\n%s", blocks, ret)) end end diff --git a/prt/tests/compute/runners/helpers/dummy_commitment.lua b/prt/tests/common/runners/helpers/dummy_commitment.lua similarity index 100% rename from prt/tests/compute/runners/helpers/dummy_commitment.lua rename to prt/tests/common/runners/helpers/dummy_commitment.lua diff --git a/prt/tests/compute/runners/helpers/fake_commitment.lua b/prt/tests/common/runners/helpers/fake_commitment.lua similarity index 98% rename from prt/tests/compute/runners/helpers/fake_commitment.lua rename to prt/tests/common/runners/helpers/fake_commitment.lua index 1e88ac92..4341be18 100644 --- a/prt/tests/compute/runners/helpers/fake_commitment.lua +++ b/prt/tests/common/runners/helpers/fake_commitment.lua @@ -1,7 +1,7 @@ local consts = require "computation.constants" local MerkleBuilder = require "cryptography.merkle_builder" local Hash = require "cryptography.hash" -local new_scoped_require = require "utils.scoped_require" +local new_scoped_require = require "test_utils.scoped_require" local FakeCommitmentBuilder = {} FakeCommitmentBuilder.__index = FakeCommitmentBuilder diff --git a/prt/tests/compute/runners/helpers/idle_strategy.lua b/prt/tests/common/runners/helpers/idle_strategy.lua similarity index 100% rename from prt/tests/compute/runners/helpers/idle_strategy.lua rename to prt/tests/common/runners/helpers/idle_strategy.lua diff --git a/prt/tests/compute/runners/hero_runner.lua b/prt/tests/common/runners/hero_runner.lua similarity index 100% rename from prt/tests/compute/runners/hero_runner.lua rename to prt/tests/common/runners/hero_runner.lua diff --git a/prt/tests/compute/runners/idle_runner.lua b/prt/tests/common/runners/idle_runner.lua similarity index 100% rename from prt/tests/compute/runners/idle_runner.lua rename to prt/tests/common/runners/idle_runner.lua diff --git a/prt/tests/compute/runners/rust_hero_runner.lua b/prt/tests/common/runners/rust_hero_runner.lua similarity index 100% rename from prt/tests/compute/runners/rust_hero_runner.lua rename to prt/tests/common/runners/rust_hero_runner.lua diff --git a/prt/tests/compute/runners/sybil_runner.lua b/prt/tests/common/runners/sybil_runner.lua similarity index 100% rename from prt/tests/compute/runners/sybil_runner.lua rename to prt/tests/common/runners/sybil_runner.lua diff --git a/prt/tests/compute/utils/example.lua b/prt/tests/common/test_utils/example.lua similarity index 89% rename from prt/tests/compute/utils/example.lua rename to prt/tests/common/test_utils/example.lua index 347402f3..ba19b2d0 100644 --- a/prt/tests/compute/utils/example.lua +++ b/prt/tests/common/test_utils/example.lua @@ -5,16 +5,16 @@ assert(#package.loaded == 1) local env0, const0 = _ENV, require "blockchain.constants" -- Scope/sandbox creator -local new_scoped_require = require "utils.scoped_require" +local new_scoped_require = require "test_utils.scoped_require" -- -- Create scope/sandbox 1 local scoped_require1 = new_scoped_require(_ENV) -- In scope/sandbox 1, load "utils.test" -local env1, const1 = scoped_require1 "utils.test" +local env1, const1 = scoped_require1 "test_utils.test" --- Check that in scope 1, both _ENV and "utils.scoped_require" are different +-- Check that in scope 1, both _ENV and "test_utils.scoped_require" are different assert(env0 ~= env1) assert(const0 ~= const1) @@ -24,9 +24,9 @@ assert(const0 ~= const1) local scoped_require2 = new_scoped_require(_ENV) -- In sandbox 2, load "utils.test" -local env2, const2 = scoped_require2 "utils.test" +local env2, const2 = scoped_require2 "test_utils.test" --- Check that in scope 2, both _ENV and "utils.scoped_require" are different +-- Check that in scope 2, both _ENV and "test_utils.scoped_require" are different assert(env1 ~= env2) assert(const1 ~= const2) diff --git a/prt/tests/compute/utils/scoped_require.lua b/prt/tests/common/test_utils/scoped_require.lua similarity index 100% rename from prt/tests/compute/utils/scoped_require.lua rename to prt/tests/common/test_utils/scoped_require.lua diff --git a/prt/tests/compute/utils/test.lua b/prt/tests/common/test_utils/test.lua similarity index 100% rename from prt/tests/compute/utils/test.lua rename to prt/tests/common/test_utils/test.lua diff --git a/prt/tests/compute-rs/Cargo.toml b/prt/tests/compute-rs/Cargo.toml deleted file mode 100644 index e5e37f4b..00000000 --- a/prt/tests/compute-rs/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "cartesi-prt-compute" -version = "0.1.0" - -authors = [ - "Gabriel Coutinho de Paula ", - "Algebraic Sofia ", - "Stephen Chen ", -] -description = "A Cartesi validator reference implementation" -edition = "2021" -homepage = "https://github.com/cartesi/dave" -license-file = "LICENSE" -readme = "README.md" -repository = "https://github.com/cartesi/dave" - -[dependencies] -cartesi-prt-core = { path = "../../client-rs" } - -anyhow = "1.0" -alloy = { workspace = true, features = ["sol-types"] } -clap = { workspace = true, features = ["derive", "env"] } -env_logger = "0.11.5" -log = "0.4" -tokio = { workspace = true, features = ["full"] } diff --git a/prt/tests/compute/prt_compute.lua b/prt/tests/compute/prt_compute.lua index 2adf0f18..e8d20199 100755 --- a/prt/tests/compute/prt_compute.lua +++ b/prt/tests/compute/prt_compute.lua @@ -11,7 +11,7 @@ local FAKE_COMMITMENT_COUNT = 1 local IDLE_PLAYER_COUNT = 0 -- Required Modules -local new_scoped_require = require "utils.scoped_require" +local new_scoped_require = require "test_utils.scoped_require" local helper = require "utils.helper" local blockchain_utils = require "blockchain.utils" @@ -132,7 +132,7 @@ local function run_players(player_coroutines) end if idle then - print(string.format("All players idle, fastforward blockchain for %d seconds...", FAST_FORWARD_TIME)) + print(string.format("All players idle, fastforward blockchain for %d blocks...", FAST_FORWARD_TIME)) blockchain_utils.advance_time(FAST_FORWARD_TIME, blockchain_constants.endpoint) end end diff --git a/prt/tests/compute/setup_path.lua b/prt/tests/compute/setup_path.lua index 9804189f..0c44f163 100644 --- a/prt/tests/compute/setup_path.lua +++ b/prt/tests/compute/setup_path.lua @@ -1,4 +1,5 @@ -- setup client-lua path +package.path = package.path .. ";../common/?.lua" package.path = package.path .. ";../../client-lua/?.lua" -- setup cartesi machine path diff --git a/prt/tests/rollups/dave/node.lua b/prt/tests/rollups/dave/node.lua index fbf70ecf..897c10db 100644 --- a/prt/tests/rollups/dave/node.lua +++ b/prt/tests/rollups/dave/node.lua @@ -4,7 +4,7 @@ local function start_dave_node(machine_path, db_path, sleep_duration, verbosity, local cmd = string.format( [[sh -c "echo $$ ; exec env MACHINE_PATH='%s' STATE_DIR='%s' \ SLEEP_DURATION=%d RUST_BACKTRACE='%s' \ - RUST_LOG='none',cartesi_prt_core='%s',rollups_compute_runner='%s',rollups_epoch_manager='%s' \ + RUST_LOG='none',cartesi_prt_core='%s',rollups_prt_runner='%s',rollups_epoch_manager='%s' \ ../../../target/debug/dave-rollups > dave.log 2>&1"]], machine_path, db_path, sleep_duration, trace_level, verbosity, verbosity, verbosity ) diff --git a/prt/tests/rollups/justfile b/prt/tests/rollups/justfile index 7d4152f4..cd3d0806 100644 --- a/prt/tests/rollups/justfile +++ b/prt/tests/rollups/justfile @@ -1,11 +1,11 @@ # run PRT rollups test test MACH_PATH: - rm -rf _state - MACHINE_PATH="../../../test/programs/echo" lua prt_rollups.lua + rm -rf _state + MACHINE_PATH={{MACH_PATH}} lua prt_rollups.lua # run PRT rollups echo test test-echo: (test "../../../test/programs/echo") # read logs from PRT Rollups node, run in separate terminal after `test-echo` read-node-logs: - tail -f dave.log + tail -f dave.log diff --git a/prt/tests/rollups/prt_rollups.lua b/prt/tests/rollups/prt_rollups.lua index 6e521a88..5eb39f0f 100755 --- a/prt/tests/rollups/prt_rollups.lua +++ b/prt/tests/rollups/prt_rollups.lua @@ -10,7 +10,7 @@ local INPUT_BOX_ADDRESS = "0x5FbDB2315678afecb367f032d93F642f64180aa3"; -- amount of time sleep between each react local SLEEP_TIME = 2 -- amount of time to fastforward if `IDLE_LIMIT` is reached -local FAST_FORWARD_TIME = 20 +local FAST_FORWARD_TIME = 32 -- amount of time to fastforward to advance an epoch -- local EPOCH_TIME = 60 * 60 * 24 * 7 -- delay time for blockchain node to be ready @@ -37,7 +37,7 @@ local ENCODED_INPUT = "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000060b61d58000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001048656c6c6f2076726f6d20446176652100000000000000000000000000000000" -- Required Modules -local new_scoped_require = require "utils.scoped_require" +local new_scoped_require = require "test_utils.scoped_require" local helper = require "utils.helper" local blockchain_utils = require "blockchain.utils" @@ -51,6 +51,8 @@ local MerkleBuilder = require "cryptography.merkle_builder" local Reader = require "dave.reader" local Sender = require "dave.sender" +os.execute("rm -rf _state") + local ROOT_LEAFS_QUERY = [[sqlite3 ./_state/compute_path/%s/db 'select level,base_cycle,compute_leaf_index,repetitions,HEX(compute_leaf) from compute_leafs where level=0 ORDER BY compute_leaf_index ASC']] @@ -163,7 +165,7 @@ local function run_players(player_coroutines) end if idle then - print(string.format("All players idle, fastforward blockchain for %d seconds...", FAST_FORWARD_TIME)) + print(string.format("All players idle, fastforward blockchain for %d blocks...", FAST_FORWARD_TIME)) blockchain_utils.advance_time(FAST_FORWARD_TIME, blockchain_constants.endpoint) end time.sleep(SLEEP_TIME) diff --git a/prt/tests/rollups/setup_path.lua b/prt/tests/rollups/setup_path.lua index c736a82c..0c44f163 100644 --- a/prt/tests/rollups/setup_path.lua +++ b/prt/tests/rollups/setup_path.lua @@ -1,5 +1,5 @@ -- setup client-lua path -package.path = package.path .. ";../compute/?.lua" +package.path = package.path .. ";../common/?.lua" package.path = package.path .. ";../../client-lua/?.lua" -- setup cartesi machine path diff --git a/test/programs/justfile b/test/programs/justfile index ea5dfb48..94648e06 100644 --- a/test/programs/justfile +++ b/test/programs/justfile @@ -8,9 +8,15 @@ clean-deps: rm -f rootfs.ext2 rm -f linux.bin +clean-program prog: + rm -f {{prog}}/_anvil.log echo/addresses echo/anvil_state.json + rm -rf {{prog}}/machine-image + clean-programs: clean-echo build-programs: build-echo +clean-echo: (clean-program "echo") + build-echo: clean-echo cartesi-machine --ram-image=./linux.bin \ --flash-drive=label:root,filename:./rootfs.ext2 \ @@ -19,8 +25,3 @@ build-echo: clean-echo ./build_anvil_state.sh "echo" -clean-program prog: - rm -f {{prog}}/_anvil.log echo/addresses echo/anvil_state.json - rm -rf {{prog}}/machine-image - -clean-echo: (clean-program "echo")