Author

Topic: Майнинг P3D | CPU устройства | устойчивость к ASIC/FPGA/GPU (Read 183 times)

legendary
Activity: 1128
Merit: 1028
В недавнем релизе (Node v28) открылась возможность самостоятельного добавления валидаторов (PoA нод, голосующих за финализацию блокчейна и участвующих в обработке объектов, загружаемых пользователями)

https://github.com/3Dpass/3DP/releases/tag/v28
---

Здесь полная инструкция по запуску и требования: https://3dpass.org/mainnet#validator
(рассчитываю скоро поделиться переводом)

--
Краткая выжимка следующая:

1.  Залог (заблокирован на аккаунте Ноды): 400 000 P3D
2.  Доход:
     - 50% от блока за финализацию
     - и 50% от валидации объектов пользователей

3. Штрафы 20 000 - 40 000 P3D в зависимости от нарушения (уход в офлайн, атаки и тп)

legendary
Activity: 1128
Merit: 1028
Вот что еще выяснилось.  Cool

Подстройка параметров по умолчанию для штатного майнера:
Если у вас очень производительная машина (или наоборот слабая), вы можете расширить лимиты скорости генерации 3D моделей для улучшения производительности.

Вам понадобится модифицировать файл miner.js:
https://github.com/3Dpass/3DP/blob/1c696ee89ce4acc3274209aab8bc7ec597bfc4f5/miner.js#L17

Code:
const MIN_INTERVAL = 100;
const MAX_INTERVAL = 10000;
const ADJUSTMENT_PERCENT = 10;

Уменьшите минимальный лимит, если у вас мощная машина, которую нужно загрузить. Например, MIN_INTERVAL = 10 сократит минимальный лимит до 10 msec.

Аналогично можно изменить максимальный лимит (например, MAX_INTERVAL = 100000 увеличит максимум до 100 sec)

---
Ручное управление скоростью альтернативного майнером:

Если вы используете данный альтернативный майнер: https://github.com/3Dpass/miner , то вы можете управлять скоростью при помощи параметра `--interval`. Например, `--interval 10` установит скорость генерации 3D моделей в 10 msec.

Запуск:
Code:
yarn miner --interval 10


По истечение месяца выяснилось, что эти подстройки добавляют x1,5..  Grin
legendary
Activity: 1128
Merit: 1028
Вот что еще выяснилось.  Cool

Подстройка параметров по умолчанию для штатного майнера:
Если у вас очень производительная машина (или наоборот слабая), вы можете расширить лимиты скорости генерации 3D моделей для улучшения производительности.

Вам понадобится модифицировать файл miner.js:
https://github.com/3Dpass/3DP/blob/1c696ee89ce4acc3274209aab8bc7ec597bfc4f5/miner.js#L17

Code:
const MIN_INTERVAL = 100;
const MAX_INTERVAL = 10000;
const ADJUSTMENT_PERCENT = 10;

Уменьшите минимальный лимит, если у вас мощная машина, которую нужно загрузить. Например, MIN_INTERVAL = 10 сократит минимальный лимит до 10 msec.

Аналогично можно изменить максимальный лимит (например, MAX_INTERVAL = 100000 увеличит максимум до 100 sec)

---
Ручное управление скоростью альтернативного майнером:

Если вы используете данный альтернативный майнер: https://github.com/3Dpass/miner , то вы можете управлять скоростью при помощи параметра `--interval`. Например, `--interval 10` установит скорость генерации 3D моделей в 10 msec.

Запуск:
Code:
yarn miner --interval 10
legendary
Activity: 1128
Merit: 1028
Переведу еще одну полезную фичу - как сгенерировать и импортировать все необходимые ключи скриптом.

Новый аккаунт

Скрипт сгенерирует новый аккаунт и импортирует все ключи (Mining key, GRANDPA key and ImOnline key):

Code:
cd 3DP 
sh keygen.sh
                   
Существующий аккаунт

Если у вас уже есть аккаунт, и вы хотите его использовать для майнинга, то существует скрипт keygen_seed.sh, который сгенерирует и импортирует все ключи из вашей секретной  seed фразы.

Пропишите вашу секретную seed фразу в  ~/3DP/keygen_seed.sh:

Code:
#! /bin/bash
# A keyset will be generated out of the seed phrase below
MEMO_SEED="PUT YOUR MEMO SEED HERE"
 
                
Сохраните изменения в keygen_seed.sh и запустите скрипт:

Code:
sh keygen_seed.sh

--

Оригинал: https://3dpass.org/mainnet#linux-mac-keys
legendary
Activity: 1128
Merit: 1028
Есть возможность использовать снэпшот недавней блокчейн базы, чтобы ускорить процесс начальной синхронизации ноды с сетью (иначе несколько дней можно синкаться):

Linux or Mac OS:

- Местоположение базы `db`: ~/3dp-chain/chains/3dpass/db
- Скачайте папку `db` из одного из репозиториев комьюнити repo 1: https://github.com/Snezhnaya-Fatui/p3d-mainnet-db  or repo 2: https://github.com/xchainw/p3d-db/releases
- Замените папку `db` на только что скачанную
- Перезапустите ноду

Docker:

- Местоположение базы `db`: ./3DP/data/chain/chains/3dpass/db
- Скачайте папку `db` из одного из репозиториев комьюнити: https://github.com/Snezhnaya-Fatui/p3d-mainnet-db  or repo 2: https://github.com/xchainw/p3d-db/releases
- Замените папку `db` на только что скачанную
- Перезапустите ноду
legendary
Activity: 1128
Merit: 1028
а совмещать гпу майнинг с цпу возможно? в смысле запустить на гпу ферме еще и цпу майнинг?  если цпу не грузится, то вполне реально совмещать имхо.
хотя даже бакс в сутки без затрат на одном цпу не сильно уступает ригу 5600. но на перспективу интереснее совмещение, конечно.

 Они пишут, что принципиально возможно совмещать (CPU+GPU) но они сделали все, чтобы уравнять скорость с CPU. Насколько это будет быстрее не понятно, майнера такого тоже нет пока.

Если есть желание, можно посмотреть, как устроен алгоритм здесь: https://github.com/3Dpass/whitepaper/blob/main/3DPass_white_paper_v2.pdf

Там используется RAM и сам блокчейн еще на диске подтверждается в каждом лупе (то есть, ты не можешь найти блок без доступа к db). Наверняка, есть какие-то возможности для оптимизации.. нужно смотреть.
не. я имею ввиду дуал-майнинг. копать другую монету на гпу, а их на цпу. если загрузка цпу далека от 100% можно совместить по идее.

A.., так можно, я думаю. Нужно тестить.
hero member
Activity: 2548
Merit: 769
а совмещать гпу майнинг с цпу возможно? в смысле запустить на гпу ферме еще и цпу майнинг?  если цпу не грузится, то вполне реально совмещать имхо.
хотя даже бакс в сутки без затрат на одном цпу не сильно уступает ригу 5600. но на перспективу интереснее совмещение, конечно.

 Они пишут, что принципиально возможно совмещать (CPU+GPU) но они сделали все, чтобы уравнять скорость с CPU. Насколько это будет быстрее не понятно, майнера такого тоже нет пока.

Если есть желание, можно посмотреть, как устроен алгоритм здесь: https://github.com/3Dpass/whitepaper/blob/main/3DPass_white_paper_v2.pdf

Там используется RAM и сам блокчейн еще на диске подтверждается в каждом лупе (то есть, ты не можешь найти блок без доступа к db). Наверняка, есть какие-то возможности для оптимизации.. нужно смотреть.
не. я имею ввиду дуал-майнинг. копать другую монету на гпу, а их на цпу. если загрузка цпу далека от 100% можно совместить по идее.
legendary
Activity: 1128
Merit: 1028
а совмещать гпу майнинг с цпу возможно? в смысле запустить на гпу ферме еще и цпу майнинг?  если цпу не грузится, то вполне реально совмещать имхо.
хотя даже бакс в сутки без затрат на одном цпу не сильно уступает ригу 5600. но на перспективу интереснее совмещение, конечно.

 Они пишут, что принципиально возможно совмещать (CPU+GPU) но они сделали все, чтобы уравнять скорость с CPU. Насколько это будет быстрее не понятно, майнера такого тоже нет пока.

Если есть желание, можно посмотреть, как устроен алгоритм здесь: https://github.com/3Dpass/whitepaper/blob/main/3DPass_white_paper_v2.pdf

Там используется RAM и сам блокчейн еще на диске подтверждается в каждом лупе (то есть, ты не можешь найти блок без доступа к db). Наверняка, есть какие-то возможности для оптимизации.. нужно смотреть.


hero member
Activity: 2548
Merit: 769
а совмещать гпу майнинг с цпу возможно? в смысле запустить на гпу ферме еще и цпу майнинг?  если цпу не грузится, то вполне реально совмещать имхо.
хотя даже бакс в сутки без затрат на одном цпу не сильно уступает ригу 5600. но на перспективу интереснее совмещение, конечно.
legendary
Activity: 1128
Merit: 1028
профит какой?

Могу поделиться только моими наблюдениями за несколько дней, так как алгоритм обновили недавно, и большой статистики нет пока.

Для теста я присоединился с одной дешевой CPU 2 (SSD) машиной, которая просто валялась с 2018 года на полке. CPU полностью не грузится из-за особенностей алгоритма, то есть мои затраты я пока взял за 0. Требуется память ~ 40 Gb для ноды (без ноды майнинг не работает, из за требований алгоритма по доступу к базе блокчейна)

Мне удается майнить 1 блок в 12 часов (по текущему курсу ~ 1 $ в сутки). Курс на дне сейчас.  
legendary
Activity: 1708
Merit: 1615
Payment Gateway Allows Recurring Payments
legendary
Activity: 1128
Merit: 1028
Друзья,

Давно хотел сделать перевод инструкции по майнингу P3D, которая стала более актуальней после перехода на новый алгоритм, ориентированный на CPU и распределенный майнинг, доступный каждому: https://bitcointalksearch.org/topic/3dpass-p3d-distributed-mining-new-algo-cpu-oriented-asic-resistant-5502515

Оригинал инструкции: https://3dpass.org/mainnet

Итого:
- Устройства: CPU
- Устойчивость к ASIC/GPU/FPGA
- Запуск полной ноды - обязательное условие консенсуса

Доска с информацией по майнерам http://3dpassmining.info

-----
Майнинг одной командой с Docker (Linux, Windows, MacOS, любая)

1. Установите Docker (https://docs.docker.com/get-docker/) и  Docker Compose: (https://docs.docker.com/compose/install/) и запустите его
2. Откройте терминал и склонируйте проект на свой компьютер:
Code:
git clone https://github.com/3Dpass/3DP.git
3. Перейдите в папку и инсталируйте майнер (./3DP/miner.js) c pnpm:
Code:
cd 3DP
pnpm install
убедитесь, что в папку P3D появился файл с зависимостями `./3DP/pnpm-lock.yaml`
4. Cоберите и запустить ноду и майнер данной командой:
Code:
cp docker-compose.override.yml.example docker-compose.override.yml
docker compose build
docker compose up
После запуска нода ругнется ошибкой "Invalid author address", это нормально. Остановите ноду.
5. Сгенерируйте ваш аккаунт одной из опций:
5.1. Опция 1: Сгенерируйте аккаунт через кошелек https://wallet.3dpass.org/ (понадобится установить расширение для браузера https://polkadot.js.org/extension/)
5.2. Опция 2: Использовать скрипт - замените содержание файла ~/3DP/docker/node.sh на следующий скрипт и запустите ноду:
Code:
#!/bin/bash
./p3d generate-mining-key --base-path /var/chain --chain mainnetSpecRaw.json
В ответ вы получите ваш аккаунт (фразу адрес и ключи), например:
Code:
Public key: 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e 
Secret seed: fog olympic thrive recall allow page hood damage october curtain degrwe bubble
Address: d1GtBxnPwRZVez7VsQ9H7MskPn34H59RddrR9yXqhgDYsqC3t
Сохраните фразу в надежном месте и замените содержимое ~/3DP/docker/node.sh на прежнее.

6. Пропишите вашу фразу и адрес в  ~/3DP/docker-compose.override.yml.example как в примере:
Code:

version: "3.9"

services:
node:
environment:
- MEMO_SEED=Ваша фраза
- ADDRESS=Ваш адрес

7. Запустите ноду и майнер и проверьте, что вы видите ее в телеметрии: https://telemetry.3dpscan.io/#/0x6c5894837ad89b6d92b114a2fb3eafa8fe3d26a54848e3447015442cd6ef4e66
Code:
docker compose up

Нода начнет синхронизироваться с сетью, это может занять время, чтобы скачать историю блоков.
Вы можете использовать снэпшот блокчейн базы, чтобы ускорить процесс:

  • Блокчейн база расположена здесь (папка db): ./3DP/data/chain/chains/3dpass/db
  • Скачайте и распакуйте снэпшот базы из репозитория https://github.com/xchainw/p3d-db/releases (предоставляется участниками комьюнити)
  • Замените папку db на скачанную вами здесь ./3DP/data/chain/chains/3dpass/db
  • Запустите ноду

Чтобы назначить ноде имя в телеметрии  отредактируйте параметр `--name MY_NODE_NAME` в файле  ~/3DP/docker/node.sh.


Майнинг на Linux и MacOS

Подготовьте и запустите ноду:
1. Склонируйте проект из GitHub:
Code:
git clone https://github.com/3Dpass/3DP.git
cd 3DP
2. Скачайте бинарник последнего релиза `poscan-consensus https://github.com/3Dpass/3DP/releases
или соберите ноду самостоятельно, пользуясь инструкциями readme.md https://github.com/3Dpass/3DP#getting-started-with-3dpass-node

Если вы скачивали бинарник, то положите его в папку `./target/release/poscan-consensus`!

3. Сгенерируйте ваш майнинг аккаунт (стандартный аккаунт  'sr25519')
Code:
./target/release/poscan-consensus generate-mining-key --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json
В ответе будут ваши ключи и секретная фраза, например:
Code:
Public key: 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e Secret seed: fog olympic thrive recall allow page hood damage october curtain degrwe bubble Address: d1GtBxnPwRZVez7VsQ9H7MskPn34H59RddrR9yXqhgDYsqC3t

4. Зарегистрируйте ключи от аккаунта в keystore
Code:
./target/release/poscan-consensus import-mining-key 'your secret seed phrase' --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json

5. Создайте еще один тип ключей ('ed25519') для верификации финализации блоков GRANDPA из той же самой фразы:
Code:
./target/release/poscan-consensus key inspect --scheme Ed25519 "ваша фраза из майнингового аккаунта"

в ответе будут ключи, например:
Code:
Secret phrase fog olympic thrive recall allow page hood damage october curtain degrwe bubble is account:
Network ID/Version: 71
Secret seed: 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3 Public key (hex): 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1
Account ID: 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1 SS58 Address: d1HqrBYq9qsTbBb4tQtnt9sLgh9UsS7XJbgQgr5Cb4CxH2xAd

6. Добавьте ключ GRANDPA в keystore:
Code:
./target/release/poscan-consensus key insert --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --scheme Ed25519 --suri 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3 --key-type gran
`--suri` - это Secret seed `hex`` из GRANDPA ключа (в примере выше: 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3)

Убедитесь, что вы имеете оба ключа в keystore
Code:
ls ~/3dp-chain/chains/3dpass/keystore

7. Запустите ноду:
Code:

./target/release/poscan-consensus --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --name MyNodeName --validator --telemetry-url "wss://submit.telemetry.3dpscan.io/submit 0" --author 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e --threads 2 --no-mdns

`--author` - ваш публичный ключ от майнингового аккаунта
 `--threads 2`  - количество потоков (отрегулируйте на ваше усмотрение, оставьте один для синхронизации)

8. Вы можете так же использовать снэпшот блокчейн базы из этого репо: https://github.com/xchainw/p3d-db/releases
Скачайте, распакуйте и замените папку `db`: ./3dp-chain/chains/3dpass/db

Рестартуйте ноду и дождитесь синхронизации. Убедитесь, что вы видите ноду в телеметрии https://telemetry.3dpscan.io/#/0x6c5894837ad89b6d92b114a2fb3eafa8fe3d26a54848e3447015442cd6ef4e66

Запустите майнинг:

1. Установите Bun https://bun.sh/
2. Установите майнер:
Code:
cd 3DP
bun install
3. Запустите майнер (нода должна быть запущена!)
Code:
bun miner.js --host 127.0.0.1 --port 9933

Существует альтернативный майнер https://github.com/3Dpass/miner , можете сравнить.

Удачного майнинга всем!

Jump to: