diff --git a/docs/user/mining/img/p2pool-antminer.png b/docs/user/mining/img/p2pool-antminer.png deleted file mode 100644 index 4ad318fb5..000000000 Binary files a/docs/user/mining/img/p2pool-antminer.png and /dev/null differ diff --git a/docs/user/mining/img/p2pool-dash-conf.png b/docs/user/mining/img/p2pool-dash-conf.png deleted file mode 100644 index 482ed70f0..000000000 Binary files a/docs/user/mining/img/p2pool-dash-conf.png and /dev/null differ diff --git a/docs/user/mining/img/p2pool-ddwrt.png b/docs/user/mining/img/p2pool-ddwrt.png deleted file mode 100644 index 648baaf78..000000000 Binary files a/docs/user/mining/img/p2pool-ddwrt.png and /dev/null differ diff --git a/docs/user/mining/img/p2pool-running.png b/docs/user/mining/img/p2pool-running.png deleted file mode 100644 index 02710589e..000000000 Binary files a/docs/user/mining/img/p2pool-running.png and /dev/null differ diff --git a/docs/user/mining/index.rst b/docs/user/mining/index.rst index b594f62eb..e3ed47283 100644 --- a/docs/user/mining/index.rst +++ b/docs/user/mining/index.rst @@ -72,13 +72,12 @@ Mining Pools ============ Mining Dash in pools is more likely to generate rewards than solo mining -directly on the blockchain. Mining dash using P2Pool is strongly -encouraged, since it is a good way to distribute, rather than -centralize, the hashing power. +directly on the blockchain. Mining Dash using P2Pool is a good way to +distribute, rather than centralize, the hashing power, but the +``dashpay/p2pool-dash`` software is no longer maintained. See the +:ref:`P2Pool documentation ` for details and for community forks +that continue the project. -If you would like to set up your own P2Pool, documentation of the -process is available :ref:`here ` and the code for p2pool-dash -is available on `GitHub `_. Other mining pools are listed below and may be advantageous for different reasons such as ping latency, uptime, fee, users, etc. A guide to using a typical mining pool can be found :ref:`here `. @@ -129,15 +128,17 @@ section of the Dash Forums `_ | 119 GH/s ±5% | 1566 W | 7.5 kg | 486 x 265 x 388 | -+----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-----------------+ -| Spondoolies SPx36 | 540 GH/s ±10% | 4400 W | 19.5 kg | 640 x 525 x 185 | -+----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-----------------+ -| StrongU STU-U6 | 420 GH/s ±8% | 2100 W | 8.5 kg | 370 x 135 x 208 | -+----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-----------------+ ++----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-------------------+ +| Name | Hash rate | Power | Weight | Dimensions (mm) | ++==========================================================================================================+===============+=========+=========+===================+ +| Bitmain Antminer D9 | 1770 GH/s | 2839 W | 16.1 kg | 430 x 195.5 x 290 | ++----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-------------------+ +| `Bitmain Antminer D5 `_ | 119 GH/s ±5% | 1566 W | 7.5 kg | 486 x 265 x 388 | ++----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-------------------+ +| Spondoolies SPx36 | 540 GH/s ±10% | 4400 W | 19.5 kg | 640 x 525 x 185 | ++----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-------------------+ +| StrongU STU-U6 | 420 GH/s ±8% | 2100 W | 8.5 kg | 370 x 135 x 208 | ++----------------------------------------------------------------------------------------------------------+---------------+---------+---------+-------------------+ ASIC resellers may also have miners available: diff --git a/docs/user/mining/p2pool.rst b/docs/user/mining/p2pool.rst index 84031d7d9..04eb6e448 100644 --- a/docs/user/mining/p2pool.rst +++ b/docs/user/mining/p2pool.rst @@ -1,15 +1,27 @@ .. meta:: - :description: Guide to setting up a Dash P2Pool node + :description: Information on Dash P2Pool, its maintenance status and community forks :keywords: dash, mining, X11, p2pool, node, pool, software, ASIC, mining pool .. _p2pool: ================= -P2Pool Node Setup +P2Pool Node Setup ================= -This guide describes how to set up a Dash P2Pool node to manage a pool -of miners. Unlike centralized mining pools, P2Pool is based on the same +.. warning:: + The `dashpay/p2pool-dash + `_ repository is no longer + maintained. Its last update was in May 2023, during the Dash Core + v18 release cycle, and its installation procedure depends on Python + 2, which is not available on current Ubuntu and Debian releases. + + The step-by-step setup instructions that previously appeared on this + page have been removed because they can no longer be completed + successfully. See :ref:`p2pool-forks` below for projects that + continue development. + +This page describes what P2Pool is and what to consider before running +a node. Unlike centralized mining pools, P2Pool is based on the same peer-2-peer (P2P) model as Dash, making the pool as a whole highly resistant to malicious attacks, and preserving and protecting the decentralized nature of Dash. When you launch a P2Pool node, it seeks @@ -18,10 +30,9 @@ other P2Pool nodes (also known as peers). P2Pool nodes share a cryptographic chain of data representing value, similar to Dash's blockchain. The P2Pool version is called the sharechain. The decentralized and fair nature of this mining model means mining with -P2Pool is strongly encouraged. P2Pool for Dash uses the `p2pool-dash -`_ software on GitHub, which is -a fork of p2pool for Bitcoin. For more information, see `here -`__. +P2Pool is strongly encouraged. P2Pool for Dash uses the p2pool-dash +software, which is a fork of p2pool for Bitcoin. For more information, +see `here `__. Because of the way P2Pool manages difficulty adjustments on the sharechain, it is important to maintain low latency between the miners @@ -35,209 +46,24 @@ your P2Pool node as a virtual machine in a data center with a high speed connection so geographically close miners can mine to your pool with relatively low latency. -This following section describes the steps to setup an Ubuntu Server -running P2Pool for Dash. It has been tested with Ubuntu 20.04 LTS and -Dash 0.16. While a reasonable effort will be made to keep it up to -date, it should be possible to modify the instructions slightly to -support different versions or operating systems as necessary. - -Setting up the host server -========================== - -Download a copy of Ubuntu Server LTS from -https://ubuntu.com/download/server and install it on your system -according to the steps described `here -`__. If you are -using a VPS such as Vultr or AWS, your provider will most likely provide -an option to install this system during provisioning. Ensure you enable -OpenSSH server during setup so you can control your server from a remote -console. Once you have access to your server, create a new non-root user -if you have not already done so using the following command, replacing -```` with a username of your choice:: - - adduser - -You will be prompted for a password. Enter and confirm using a new -password (different to your root password) and store it in a safe place. -You will also see prompts for user information, but this can be left -blank. Once the user has been created, we will add them to the sudo -group so they can perform commands as root:: - - usermod -aG sudo - -Reboot your server and log in as the new user. At this point it is -recommended to connect remotely using `PuTTY -`_ (for -Windows) or ssh (for Linux and macOS) if you have not already done so. - -Setting up port forwarding -========================== - -If you are on a private network behind a router, you will need to set up -port forwarding for at least port 8999 (UDP/TCP) for access to the -sharechain, as well as port 7903 (UDP/TCP) if you want your node to be -accessible to the public. How this is done depends on your particular -network router and is therefore beyond the scope of this documentation. -An example from the popular DD-WRT open source router distribution is -shown below. Guides to setting up port forwarding can be found `here -`__ and `here -`__. - -Take note of your IP address either from your router management -interface or by visiting https://www.whatismyip.com - -.. figure:: img/p2pool-ddwrt.png - :width: 400px - - Setting up port forwarding under DD-WRT - -Manual setup -============ - -First update your operating system as follows:: - - sudo apt update - sudo apt upgrade - -Setting up dashd ----------------- - -P2Pool requires a full Dash node to be running to get block and -transaction data. To download and install Dash, visit -https://www.dash.org/downloads/ on your computer to find the link to the -latest Dash Core wallet. Click **Linux**, then right-click on **Download -TGZ** for **Dash Core x64** and select **Copy link address**. Go back to -your terminal window and enter the following command, pasting in the -address to the latest version of Dash Core by right clicking or pressing -**Ctrl + V**:: - - cd ~ - wget https://github.com/dashpay/dash/releases/download/v23.1.8/dashcore-23.1.8-x86_64-linux-gnu.tar.gz - -Verify the authenticity of your download by checking its detached -signature against the public key published by the Dash Core development -team. All releases of Dash since 0.16.0 are signed using GPG with the -following key: - -- Pasta (pasta) with the key ``5252 7BED ABE8 7984``, `verifiable on Keybase - `__ (`download `__) - -:: - - curl https://keybase.io/pasta/pgp_keys.asc | gpg --import - wget https://github.com/dashpay/dash/releases/download/v23.1.8/dashcore-23.1.8-x86_64-linux-gnu.tar.gz.asc - gpg --verify dashcore-23.1.8-x86_64-linux-gnu.tar.gz.asc - -Create a working directory for Dash, extract the compressed archive, -copy the necessary files to the directory and set them as executable:: - - mkdir ~/.dashcore - tar xfvz dashcore-23.1.8-x86_64-linux-gnu.tar.gz - cp dashcore-23.1.8/bin/dashd .dashcore/ - cp dashcore-23.1.8/bin/dash-cli .dashcore/ - -Clean up unneeded files:: - - rm dashcore-23.1.8-x86_64-linux-gnu.tar.gz - rm -r dashcore-23.1.8/ - -Create a configuration file using the following command:: - - nano ~/.dashcore/dash.conf - -An editor window will appear. We now need to create a configuration file -specifying several variables. Copy and paste the following text to get -started, then replace the variables specific to your configuration as -follows:: - - #---- - rpcuser=XXXXXXXXXXXXX - rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX - rpcallowip=127.0.0.1 - #---- - listen=1 - server=1 - daemon=1 - maxconnections=64 - #---- - - -Replace the fields marked with ``XXXXXXX`` as follows: - -- ``rpcuser``: enter any string of numbers or letters, no special - characters allowed -- ``rpcpassword``: enter any string of numbers or letters, no special - characters allowed - -The result should look something like this: - -.. figure:: img/p2pool-dash-conf.png - :width: 400px - - Entering key data in dash.conf on the P2Pool node - -Press **Ctrl + X** to close the editor and **Y** and **Enter** save the -file. You can now start running Dash on the masternode to begin -synchronization with the blockchain:: - - ~/.dashcore/dashd - -You will see a message reading **Dash Core server starting**. You can -continue with the following steps and check synchronization periodically -using the following command. Synchronization is complete when the number -of ``blocks`` is equal to the current number of blocks in the Dash -blockchain, as can be seen from any synchronized Dash wallet or `block -explorer `_:: - - ~/.dashcore/dash-cli getblockcount - -Setting up P2Pool ------------------ - -We will now set up the P2Pool software and its dependencies. Begin with -the dependencies:: - - sudo apt install python2 python2-dev gcc g++ git - curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py - sudo python2 get-pip.py - pip install twisted - -Create working directories and set up p2pool-dash:: - - git clone https://github.com/dashpay/p2pool-dash - cd p2pool-dash - git submodule update --init - cd dash_hash - python2 setup.py install --user - -We will add some optional extra interfaces to the control panel:: - - cd .. - mv web-static web-static.old - git clone https://github.com/justino/p2pool-ui-punchy web-static - mv web-static.old web-static/legacy - cd web-static - git clone https://github.com/hardcpp/P2PoolExtendedFrontEnd ext - cd .. - -You can now start p2pool and optionally specify the payout address, -external IP (if necessary), fee and donation as follows:: - - python2 ~/p2pool-dash/run_p2pool.py --external-ip -w -f -a --give-author - -You can then monitor your node by browsing to the following addresses, -replacing ```` with the IP address of your P2Pool node: +.. _p2pool-forks: -- Punchy interface: http://ip_address:7903/static -- Legacy interface: http://ip_address:7903/static/legacy -- Status interface: http://ip_address:7903/static/status -- Extended interface: http://ip_address:7903/static/ext +Community forks +=============== -.. figure:: img/p2pool-antminer.png - :width: 400px +Development of p2pool-dash continues in forks maintained by individual +community members. One example is `frstrtr/p2pool-dash +`_, which supports current Dash +Core releases and provides its own installation guide. A separate +from-scratch C++ reimplementation, `c2pool +`_, is also under development. -.. figure:: img/p2pool-running.png - :width: 400px +These forks are not maintained, reviewed or endorsed by the Dash +project, and this documentation does not describe how to install or +operate them. Refer to each project's own documentation for setup +instructions. - Example configuration showing a single Bitmain Antminer D3 connected - to a p2pool-dash node on the local network +Note that P2Pool software takes a payout address and requires RPC +credentials for a synchronized Dash Core node on the same host. +Evaluate any fork carefully before running it, as you would with any +other third-party software that handles mining rewards. diff --git a/docs/user/mining/pools.rst b/docs/user/mining/pools.rst index 202d97c9a..b65a70622 100644 --- a/docs/user/mining/pools.rst +++ b/docs/user/mining/pools.rst @@ -89,11 +89,10 @@ To finish the configuration, you will need to choose a mining pool. A deep dive into the mining pool landscape is available `here `__. -To help with the security of the network and decentralization we -recommend using P2Pool. To set up your own P2Pool server, follow the -setup documentation available :ref:`here `. The code for -p2pool-dash is `available on GitHub -`__. +P2Pool has historically been recommended to help with the security of +the network and decentralization, but the ``dashpay/p2pool-dash`` +software is no longer maintained. See the :ref:`P2Pool documentation +` for details and for community forks that continue the project. If you do not want to set up your own pool, you can check out a list of pools `here `__. In this