mirror of
https://github.com/logos-messaging/logos-messaging-simulator.git
synced 2026-01-03 06:23:06 +00:00
working local merkle tree with new contract
This commit is contained in:
parent
20760be4ca
commit
7f9e8dd0c4
46
deploy_current_contract.sh
Normal file
46
deploy_current_contract.sh
Normal file
@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# 1. Install foundry and pnpm
|
||||
# curl -L https://foundry.paradigm.xyz | bash && . /root/.bashrc && foundryup &&
|
||||
export PATH=$PATH:$HOME/.foundry/bin
|
||||
export RLN_CONTRACT_REPO_COMMIT=64df4593c6a14e43b8b0e9b396d2f4772bb08b34
|
||||
echo "installing pnpm..."
|
||||
npm install -g pnpm
|
||||
|
||||
# 2. Clone and build the repository
|
||||
if [ ! -d "waku-rlnv2-contract" ]; then
|
||||
git clone https://github.com/waku-org/waku-rlnv2-contract.git
|
||||
fi
|
||||
|
||||
if [ -z "$RLN_CONTRACT_REPO_COMMIT" ]; then
|
||||
echo "RLN_CONTRACT_REPO_COMMIT is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd /waku-rlnv2-contract
|
||||
git checkout $RLN_CONTRACT_REPO_COMMIT
|
||||
|
||||
#3. Replace the hardcoded MAX_MESSAGE_LIMIT
|
||||
sed -i "s/\b100\b/${MAX_MESSAGE_LIMIT}/g" script/Deploy.s.sol
|
||||
|
||||
# 4. Compile
|
||||
echo "forge install..."
|
||||
forge install
|
||||
echo "pnpm install..."
|
||||
pnpm install
|
||||
echo "forge build..."
|
||||
forge build
|
||||
|
||||
# 5. Export environment variables
|
||||
export RCL_URL=https://sepolia.infura.io/v3/25ec875c07fe43f7b246d633ea76263c
|
||||
export PRIVATE_KEY=7eef3db90edfb2cd6d733587317fb14521d7ef10391362639f5fb081046966f4
|
||||
export ETH_FROM=0x0BFb9Db85a8b6eF81490B3Ad8f6f914570141a49
|
||||
# Dummy values
|
||||
export API_KEY_ETHERSCAN=123
|
||||
export API_KEY_CARDONA=123
|
||||
export API_KEY_LINEASCAN=123
|
||||
|
||||
# 6. Deploy the contract
|
||||
forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast -vv --private-key $PRIVATE_KEY --sender $ETH_FROM
|
||||
@ -57,38 +57,38 @@ CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707
|
||||
# forge script test/TestToken.sol --broadcast -vvvv --rpc-url http://foundry:8545 --tc TestTokenFactory --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
|
||||
# export TOKEN2=0x0165878A594ca255338adfa4d48449f69242Eb8F
|
||||
echo "Minting...1"
|
||||
cast send $TOKEN_ADDRESS "mint(address,uint256)" $ETH_FROM 90000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "mint(address,uint256)" $ETH_FROM 900000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 30000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
|
||||
echo "Transfer tokens from account1 to others..."
|
||||
# account1 transfers tokens to account2
|
||||
# cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x90F79bf6EB2c4f870365E785982E1f101E93b906 1100000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 1000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 30000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC 10000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x90F79bf6EB2c4f870365E785982E1f101E93b906 10000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
cast send $TOKEN_ADDRESS "transfer(address,uint256)" 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 10000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
echo "Minting..2"
|
||||
# account2 approves the smart contract
|
||||
# cast send --from 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL
|
||||
# echo "Allowance:"
|
||||
# cast call $TOKEN_ADDRESS "allowance(address,address)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $CONTRACT_ADDRESS --rpc-url $RPC_URL --private-key $PRIVATE_KEY
|
||||
cast send --from 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 30000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL
|
||||
echo "Allowance:"
|
||||
cast call $TOKEN_ADDRESS "allowance(address,address)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 $CONTRACT_ADDRESS --rpc-url $RPC_URL --private-key $PRIVATE_KEY
|
||||
|
||||
export ID_COMMITMENT=1234
|
||||
export RATE_LIMIT=20
|
||||
export PATH=$PATH:$HOME/.foundry/bin
|
||||
echo "REGISTERING"
|
||||
# TX_HASH=$(cast send $CONTRACT_ADDRESS "register(uint256,uint32,uint256[])" $ID_COMMITMENT $RATE_LIMIT "[]" --rpc-url $RPC_URL --private-key $private_key)
|
||||
# export ID_COMMITMENT=1234
|
||||
# export RATE_LIMIT=20
|
||||
# export PATH=$PATH:$HOME/.foundry/bin
|
||||
# echo "REGISTERING"
|
||||
# TX_HASH=$(cast send $CONTRACT_ADDRESS "register(uint256,uint32,uint256[])" $ID_COMMITMENT $RATE_LIMIT "[]" --rpc-url $RPC_URL --private-key $PRIVATE_KEY)
|
||||
# echo "Transaction hash: $TX_HASH"
|
||||
|
||||
# echo "Minting..3"
|
||||
# cast send --from 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 2000000000000000000 --private-key 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a --rpc-url $RPC_URL
|
||||
echo "Minting..3"
|
||||
cast send --from 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 2000000000000000000 --private-key 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a --rpc-url $RPC_URL
|
||||
# cast call $TOKEN_ADDRESS "allowance(address,address)" 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC $CONTRACT_ADDRESS --rpc-url $RPC_URL --private-key 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a
|
||||
# # echo "Minting..4"
|
||||
# cast send --from 0x90F79bf6EB2c4f870365E785982E1f101E93b906 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 1100000000000000000 --private-key 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 --rpc-url $RPC_URL
|
||||
# cast send --from 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 1000000000000000000 --private-key 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a --rpc-url $RPC_URL
|
||||
echo "Minting..4"
|
||||
cast send --from 0x90F79bf6EB2c4f870365E785982E1f101E93b906 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 2000000000000000000 --private-key 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 --rpc-url $RPC_URL
|
||||
cast send --from 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 2000000000000000000 --private-key 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "mint(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "approve(address,uint256)" 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL
|
||||
|
||||
# cast send $TOKEN_ADDRESS "approve(address,uint256)" $CONTRACT_ADDRESS 3000000000000000000 --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d --rpc-url $RPC_URL
|
||||
# "private_keys":["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80","0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d","0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a","0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6","0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a","0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba",
|
||||
# echo "Minting...3"
|
||||
# cast send $TOKEN_ADDRESS "mint(address,uint256)" 0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
# cast send $TOKEN_ADDRESS "approve(address,uint256)" 0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc 3000000000000000000 --private-key $PRIVATE_KEY --rpc-url $RPC_URL
|
||||
|
||||
@ -44,7 +44,8 @@ services:
|
||||
- ETH_FROM=${ETH_FROM}
|
||||
- MAX_MESSAGE_LIMIT=${MAX_MESSAGE_LIMIT:-20}
|
||||
entrypoint: sh
|
||||
tty: true
|
||||
command:
|
||||
- '/opt/deploy_rln_contract.sh'
|
||||
volumes:
|
||||
- ./deploy_rln_contract.sh:/opt/deploy_rln_contract.sh
|
||||
depends_on:
|
||||
@ -53,7 +54,7 @@ services:
|
||||
- simulation
|
||||
|
||||
bootstrap:
|
||||
image: ${NWAKU_IMAGE:-wakuorg/nwaku:latest}
|
||||
image: ubuntu:24.04
|
||||
restart: on-failure
|
||||
labels:
|
||||
com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}'
|
||||
@ -67,46 +68,50 @@ services:
|
||||
command:
|
||||
- '/opt/run_bootstrap.sh'
|
||||
volumes:
|
||||
- /home/stubbsta/work-repos/nwaku_jswaku_keystore/nwaku/build/wakunode2:/usr/bin/wakunode:Z
|
||||
- ./run_bootstrap.sh:/opt/run_bootstrap.sh:Z
|
||||
- /home/stubbsta/work-repos/nwaku_jswaku_keystore/nwaku/libnegentropy.so:/usr/bin/libnegentropy.so:Z
|
||||
networks:
|
||||
- simulation
|
||||
|
||||
# nwaku:
|
||||
# image: ${NWAKU_IMAGE:-wakuorg/nwaku:latest}
|
||||
# restart: on-failure
|
||||
# labels:
|
||||
# com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}'
|
||||
# deploy:
|
||||
# replicas: ${NUM_NWAKU_NODES:-5}
|
||||
# entrypoint: sh
|
||||
# environment:
|
||||
# - RPC_URL=${RPC_URL:-http://foundry:8545}
|
||||
# - RLN_CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707
|
||||
# - 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:
|
||||
# - ./run_nwaku.sh:/opt/run_nwaku.sh:Z
|
||||
# - privatekeys-volume:/shared
|
||||
# depends_on:
|
||||
# contract-repo-deployer:
|
||||
# condition: service_completed_successfully
|
||||
# networks:
|
||||
# - simulation
|
||||
nwaku:
|
||||
image: ubuntu:24.04
|
||||
restart: on-failure
|
||||
labels:
|
||||
com.centurylinklabs.watchtower.enable: '${WATCHTOWER_ENABLED:-false}'
|
||||
deploy:
|
||||
replicas: ${NUM_NWAKU_NODES:-5}
|
||||
entrypoint: sh
|
||||
environment:
|
||||
- RPC_URL=${RPC_URL:-http://foundry:8545}
|
||||
- RLN_CONTRACT_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707
|
||||
- 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:
|
||||
- /home/stubbsta/work-repos/nwaku_jswaku_keystore/nwaku/build/wakunode2:/usr/bin/wakunode:Z
|
||||
- ./run_nwaku.sh:/opt/run_nwaku.sh:Z
|
||||
- privatekeys-volume:/shared
|
||||
- /home/stubbsta/work-repos/nwaku_jswaku_keystore/nwaku/libnegentropy.so:/usr/bin/libnegentropy.so:Z
|
||||
depends_on:
|
||||
contract-repo-deployer:
|
||||
condition: service_completed_successfully
|
||||
networks:
|
||||
- simulation
|
||||
|
||||
# rest-traffic:
|
||||
# image: alrevuelta/rest-traffic:28430f8
|
||||
# command:
|
||||
# --multiple-nodes=http://waku-simulator-nwaku-[1..${NUM_NWAKU_NODES:-5}]:8645
|
||||
# --msg-size-kbytes=${MSG_SIZE_KBYTES:-10}
|
||||
# --delay-seconds=${TRAFFIC_DELAY_SECONDS:-15}
|
||||
# networks:
|
||||
# - simulation
|
||||
# depends_on:
|
||||
# - nwaku
|
||||
rest-traffic:
|
||||
image: alrevuelta/rest-traffic:28430f8
|
||||
command:
|
||||
--multiple-nodes=http://waku-simulator-nwaku-[1..${NUM_NWAKU_NODES:-5}]:8645
|
||||
--msg-size-kbytes=${MSG_SIZE_KBYTES:-10}
|
||||
--delay-seconds=${TRAFFIC_DELAY_SECONDS:-15}
|
||||
networks:
|
||||
- simulation
|
||||
depends_on:
|
||||
- nwaku
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
|
||||
@ -1,9 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
IP=$(ip a | grep "inet " | grep -Fv 127.0.0.1 | sed 's/.*inet \([^/]*\).*/\1/')
|
||||
|
||||
echo "I am a bootstrap node"
|
||||
|
||||
apt update
|
||||
apt upgrade
|
||||
apt -y install wget
|
||||
apt -y install libpq-dev
|
||||
apt -y install libpcre3
|
||||
|
||||
IP=$(ip a | grep "inet " | grep -Fv 127.0.0.1 | sed 's/.*inet \([^/]*\).*/\1/')
|
||||
MY_EXT_IP=$(wget -qO- https://api4.ipify.org)
|
||||
|
||||
chmod a+x /usr/bin/wakunode
|
||||
|
||||
exec /usr/bin/wakunode\
|
||||
--relay=false\
|
||||
--rest=true\
|
||||
@ -16,5 +25,5 @@ exec /usr/bin/wakunode\
|
||||
--metrics-server=True\
|
||||
--metrics-server-address=0.0.0.0\
|
||||
--nodekey=30348dd51465150e04a5d9d932c72864c8967f806cce60b5d26afeca1e77eb68\
|
||||
--nat=extip:${IP}\
|
||||
--nat=extip:${MY_EXT_IP}\
|
||||
--cluster-id=66
|
||||
38
run_nwaku.sh
38
run_nwaku.sh
@ -1,5 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
apt update
|
||||
apt upgrade
|
||||
apt -y install wget
|
||||
apt -y install libpq-dev
|
||||
apt -y install libpcre3
|
||||
apt -y install dnsutils
|
||||
apt -y install jq
|
||||
apt -y install iproute2
|
||||
|
||||
# Check Linux Distro Version - it can differ depending on the nwaku image used
|
||||
OS=$(cat /etc/os-release)
|
||||
if echo $OS | grep -q "Debian"; then
|
||||
@ -94,25 +103,22 @@ if test -f .$RLN_CREDENTIAL_PATH; then
|
||||
echo "$RLN_CREDENTIAL_PATH already exists. Use it instead of creating a new one."
|
||||
else
|
||||
|
||||
# private_key="$(get_private_key)"
|
||||
# echo "Private key: $private_key"
|
||||
private_key="$(get_private_key)"
|
||||
echo "Private key: $private_key"
|
||||
|
||||
# echo "Generating RLN keystore"
|
||||
# /usr/bin/wakunode generateRlnKeystore \
|
||||
# --rln-relay-eth-client-address="$RPC_URL" \
|
||||
# --rln-relay-eth-private-key=$private_key \
|
||||
# --rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS \
|
||||
# --rln-relay-cred-path=$RLN_CREDENTIAL_PATH \
|
||||
# --rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD \
|
||||
# --rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT \
|
||||
# --rln-relay-epoch-sec=$RLN_RELAY_EPOCH_SEC \
|
||||
# --log-level=DEBUG \
|
||||
# --execute
|
||||
echo "Generating RLN keystore"
|
||||
/usr/bin/wakunode generateRlnKeystore \
|
||||
--rln-relay-eth-client-address="$RPC_URL" \
|
||||
--rln-relay-eth-private-key=$private_key \
|
||||
--rln-relay-eth-contract-address=$RLN_CONTRACT_ADDRESS \
|
||||
--rln-relay-cred-path=$RLN_CREDENTIAL_PATH \
|
||||
--rln-relay-cred-password=$RLN_CREDENTIAL_PASSWORD \
|
||||
--rln-relay-user-message-limit=$RLN_RELAY_MSG_LIMIT \
|
||||
--rln-relay-epoch-sec=$RLN_RELAY_EPOCH_SEC \
|
||||
--log-level=TRACE \
|
||||
--execute
|
||||
fi
|
||||
|
||||
echo "File list:"
|
||||
ls -al
|
||||
|
||||
echo "I am a nwaku node"
|
||||
|
||||
RETRIES=${RETRIES:=10}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user