Dash Backporting Contributor Ramp‐Up Guide - vijaydasmp/dash GitHub Wiki

🧭 Dash Backporting Contributor Ramp-Up Guide

📦 Step 1: Clone the Working Repository

Start by cloning the Dash fork maintained for backporting work:

git clone https://github.com/vijaydasmp/dash.git
cd dash

You will be working from this repository. All your development should happen in branches created here.

To understand how backporting is done, explore the existing pull requests in this repo — they serve as practical references:


📘 Dash Backporting Contributor Ramp-Up Guide

Welcome aboard! This guide will help you get started with Dash backporting by cloning our working repository and learning from real PRs.


📦 Step 1: Clone the Working Repository

Use the forked Dash repository for all your work:

git clone https://github.com/vijaydasmp/dash.git
cd dash

🛠️ Step 2: Build Dash Locally

Follow the build instructions depending on your OS:

Typical steps on Ubuntu/Debian:

sudo apt update && sudo apt install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
./autogen.sh
./configure
make -j$(nproc)
make check

📚 Step 3: Understand the Code Structure

Key folders to understand:

  • src/ — Core logic and networking
  • src/rpc/ — Remote procedure call handlers
  • src/wallet/ — Wallet-specific logic
  • src/consensus/, src/validation/ — Consensus and mempool checks

🔁 Step 4: Learn the Backporting Process

A backport is the process of bringing changes from Bitcoin Core into Dash, adapting for Dash-specific logic.

Process:

  1. Pick a PR from Bitcoin Core.

  2. Check if it’s already merged in Dash.

  3. Create a new branch from develop:

    git checkout develop
    git pull
    git checkout -b backport/bitcoin_PR_NUMBER
    
  4. Cherry-pick or adapt the commits.

  5. Run tests.

  6. Push the branch and open a PR within this repo.

  7. I’ll review and monitor your progress.


🧪 Step 5: Testing

Always test your backports thoroughly.

Unit tests:

make check

Functional tests:

test/functional/test_runner.py

Memory & style checks:

valgrind ./src/test/test_dash
clang-tidy src/... -- (optional)

📂 Step 6: Learn from Sample PRs

Study one of the following sample PRs I’ve authored:

While reading:

  • Identify what changed.
  • Compare it with the original Bitcoin PR (linked in the PR description).
  • Note any Dash-specific adaptation.

🚀 Step 7: Make Your First PR

  1. Create a new branch for your backport.

  2. Commit clean, logically separated changes.

  3. Push:

    git push origin backport/bitcoin_PR_NUMBER
    
  4. Open a Pull Request.

  5. Use this template:

### Summary
Backport of Bitcoin PR #[XXXX]

### Original PR
https://github.com/bitcoin/bitcoin/pull/XXXX

### What was done
- [x] Adapted to Dash-specific structure
- [x] Updated RPC/help/docs if needed
- [x] All tests passing locally

### Notes
Explain any important differences or review points here.

✅ Checklist Before PR

  • Based on latest develop branch
  • Builds cleanly
  • make check passes
  • Functional tests pass
  • PR description includes Bitcoin PR link

📌 Final Notes

  • If unsure, ask early — don’t waste cycles guessing.
  • Use past PRs and Dash docs to understand common patterns.
  • Do not backport untested or experimental PRs without checking with me.

Happy backporting! 💻🔁⚡ — @CryptoturaTeam