LogoLogo
  • WELCOME TO ALEPH ZERO
  • EXPLORE
    • About Aleph Zero
    • AlephBFT Consensus
    • The Economy of Aleph Zero
    • Where to Buy AZERO
    • Decentralized Governance on Aleph Zero
    • Ecosystem
    • Aleph Zero Foundation Treasury Management
    • Community
    • Glossary
    • Audit & Research Papers
  • USE
    • Wallets
    • Explorer
    • Ledger
    • Telegram Notifications
    • Aleph Zero Signer
      • General introduction
      • What does Signer do?
      • What are Sub-accounts and Sub-account paths?
      • Why is it critical to store your Secret Phrase in a safe place?
      • How to forget and restore accounts?
      • What are Networks?
      • What are Trusted apps?
    • Dashboard
      • Dashboard basics
      • Overview
    • Stake
      • Staking Basics
      • Staking Menu Overview
      • How to Start Staking with the Aleph Zero Dashboard
      • How to Start Staking With the Developer Wallet
      • How to start staking using Ledger hardware wallet
      • How to Change Nominations
      • How to Stop Staking
      • Staking Rewards
      • Validators
      • Commission and Foundation Nodes
      • Proxy Accounts
    • Validate
      • Validating Overview
      • Hardware requirements
      • Running an Aleph Node on Testnet
        • Downloading and running the node
        • Verifying your setup
        • Customizing your setup
        • Building and running from source [advanced]
          • Building from source
          • Set environment variables
          • Download DB snapshot
          • Running the binary
        • Appendix: Ports, addresses, validators, and archivists
      • Running an Aleph Node on Mainnet
        • Running the node
        • Building and running from source [advanced]
      • Setting your identity
      • Making the node validate
      • Securing your validator
      • Troubleshooting
      • Elections and Rewards Math
      • Testnet Validator Airdrop
      • Foundation Nomination Program
    • Using the EVM-layer
    • Governance
      • Token
      • Multisig Accounts
  • BUILD
    • Aleph Zero smart contracts basics
      • Setting up a Testnet account
      • Installing required tools
      • Creating your first contract
      • Deploying your contract to Aleph Zero Testnet
      • Extending your contract
    • Cross contract calls
      • Using references
      • Using dynamic calls
    • Migrating from Solidity
    • Writing e2e tests with ink-wrapper
    • Aleph Zero Signer integration
    • Front-end app: smart contract interaction
    • Security Course by Kudelski Security
      • ink! Developers Security Guideline
      • Lesson 1 - Getting started with ink!
      • Lesson 2 - Threat Assessment
      • Lesson 3 - Integer Overflow
      • Lesson 4 - Signed-integer
      • Lesson 5 - Role-Based Access Control
      • Lesson 6 - Address Validation
      • Lesson 7 - Smart Contract Control
    • Development on EVM-layer
  • PROTOCOL DETAILS
    • Shielder
      • Overview
      • Design against Bad Actors
      • Preliminaries - ZK-relations
      • Notes and Accounts
      • ZK-ID and Registrars
      • Anonymity Revokers
      • PoW Anonymity Revoking
      • Relayers
      • Deterministic Secret Management
      • SNARK-friendly Symmetric Encryption
      • SNARK-friendly Asymmetric Encryption
      • Cryptography
      • Token shortlist
      • User Wallet
      • Versioning
      • PoC
      • Version 0.1.0
      • Version 0.2.0
    • Common DEX
      • Common Whitepaper - Differences
      • Dutch Auctions
  • FAQ
  • Tutorials
    • Withdrawing coins from exchanges
      • How to withdraw your AZERO coins from KuCoin
      • How to withdraw your AZERO coins from MEXC Global
      • How to withdraw your AZERO coins from HTX
  • Setting up or restoring a wallet
    • How to set up or recover your AZERO account using Aleph Zero Signer
    • How to set up or recover your AZERO account using the official mainnet web wallet
    • How to set up or recover your AZERO account using Nova Wallet
    • How to set up or recover your AZERO account using SubWallet
    • How to set up or recover your AZERO account using Talisman
  • Staking
    • How to stake via a direct nomination using the Aleph Zero Dashboard
    • How to stake via a nomination pool using the Aleph Zero Dashboard
    • How to destroy a nomination pool via the Aleph Zero Dashboard
Powered by GitBook
On this page

Was this helpful?

  1. USE
  2. Validate
  3. Running an Aleph Node on Testnet

Verifying your setup

Some simple steps to make sure your node is running and is in fact to connect to the network correctly.

Before you can actually start validating, it is recommended that you make sure your node is connected to the network, sees other participants, is receiving updates and is able to respond to RPC calls.

Logs

First check the logs. Your node will likely start out by synchronizing with the general network, and after a while start getting blocks in real time. To get the logs out of docker, you will need to run:

docker logs <your_nodes_name> # or the container name you have chosen with `--container_name`

You can run docker logs --follow <your_nodes_name> to get the output in real time.

To get the last 24h of logs as a file, use the following command: docker logs --since 24h <your_nodes_name> > file.log 2>&1

This should return some lines, either the node is syncing, in which case an example of a healthy result of this command follows.

2025-03-14 13:58:19 ✨ Imported #45058440 (0xa96a…e16e)    
2025-03-14 13:58:19 ✨ Imported #45058441 (0x6ae3…7a19)    
2025-03-14 13:58:19 ✨ Imported #45058442 (0x08ae…a428)    
2025-03-14 13:58:19 ✨ Imported #45058443 (0x0e1d…82d1)    
2025-03-14 13:58:19 ✨ Imported #45058444 (0x9498…8e51)    
2025-03-14 13:58:19 ✨ Imported #45058445 (0x4adf…ffda)    
2025-03-14 13:58:19 ✨ Imported #45058446 (0xbcfc…47c0)    
2025-03-14 13:58:19 ✨ Imported #45058447 (0xaaa1…05ae)    
2025-03-14 13:58:19 ✨ Imported #45058448 (0x940a…88d7)    
2025-03-14 13:58:19 ✨ Imported #45058449 (0xec3f…0a1f)    
2025-03-14 13:58:19 ✨ Imported #45058450 (0x9a58…dbcc)    
2025-03-14 13:58:19 ✨ Imported #45058451 (0xc581…f641)    
2025-03-14 13:58:19 ✨ Imported #45058452 (0x772a…ffec)    
2025-03-14 13:58:19 ✨ Imported #45058453 (0x9be6…495f)    
2025-03-14 13:58:19 ✨ Imported #45058454 (0x90e0…dceb)    
2025-03-14 13:58:19 ✨ Imported #45058455 (0x5bbb…7659)    
2025-03-14 13:58:19 ✨ Imported #45058456 (0x9975…5889)    
2025-03-14 13:58:19 ✨ Imported #45058457 (0xe46b…621b)    
2025-03-14 13:58:19 ✨ Imported #45058458 (0x19c3…4795)    
2025-03-14 13:58:19 ✨ Imported #45058459 (0x04bc…407d)    
2025-03-14 13:58:19 ✨ Imported #45058460 (0xc505…d30a)    

Note multiple imports within one second. In some cases (if the node is already synced) the logs might contain an import per second, looking like this:

2025-03-14 14:03:52 ✨ Imported #88325206 (0x892e…a4a0)
2025-03-14 14:03:53 ✨ Imported #88325207 (0x69fc…3ef8)
2025-03-14 14:03:54 ✨ Imported #88325208 (0x20f7…f3da)
2025-03-14 14:03:55 ✨ Imported #88325209 (0x838d…dd6e)

Which is also a sign of a healthy node. There will also be other loglines, but if these look alright at this point the node should be fine.

Endpoints

Next you should check whether the RPC and WebSocket endpoints are externally accessible. They should be accessible for archivists and categorically should not be accessible for validators.

The tests should preferably be run on a machine outside of the local network containing the node, although many of them should give the same results as long as they are not run on the same machine.

RPC

To check whether RPC calls work execute

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "rpc_methods"}' https://example.com:9944

using your own address instead of example.com, obviously. For nodes without a DNS address you should omit the https://. This should return an extensive JSON response containing many RPC call names for archivists and some kind of error (depending on your exact setup) for validators.

Additionally check whether unsafe RPC call are possible to execute on externally available nodes:

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "system_unstable_networkState"}' https://example.com:9944

This should return some kind of error on both archivists and validators.

Finally check whether you can perform unsafe operations on validators internally. There are multiple ways this could be done, for this one we assume you have ssh access to the machine:

ssh -L 9944:127.0.0.1:9945 example.com

In a separate terminal on the same machine run:

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "system_unstable_networkState"}' localhost:9944

This should return a huge JSON response for validators and at most an error for archivists.

WebSocket

wss://example.com:9944

After a moment the usual view of a AlephZero connected wallet should appear, indistinguishable from any other archivist, for archivists. For validators this should get stuck on loading and never connect.

PreviousDownloading and running the nodeNextCustomizing your setup

Last updated 1 month ago

Was this helpful?

The easiest way of checking correct websocket accessibility is to attempt connecting using one of the polkadot.js instances. Any should work, but we recommend the appropriate wallet AlephZero is hosting, i.e. for testnet and for mainnet, to minimize confusion. Once there, click on the AlephZero logo, and then on the “Development” tab in the list that appears. In the “Custom endpoint” field fill your address in the form:

https://test.azero.dev/
https://azero.dev/