Skip to content

Latest commit

 

History

History
385 lines (306 loc) · 10.5 KB

File metadata and controls

385 lines (306 loc) · 10.5 KB

🎓 Contributor Onboarding Guide

Welcome to the Stellar Security Scanner project! This guide will help you get started as a contributor and understand how to participate in our community and funding program.

🚀 Quick Start

Step 1: Join the Community

  1. Discord: Join our Discord server
  2. Introduce Yourself: Post in #introductions channel
  3. Get Verified: Complete the contributor verification process

Step 2: Setup Development Environment

# Clone the repository
git clone https://github.com/your-org/stellar-security-scanner.git
cd stellar-security-scanner

# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Build the project
cargo build

# Run tests to verify setup
cargo test

# Install development tools
cargo install cargo-watch cargo-tarpaulin cargo-audit

Step 3: Choose Your Path

🔒 Security Research Path

Who is this for?

  • Security researchers and auditors
  • People interested in smart contract vulnerabilities
  • Those with experience in blockchain security

Getting Started

  1. Learn Stellar/Soroban Basics

  2. Study Existing Vulnerabilities

  3. Practice with Examples

    • Analyze examples/vulnerable_contract.rs
    • Try to identify issues manually
    • Compare with scanner results

First Contribution Ideas

  • Add a new vulnerability pattern
  • Improve existing detection logic
  • Create test cases for edge cases
  • Document attack vectors

Skills Needed

  • Understanding of smart contract security
  • Knowledge of Rust and Soroban
  • Analytical thinking
  • Attention to detail

Typical Timeline

  • Learning Phase: 1-2 weeks
  • First Contribution: 2-4 weeks
  • Independent Research: 1-2 months

Earning Potential

  • Simple Patterns: 200 USDC
  • Complex Vulnerabilities: 350-500 USDC
  • Novel Discoveries: Up to 1,000 USDC (with bonus)

🧪 Development Path

Who is this for?

  • Rust developers
  • Software engineers interested in security tools
  • People who like building and improving tools

Getting Started

  1. Understand the Codebase

  2. Run the Scanner

    # Scan example contracts
    cargo run -- security --path examples/
    
    # Generate HTML report
    cargo run -- scan --format html --output report.html
    
    # List available checks
    cargo run -- list-checks
  3. Study the Architecture

    • Vulnerability detection engine
    • Invariant checking system
    • Reporting and analysis
    • Configuration management

First Contribution Ideas

  • Fix a reported bug
  • Add a new output format
  • Improve performance
  • Add CLI options
  • Enhance error messages

Skills Needed

  • Rust programming experience
  • Understanding of parsers/AST
  • CLI application development
  • Testing and debugging

Typical Timeline

  • Codebase Understanding: 1-2 weeks
  • First Bug Fix: 1-2 weeks
  • First Feature: 2-4 weeks
  • Complex Features: 1-2 months

Earning Potential

  • Bug Fixes: 50-400 USDC
  • Small Features: 100-200 USDC
  • Major Features: 200-300 USDC
  • Architecture Changes: 300-500 USDC

📚 Documentation Path

Who is this for?

  • Technical writers
  • Educators and teachers
  • People who enjoy explaining complex topics
  • Those with good communication skills

Getting Started

  1. Understand the Project

  2. Identify Gaps

    • What's confusing for new users?
    • What questions are asked frequently?
    • What examples would be helpful?
  3. Learn the Tools

    • Markdown formatting
    • Code example creation
    • Diagram creation tools
    • Documentation best practices

First Contribution Ideas

  • Improve the README
  • Add tutorials for specific features
  • Create troubleshooting guides
  • Write "how-to" articles
  • Add more examples

Skills Needed

  • Technical writing ability
  • Clear communication
  • Understanding of user needs
  • Attention to detail

Typical Timeline

  • Project Understanding: 1 week
  • First Documentation: 1-2 weeks
  • Comprehensive Guides: 2-4 weeks
  • Tutorial Series: 1-2 months

Earning Potential

  • Small Updates: 50 USDC
  • Tutorials: 100 USDC
  • Comprehensive Guides: 150 USDC
  • Documentation Overhauls: 200-300 USDC

🐛 Bug Fixes Path

Who is this for?

  • Detail-oriented developers
  • People who enjoy debugging
  • Those who like solving puzzles
  • Contributors with varying experience levels

Getting Started

  1. Find a Bug

    • Browse open issues
    • Look for bug or good-first-issue labels
    • Try reproducing reported issues
  2. Understand the Problem

    • Read the bug report carefully
    • Reproduce the issue locally
    • Identify the root cause
  3. Develop a Fix

    • Create a minimal reproduction
    • Implement a solution
    • Write tests to verify the fix

First Contribution Ideas

  • Fix simple typos or formatting
  • Resolve easy bugs
  • Improve error messages
  • Add missing error handling

Skills Needed

  • Basic Rust knowledge
  • Debugging skills
  • Problem-solving ability
  • Attention to detail

Typical Timeline

  • Bug Understanding: 1-3 days
  • Fix Implementation: 1-5 days
  • Testing & Refinement: 1-3 days

Earning Potential

  • Critical Bugs: 400 USDC
  • High Priority: 250 USDC
  • Medium Priority: 150 USDC
  • Low Priority: 50 USDC

🛠️ Development Workflow

1. Choose an Issue

# Browse available issues
gh issue list --label "help wanted"

# Filter by your interests
gh issue list --label "documentation"
gh issue list --label "good-first-issue"

2. Claim the Issue

  1. Comment on the issue: "I'd like to work on this"
  2. Wait for maintainer assignment
  3. Ask questions if anything is unclear

3. Create a Branch

git checkout -b feat/your-feature-name
# or
git checkout -b fix/issue-number-description

4. Development

# Watch for changes and run tests
cargo watch -x test

# Check code coverage
cargo tarpaulin --out Html

# Format code
cargo fmt

# Run lints
cargo clippy -- -D warnings

5. Submit Pull Request

git push origin feat/your-feature-name
gh pr create --title "Brief description" --body "Detailed description"

💰 Funding Application

Before You Apply

  • Complete your first contribution (unpaid)
  • Understand the project well
  • Join community discussions
  • Read the Funding Guidelines

Application Process

  1. Create a Detailed Issue

    • Use appropriate template
    • Provide clear description
    • Include work estimate
    • Specify funding amount
  2. Apply on Drips Network

    • Navigate to project page
    • Submit funding application
    • Link to GitHub issue
    • Provide additional details
  3. Wait for Approval

    • Community review period
    • Maintainer assessment
    • Funding confirmation

Work Estimation Tips

  • Be Realistic: Don't underestimate complexity
  • Include Testing: Account for test writing time
  • Consider Review: Include code review time
  • Buffer Time: Add 20% for unexpected issues

🏆 Recognition & Growth

Contributor Tiers

  • 🥉 Bronze (0-500 USDC): Basic recognition
  • 🥈 Silver (500-2,000 USDC): Voting rights
  • 🥇 Gold (2,000-5,000 USDC): Mentorship opportunities
  • 💎 Platinum (5,000+ USDC): Core team consideration

Skill Development

  • Technical: Rust, security, performance
  • Soft Skills: Communication, collaboration
  • Leadership: Mentoring, project management
  • Business: Product thinking, user experience

Career Benefits

  • Portfolio: High-profile open source work
  • Network: Connect with security experts
  • Reputation: Build your professional brand
  • Opportunities: Job leads and partnerships

📞 Getting Help

Community Support

  • Discord #help: Quick questions
  • Discord #contributors: Project discussions
  • GitHub Discussions: In-depth technical questions
  • Maintainers: Complex issues and guidance

Learning Resources

  • Project Documentation: Comprehensive guides
  • Rust Book: Learn Rust programming
  • Stellar Docs: Understand the ecosystem
  • Security Resources: Learn about vulnerabilities

Mentorship Program

  • Pair Programming: Work with experienced contributors
  • Code Reviews: Get feedback on your work
  • Career Guidance: Advice from industry professionals
  • Skill Development: Personalized learning plans

🎯 Success Tips

For New Contributors

  1. Start Small: Begin with well-defined tasks
  2. Ask Questions: Don't hesitate to seek help
  3. Learn Continuously: Invest in your skills
  4. Be Patient: Quality takes time
  5. Engage: Participate in community discussions

For Experienced Contributors

  1. Mentor Others: Help newcomers succeed
  2. Lead Projects: Take initiative on complex tasks
  3. Share Knowledge: Document your learnings
  4. Innovate: Bring new ideas and approaches
  5. Collaborate: Work with others on big projects

For Everyone

  1. Quality First: Focus on high-quality work
  2. Communicate: Keep the community informed
  3. Respect: Value diverse perspectives
  4. Persist: Don't give up on challenges
  5. Celebrate: Acknowledge achievements

🎉 Ready to Start?

  1. Join Discord and introduce yourself
  2. Setup Development Environment
  3. Choose Your Path based on your interests
  4. Make Your First Contribution
  5. Apply for Funding when you're ready

Welcome to the Stellar Security Scanner community! We're excited to have you with us. 🚀