Я разрабатываю веб-сайт (Php/mysql) для торговли, который будет связываться с цепочкой блоков через смарт-контракт. Мой веб-сайт будет сервисным веб-сайтом. это не будет веб-сайт с высоким трафиком и будет иметь ограниченный доступ. Поэтому мне нужно где-то разместить веб-сайт, а также загрузить блокчейн Ethereum. Я считаю, что размещение веб-сайта и создание узла ethereum на том же сервере будет хорошей идеей, чтобы код мог локально подключаться к блокчейну. Я буду использовать клиент go-ethereum и node.js.
Я думал об использовании VPS. Мой вопрос заключается в том, какими должны быть минимальные требования к оборудованию (процессор, оперативная память, память и т. д.). Что-нибудь, о чем мне может понадобиться позаботиться? Является ли экземпляр AWS EC2 лучшим вариантом?
Минимальные аппаратные требования (для начальной синхронизации): 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
Настройка синхронизации по четности:
--db-compaction hdd or --db-compaction ssd respectively
.parity --pruning fast --db-compaction ssd --cache-size 1024
Эти данные цепочки должны быть удалены и повторно --fast(если вы используете клиент geth) или --warp(если клиент паритета) периодически синхронизируются, чтобы сохранить требования к дисковому пространству.