Гайд: установка ноды Subspace
Коротко о проекте и почему мы рвемся его ставить
Если очень коротко, Subspace - это проект-сеть, предоставляющая возможность разворачивать Web3 приложения без каких либо трудностей, дополнительно дает им возможность автоматически масштабироваться.
Представитель концепции PoC(см. ниже, будет более подробная инфа), который полностью интегрирован с Polkadot & Kusama, и в ближайшем будущем с EVM.
Subspace разделил консенсус(executor) и вычисления(farmer, не одно и то же, что "майнер"). Одни собирают транзакции и отправляют на проверку другим, что является довольно интересным, новым решением в данном направлении, решает часть проблем, которые не удается охватить аналоговым технологиям.
Подводя итоги: на данный момент имеется тестнет(пока только фармеры), в скором времени планирует перетекать в инсентивайз(ориентировочно во 2/4, добавятся экзекуторы), приятные инвесторы(более $37млн), интересная перспективная технология, почему бы, собственно говоря, и не поучаствовать?
Как и в прошлый раз, я оставлю более подробный и сложный кусок информации в конце, а сейчас без лишних слов сразу к делу - установка ноды.
Medium | GitHub | WebSite | Twitter | Discord | Telegram
Установка
Выбор сервера
Минимальные характеристики(VPS/VDS/DS):
1 CPU, 1 GB RAM, 60 GB SSD, Ubuntu 20.04
Рекомендуемые характеристики(VPS/VDS/DS):
2 CPU, 2 GB RAM, 60 GB SSD, Ubuntu 20.04
Contabo Cloud VPS-S (4.99€/месяц + установка)
Contabo Cloud VPS-M (8.99€/месяц + установка, дороже, но есть вариант туда что-то подселить в будущем)
Варианты разные по цене, по качеству, выбор на ваше усмотрение. Не обязательно заказывать здесь, подойдет абсолютно любой хостинг, на ваш выбор.
Подключение к серверу:
Для того, чтобы подключиться к серверу на Windows потребуется программа PuTTY или MobaXterm(на ваше усмотрение, что удобно - тем и пользуемся)
- В "Host Name" вводим IP вашего сервера и нажимаем "Open";
- В открывшимся окне прописываем команду:
root
; - Жмем "Enter" и вставляем пароль от сервера, затем "Enter".
На MacOS просто запускаем программу Terminal
- Заходим на сервер командой:
ssh root@IP_ADDRESS
, IP_ADDRESS меняем на IP сервера; - Дальше вводим "yes", жмем "Enter" и вставляем пароль от сервера (введенный пароль будет скрыт иконкой с ключом). Жмем "Enter".
Переходим в эксплорер и добавляем аккаунт:
Надежно сохраняем мнемонику:(отметил фиолетовым)
Вводим свои данные, также сохраняем, жмем "Следующий", "Сохранить":
Обновление:
sudo systemctl stop farmerd subspaced
farmer wipe && rm -Rvf /root/.local/share/subspace-node/chains/*
Дальше просто проходим установку
Установка:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install wget -y
mkdir $HOME/subspace; \ cd $HOME/subspace && \ VER=$(wget -qO- https://api.github.com/repos/subspace/subspace/releases/latest | jq -r ".tag_name") && \ wget https://github.com/subspace/subspace/releases/download/${VER}/subspace-farmer-ubuntu-x86_64-${VER} -O farmer && \ wget https://github.com/subspace/subspace/releases/download/${VER}/subspace-node-ubuntu-x86_64-${VER} -O subspace && \ sudo chmod +x * && \ sudo mv * /usr/local/bin/ && \ cd $HOME && \ rm -Rvf $HOME/subspace
echo -e "\n$(farmer --version)\n$(subspace --version)\n"
source $HOME/.bash_profile && \echo -e "\nmoniker > ${NICKNAME}.\naddress > ${SUBSPACE_ADDRESS}.\n"
echo "export NICKNAME="имя_кошеля"" >> ~/.bash_profile
echo "export SUBSPACE_ADDRESS="сам_кошель"" >> ~/.bash_profile
source ~/.bash_profile
sudo tee <<EOF >/dev/null /etc/systemd/journald.conf Storage=persistent EOF
sudo systemctl restart systemd-journald
создаём сервис для запуска ноды
sudo tee <<EOF >/dev/null /etc/systemd/system/subspaced.service [Unit] Description=Subspace Node After=network.target [Service] Type=simple User=$USER ExecStart=$(which subspace) \\ --chain="gemini-1" \\ --execution="wasm" \\ --pruning=1024 \\ --keep-blocks=1024 \\ --validator \\ --reserved-nodes="/dns/bootstrap-0.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWF9CgB8bDvWCvzPPZrWG3awjhS7gPFu7MzNPkF9F9xWwc" \\ --reserved-nodes="/dns/bootstrap-1.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWLrpSArNaZ3Hvs4mABwYGDY1Rf2bqiNTqUzLm7koxedQQ" \\ --reserved-nodes="/dns/bootstrap-10.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWNGf1qr5411JwPHgwqftjEL6RgFRUEFnsJpTMx6zKEdWn" \\ --reserved-nodes="/dns/bootstrap-11.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWM7Qe4rVfzUAMucb5GTs3m4ts5ZrFg83LZnLhRCjmYEJK" \\ --reserved-nodes="/dns/bootstrap-2.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWNN5uuzPtDNtWoLU28ZDCQP7HTdRjyWbNYo5EA6fZDAMD" \\ --reserved-nodes="/dns/bootstrap-3.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWM47uyGtvbUFt5tmWdFezNQjwbYZmWE19RpWhXgRzuEqh" \\ --reserved-nodes="/dns/bootstrap-4.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWNMEKxFZm9mbwPXfQ3LQaUgin9JckCq7TJdLS2UnH6E7z" \\ --reserved-nodes="/dns/bootstrap-5.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWFfEtDmpb8BWKXoEAgxkKAMfxU2yGDq8nK87MqnHvXsok" \\ --reserved-nodes="/dns/bootstrap-6.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWHSeob6t43ukWAGnkTcQEoRaFSUWphGDCKF1uefG2UGDh" \\ --reserved-nodes="/dns/bootstrap-7.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWKwrGSmaGJBD29agJGC3MWiA7NZt34Vd98f6VYgRbV8hH" \\ --reserved-nodes="/dns/bootstrap-8.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWCXFrzVGtAzrTUc4y7jyyvhCcNTAcm18Zj7UN46whZ5Bm" \\ --reserved-nodes="/dns/bootstrap-9.gemini-1b.subspace.network/tcp/30333/p2p/12D3KooWNGxWQ4sajzW1akPRZxjYM5TszRtsCnEiLhpsGrsHrFC6" \\ --reserved-nodes="/ip4/142.132.131.158/tcp/30333/p2p/12D3KooWEUbb4VxpwHxkRCTB2RG59whnHeYs4631iwefYzQZSA58" \\ --reserved-nodes="/ip4/161.97.86.119/tcp/30333/p2p/12D3KooWKn317boS3z5eKu9tL5koyuBRzTZXU1cvULmAFu8qAJSB" \\ --reserved-nodes="/ip4/164.92.167.41/tcp/30333/p2p/12D3KooWFRWdKxmkGCfLCM29Kwpjws18Wy66piC1Rup4ZfmFrki6" \\ --reserved-nodes="/ip4/173.249.28.128/tcp/30333/p2p/12D3KooWSG7ZKU1prLsR2XYqJetYKMBq132hxEu3PwA3LR9FP3CK" \\ --reserved-nodes="/ip4/176.122.88.128/tcp/30335/p2p/12D3KooWEWmUX8futkbi8YodaRGFuuuxyngmKWDPazVob4JwT1TE" \\ --reserved-nodes="/ip4/185.241.52.110/tcp/30333/p2p/12D3KooWFxZn3t7pPTZzcF6HTPMgbfAwDwG3af64T82rWrgVsMKr" \\ --reserved-nodes="/ip4/185.252.232.79/tcp/30333/p2p/12D3KooWG2qiXqpt9mB6MBYuwxcwU8E9tJugoJ79BU9MeMujTzCo" \\ --reserved-nodes="/ip4/194.146.12.210/tcp/30333/p2p/12D3KooWNY2HDY3VgbFTUtuxtqBLVwfPzQoqMrKETxQsJPxCybwN" \\ --reserved-nodes="/ip4/194.163.172.244/tcp/30333/p2p/12D3KooWEjTgq1QEt2mS9p3ztNxcp2KC3NijCk6B31jS7CdKvDwr" \\ --reserved-nodes="/ip4/195.3.220.211/tcp/30333/p2p/12D3KooWDHWjr3cKhQMAHuZ5twfj6wehdwMrr9WnwifXx7Ay5BeR" \\ --reserved-nodes="/ip4/38.242.202.59/tcp/30333/p2p/12D3KooWC9Ec6xNJ8oNZ87XgKyN9HWq3GUTmA5EKLdJjviAEksom" \\ --reserved-nodes="/ip4/38.242.209.251/tcp/30333/p2p/12D3KooW9x1S2B8w88jn6gAbNt3f4UmXdf59qxT3tGtLN5BKWGNh" \\ --reserved-nodes="/ip4/38.242.224.226/tcp/30333/p2p/12D3KooWMJw8iXs7jFYC3YLTJnwZfVhhy36F6V2889zFDebfKnfR" \\ --reserved-nodes="/ip4/45.144.67.67/tcp/30333/p2p/12D3KooWPQpjxmANthC2xYd4mEAh4evCpMw8dSLBwZEy65pw12jf" \\ --reserved-nodes="/ip4/46.101.140.85/tcp/30333/p2p/12D3KooWNGxWQ4sajzW1akPRZxjYM5TszRtsCnEiLhpsGrsHrFC6" \\ --reserved-nodes="/ip4/5.182.227.103/tcp/30333/p2p/12D3KooWEcMQudRP1U5eCqACqGLeEJmpqfGPau3LY4cRJytBqRLe" \\ --reserved-nodes="/ip4/62.171.134.63/tcp/30333/p2p/12D3KooWPy4Dz9i19Cyrpu9jhtRMEWwtYDi1XFmpXJpN3iqXugKC" \\ --reserved-nodes="/ip4/62.171.138.196/tcp/30333/p2p/12D3KooWHtrAtkEjW6f4vRhyVQbU4dZo5ryfQoiNCf84ZkFYWqXZ" \\ --reserved-nodes="/ip4/65.108.130.178/tcp/30333/p2p/12D3KooWLUH8FqxJti1rFAmrFo9HHZQhhygg8qHx2bSJurk7NhQQ" \\ --reserved-nodes="/ip4/65.108.227.146/tcp/30333/ws/p2p/12D3KooWN5uEJ3awLVKkDdcF6RHvxLXVjYMzdFYDYECpt3aoGq49" \\ --reserved-nodes="/ip4/65.108.246.217/tcp/30333/p2p/12D3KooWMEbLfvRYdJnfVqcpNn5VyEUyQeiG5R6cp8qsvspAtxsP" \\ --reserved-only \\ --name="${NICKNAME}" Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload && \ sudo systemctl enable subspaced && \ sudo systemctl restart subspaced
sudo journalctl -u subspaced -f -o cat
Сами логи не очень здоровые по причине нестабильности сети, периодически коннект будет рваться, чинят.
Ниже указываем временную переменную для выделения места под фермер, указываем минимум 10Гб, я укажу 100
SPACE="100G"
sudo tee <<EOF >/dev/null /etc/systemd/system/farmerd.service [Unit] Description=Subspace Farmer After=network.target [Service] Type=simple User=$USER ExecStart=$(which farmer) farm \\ --reward-address=${SUBSPACE_ADDRESS} \\ --plot-size=${SPACE} Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload && \ sudo systemctl enable farmerd && \ sudo systemctl restart farmerd
sudo journalctl -u subspaced -f -o cat
sudo journalctl -fu subspaced -o cat | grep "best"
Дополнительные команды:
sudo systemctl restart subspaced
sudo systemctl restart subspaced-farmer
sudo systemctl stop subspaced subspaced-farmer sudo systemctl disable subspaced subspaced-farmer rm -rf ~/.local/share/subspace* rm -rf /etc/systemd/system/subspaced* rm -rf /usr/local/bin/subspace*
Обновление
sudo systemctl stop farmerd subspaced
farmer wipe && \ subspace purge-chain --chain gemini-1 -y > /dev/null 2>&1 && \ subspace purge-chain --chain testnet -y > /dev/null 2>&1
Бэкап
При переносе ноды, выкачиваем файл, по адресу, который выдает команда
find / -iname secret_ed25519 | grep subspace
по дефолту он следующий: /root/.local/share/subspace-node/chains/subspace_test/network/secret_ed25519
После установки ноды, замените соответствующий новосозданный файл на тот, что скачали перед удалением, перезапустите ноду и фармер.
Инфа
Спонсоры
Из крупных интересных инвесторов могу отметить Pantera Capital - большое портфолио, вы можете знать такие проекты с их участием как: 1inch, 0x, FTX, Coinbase(показательно, т.к. когда-то Pantera вложились в coinbase, а теперь они вместе инвестируют в сабспейс, иронично), Brave, Near. С coinbase и crypto.com большинство и так знакомы, а так, впринципе, желающих приложить часть финансовых усилий в проект набралось масса:
Концепция
Когда Сатоши создавал Биткойн, он, вероятно, не ожидал, что вся криптовалютная индустрия станет настолько централизованной. Но, к счастью, есть такие проекты, как сеть Subspace, которые предлагают элегантное решение, позволяющее снова сделать блокчейн децентрализованным.
Изначально, стоит разъяснить то, что Subspace является представителем Proof of Capacity(PoC). Что же это такое?
Proof of Capacity(PoC) - это модель блокчейна, которая основана на интенсивном хранении данных, потому что жесткие диски распространены гораздо шире, чем машины для майнинга ASIC. Фермерство менее энергоэффективно, чем майнинг, но его безопасность очень похожа на PoW.
При модели PoW огромные майнинг-фермы, объединенные в несколько майнинг-пулов, являются, по большей части, правителями сети. Также, сжигая чрезмерное количество электроэнергии, делают этот вариант экологически не устойчивым.
Proof of Stake имеет некоторые улучшения по сравнению с PoW. Это не то чтобы слишком энергоемко, но все же есть проблема с уровнем децентрализации в большинстве блокчейнов PoS: если одна монета означает один голос, то киты, владеющие огромным количеством монет, имеют слишком большую власть.
PoC пытается решить эти проблемы по-своему, используя аппаратные диски для формирования консенсуса. Фермеры сначала создают и хранят доказуемо уникальные реплики истории блокчейна, прежде чем реагировать на случайные и публично проверяемые проверки хранилища, которые позволяют им производить новые блоки. Вычисления основаны на том, что фермеры выделяют все доступное дисковое пространство для консенсуса, выполняя как можно меньше избыточных вычислений. Хранение истории блокчейна просто стимулирует фермеров создавать самую длинную цепочку.
Для разъяснения основы концепции Subspace и их мотивов, стоит изначально разобраться с таким явлением в крипте как "дилемма фермера". Если вкратце и без лишних слов: каждый узел(нода) должен делать выбор между сохранением истории и состояния блокчейна или максимальным объемом пространства, которое он выделяет для достижения консенсуса. В отличие от сетей PoW и PoS, существуют сильные финансовые стимулы для того, чтобы не запускать полную ноду, а это означает, что сети PoC на самом деле более склонны к централизации.
В Subspace есть две основные роли, которые разделяют консенсус и вычисления, что является ключевым отличием от других моделей консенсуса - фермеры и экзекуторы(исполнители):
Фермеры - хранят уникальные реплики истории блокчейна вместе, каждый фермер хранит столько реплик, сколько позволяет его дисковое пространство. В других блокчейнах Proof of Capacity фермеры хранят случайно сгенерированные данные или данные, созданные пользователями вне сети.
Исполнители - в отличие от фермеров, их основная цель — поддерживать состояние блокчейна и вычислять переходы между состояниями.
Из вайтпепера Subspace - «Это разделение задач значительно снижает объем памяти и вычислительных ресурсов, необходимых для работы фермера, даже в модели выполнения в стиле Ethereum, обеспечивая высокий уровень участия в консенсусе обычных пользователей с обычным оборудованием».
Сохранение консенсуса и вычисления разделены в Subspace, поэтому фермерам не нужно поддерживать состояние блокчейна, если они сосредоточены на упорядочении транзакций в блоках. При таком подходе "дилемма фермера" решается элегантным способом, поддерживая достойный уровень децентрализации.
Подводя итоги: исходя из всего вышеуказанного, Subspace является бесплатным, честным и экологичным по своей природе представителем PoC сети, без какой-либо централизации. Предлагая недорогое и масштабируемое пространство для децентрализованных приложений, Subspace дает пользователям возможность легко вставлять данные непосредственно в транзакции, что очень важно при построении Web3.