Alojar el nodo Ethereum en VPS

Estoy desarrollando un sitio web (Php/mysql) para el comercio, que se comunicará con la cadena de bloques a través de un contrato inteligente. Mi sitio web será un sitio web basado en servicios. no será un sitio web de alto tráfico y tendrá acceso restringido. Así que necesito alojar el sitio web en algún lugar y también necesito descargar Ethereum blockchain. Creo que alojar un sitio web y crear un nodo ethereum en el mismo servidor será una buena idea para que el código pueda conectarse localmente a la cadena de bloques. Usaré el cliente go-ethereum y node.js.

Estaba pensando en usar un VPS. Mi pregunta es cuáles deberían ser los requisitos mínimos de hardware (CPU, RAM, memoria, etc.). ¿Algo de lo que deba ocuparme? ¿Es la instancia AWS EC2 una mejor opción?

Respuestas (2)

Requisitos mínimos de hardware (para sincronización inicial): 4 CPU, 8 GB de RAM, disco de 100 GB Requisitos mínimos de hardware (para operaciones normales): 2 CPU, 4 GB de RAM, disco de 200 GB

Alojar un sitio web y crear un nodo ethereum en el mismo servidor NO es una buena idea. Uno será afectado por otro. Cuando su servidor web se sobrecargue, tendrá problemas para sincronizar el nodo. Cuando la red Ethereum se congestiona, tendrá problemas con su servidor web. Utilice web3 con node.js (RPC). Si está enviando transacciones sin procesar, es posible que desee utilizar un nodo público/privado: https://www.infura.io/ (público, gratuito) o https://www.fosha.org/ (privado, suscripción) .

Si el tráfico no es tan importante, es posible que desee ver mi configuración actual.

Mi configuración actual es la siguiente,

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

Estoy ejecutando Parity con la bandera --warp sincronizada, esto mantendrá solo los últimos 64 estados de forma predeterminada. sin embargo, se espera que crezca con el tiempo, aunque no mucho.

También probamos geth con el modo de sincronización rápida, pero elegimos usar la paridad como nuestra red principal dado que tenía la reputación de ser la más robusta y de mayor rendimiento. Consulte aquí para geth actual --tamaño de sincronización rápida

obsequios:

  • Configure un usuario no root, con derechos sudo
  • Eliminar inicio de sesión raíz a través de ssh
  • Recomiendo encarecidamente restringir el acceso a la interfaz JSON RPC. Hay tantos bots por ahí, que pueden entrar fácilmente en el nodo publicado públicamente y robar todos los éteres que tanto le costó ganar de la cuenta desbloqueada.

Configurar Parity como un servicio bajo systemd

Configure el siguiente servicio 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

Sincronización de paridad de sintonización:

  • Parity ofrece poda continua de trie de estado; —podar rápidamente mantendrá solo los últimos 64 estados en el cliente. Se espera que crezca con menos crecimiento. ¿Está predeterminado con la última versión?
  • Para acelerar el procesamiento de bloques, puede aumentar el tamaño de caché en función del tamaño de su memoria. Si tiene 8 gb, puede dejar 1/2 GB, tamaño de caché 1024. Puede aumentar aún más en función de su uso de memoria.
  • Utilice la compactación de la base de datos si desea optimizar utilizando los siguientes indicadores en función de su tipo de disco --db-compaction hdd or --db-compaction ssd respectively.

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

Los datos de esta cadena deberán eliminarse y volver a sincronizarse periódicamente para mantener los requisitos de espacio en disco reducidos.