diff --git a/deploy_rln_contract.sh b/deploy_rln_contract.sh index bae4194..c741b4a 100644 --- a/deploy_rln_contract.sh +++ b/deploy_rln_contract.sh @@ -2,17 +2,34 @@ set -e -# 1. Install foundry +# 1. Install foundry and pnpm curl -L https://foundry.paradigm.xyz | bash && . /root/.bashrc && foundryup && export PATH=$PATH:$HOME/.foundry/bin -#. 2. Clone and build waku-rln-contract repo -git clone https://github.com/waku-org/waku-rln-contract.git -cd /waku-rln-contract -forge install && yarn install && yarn compile +echo "installing pnpm..." +npm install -g pnpm -# 3. Create .env file with RPC_PROVIDER variable -echo "creating .env file with RPC_PROVIDER=$RPC_URL" -echo "RPC_PROVIDER=$RPC_URL" > .env +# 2. Clone and build the repository +if [ ! -d "waku-rlnv2-contract" ]; then + git clone https://github.com/waku-org/waku-rlnv2-contract.git +fi -# 3. Deploy the contracts -yarn deploy localhost_integration \ No newline at end of file +cd /waku-rlnv2-contract + +# 3. Compile +echo "forge install..." +forge install +echo "pnpm install..." +pnpm install +echo "forge build..." +forge build + +# 4. Export environment variables +export RCL_URL=$RCL_URL +export PRIVATE_KEY=$PRIVATE_KEY +export ETH_FROM=$ETH_FROM +# Dummy values +export API_KEY_ETHERSCAN=123 +export API_KEY_CARDONA=123 + +# 5. Deploy the contract +forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast -vv --private-key $PRIVATE_KEY --sender $ETH_FROM \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 4f5f4d9..9e9f30a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,10 +20,10 @@ services: - anvil --port=8545 --host=0.0.0.0 - --chain-id=1337 --accounts=${NUM_NWAKU_NODES:-5} --allow-origin=* --block-time=12 + --chain-id=1234 --silent --config-out=/shared/anvil-config.txt volumes: @@ -36,7 +36,9 @@ services: labels: com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}' environment: + - PRIVATE_KEY=${PRIVATE_KEY} - RPC_URL=${RPC_URL:-http://foundry:8545} + - ETH_FROM=${ETH_FROM} entrypoint: sh command: - '/opt/deploy_rln_contract.sh' @@ -76,9 +78,11 @@ services: entrypoint: sh environment: - RPC_URL=${RPC_URL:-http://foundry:8545} - - RLN_CONTRACT_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0 + - RLN_CONTRACT_ADDRESS=0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9 - RLN_CREDENTIAL_PATH=/keystore.json - RLN_CREDENTIAL_PASSWORD=passw123 + - RLN_RELAY_MSG_LIMIT=${RLN_RELAY_MSG_LIMIT:-10} + - RLN_RELAY_EPOCH_SEC=${RLN_RELAY_EPOCH_SEC:-60} command: - '/opt/run_nwaku.sh' volumes: diff --git a/run_nwaku.sh b/run_nwaku.sh index b58a76c..84f4bcb 100755 --- a/run_nwaku.sh +++ b/run_nwaku.sh @@ -108,7 +108,8 @@ else --rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS \ --rln-relay-cred-path=$RLN_CREDENTIAL_PATH \ --rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD \ - --log-level=INFO \ + --rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT \ + --log-level=DEBUG \ --execute fi @@ -136,12 +137,16 @@ exec /usr/bin/wakunode\ --rest-admin=true\ --rest-private=true\ --rest-address=0.0.0.0\ + --rest-port=8645\ --rln-relay=true\ --rln-relay-dynamic=true\ --rln-relay-eth-client-address="$RPC_URL"\ --rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS\ --rln-relay-cred-path=$RLN_CREDENTIAL_PATH\ --rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD\ + --rln-relay-tree-path="rlnv2_tree1"\ + --rln-relay-epoch-sec=$RLN_RELAY_EPOCH_SEC\ + --rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT\ --dns-discovery=true\ --discv5-discovery=true\ --discv5-enr-auto-update=True\ diff --git a/wakusim.env b/wakusim.env index f907820..e2eee6f 100644 --- a/wakusim.env +++ b/wakusim.env @@ -1,5 +1,5 @@ # Env variables for metal-01.he-eu-hel1.wakusim.misc host. -NWAKU_IMAGE=wakuorg/nwaku:latest +NWAKU_IMAGE=quay.io/wakuorg/nwaku-pr:2759-rln-v2 # Network scaling. NUM_NWAKU_NODES=50 # Simulation traffic. @@ -9,4 +9,10 @@ TRAFFIC_DELAY_SECONDS=15 # Enable automatic Docker image updates. WATCHTOWER_ENABLED=true # Anvil RPC Node external IP and port -RPC_URL=http://foundry:8545 \ No newline at end of file +RPC_URL=http://foundry:8545 +# Contract-deployment +PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 +ETH_FROM=0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 +# RLNv2 limits +RLN_RELAY_MSG_LIMIT=10 +RLN_RELAY_EPOCH_SEC=60 \ No newline at end of file