¿Dónde implementar los servicios web3: backend o frontend? [cerrado]

Estoy desarrollando una aplicación similar a las redes sociales basada en ethereum blockchain y algunos casos de uso están controlados por contratos inteligentes. entonces, para comunicarme con un contrato inteligente, tengo que tratar con web3.

la pregunta es si tengo que implementar servicios web3 en el nivel de frontend (angular) porque esto necesitará confirmación de transacciones y acceso a la billetera (exmpl metamask) y mantener negocios fuera de la cadena en backend (nodejs), o puedo implementar todos los servicios en nodejs .

Respuestas (1)

Realmente depende de qué UX quieras proporcionar. Generalmente hay 3 enfoques:

  1. Totalmente descentralizado : aplicación Javascript independiente que recupera todos los datos de servicios descentralizados, como Ethereum, Swarm e IPFS.
  2. Enfoque semidescentralizado : sus usuarios administran sus propias billeteras y usan Metamask u otros firmantes de TX con interacción web3 basada en javascript. También puede tener una billetera de servidor, firmando el lado del servidor TX.
  3. Puede administrar una billetera Ethereum para sus usuarios, brindándoles un inicio de sesión tradicional. Por lo tanto, toda su aplicación de cadena de bloques ( no descentralizada ) podría estar del lado del servidor.

En cualquier caso, puede usar node.js como tecnología de back-end o simplemente usarlo como parte de una arquitectura de back-end basada en microservicios.

Solo tenga en cuenta que tan pronto como aloje una billetera para su usuario, puede convertir su servidor en un señuelo de piratas informáticos.

Ok, digamos que usaré metmask para administrar billeteras. he implementado web3 en el nivel frontend. y mantener otros negocios fuera de la cadena en un servidor nodejs?
Suena bien para mi. Todas las acciones entre el usuario y la cadena de bloques deben ser iniciadas por javascript front-end y completadas por el usuario a través de metamask.
También puede verificar si su tecnología de back-end favorita tiene una implementación de Ethereum bien mantenida. github.com/ethereum/web3.js#otras-implementaciones