diff --git a/README.MD b/README.MD index 363cdfc..87016f3 100644 --- a/README.MD +++ b/README.MD @@ -53,9 +53,14 @@ namada --version each container has a wallet funded with tokens, you can make tx from this wallet or fund new wallets, for example on validator 1 container ```shell docker compose exec namada-1 bash -namadac balance --owner namada-1-wallet +namadac balance --owner namada-1-wallet --token nam ``` +there is also a faucet account with huge amounts of NAM on container `namada-1`, you can use it to transfer funds to other accounts: +```bash +docker compose exec namada-1 bash +namadac transparent-transfer --source faucet-1 --target namada-1-wallet --amount 200000 --token nam +``` for more information about commands, check the [official docs](https://docs.namada.net/users) # Hermes and IBC transfers @@ -85,7 +90,7 @@ docker compose logs -f hermes ``` now exec into chain-b and get an address wallet from there ```shell -docker compose exec chain-b bash +docker compose exec namada-chain-b bash namadaw list ``` in another terminal exec into namada-1 and transfer any tokens to chain-b diff --git a/config/genesis-chain-b/parameters.toml b/config/genesis-chain-b/parameters.toml index 69fbbf9..8dd5c0d 100644 --- a/config/genesis-chain-b/parameters.toml +++ b/config/genesis-chain-b/parameters.toml @@ -20,11 +20,11 @@ epochs_per_year = 31_536 # The multiplier for masp epochs masp_epoch_multiplier = 2 # Max gas for block -max_block_gas = 20000000 +max_block_gas = 15_000_000 # Masp fee payment gas limit -masp_fee_payment_gas_limit = 150_000 +masp_fee_payment_gas_limit = 200_000 # Gas scale -gas_scale = 10_000_000 +gas_scale = 10_000 # Fee unshielding gas limit fee_unshielding_gas_limit = 20000 diff --git a/config/genesis/parameters.toml b/config/genesis/parameters.toml index afb790d..9781731 100644 --- a/config/genesis/parameters.toml +++ b/config/genesis/parameters.toml @@ -20,11 +20,11 @@ epochs_per_year = 31_536 # The multiplier for masp epochs masp_epoch_multiplier = 2 # Max gas for block -max_block_gas = 20000000 +max_block_gas = 15_000_000 # Masp fee payment gas limit -masp_fee_payment_gas_limit = 150_000 +masp_fee_payment_gas_limit = 200_000 # Gas scale -gas_scale = 10_000_000 +gas_scale = 10_000 # Fee unshielding gas limit fee_unshielding_gas_limit = 20000 diff --git a/config/make_balances.py b/config/make_balances.py index 7bfc917..289c7e0 100644 --- a/config/make_balances.py +++ b/config/make_balances.py @@ -2,6 +2,7 @@ import os import sys import toml +import json validator_directory = sys.argv[1] balances_toml = sys.argv[2] @@ -19,30 +20,30 @@ if len(toml_files) == 1: toml_file_path = os.path.join(subdir_path, toml_files[0]) transactions_toml = toml.load(toml_file_path) - # add a new item to balances config with this alias - balances_config[alias] = [] try: address = transactions_toml['validator_account'][0]['address'] - balances_config[alias].append(address) - except (KeyError, IndexError) as e: - pass - try: - address = transactions_toml['established_account'][0]['public_keys'][0] - balances_config[alias].append(address) + balances_config[alias]= address except (KeyError, IndexError) as e: pass + +with open(validator_directory + '/namada_addresses.json', 'r') as f: + namada_addresses = json.load(f) +for account, address in namada_addresses.items(): + if account.endswith("validator"): + continue + balances_config[account] = address + output_toml = toml.load(balances_toml) ACCOUNT_AMOUNT = "220000000000" FAUCET_AMOUNT = "9123372036854000000" for entry in balances_config: for token in output_toml['token']: - for addr in balances_config[entry]: - if entry == 'faucet-1': - output_toml['token'][token][addr] = FAUCET_AMOUNT - else: - output_toml['token'][token][addr] = ACCOUNT_AMOUNT + if entry == 'faucet-1': + output_toml['token'][token][balances_config[entry]] = FAUCET_AMOUNT + else: + output_toml['token'][token][balances_config[entry]] = ACCOUNT_AMOUNT toml_content = toml.dumps(output_toml) # Write the TOML content to the file diff --git a/config/start-chain-b.sh b/config/start-chain-b.sh index 69164e2..53b8549 100755 --- a/config/start-chain-b.sh +++ b/config/start-chain-b.sh @@ -59,6 +59,14 @@ if [ ! -f "/root/.namada-shared/chain-b.config" ]; then # add genesis transactions to transactions.toml cat /root/.namada-chain-b/chain-b/transactions.toml >>/root/.namada-chain-b/genesis/transactions.toml + # Store all tnam addresses in a file to fund them + namadaw --pre-genesis list --addr > /root/.namada-chain-b/temp_output.txt + echo "{" > /root/.namada-chain-b/namada_addresses.json + grep -E '^ ".*":' /root/.namada-chain-b/temp_output.txt | sed 's/^ "\(.*\)": .*: \(.*\)$/ "\1": "\2",/' >> /root/.namada-chain-b/namada_addresses.json + sed -i '$ s/,$//' /root/.namada-chain-b/namada_addresses.json # Remove the trailing comma + echo "}" >> /root/.namada-chain-b/namada_addresses.json + rm temp_output.txt + python3 /scripts/make_balances.py /root/.namada-chain-b /genesis/balances.toml /root/.namada-chain-b/genesis/balances.toml genesis_time=$(date -d "+${GENESIS_DELAY} seconds" +"%Y-%m-%dT%H:%M:%S.%N+00:00") @@ -84,8 +92,7 @@ if [ ! -f "/root/.namada-shared/chain-b.config" ]; then --chain-id $CHAIN_ID \ --genesis-validator $ALIAS \ --allow-duplicate-ip \ - --add-persistent-peers \ - --dont-prefetch-wasm + --add-persistent-peers sed -i "s#external_address = \".*\"#external_address = \"$EXTERNAL_IP:${P2P_PORT:-26656}\"#g" /root/.local/share/namada/$CHAIN_ID/config.toml diff --git a/config/start-node.sh b/config/start-node.sh index c9fcbff..bec3e0e 100755 --- a/config/start-node.sh +++ b/config/start-node.sh @@ -28,17 +28,8 @@ generate_chain_configs() { STEWARD_ESTABLISHED=$(namadac utils init-genesis-established-account --path /root/.namada-shared/$STEWARD_ALIAS/transactions.toml --aliases $STEWARD_ALIAS) STEWARD_TNAM=$(echo "$STEWARD_ESTABLISHED" | grep -o 'tnam[[:alnum:]]*') - # create a faucet account - FAUCET_ALIAS="faucet-1" - namadaw --pre-genesis gen --alias $FAUCET_ALIAS --unsafe-dont-encrypt - mkdir /root/.namada-shared/$FAUCET_ALIAS - namadac utils init-genesis-established-account --path /root/.namada-shared/$FAUCET_ALIAS/transactions.toml --aliases $FAUCET_ALIAS - - # create a relayer account - RELAYER_ALIAS="relayer" - namadaw --pre-genesis gen --alias $RELAYER_ALIAS --unsafe-dont-encrypt - mkdir /root/.namada-shared/$RELAYER_ALIAS - namadac utils init-genesis-established-account --path /root/.namada-shared/$RELAYER_ALIAS/transactions.toml --aliases $RELAYER_ALIAS + namadaw --pre-genesis gen --alias faucet-1 --unsafe-dont-encrypt + namadaw --pre-genesis gen --alias relayer --unsafe-dont-encrypt # create directory for genesis toml files mkdir -p /root/.namada-shared/genesis @@ -49,14 +40,21 @@ generate_chain_configs() { # make a copy of wallet to namada folder for convenience (access to faucet account keys) cp -a /root/.local/share/namada/pre-genesis/wallet.toml /root/.local/share/namada/wallet.toml + + # Store all tnam addresses in a file to fund them + namadaw --pre-genesis list --addr > temp_output.txt + echo "{" > /root/.namada-shared/namada_addresses.json + grep -E '^ ".*":' temp_output.txt | sed 's/^ "\(.*\)": .*: \(.*\)$/ "\1": "\2",/' >> /root/.namada-shared/namada_addresses.json + sed -i '$ s/,$//' /root/.namada-shared/namada_addresses.json # Remove the trailing comma + echo "}" >> /root/.namada-shared/namada_addresses.json + rm temp_output.txt + # add all signed genesis transactions to a final transactions.toml # TODO: move to python script cat /root/.namada-shared/namada-1/transactions.toml >>/root/.namada-shared/genesis/transactions.toml cat /root/.namada-shared/namada-2/transactions.toml >>/root/.namada-shared/genesis/transactions.toml cat /root/.namada-shared/namada-3/transactions.toml >>/root/.namada-shared/genesis/transactions.toml cat /root/.namada-shared/$STEWARD_ALIAS/transactions.toml >>/root/.namada-shared/genesis/transactions.toml - cat /root/.namada-shared/$FAUCET_ALIAS/transactions.toml >>/root/.namada-shared/genesis/transactions.toml - cat /root/.namada-shared/$RELAYER_ALIAS/transactions.toml >>/root/.namada-shared/genesis/transactions.toml python3 /scripts/make_balances.py /root/.namada-shared /genesis/balances.toml /root/.namada-shared/genesis/balances.toml python3 /scripts/update_params.py /genesis/parameters.toml "$STEWARD_TNAM" /root/.namada-shared/genesis/parameters.toml @@ -162,8 +160,7 @@ namadac utils join-network \ --chain-id $CHAIN_ID \ --genesis-validator $ALIAS \ --allow-duplicate-ip \ - --add-persistent-peers \ - --dont-prefetch-wasm + --add-persistent-peers sed -i "s#proxy_app = \"tcp://.*:26658\"#laddr = \"tcp://0.0.0.0:26658\"#g" /root/.local/share/namada/$CHAIN_ID/config.toml sed -i "s#laddr = \"tcp://.*:26657\"#laddr = \"tcp://0.0.0.0:26657\"#g" /root/.local/share/namada/$CHAIN_ID/config.toml diff --git a/docker-compose.yml b/docker-compose.yml index 5a64eda..6bfe056 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,9 +4,9 @@ x-namada: &namada-common dockerfile: docker/Dockerfile context: . args: - - NAMADA_TAG=${NAMADA_TAG:-v0.41.0} + - NAMADA_TAG=${NAMADA_TAG:-v0.43.0} - BUILD_WASM=true - image: ghcr.io/emberstake/namada-selfhost/namada:${NAMADA_TAG:-v0.41.0} + image: ghcr.io/emberstake/namada-selfhost/namada:${NAMADA_TAG:-v0.43.0} entrypoint: ["sh", "/docker-entrypoint-scripts.d/start-node.sh"] networks: namada: @@ -77,12 +77,12 @@ services: - namada-chain-b_data:/root/.local/share/namada hermes: - image: ghcr.io/emberstake/namada-selfhost/hermes:${HERMES_TAG:-v1.9.0-namada-beta14-rc} + image: ghcr.io/emberstake/namada-selfhost/hermes:${HERMES_TAG:-v1.10.0-namada-beta15-rc2} build: dockerfile: docker/hermes.Dockerfile context: . args: - - HERMES_TAG=${HERMES_TAG:-v1.9.0-namada-beta14-rc} + - HERMES_TAG=${HERMES_TAG:-v1.10.0-namada-beta15-rc2} hostname: hermes profiles: - hermes diff --git a/docker/Dockerfile b/docker/Dockerfile index 310640b..27cabd4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -27,7 +27,7 @@ RUN git checkout ${NAMADA_TAG} RUN make build-release RUN make build-wasm-scripts -FROM golang:1.19.0 as tendermint-builder +FROM golang:1.21.0 as tendermint-builder WORKDIR /app RUN git clone https://github.com/cometbft/cometbft.git