-
Notifications
You must be signed in to change notification settings - Fork 1
Dash Backporting Contributor Ramp Up Guide
π§ Dash Backporting Contributor Ramp-Up Guide
Start by cloning the Dash fork maintained for backporting work:
git clone https://github.com/vijaydasmp/dash.git
cd dashYou 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)
Welcome aboard! This guide will help you get started with Dash backporting by cloning our working repository and learning from real PRs.
Use the forked Dash repository for all your work:
git clone https://github.com/vijaydasmp/dash.git
cd dashFollow 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 checkKey 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
A backport is the process of bringing changes from Bitcoin Core into Dash, adapting for Dash-specific logic.
-
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.
Always test your backports thoroughly.
make checktest/functional/test_runner.pyvalgrind ./src/test/test_dash
clang-tidy src/... -- (optional)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.
-
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.
- Based on latest
developbranch - Builds cleanly
-
make checkpasses - Functional tests pass
- PR description includes Bitcoin PR link
- 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