From 473f9622f7208d9d554666da1dd794ade9bee28a Mon Sep 17 00:00:00 2001 From: Shoaib Ahmed Date: Wed, 10 Jul 2024 23:52:07 +0200 Subject: [PATCH] Set latest height/hash as trusted height/hash (#89) --- Cargo.lock | 1 + .../enclave/quartz.manifest.template | 4 ++-- apps/transfers/scripts/handshake.sh | 3 ++- apps/transfers/scripts/start.sh | 24 ++++++------------- 4 files changed, 12 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9d67611..bc07c7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -762,6 +762,7 @@ dependencies = [ "cw2", "cw20", "cw20-base", + "getrandom", "hex", "k256", "quartz-cw", diff --git a/apps/transfers/enclave/quartz.manifest.template b/apps/transfers/enclave/quartz.manifest.template index 4b8814d..7c2854d 100644 --- a/apps/transfers/enclave/quartz.manifest.template +++ b/apps/transfers/enclave/quartz.manifest.template @@ -21,8 +21,8 @@ loader.env.MYAPP_DATA = { passthrough = true } loader.argv = ["enclave", "--chain-id", "testing", - "--trusted-height", "1", - "--trusted-hash", "9A5627F601CA82FF4C3967BAE6521B67B6CECB8FF6FCBAE11A1DF563192E7EB9"] + "--trusted-height", "{{ trusted_height }}", + "--trusted-hash", "{{ trusted_hash }}"] fs.mounts = [ { uri = "file:{{ gramine.runtimedir() }}", path = "/lib" }, diff --git a/apps/transfers/scripts/handshake.sh b/apps/transfers/scripts/handshake.sh index 0242166..702d067 100755 --- a/apps/transfers/scripts/handshake.sh +++ b/apps/transfers/scripts/handshake.sh @@ -24,6 +24,7 @@ CMD="wasmd --node http://$NODE_URL" cd "$ROOT/cycles-quartz/apps/transfers" export TRUSTED_HASH=$(cat trusted.hash) +export TRUSTED_HEIGHT=$(cat trusted.height) echo "using CMD: $CMD" echo "--------------------------------------------------------" @@ -85,7 +86,7 @@ echo "contract $CONTRACT" cargo run -vvv -- --chain-id testing \ --primary "http://$NODE_URL" \ --witnesses "http://$NODE_URL" \ - --trusted-height 1 \ + --trusted-height $TRUSTED_HEIGHT \ --trusted-hash $TRUSTED_HASH \ --contract-address $CONTRACT \ --storage-key "quartz_session" \ diff --git a/apps/transfers/scripts/start.sh b/apps/transfers/scripts/start.sh index d5c8fd3..9e12984 100755 --- a/apps/transfers/scripts/start.sh +++ b/apps/transfers/scripts/start.sh @@ -16,20 +16,14 @@ echo "--------------------------------------------------------" echo "set trusted hash" cd "$DIR_QUARTZ_TM_PROVER" -cargo run -- --chain-id testing \ ---primary "http://$NODE_URL" \ ---witnesses "http://$NODE_URL" \ ---trusted-height 1 \ ---trusted-hash "5237772462A41C0296ED688A0327B8A60DF310F08997AD760EB74A70D0176C27" \ ---contract-address "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d" \ ---storage-key "quartz_session" \ ---trace-file light-client-proof.json &> $DIR_QUARTZ_APP/output - -cd $DIR_QUARTZ_APP -cat output | grep found | head -1 | awk '{print $NF}' | sed 's/\x1b\[[0-9;]*m//g' > trusted.hash -export TRUSTED_HASH=$(cat trusted.hash) +CHAIN_STATUS=$($CMD status) +TRUSTED_HASH=$(echo "$CHAIN_STATUS" | jq -r .SyncInfo.latest_block_hash) +TRUSTED_HEIGHT=$(echo "$CHAIN_STATUS" | jq -r .SyncInfo.latest_block_height) echo "... $TRUSTED_HASH" -rm output + +cd ""$DIR_QUARTZ_APP"" +echo "$TRUSTED_HASH" > trusted.hash +echo "$TRUSTED_HEIGHT" > trusted.height echo "--------------------------------------------------------" echo "configure gramine" @@ -38,10 +32,6 @@ cd "$DIR_QUARTZ_ENCLAVE" echo "... gen priv key if it doesnt exist" gramine-sgx-gen-private-key > /dev/null 2>&1 || : # may fail -echo "... update manifest template with trusted hash $TRUSTED_HASH" -sed -i -r "s/(\"--trusted-hash\", \")[A-Z0-9]+(\"])/\1$TRUSTED_HASH\2/" quartz.manifest.template - - echo "... create manifest" gramine-manifest \ -Dlog_level="error" \