Хостинг узла Ethereum на VPS

Я разрабатываю веб-сайт (Php/mysql) для торговли, который будет связываться с цепочкой блоков через смарт-контракт. Мой веб-сайт будет сервисным веб-сайтом. это не будет веб-сайт с высоким трафиком и будет иметь ограниченный доступ. Поэтому мне нужно где-то разместить веб-сайт, а также загрузить блокчейн Ethereum. Я считаю, что размещение веб-сайта и создание узла ethereum на том же сервере будет хорошей идеей, чтобы код мог локально подключаться к блокчейну. Я буду использовать клиент go-ethereum и node.js.

Я думал об использовании VPS. Мой вопрос заключается в том, какими должны быть минимальные требования к оборудованию (процессор, оперативная память, память и т. д.). Что-нибудь, о чем мне может понадобиться позаботиться? Является ли экземпляр AWS EC2 лучшим вариантом?

Ответы (2)

Минимальные аппаратные требования (для начальной синхронизации): 4 ЦП, 8 ГБ ОЗУ, 100 ГБ на диске Минимальные аппаратные требования (для нормальной работы): 2 ЦП, 4 ГБ ОЗУ, 200 ГБ на диске

Хостинг веб-сайта и создание узла ethereum на одном сервере — НЕ лучшая идея. Одно будет затронуто другим. Когда ваш веб-сервер будет перегружен, у вас возникнут проблемы с синхронизацией узла. Когда сеть Ethereum перегружена, у вас будут проблемы с вашим веб-сервером. Используйте web3 с node.js (RPC). Если вы отправляете необработанные транзакции, вы можете использовать общедоступный/частный узел — https://www.infura.io/ (общедоступный, бесплатный) или https://www.fosha.org/ (частный, подписка). .

Если трафик не так важен, вы можете изучить мои текущие настройки.

Моя текущая настройка выглядит следующим образом:

- centos
- AWS Instance Type: t2.large: 2 vCPUs, 8GB RAM
- Disk: 80GB (50 GB currently used, expected to grow over time).

Я запускаю Parity с флагом --warp synced, по умолчанию будут сохранены только последние 64 состояния. однако ожидается, что со временем он вырастет, хотя и ненамного.

Мы также попробовали geth с --fast режимом синхронизации, но решили использовать четность в качестве нашей основной сети, учитывая тот факт, что она имеет репутацию самой надежной и производительной. См. здесь текущий размер синхронизации geth --fast

Отдать:

  • Настройте пользователя без полномочий root с правами sudo
  • Удалить root-логин через ssh
  • Я настоятельно рекомендую ограничить доступ к интерфейсу JSON RPC. Существует так много ботов, что они могут легко проникнуть в общедоступную ноду и получить все ваши с трудом заработанные эфиры с разблокированной учетной записи.

Настройте Parity как службу в systemd

Настройте следующую службу systemd:

$ vi /etc/systemd/system/parity.service
[Unit]
Description=Parity

[Service]
Type=simple
User= <your_user_name>
Restart=always
ExecStart=/usr/bin/parity --warp --port 30303 --jsonrpc-port 8545 


[Install]
WantedBy=default.target

Настройка синхронизации по четности:

  • Parity предлагает непрерывную обрезку дерева состояний; — быстрая обрезка сохранит в клиенте только последние 64 состояния. Его ожидаемый рост при меньшем росте. По умолчанию с последней версией?
  • Чтобы ускорить обработку блоков, вы можете увеличить размер кеша в зависимости от объема вашей памяти. Если у вас 8 ГБ, вы можете оставить 1/2 ГБ — размер кеша 1024. Вы можете увеличить его еще больше в зависимости от используемого объема памяти.
  • Используйте сжатие базы данных, если вы хотите оптимизировать использование следующих флагов в зависимости от типа вашего диска --db-compaction hdd or --db-compaction ssd respectively.

parity --pruning fast --db-compaction ssd --cache-size 1024

Эти данные цепочки должны быть удалены и повторно --fast(если вы используете клиент geth) или --warp(если клиент паритета) периодически синхронизируются, чтобы сохранить требования к дисковому пространству.