Skip to main content

🚀 Getting Started

Welcome to the Blockchain Summer School! This guide will help you set up your development environment and get ready for an exciting journey into blockchain technology.

📋 Prerequisites​

Required Knowledge​

  • Basic Programming: Familiarity with at least one programming language (Python, JavaScript, Rust, or similar)
  • Command Line: Comfort with terminal/command prompt operations
  • Git: Basic understanding of version control (we'll cover this if needed)
  • Web Development: HTML, CSS, JavaScript basics
  • Cryptography: Basic understanding of public/private keys
  • Distributed Systems: Familiarity with client-server architecture

💻 System Requirements​

Minimum Requirements​

  • Operating System: Windows 10+, macOS 10.15+, or Linux (Ubuntu 18.04+)
  • RAM: 8GB minimum, 16GB recommended
  • Storage: 10GB free space
  • Internet: Stable broadband connection
  • RAM: 16GB or more
  • Storage: SSD with 20GB+ free space
  • Processor: Multi-core processor (Intel i5/AMD Ryzen 5 or better)

🛠 Development Environment Setup​

Step 1: Install Core Tools​

1.1 Git & GitHub​

# Install Git (if not already installed)
# Windows: Download from https://git-scm.com/
# macOS: brew install git
# Ubuntu/Debian: sudo apt-get install git

# Verify installation
git --version

1.2 Node.js & npm​

# Install Node.js (includes npm)
# Download from https://nodejs.org/ (LTS version recommended)

# Verify installation
node --version
npm --version

1.3 Python 3​

# Windows: Download from https://python.org/
# macOS: brew install python3
# Ubuntu/Debian: sudo apt-get install python3 python3-pip

# Verify installation
python3 --version
pip3 --version

Step 2: Install Blockchain-Specific Tools​

2.1 Rust Toolchain​

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Add to PATH (restart terminal after installation)
source ~/.cargo/env

# Verify installation
rustup --version
cargo --version

# Add WebAssembly target for MultiversX
rustup target add wasm32-unknown-unknown

2.2 MultiversX Tools​

# Install mxpy (MultiversX CLI)
pipx install multiversx-sdk-cli --force

# Install sc-meta (Smart Contract Meta)
cargo install multiversx-sc-meta --locked

# Verify installations
mxpy --version
sc-meta --version

2.3 Ethereum Development Tools​

# Install Hardhat
npm install --save-dev hardhat

# Verify installation
npx hardhat --version

Step 3: Install Wallets & Extensions​

3.1 MetaMask​

3.2 MultiversX Wallet​

Step 4: Install Code Editor​

  • Download: https://code.visualstudio.com/
  • Recommended Extensions:
    • Solidity (for Ethereum smart contracts)
    • Rust Analyzer (for Rust development)
    • Hardhat for VS Code
    • GitLens
    • Live Share (for collaboration)

📚 First Steps​

1. Clone the Repository​

git clone https://github.com/cs-pub-ro/blockchain-summer-school.git
cd blockchain-summer-school

2. Join the Community​

3. Complete the Setup Verification​

Run our setup verification script:

# Navigate to the verification script
cd chapters/introduction/lab/content/setup/

# Run verification (if available)
./verify-setup.sh

4. Start with the Introduction​

Begin your journey with the Introduction Chapter:

  • Read the lecture slides
  • Complete the lab exercises
  • Set up your first wallet
  • Make your first transaction

🆘 Troubleshooting​

Common Issues​

Rust Installation Problems​

# If rustup installation fails
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable

# If cargo is not found
export PATH="$HOME/.cargo/bin:$PATH"

mxpy Installation Issues​

# If pipx is not installed
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# If mxpy installation fails
pipx install multiversx-sdk-cli --force --include-deps

Node.js/npm Issues​

# Clear npm cache
npm cache clean --force

# Update npm
npm install -g npm@latest

MetaMask Connection Issues​

  • Ensure you're on the correct network (Testnet/Mainnet)
  • Check if MetaMask is unlocked
  • Try refreshing the page
  • Clear browser cache if needed

Getting Help​

Before Asking for Help​

  1. Check the documentation: Most issues are covered in the setup guides
  2. Search existing issues: Use GitHub search to find similar problems
  3. Verify your setup: Run the verification script
  4. Check system requirements: Ensure your system meets the minimum requirements

How to Ask for Help​

When asking for help, please include:

  • Operating System: Windows/macOS/Linux version
  • Error Message: Copy the exact error message
  • Steps Taken: What you've already tried
  • Expected vs Actual: What you expected to happen vs what happened

Support Channels​

  1. GitHub Issues: For technical problems and bugs
  2. Discord: For quick questions and community support
  3. Email: costin.carabas@upb.ro for urgent matters
  4. Office Hours: For live troubleshooting sessions

🎓 Success Tips​

Time Management​

  • Consistent Schedule: Dedicate 2-3 hours, 3-4 times per week
  • Break Down Tasks: Don't try to learn everything at once
  • Practice Regularly: Code daily, even if just for 30 minutes

Learning Strategies​

  • Hands-on Practice: Don't just read - build something
  • Join Study Groups: Collaborate with other students
  • Document Your Progress: Keep a learning journal
  • Ask Questions: Don't hesitate to ask for clarification

Project Development​

  • Start Small: Begin with simple projects and gradually increase complexity
  • Version Control: Use Git from day one
  • Documentation: Write clear README files for your projects
  • Testing: Always test your smart contracts thoroughly

Ready to start? Begin with the Introduction Chapter and happy coding! 🚀

Need help? Check our FAQ or reach out to the community.