Part 1.8 of 8HANDS-ON LAB

Practical Lab: Setting Up a Blockchain Node

120 minutes
Practical Exercise

Lab Overview

In this hands-on lab, you'll gain practical experience setting up and configuring blockchain nodes. You'll work with both Bitcoin and Ethereum test networks to understand node operation, blockchain synchronization, and basic interaction with the network.

Important: Use Test Networks Only

This lab uses testnet environments where cryptocurrency has no real value. Never use mainnet for learning exercises, as mistakes could result in financial loss.

System Requirements

💻
CPU
4+ cores recommended
💾
RAM
8GB minimum, 16GB recommended
📁
Storage
100GB+ SSD for testnet
🌐
Network
Stable broadband connection

Lab 1: Running a Bitcoin Testnet Node

1
Download Bitcoin Core

Download Bitcoin Core from the official website (bitcoin.org). Verify the download signature to ensure authenticity.

Download and verify Terminal
# Download Bitcoin Core (example for Linux) wget https://bitcoin.org/bin/bitcoin-core-25.0/bitcoin-25.0-x86_64-linux-gnu.tar.gz # Verify SHA256 checksum sha256sum bitcoin-25.0-x86_64-linux-gnu.tar.gz # Extract tar -xvf bitcoin-25.0-x86_64-linux-gnu.tar.gz
2
Configure for Testnet

Create a configuration file to run in testnet mode with appropriate settings.

bitcoin.conf Config
# Run on testnet testnet=1 # Enable RPC server server=1 rpcuser=yourusername rpcpassword=yourpassword # Data directory (optional) datadir=/path/to/bitcoin/data # Reduce resource usage for testing dbcache=450 maxmempool=300
3
Start the Node
Start Bitcoin daemon Terminal
# Start the daemon ./bitcoind -daemon # Check sync status ./bitcoin-cli -testnet getblockchaininfo # View connected peers ./bitcoin-cli -testnet getpeerinfo

Lab 2: Running an Ethereum Sepolia Node

1
Install Geth (Go Ethereum)
Install Geth Terminal
# Ubuntu/Debian sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum # Verify installation geth version
2
Start Sepolia Testnet Node
Run Geth on Sepolia Terminal
# Start Geth on Sepolia testnet with sync mode geth --sepolia --http --http.api eth,net,web3 # Attach to running node geth attach http://localhost:8545 # Check sync status (in console) > eth.syncing > eth.blockNumber
3
Interact with the Network
Geth JavaScript Console Console
// Get current block number > eth.blockNumber // Get network peer count > net.peerCount // Get gas price > eth.gasPrice // Create a new account > personal.newAccount("your-password")

Lab Exercises

Exercise 1: Monitor Blockchain Sync

Start your node and monitor the synchronization process. Note the initial block download time, sync progress, and network bandwidth usage. Document how long it takes to sync the testnet.

Exercise 2: Explore the Blockchain

Use RPC commands to explore recent blocks. Find the hash of the latest block, count the transactions in it, and examine a specific transaction's details.

Exercise 3: Get Testnet Tokens

Create a wallet address and obtain testnet tokens from a faucet. Send a test transaction between two addresses you control and verify it on a block explorer.

Lab Takeaways

  • Running a full node requires significant resources - storage for blockchain data, bandwidth for syncing, and consistent uptime.

  • Initial blockchain sync can take hours to days depending on network, hardware, and sync mode (full vs. light).

  • RPC interfaces enable programmatic interaction with the blockchain for building applications.

  • Always use testnets for learning - mistakes on mainnet can be costly and irreversible.