El web3.js es la forma más fácil y quizás la forma estándar de creación de dapp. Y hay dos proveedores posibles a partir de ahora, HttpProvider e IPCProvider. El HttpProvider toma la dirección en la que se ejecuta el servidor, puede ser algo como
var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));
// or it can be http://m.n.k.l:8545
Mi pregunta es si el servidor de alojamiento/nodo se ha caído, ¿cómo puede el cliente acceder a él? En casos como este, todo el dapp está inactivo. Entonces, ¿cuál es el punto de llamarlo dapp?
¿Es correcto mi entendimiento acerca de tener un solo servidor como proveedor?
No todos los creadores de dapp alojan su propio servidor o un nodo que se ejecuta en rpc. En tales casos, ¿cómo sabría el creador la dirección de cualquier nodo?
El localhost:8545
que está en su ejemplo indica que la DApp está enviando solicitudes a un nodo que se ejecuta localmente en la computadora del usuario. A menudo, el paradigma es verificar si hay un servidor rpc local y, si no existe, usar un nodo público como respaldo (suponiendo que la DApp administre las claves en el navegador; de lo contrario, necesita un nodo local para almacenar las claves) .
web3.js o cualquier otro cliente se comunica con un nodo que haya configurado. En este caso, el nodo se está ejecutando localhost:8545
y la aplicación se comunica con ese puerto para obtener datos en ese nodo. Cada nodo tendrá la misma copia de datos, por lo tanto, no hay un servidor central ni ningún tiempo de inactividad (ese es el punto central de la cadena de bloques).
Si le preocupa el tiempo de inactividad de un solo servidor, es posible que deba pensar desde la perspectiva de su aplicación. Puede configurar dos o más nodos para evitar el tiempo de inactividad y otros problemas relacionados con la infraestructura.
Por ejemplo, en mi caso, configuré 3 VM de Linux para la instancia de geth y un servidor de Windows para el alojamiento de aplicaciones y otras actividades relacionadas con la base de datos.
q9f
niksmac
q9f
niksmac