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:
- [PR #6274](https://github.com/dashpay/dash/pull/6274)
- [PR #6263](https://github.com/dashpay/dash/pull/6263)
- [PR #6250](https://github.com/dashpay/dash/pull/6250)
📘 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:
- [Build on Linux](https://github.com/dashpay/dash/blob/develop/doc/build-unix.md)
- [Build on macOS](https://github.com/dashpay/dash/blob/develop/doc/build-osx.md)
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 networkingsrc/rpc/
— Remote procedure call handlerssrc/wallet/
— Wallet-specific logicsrc/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:
-
Pick a PR from Bitcoin Core.
-
Check if it’s already merged in Dash.
-
Create a new branch from
develop
:git checkout develop git pull git checkout -b backport/bitcoin_PR_NUMBER
-
Cherry-pick or adapt the commits.
-
Run tests.
-
Push the branch and open a PR within this repo.
-
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:
- PR #6274 – Fix
estimatesmartfee
, refactor clarity - [PR #6263 – Prevent memory exhaustion](https://github.com/dashpay/dash/pull/6263)
- [PR #6250 – Separate wallet settings file](https://github.com/dashpay/dash/pull/6250)
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
-
Create a new branch for your backport.
-
Commit clean, logically separated changes.
-
Push:
git push origin backport/bitcoin_PR_NUMBER
-
Open a Pull Request.
-
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