### op-geth Server Start Logs Example Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/optimism.mdx Example logs indicating that the op-geth server has started and is importing new chain segments. This signifies successful initialization. ```bash simple-optimism-node-op-geth-1 | INFO [01-22|07:28:21.089] Imported new potential chain segment number=4,066,054 hash=fe6131..8bfd42 blocks=1 txs=1 mgas=0.000 elapsed="723.105µs" mgasps=0.000 age=1w2d9h dirty=832.58KiB simple-optimism-node-op-geth-1 | INFO [01-22|07:28:21.090] Chain head was updated number=4,066,054 hash=fe6131..8bfd42 root=74b0c0..f0c70a elapsed="83.46µs" age=1w2d9h simple-optimism-node-op-geth-1 | INFO [01-22|07:28:21.094] Imported new potential chain segment number=4,066,055 hash=8d8383..53fdcb blocks=1 txs=1 mgas=0.000 elapsed="889.945µs" mgasps=0.000 age=1w2d9h dirty=832.58KiB simple-optimism-node-op-geth-1 | INFO [01-22|07:28:21.095] Chain head was updated number=4,066,055 hash=8d8383..53fdcb root=0929e1..088f55 elapsed="96.886µ ``` -------------------------------- ### Checkout Start Branch Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/cosmos-gmp/developer-guides/cross-chain-messaging-evm-to-cosmos.mdx Switch to the 'start' branch of the cloned repository to begin with the initial project setup. ```bash git checkout start ``` -------------------------------- ### Install Dependencies and Run Dev Server Source: https://github.com/axelarnetwork/axelar-docs/blob/main/README.md Use these commands to install project dependencies and start the local development server for previewing changes. ```bash npm install npm run dev ``` -------------------------------- ### Start Local Development Server Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx Starts the local development server for running Axelar examples. Keep this terminal open while running examples. ```bash npm run start ``` -------------------------------- ### Example Polygon zkEVM Running Services Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/polygon-zkevm.mdx This is an example output showing the expected running containers and their status when the Polygon zkEVM node is successfully started. ```bash docker-compose --env-file $ZKEVM_CONFIG_DIR/.env -f $ZKEVM_DIR/$ZKEVM_NET/docker-compose.yml ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS zkevm-pool-db postgres "docker-entrypoint.s… zkevm-pool-db 12 minutes ago Up 12 minutes (healthy) 0.0.0.0:5433->5432/tcp, :::5433->5432/tcp zkevm-prover hermeznetwork/zkevm-prover:v1.1.4-fork.4 "zkProver -c /usr/sr… zkevm-prover 12 minutes ago Up 12 minutes 0.0.0.0:50061->50061/tcp, :::50061->50061/tcp, 0.0.0.0:50071->50071/tcp, :::50071->50071/tcp zkevm-rpc hermeznetwork/zkevm-node:v0.1.2 "/bin/sh -c '/app/zk… zkevm-rpc 12 minutes ago Up 12 minutes 0.0.0.0:8545->8545/tcp, :::8545->8545/tcp, 8123/tcp, 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp zkevm-state-db postgres "docker-entrypoint.s… zkevm-state-db 12 minutes ago Up 12 minutes (healthy) 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp zkevm-sync hermeznetwork/zkevm-node:v0.1.2 "/bin/sh -c '/app/zk… zkevm-sync 12 minutes ago Up 12 minutes 8123/tcp ``` -------------------------------- ### Install Prerequisites Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/binance.mdx Installs necessary packages for building and managing the Binance node. Ensure these are installed before proceeding. ```bash sudo apt-get install wget jq unzip aria2 lz4 -y ``` -------------------------------- ### Install Docker and Foundry Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/mantle.mdx Installs Docker, jq, and Foundry. Ensure Docker is installed before proceeding. ```bash sudo apt update sudo apt install snapd sudo apt-get install jq -y snap install docker curl -L https://foundry.paradigm.xyz | bash && source /root/.bashrc && foundryup ``` -------------------------------- ### Install build tools Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/scroll.mdx Installs necessary build tools for compiling the Geth binary. Ensure these are installed before proceeding. ```bash sudo apt-get update sudo apt-get install build-essential -y && sudo apt-get install jq -y ``` -------------------------------- ### Install Docker and Dependencies Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/arbitrum.mdx Installs necessary packages like curl and jq, then downloads and executes the Docker installation script. Ensure to redirect stdin from /dev/null to prevent interactive prompts. ```bash sudo apt update && sudo apt install curl jq -y < "/dev/null" curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh ``` -------------------------------- ### Install Docker Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/aurora.mdx Installs the Docker runtime on your server. Ensure Docker Compose is installed separately by following its official guide. ```bash sudo apt install docker.io -y ``` -------------------------------- ### Install Prerequisites Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/avalanche.mdx Installs necessary packages like wget and jq. Ensure these are present before proceeding with binary downloads. ```bash sudo apt-get install wget jq -y ``` -------------------------------- ### Install Kava Binaries Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/kava.mdx Install the Kava binaries after cloning the repository. Verify the installed version using the `version --long` command. ```bash make install # verify versions kava version --long ``` -------------------------------- ### Clone Project Repository Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/cosmos-gmp/developer-guides/cross-chain-messaging-evm-to-cosmos.mdx Clone the example project from GitHub to start building your cross-chain application. ```bash git clone https://github.com/axelarnetwork/send-message-from-cosmos-to-evm-example.git ``` -------------------------------- ### Example Geth Log Output Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/base.mdx Sample output from the 'geth' container logs, indicating that the HTTP server has started and the node is looking for peers. ```text base-node-geth-1 | INFO [03-18|07:28:01.409] HTTP server started endpoint=[::]:8545 auth=false prefix= cors=* vhosts=* base-node-geth-1 | INFO [03-18|07:28:01.409] WebSocket enabled url=ws://[::]:8546 base-node-geth-1 | INFO [03-18|07:28:01.409] WebSocket enabled url=ws://[::]:8551 base-node-geth-1 | INFO [03-18|07:28:01.409] HTTP server started endpoint=[::]:8551 auth=true prefix= cors=localhost vhosts=* base-node-geth-1 | INFO [03-18|07:28:11.610] Looking for peers peercount=0 tried=156 static=0 base-node-geth-1 | INFO [03-18|07:28:21.725] Looking for peers peercount=0 tried=122 static=0 base-node-geth-1 | INFO [03-18|11:32:45.773] Forkchoice requested sync to new head number=11,986,109 hash=085c5c..61c7ca base-node-geth-1 | INFO [03-18|11:32:47.466] Forkchoice requested sync to new head number=11,986,110 hash=2f176f..8f3656 base-node-geth-1 | INFO [03-18|11:32:49.476] Forkchoice requested sync to new head number=11,986,111 hash=e247cf..08c3fb base-node-geth-1 | INFO [03-18|11:32:51.280] Forkchoice requested sync to new head number=11,986,112 hash=b6c25a..b7a064 ``` -------------------------------- ### Install Stellar Core (Testnet) Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/stellar.mdx Clones the Stellar Core repository, checks out the specified release, initializes and updates submodules, and then builds and installs the core binaries. Use this for testnet installations. ```bash git clone https://github.com/stellar/stellar-core.git cd stellar-core git checkout $STELLAR_RELEASE git submodule init git submodule update ./autogen.sh ./configure make make check sudo make install sudo mv stellar-core /usr/bin/ ``` -------------------------------- ### Install jq and Docker Compose Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/polygon-zkevm.mdx Installs the jq utility and the Docker Compose binary. Ensure you check the official Docker documentation for the latest installation instructions. ```bash sudo apt-get install jq -y sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version ``` -------------------------------- ### Install Stellar Core (Mainnet) Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/stellar.mdx Clones the Stellar Core repository, checks out the specified release, initializes and updates submodules, and then builds and installs the core binaries. Use this for mainnet installations. ```bash git clone https://github.com/stellar/stellar-core.git cd stellar-core git checkout $STELLAR_RELEASE git submodule init git submodule update ./autogen.sh ./configure make make check sudo make install sudo mv stellar-core /usr/bin/ ``` -------------------------------- ### Enable and Start Moonbeam Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/moonbeam.mdx Enable the Moonbeam service to start on boot and then start the service immediately. Use systemctl status and journalctl to monitor the service and view logs. ```bash sudo systemctl enable moonbeam.service sudo systemctl start moonbeam.service ``` ```bash sudo systemctl status moonbeam.service sudo journalctl -u moonbeam.service -f ``` -------------------------------- ### Enable and Start Hiero JSON-RPC Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/hedera.mdx Enable the Hiero JSON-RPC service to start on boot and then start it immediately. ```bash sudo systemctl enable hiero-json-rpc sudo systemctl start hiero-json-rpc ``` -------------------------------- ### Start and Enable Geth Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/linea.mdx Commands to reload systemd, enable the Geth service to start on boot, and restart the service. ```bash sudo systemctl daemon-reload sudo systemctl enable geth-linea sudo systemctl restart geth-linea ``` -------------------------------- ### Setup Aurora Node (Testnet/Mainnet) Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/aurora.mdx Executes the setup script for either the testnet or mainnet Aurora node. ```bash ./setup.sh testnet ``` ```bash ./setup.sh ``` -------------------------------- ### Install Dependencies and Build Contracts Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx Installs project dependencies and builds contracts and tests. Run this after cloning the repository. ```bash cd axelar-examples npm ci npm run build ``` -------------------------------- ### Example OP Node Logs Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/mantle.mdx These are example logs you should expect to see from the OP node, indicating successful startup and operation. ```log mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting JSON-RPC server" mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="metrics disabled" mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting execution engine driver" mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting driver" sequencerEnabled=false sequencerStopped=false mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Rollup node started" mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="State loop started" mantlenetworks-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Loaded current L2 heads" unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 unsafe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 safe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 mantlenetworks-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Walking back L1Block by number" curr=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 next=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 l2block=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 mantlenetworks-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Hit finalized L2 head, returning immediately" unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 unsafe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 safe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 mantlenetworks-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Sync progress" reason="reset derivation work" l2_finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_engineSyncTarget=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_time=1,704,686,688 l1_derived=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 ``` -------------------------------- ### Download and Install Geth Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/linea.mdx Downloads, extracts, and installs the Geth binary for Linux AMD64 architecture. Verify the correct version before proceeding. ```bash # verify correct version echo $GETH_RELEASE # create a temp dir for binaries cd $HOME mkdir binaries && cd binaries # if you are on linux amd wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-$GETH_RELEASE.tar.gz tar -xvf geth-linux-amd64-$GETH_RELEASE.tar.gz cd geth-linux-amd64-$GETH_RELEASE chmod +x geth sudo mv geth /usr/bin/ # verify version geth version cd $HOME ``` -------------------------------- ### Install and Configure Golang Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/filecoin.mdx Installs a specific version of Go (1.19.7) required for compiling the lotus daemon and adds it to your PATH. ```bash wget -c https://golang.org/dl/go1.19.7.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc && source ~/.bashrc ``` -------------------------------- ### Initialize Project and Install Dependencies Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/interchain-tokens/developer-guides/programmatically-create-a-canonical-token.mdx Set up your project directory and install necessary development tools like Hardhat and the AxelarJS SDK. Ensure you are using the specified versions for compatibility. ```bash mkdir canonical-interchain-token-project && cd canonical-interchain-token-project npm init -y ``` ```bash npm install --save-dev hardhat@2.18.1 dotenv@16.3.1 npm install @axelar-network/axelarjs-sdk@0.13.9 crypto@1.0.1 @nomicfoundation/hardhat-toolbox@2.0.2 ``` -------------------------------- ### Example Deployment Output Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/sui/gmp-tutorial.mdx Example console logs demonstrating a successful package build and publish process, including the final package and singleton object IDs. ```bash node scripts/deploy.js 📦 Building Move package INCLUDING DEPENDENCY GasService INCLUDING DEPENDENCY RelayerDiscovery INCLUDING DEPENDENCY AxelarGateway INCLUDING DEPENDENCY Utils INCLUDING DEPENDENCY VersionControl INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING gmp_example 🚀 Sending publish transaction… ✅ Publish succeeded! 📦 Published package ID: 0x9068ae5fb08615d7fd9f869d6d1cf47ec21fa687ca7ab3d7d68b45a7b2cfd041 🔑 GMP Singleton Object ID: 0x9cbb3582c80ed49ca5d0cacce23b2cdb145bd10421f2c969d36799e3cbd78c52 ``` -------------------------------- ### Set Up Private Key Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx Initializes the project setup, likely including generating or configuring necessary private keys for development. ```bash npm run setup ``` -------------------------------- ### Create and Initialize Project Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/interchain-tokens/developer-guides/programmatically-create-a-token.mdx Use these commands to create a new project directory and initialize it with npm. ```bash mkdir interchain-token-project && cd interchain-token-project npm init -y ``` -------------------------------- ### Example Stacks Node Log Output Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/stacks.mdx Example log output indicating that the Stacks node has started syncing with the network and is receiving blocks. ```log stacks-blockchain-api | {"level":"info","time":"2025-07-13T12:39:13.914Z","pid":19,"hostname":"e15f871c6dad","name":"stacks-node-event","reqId":"req-7","req":{"method":"POST","url":"/new_burn_block","hostname":"stacks-blockchain-api:3700","remoteAddress":"172.21.0.4","remotePort":60142,"bodySize":184},"msg":"incoming request"} stacks-blockchain | INFO [1752410353.915124] [stackslib/src/net/relay.rs:2559] [relayer-http://0.0.0.0:20443] Got chunks for unconfigured StackerDB replica, stackerdb_contract_id: SP000000000000000000002Q6VF78.signers-1-2 stacks-blockchain | INFO [1752410353.917114] [stackslib/src/net/relay.rs:2559] [relayer-http://0.0.0.0:20443] Got chunks for unconfigured StackerDB replica, stackerdb_contract_id: SP000000000000000000002Q6VF78.signers-1-2 stacks-blockchain | INFO [1752410353.917128] [stackslib/src/net/relay.rs:2559] [relayer-http://0.0.0.0:20443] Got chunks for unconfigured StackerDB replica, stackerdb_contract_id: SP000000000000000000002Q6VF78.signers-1-1 stacks-blockchain | INFO [1752410353.919038] [stackslib/src/net/relay.rs:2559] [relayer-http://0.0.0.0:20443] Got chunks for unconfigured StackerDB replica, stackerdb_contract_id: SP000000000000000000002Q6VF78.signers-1-2 stacks-blockchain-api | {"level":"info","time":"2025-07-13T12:39:13.921Z","pid":19,"hostname":"e15f871c6dad","name":"stacks-node-event","reqId":"req-7","res":{"statusCode":200,"method":"POST","url":"/new_burn_block","requestBodySize":184,"responseBodySize":15},"responseTime":6.254112005233765,"msg":"request completed"} ``` -------------------------------- ### Create utils directory and index.js Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/sui/register-existing-coin-guide.mdx Sets up the directory and file for utility functions, including wallet connection. ```bash mkdir utils touch utils/index.js ``` -------------------------------- ### Celo Node Sync Progress Example Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/celo.mdx Example log output indicating that the Celo node has started syncing with the network and is receiving blocks. This output confirms successful node operation. ```log op-node-1 | t=2025-03-10T13:10:05+0000 lvl=info msg="successfully processed payload" ref=0xf4f3329a393c63a3049dd6ccf373b84a8010575959a9b08b5322816c277185dc:40656885 txs=1 op-node-1 | t=2025-03-10T13:10:06+0000 lvl=info msg="Received signed execution payload from p2p" id=0xaed84ef24c4accfac8597083e86b2187b10594ef4d8cf6a1de8794d8d2eb6f54:40656886 peer=16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6 txs=1 op-node-1 | t=2025-03-10T13:10:06+0000 lvl=info msg="Optimistically queueing unsafe L2 execution payload" id=0xaed84ef24c4accfac8597083e86b2187b10594ef4d8cf6a1de8794d8d2eb6f54:40656886 op-geth-1 | INFO [03-10|13:10:06.890] Imported new potential chain segment number=40,656,886 hash=aed84e..eb6f54 blocks=1 txs=1 mgas=0.044 elapsed=15.280ms mgasps=2.865 snapdiffs=1.07MiB triediffs=1.68MiB triedirty=170.80KiB op-geth-1 | INFO [03-10|13:10:06.892] Chain head was updated number=40,656,886 hash=aed84e..eb6f54 root=d8d7a6..3d26d7 elapsed="149.411µs" op-node-1 | t=2025-03-10T13:10:06+0000 lvl=info msg="Inserted new L2 unsafe block (synchronous)" hash=0xaed84ef24c4accfac8597083e86b2187b10594ef4d8cf6a1de8794d8d2eb6f54 number=40656886 newpayload_time=19.937ms fcu2_time=2.276ms total_time=22.216ms mgas=0.043782 mgasps=1.9707239775153276 op-node-1 | t=2025-03-10T13:10:06+0000 lvl=info msg="Sync progress" reason="new chain head block" l2_finalized=0x1d307d6750afe9164b8b5ce86a76afd94331db3e88aed28be17da33f0ce5f05f:40652313 l2_safe=0xf9186d586e797b9cdb5b08de180c27f2e58c04de15fdb28eb6afb2b5a4e1d55a:40656494 l2_pending_safe=0xf9186d586e797b9cdb5b08de180c27f2e58c04de15fdb28eb6afb2b5a4e1d55a:40656494 l2_unsafe=0xaed84ef24c4accfac8597083e86b2187b10594ef4d8cf6a1de8794d8d2eb6f54:40656886 l2_backup_unsafe=0x0000000000000000000000000000000000000000000000000000000000000000:0 l2_time=1741612206 op-node-1 | t=2025-03-10T13:10:06+0000 lvl=info msg="successfully processed payload" ref=0xaed84ef24c4accfac8597083e86b2187b10594ef4d8cf6a1de8794d8d2eb6f54:40656886 txs=1 op-node-1 | t=2025-03-10T13:10:07+0000 lvl=info msg="Received signed execution payload from p2p" id=0xb6911f4eff94a958702fba8def55dbb552323054c3aaeaa82f8a4866e685dee8:40656887 peer=16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT txs=2 ``` -------------------------------- ### Install Prysm Consensus Client Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/ethereum.mdx Sets up the Prysm consensus client for syncing with the Goerli testnet. This includes downloading the installation script, genesis file, generating a JWT secret, and starting the beacon chain. Consider checkpoint sync for faster synchronization. ```bash mkdir prysm && cd prysm # Download installation script curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh # Download the Goerli network genesis file wget https://github.com/eth-clients/eth2-networks/raw/master/shared/prater/genesis.ssz # Generate a 32 byte hex secret key for authentication, for e.g. ./prysm.sh beacon-chain generate-auth-secret # Alternatively, `openssl rand -hex 32 | tr -d "\n" > "jwt.hex" # Start Prysm beacon chain. # NOTE: For Goerli testnet, add `--prater` flag ./prysm.sh beacon-chain --http-web3provider=http://localhost:8551 --jwt-secret=/path/to/jwt.hex --genesis-state=./genesis.ssz ``` -------------------------------- ### Plume Node Syncing Logs Example Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/plume.mdx These log lines indicate that your Plume node has successfully started syncing with the network and is receiving blocks. ```log INFO [06-02|08:03:03.483] InboxTracker sequencerBatchCount=3 messageCount=15 l1Block=7,900,124 l1Timestamp=2025-03-14T09:59:00+0000 INFO [06-02|08:03:03.496] created block l2Block=14 l2BlockHash=8405d0..0bfae6 INFO [06-02|08:03:04.485] InboxTracker sequencerBatchCount=4 messageCount=16 l1Block=7,902,343 l1Timestamp=2025-03-14T17:50:01+0000 INFO [06-02|08:03:04.498] created block l2Block=15 l2BlockHash=f48fcc..2f4412 INFO [06-02|08:03:05.551] InboxTracker sequencerBatchCount=5 messageCount=18 l1Block=7,915,027 l1Timestamp=2025-03-16T14:56:01+0000 INFO [06-02|08:03:05.568] created block l2Block=16 l2BlockHash=368751..af5f8b INFO [06-02|08:03:06.124] InboxTracker sequencerBatchCount=6 messageCount=30 l1Block=7,916,951 l1Timestamp=2025-03-16T22:00:09+0000 INFO [06-02|08:03:06.569] created block l2Block=29 l2BlockHash=c9f179..bb553e INFO [06-02|08:03:06.655] InboxTracker sequencerBatchCount=7 messageCount=32 l1Block=7,920,611 l1Timestamp=2025-03-17T10:32:32+0000 INFO [06-02|08:03:07.570] created block l2Block=31 l2BlockHash=37f20a..e11dcc INFO [06-02|08:03:07.620] InboxTracker sequencerBatchCount=9 messageCount=39 l1Block=7,924,098 l1Timestamp=2025-03-17T22:27:20+0000 INFO [06-02|08:03:08.381] InboxTracker sequencerBatchCount=11 messageCount=52 l1Block=7,925,945 l1Timestamp=2025-03-18T04:15:34+0000 INFO [06-02|08:03:08.570] created block l2Block=51 l2BlockHash=1bd97f..28eb52 ``` -------------------------------- ### Install tofnd from Source Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/amplifier/verifier-onboarding.mdx Clone the tofnd repository, build the release binary, and move it to your PATH or run directly. Ensure you create and back up the default mnemonic and configuration. ```bash git clone git@github.com:axelarnetwork/tofnd.git --recursive cd tofnd cargo build --release --locked ``` ```bash tofnd -m create mv ~/.tofnd/export ~/.tofnd/export-new-location ``` ```bash tofnd ``` -------------------------------- ### Hyperliquid Node Syncing Confirmation Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/hyperliquid.mdx Example log output indicating that the Hyperliquid node has started syncing with the network and is successfully applying blocks. ```log 2025-05-26T06:59:33.774Z WARN >>> hl-node @@ applied block 607619100 2025-05-26T06:59:35.240Z WARN >>> hl-node @@ applied block 607619200 2025-05-26T06:59:36.233Z WARN >>> hl-node @@ applied block 607619300 2025-05-26T06:59:38.395Z WARN >>> hl-node @@ applied block 607619400 2025-05-26T06:59:39.407Z WARN >>> hl-node @@ applied block 607619500 2025-05-26T06:59:40.688Z WARN >>> hl-node @@ applied block 607619600 ``` -------------------------------- ### Download and Initialize Node Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/node/config-node.mdx Execute the setup script to download the axelard binary and configure your node for a specific network (mainnet or testnet). ```bash ./scripts/setup-node.sh -n [mainnet|testnet] ``` -------------------------------- ### Verify ampd Version Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/amplifier/verifier-onboarding.mdx Run this command after setting up `ampd` via symbolic link or alias to confirm that the correct version is installed and accessible. This is a crucial step to ensure your setup is successful. ```bash ampd --version ``` -------------------------------- ### Example deployment output Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/sui/register-existing-coin-guide.mdx Illustrates the expected output after successfully running the deployment script, showing build progress, transaction status, and the final package ID and treasury cap. ```bash node scripts/deploy.js 📦 Building Move package INCLUDING DEPENDENCY Sui INCLUDING DEPENDENCY MoveStdlib BUILDING my_coin 🚀 Sending publish transaction… ✅ Publish succeeded! 📦 Published package ID: 0x129245163917fd5ec0a90ad83216ca1380ddb37ccbd2be246f62e905f78c88a7 💰 Treasury cap: 0xde83787facc01740a8c0d670ada99364395d4d9a127a723f62316238da2db671 ``` -------------------------------- ### Install Rustup Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/filecoin.mdx Installs Rustup, the toolchain installer for Rust, which is required for building lotus from source. ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -------------------------------- ### op-geth Download Progress Example Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/optimism.mdx Example output showing the op-geth node downloading the bedrock.tar archive. Monitor this to ensure the download is progressing. ```bash simple-optimism-node-op-geth-1 | Still downloading bedrock.tar... simple-optimism-node-op-geth-1 | + CHECKSUM=df843fd53ea905808bc21d0e2dd4620a simple-optimism-node-op-geth-1 | + '[' df843fd53ea905808bc21d0e2dd4620a '==' 4a6919d95d719668a493554771f55e9f ] simple-optimism-node-op-geth-1 | + return 1 simple-optimism-node-op-geth-1 | + return 1 simple-optimism-node-op-geth-1 | + echo 'Still downloading bedrock.tar...' simple-optimism-node-op-geth-1 | + sleep 5s ``` -------------------------------- ### Install Geth Execution Client Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/ethereum.mdx Installs the Geth execution client on Ubuntu using PPAs. Ensure you have the necessary prerequisites and refer to official Geth documentation for other operating systems. ```bash sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum ``` -------------------------------- ### Geth Initialization Output Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/linea.mdx Example output from the `geth init` command, showing successful initialization of the Linea node's chaindata and lightchaindata. ```bash INFO [07-16|15:48:00.683] Maximum peer count ETH=50 LES=0 total=50 INFO [07-16|15:48:00.685] Smartcard socket not found, disabling err="stat /run/pcscd/pcscd.comm: no such file or directory" INFO [07-16|15:48:00.690] Set global gas cap cap=50,000,000 INFO [07-16|15:48:00.690] Initializing the KZG library backend=gokzg INFO [07-16|15:48:00.799] Defaulting to pebble as the backing database INFO [07-16|15:48:00.799] Allocated cache and file handles database=$HOME/.linea/data/geth/chaindata cache=16.00MiB handles=16 INFO [07-16|15:48:00.847] Opened ancient database database=$HOME/.linea/data/geth/chaindata/ancient/chain readonly=false INFO [07-16|15:48:00.847] Writing custom genesis block INFO [07-16|15:48:00.861] Persisted trie from memory database nodes=356 size=50.85KiB time="761.943µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=0 livesize=0.00B INFO [07-16|15:48:00.867] Successfully wrote genesis state database=chaindata hash=b6762a..0ffbc6 INFO [07-16|15:48:00.867] Defaulting to pebble as the backing database INFO [07-16|15:48:00.867] Allocated cache and file handles database=$HOME/.linea/data/geth/lightchaindata cache=16.00MiB handles=16 INFO [07-16|15:48:00.914] Opened ancient database database=$HOME/.linea/data/geth/lightchaindata/ancient/chain readonly=false INFO [07-16|15:48:00.914] Writing custom genesis block INFO [07-16|15:48:00.931] Persisted trie from memory database nodes=356 size=50.85KiB time="747.265µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=0 livesize=0.00B INFO [07-16|15:48:00.936] Successfully wrote genesis state database=lightchaindata hash=b6762a..0ffbc6 ``` -------------------------------- ### Example Deployment Output and Events Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/stellar/register-existing-stellar-token.mdx This output shows the transaction signing process and events emitted upon successful initiation of token deployment. It includes a transaction hash, a 'token_deployment_started' event with token details, and other relevant events. ```text ℹ️ Signing transaction: 📅 CCXT3EAQ7GPQTJWENU62SIFBQ3D4JMNQSB77KRPTGBJ7ZWBYESZQBZRK - Event: [{"symbol":"token_deployment_started"},{"bytes":""},{"address":""},{"string":"Avalanche"},{"string":""},{"string":""},{"u32":},"void"] = {"vec":[]} 📅 CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC - Event: [{"symbol":"transfer"}, ... ] ... more events ... "" ``` -------------------------------- ### Enable and Start Fantom Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/fantom.mdx Enables the fantom service to start on boot, reloads systemd configurations, and starts the Fantom node service. ```bash sudo systemctl enable fantom sudo systemctl daemon-reload sudo systemctl start fantom ``` -------------------------------- ### Launch vald Process (Basic) Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/setup/vald-tofnd.mdx Starts the vald process with basic configuration. Debug logging is enabled. ```bash $AXELARD_HOME/bin/axelard vald-start --validator-addr {VALOPER_ADDR} --chain-id $AXELARD_CHAIN_ID --log_level debug --home $AXELARD_HOME ``` -------------------------------- ### Contract Setup and Initialization (`contract.rs`) Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/send-tokens/stellar/register-existing-stellar-token.mdx Implement initialization logic to set the ITS service address and helper functions to create an ITS client and check trusted chains. ```rust use soroban_sdk::{contract, contractimpl, Address, Bytes, BytesN, Env, String}; use stellar_axelar_std::types::Token; use stellar_interchain_token_service::InterchainTokenServiceClient; use crate::storage_types::DataKey; #[contract] pub struct ExistingTokenApp; #[contractimpl] impl ExistingTokenApp { /// Initialize the contract with the ITS service address pub fn initialize(env: &Env, its_address: Address) { env.storage() .instance() .set(&DataKey::InterchainTokenService, &its_address); } /// Get the ITS client fn its_client(env: &Env) -> InterchainTokenServiceClient { let its_address = env .storage() .instance() .get(&DataKey::InterchainTokenService) .unwrap(); InterchainTokenServiceClient::new(env, &its_address) } /// Check if a chain is trusted pub fn is_trusted_chain(env: &Env, chain: String) -> bool { let its = Self::its_client(env); its.is_trusted_chain(&chain) } } ``` -------------------------------- ### Install Node Version Manager and Switch to Node 18 Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx Installs and switches to Node.js version 18 using nvm. Ensure Node.js is installed before running. ```bash npm i -g n sudo n v18 ``` -------------------------------- ### Enable and Start Centrifuge Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/centrifuge.mdx Use these commands to enable the Centrifuge systemd service to start on boot and then start it immediately. This is the primary method for running your node. ```bash sudo systemctl enable centrifuge.service sudo systemctl start centrifuge.service ``` -------------------------------- ### Enable and Start Solana Validator Service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/solana.mdx Enable the Solana validator service to start automatically on boot and start it immediately. This command uses systemctl to manage the service. ```bash sudo systemctl enable --now sol ``` -------------------------------- ### Deploy 'Call Contract' Example Locally Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx Deploys the 'Call Contract' example smart contract to local EVM chains. This command initiates the deployment process. ```bash npm run deploy evm/call-contract local ``` -------------------------------- ### Start and enable Geth service Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/external-chains/scroll.mdx Enables the Geth service to start on boot and restarts the service to apply the configuration. This command should be run after configuring the service file. ```bash sudo systemctl enable geth.service sudo systemctl daemon-reload sudo systemctl restart geth.service ``` -------------------------------- ### Install tofnd Binary Source: https://github.com/axelarnetwork/axelar-docs/blob/main/src/content/docs/validator/amplifier/verifier-onboarding.mdx Download the appropriate tofnd binary for your system. Create and back up the default mnemonic and configuration before running tofnd. ```bash ~/Downloads/tofnd*-v1.0.1 -m create mv ~/.tofnd/export ~/.tofnd/export-new-location ``` ```bash tofnd ```